位置: 编程技术 - 正文

简要剖析Linux系统的进程管理机制(深度探索linux操作系统:系统构建和原理解析)

编辑:rootadmin

推荐整理分享简要剖析Linux系统的进程管理机制(深度探索linux操作系统:系统构建和原理解析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何理解linux系统,如何理解linux系统,如何理解linux系统,如何理解linux系统,如何理解linux系统,linux系统分析,如何理解linux系统,如何理解linux系统,内容如对您有帮助,希望把文章链接给更多的朋友!

一 、进程的概念和分类1.进程的概念Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用同一个linux系统; 多任务是指在Linux下可以同时执行多个任务,更详细的说,linux采用了分时管理的方法,所有的任务都放在一个队列中,操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片很短,用户根本感觉不到是多个任务在运行,从而使所有的任务共同分享系统资源,这就是多任务的概念。上面说的是单CPU多任务操作系统的情形,在这种环境下,虽然系统可以运行多个任务,但是在某一个时间点,CPU只能执行一个进程,而在多CPU多任务的操作系统下,由于有多个CPU,所以在某个时间点上,可以有多个进程同时运行。进程的的基本定义是:在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称为一个进程。需要注意的是:程序和进程的关系可以是多对多关系! 2.进程的分类 按照进程的功能和运行的程序分类,进程可划分为两大类:l) 系统进程:可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。2) 用户进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。针对用户进程,又可以分为交互进程、批处理进程和守护进程三类。3) 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。4) 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。5) 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。 3.进程的属性(1)进程的几种状态

(2)进程之间的关系 在linux系统中,进程ID(用PID表示)是区分不同进程的唯一标识,它们的大小是有限制的,最大ID为,用UID和GID分别表示启动这个进程的用户和用户组。所有的进程都是PID为1的init进程的后代,内核在系统启动的最后阶段启动init进程,因而,这个进程是linux下所有进程的父进程,用PPID表示父进程。所以如果init进程被kill,则意味着所有进程就kill,那系统会重启或关闭

举例:ps命令输出的httpd进程信息:

简要剖析Linux系统的进程管理机制(深度探索linux操作系统:系统构建和原理解析)

相对于父进程,就存在子进程,一般每个进程都必须有一个父进程,父进程与子进程之间是管理与被管理的关系,当父进程停止时,子进程也随之消失,但是子进程关闭,父进程不一定终止。如果父进程在子进程退出之前就退出,那么所有子进程就变成的一个孤儿进程,如果没有相应的处理机制的话,这些孤儿进程就会一直处于僵死状态,资源无法释放,此时系统默认将init进程作为它们的父进程。

二、 进程管理命令 Linux下,监控和管理进程的命令有很多,下面我们以ps、top、pstree、lsof四个最常用的指令介绍如果有效的监控和管理linux下的各种进程。 (1)利用ps命令监控系统进程ps是linux下最常用的进程监控命令,重点讲述如何利用ps指令监控和管理系统进程。举例:下面是apache进程的输出信息

其中,UID是用户的ID标识号,PID是进程的标识号,PPID表示父进程,STIME表示进程的启动时间,TTY表示进程所属的终端控制台,TIME表示进程启动后累计使用的CPU总时间,CMD表示正在执行的命令。并且root的PPID为1,即为Init的ID. 另一种指令方式查看子进程与父进程的对应关系:

其中,%CPU表示进程占用的CPU百分比,%MEM表示进程占用内存的百分比,VSZ表示进程虚拟大小,RSS表示进程的实际内存(驻留集)大小(单位是页)。 STAT表示进程的状态,进程的状态有很多种:用“R”表示正在运行中的进程,用“S”表示处于休眠状态的进程,用“Z”表示僵死进程,用“<”表示优先级高的进程,用“N”表示优先级较低的进程,用“s”表示父进程,用“+”表示位于后台的进程。START表示启动进程的时间。 这个例子将进程之间的关系用树形结构形象的表示出来,可以很清楚的看到,第一个进程为父进程,而其它进程均为子进程。同时从这个输出还可以看到每个进程占用CPU、内存的百分比,还有进程所处的状态等等。 (2)利用pstree监控系统进程pstree命令以树形结构显示程序和进程之间的关系,使用格式如下:复制代码代码如下: pstree [-acnpu] [<PID>/<user>]具体选项内容可用pstree --help来查看,由于显示结果的树形结构太长,就不再贴图. pstree清楚的显示了程序和进程之间的关系,如果不指定进程的PID号,或者不指定用户名称,则将以init进程为根进程,显示系统的所有程序和进程信息,若指定用户或PID,则将以用户或PID为根进程,显示用户或PID对应的所有程序和进程。 (3)利用top监控系统进程 top命令是监控系统进程必不可少的工具,与ps命令相比,top命令动态、实时的显示进程状态,而ps只能显示进程某一时刻的信息,同时,top命令提供了一个交互界面,用户可以根据需要,人性化的定制自己的输出,更清楚的了解进程的实时状态。 下面是top的显示信息

