- 1、本文档共84页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux进程管理(补充)
Linux进程管理 1 进程和作业的概念 2 进程控制块 3 进程状态 4 进程的控制 5 有关进程控制系统调用 1 进程和作业的概念 Linux是一个多用户多任务的操作系统。 多用户是指多个用户可以在同一时间使用计算机系统; 多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。 什么是进程? Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。 进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。 Linux用分时管理方法使所有的任务共同分享系统资源。我们讨论进程的时候,不会去关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。 作业、作业控制的概念 进程和作业的概念也有区别,作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。 例如“man ps.1|grep kill|more”这个作业就同时启动了三个进程。 作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。 作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立作业间进行切换。 一般而言,进程与作业控制相关联时,才被称为作业。 在大多数情况下,用户在同一时间只运行一个作业,即它们最后向shell键入的命令。 但是使用作业控制,用户可以同时运行多个作业,并在需要时在这些作业间进行切换。这会有什么用途呢? 例如,当用户编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,用户可以让编辑器暂时挂起,返回shell提示符开始做其他的事情。其他事情做完以后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就象用户从来没有离开编辑器一样。这只是一个例子,作业控制还有许多其他实际的用途。 进程的类型 Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。三种进程各有各的作用,使用场合也有所不同。 交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 批处理进程——这种进程和终端没有联系,是一个进程序列。 监控进程(也称守护进程daemon)——Linux系统启动时启动的进程,并在后台运行。 2 进程控制块 进程组成 正文段 存放进程要运行的程序,描述了进程要完成的功能 用户数据段 存放正文段在执行时所需要的数据和工作区 系统数据段——进程控制块 存放了进程的控制信息,其中最重要的数据结构是task_struct。 进程控制块 进程控制块是Linux系统最复杂的数据结构之一。 Linux在内存空间中开辟了一个专门区域存 放所有进程的进程控制块。 系统初始化后,建立第一个task_struct数据结构INIT_TASK。 新进程创建时,系统从内存分配新 task_struct,占据1680个字节。 进程控制块 进程状态和标志 进程控制块 进程的族亲关系 进程控制块 进程间链接信息 进程控制块 进程的时间信息 进程控制块 进程的文件信息 进程控制块 其它信息 3 进程状态 R:处于可运行状态; S:处于休眠状态; T:处于终止运行状态; D:设备 IO; Z:处于僵尸状态; 进程状态——R 运行态 该状态实际包含了执行和就绪两种状态。 进程到底是正在运行还是处于就绪状态准备运行,要靠当前是否占有CPU资源来区分。每一个CPU都有一个current指针,指向当前运行于这个CPU的进程,系统就依靠这个指针来区分进程的正在运行和运行就绪状态。 所有处于运行状态的进程组成可运行队列,调度程序每次选择适当的时机,按照某种规则,从这个队列中选中一个进程投入执行。 这个队列中的进程总是动态变化的,在其中的进程会由于某种原因(比如等待某种事件的发生)而退出可运行队列,而其他进程也会在拥有除CPU之外的全部资源之后进入这个队列。 进程状态——S 休眠态(等待态) linux系统把休眠态进一步细化为:可中断的等待态、不可中断的等待态、独占态。 可中断的等待态可以被某个信息唤醒而进入就绪状态等待调度; 不可中断等待状态的进程是因为硬件资源无法满足,不能被信号唤醒,必须等待所等待的资源得到之后由特定的方式唤醒; 独占状态位于等待队列中,当等待的事件发生时,只有处于这种状态的进程被唤醒,其他处于可中断或不可中断等待状态的进程则继续等待。 进程状态——T 暂停态 处于暂停态的进程一般都是由运行状态转换而来,等待某种特殊的处理。 比如处于调试跟踪的程序
文档评论(0)