通过动态信息可以看出一个进程从上次更新到现在占用cpu时间,占用物理内存(%MEM),从进程启动到现在占用cpu总时间(TIME+)等。通过了解这些信息,可以使系统管理员掌握每个进程对系统CPU、物理内存的使用状况。 (4)利用lsof监控系统进程与程序lsof全名list opened files,也就是列举系统中已经被打开的文件,通过lsof,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。lsof指令功能强大,这里介绍“-c,-g,-p,-i”这四个最常用参数的使用。更详细的介绍请参看manlsof或者lsof --help。1) lsoffilename:显示使用filename文件的进程。2)lsof -c abc:显示abc进程现在打开的文件3)lsof -g gid:显示指定的进程组打开的文件情况,使用进程组ID即GID4)lsof -p PID:PID是进程号,通过进程号显示程序打开的所有文件及相关进程,例如,想知道init进程打开了哪些文件的话,可以执行“lsof-p 1”命令5)lsof-i :通过监听指定的协议、端口、主机等信息,显示符合条件的进程信息。例如: 显示系统中tcp协议对应的端口进程信息:复制代码代码如下: [root@localhost ~]# lsof-i tcp:显示系统中端口对应的进程信息:复制代码代码如下: [root@localhost ~]# lsof-i : (5) 计划任务计划任务就是提前设定的一系列命名,来在特定时间里自动完成,比如一些自动备份,自动关系,自动发邮件,广播之类计划任务有三个比较重要的命令1)at安排作业在某一时刻执行一次2)Batch安排作业在系统负载不重时执行一次3)Cron安排周期性运行的作业(6)结束进程Kill -1重启进程kill 进程号 结束进程kill -9强制结束进程(7) 设置程序的优先级Niec :指定程序运行优先级别复制代码代码如下: Nice -n command Renice:改变一个正在运行的进程的优先级别复制代码代码如下: Renice -n pid优先级取值范围为(-,)(8)进程的挂起和恢复:挂起:Ctrl+Z终止:Ctrl+C进程的恢复:恢复到前台继续运行:fg恢复到后台继续运行:bg查看被挂起的进程:jobs

解析Linux系统启动的引导流程 LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.使

腾讯云Linux系统怎么挂载磁盘? 不管是任何云服务器都是没有多少磁盘空间的,最大的不过就G,腾讯云默认Linux只有8GB系统盘,一般的网站也足够使用,如果额外购买的数据盘安装系

Linux中文件的压缩与解压缩命令操作示例集锦 所谓压缩就是将原有的文件通过不同的编码技术进行运算,以减少数据存储所需要的空间,使用前再利用解压缩还原源文件的内容即可。和windows一样,

标签: 深度探索linux操作系统:系统构建和原理解析

本文链接地址:https://www.jiuchutong.com/biancheng/358913.html 转载请保留说明!

上一篇:解决Linux下微信公众平台网页版音频无法播放的方法(linux wechat)

下一篇:解析Linux系统启动的引导流程(linux操作系统启动)

  • 讲课费怎么代扣代缴个人所得税
  • 需要进项税额转出的发票还用勾选吗
  • 预缴所得税报表填错啦,年报可以修改吗
  • 一般纳税人缴纳税金分录
  • 分公司非独立核算可以改为独立核算吗
  • 公司不交工会经费的原因,风险说明
  • 印花税减免退税会计分录
  • 薪金性支出包括什么
  • 污水处理费免征增值税申报怎么填写
  • 个人取得哪项收入需要缴纳个人所得税
  • 广州二手房免增值税
  • 生产车间的房屋租赁费计入什么科目
  • 保安服务专票是多少税点
  • 个体工商户季度不超过30万免增值税吗
  • 减免所得税额明细表
  • 现在地税发票还要交税吗
  • 出口分为哪四步
  • 财政部的监管职责范围不包括
  • 应付利息在资产负债表中属于什么项目
  • 小贷公司贷款的流程是什么
  • 福利费专票进项转出怎么做账
  • 零申报的企业年末的利润表可以为零吗?
  • 个人出租住房如何倒算开票金额
  • 现金收付业务流程图
  • 营业执照五证合一图片
  • 营改增建筑工程怎么计算举例
  • 投资新公司的账务处理
  • 劳务报酬必须要和工资申报吗
  • php substring
  • php 正则表达式
  • 在win7系统中怎样卸载win10?
  • Win7系统怎么禁用TDPF
  • 印花税怎么交款
  • win10输入法没有候选词
  • 前端如何用canvas绘制座位图
  • 房地产项目如何通过抖音宣传
  • 调入的无形资产记入哪里
  • 微信小程序项目开发实战
  • php开发实例大全
  • vuecli非根目录打包
  • 解决跨域问题的注解
  • 职教费可以抵扣进项么
  • mtd命令
  • checksum 命令
  • php常用加密技术
  • 资产的账面价值大于计税基础
  • 民间非营利组织包括哪些单位
  • 库存商品入库的会计分录怎么写
  • 城建税免征怎么记账
  • 交易性金融资产公允价值变动怎么算
  • 承租人融资租赁会计账务处理
  • 库存和结存
  • 临时设施科目计入什么
  • 电子承兑汇票怎么查询
  • 销售预付卡的账务处理
  • a公司刚刚执行了一个采购项目
  • mysql从一个表导入记录到另一个表
  • vista下实现秘密下载的解决办法
  • 解析包出现错误无法安装怎么办
  • Windows Server 2008域环境下组策略两例应用
  • fedora os
  • Linux服务器管理的开机界面
  • windows系统中巧用系统中的文件查看有谁用过我们的电脑 查看方法介绍
  • 电脑出现win 7 界面 然后就不动了
  • ie11forwindows10
  • 游戏开发u3d
  • opengl导入obj能动起来吗
  • android 自定义spinner
  • 批处理替换文件
  • 基于javascript的毕业设计选题
  • python 多线程处理
  • django的url
  • android documents
  • 移动应用界面设计形考1答案
  • jquery控制display属性
  • 广东增值税电子专用发票
  • 郑东新区社保局电话号码是多少
  • 京东商城发票查询
  • 国税局辽宁省国税局
  • 从量定额资源税口诀
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设