- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章 进程管理的
第七章 进程管理;7.1进程概述;7.1.1进程的概念 在早期的单用户、单任务操作系统中一直只使用程序这样的概念,那是因为在这样的系统中资源是独占的,任何时候系统中只有一个用户、一个执行的用户程序,我们随时可以描述出该用户程序在系统中所处的状态;但是在多用户、多任务的操作系统中,同时会有多个用户和多个执行中的程序,如果仍然沿用程序这样的概念,有时会出现无法描述某个执行中程序状态的情况;例如,系统中有一个编译程序,操作系统为了提高系统资源的利用率,让它共享、为多个用户服务,某个时刻它从A点开始为甲用户编译程序,到时刻B由于访问磁盘操作而被阻塞,操作系统让编译程序为乙用户服务,假设也是从A点开始编译,那么在这种情况下如何描述编译程序的状态呢?如果说它正在B点等待磁盘操作,但它又正在A点开始为乙用户编译;如果说它在A点编译程序,但它又确实在B点等待磁盘操作。因此,在多任务的情况下,如果再使用程序作为占用处理器的单位,已经无法满足系统日益发展的需要了。; 为此,我们把程序与程序所处理的数据集合(即它的加工对象)结合起来考虑,引入了进程的概念,当一个程序在某个数据集合上运行时就称为Px进程,当该程序在另一个数据集合上运行时就称为Py进程;这样不再是孤立地看待程序,而是把程序和它的加工对象作为一个整体来看待,以进程为单位来描述程序的运行情况。在前面编译程序的例子中,我们可以说编译程序在为甲用户服务时构成P甲进程,并在B点等待磁盘操作;在为乙用户服务时构成P乙进程,并从A点开始编译。对于进程有许多种定义,其中主要有:进程是程序的一次执行;进程是能分配给处理器并在其上执行的实体等等。目前对于进程比较正式的定义是:进程是程序在某个数据集合上的运行活动,是系统进行资源分配和调度的一个独立单位。从这个定义来看,任何在Linux系统中运行的程序都是进程。;7.1.2 进程与程序的区别进程与程序是两个不同的概念。进程是由一个可执行的程序、该程序所需的相关数据集合和进程控制块(PCB)组成的。进程控制块是进程存在的惟一标志,在PCB中包含进程标识(PID);处理器状态信息;进程控制信息,操作系统通过进程控制块对进程加以管理。进程具有动态性,它是程序的一次执行活动,有一个从创建到消亡的过程,是有“生命”周期的;进程具有并发性,即不同进程的动作在时间上可以重叠,或者说在一个时间段内系统中有多个进程是“同时”执行的;进程具有独立性,它是一个可以独立运行的基本单位,也是申请拥有资源的独立单位;进程具有异步性,即进程间以各自独立的、不可预知的速度向前推进。;进程与程序的主要区别是: 第一、进程是程序处理数据的过程,而程序只是一组指令的有序集合。 第二、进程具有动态性、并发性、独立性和异步性,而程序只是静态的代码不具有这 些特性。 第三、进程与程序并非一一对应的,一个进程可能对应一个程序,也可能多个进程对应一个程序;例如,一个编译程序为多个用户程序编译,构成多个进程。;7.1.3多任务的实现 对于单处理机的计算机系统而言CPU只有一个,而需要运行的进程可能有许多个。Linux系统采用多级反馈队列实现处理机的调度,每个进程都有优先级,当它被创建时加入到相应优先级的队列中,对于实时和系统进程采用优先级和先来先服务相结合的调度算法,对于普通的用户进程采用优先级与时间片轮转相结合的调度算法。在Linux系统中,一般使用优先数来表示进程的优先级,优先数越小,优先级越高。; 系统将一段时间(例如1秒)划分为若干个时间片段,每个时间片段称为一个时间片。每个普通用户进程在分配到的时间片内运行,如果运行结束该进程就终止,系统回收所分配的资源;如果在一个时间片内还没有运行结束,则回到相应的就绪队列中排队等待下一轮的调度。因此,在系统中“同时”有许多程序在执行,这些程序都是在并发地执行,任一时刻只有一个程序真正占有处理器在执行。由于每个时间片很短,所以各个终端用户的请求都能比较快地得到系统的响应,每个用户都认为自己拥有一台独立的计算机。;7.1.4进程的类型在Linux系统中,如果从应用的角度来看待进程,则存在三种不同类型的进程,即交互进程、批处理进程和监控进程,每种进程都有各自的特点和属性。有的进程类型运行在前台,称为前台进程;有的运行在后台,称为后台进程;有的进程类型既可以运行在前台,也可以运行在后台。对于前台进程,它是属于某一个终端shell创建的进程,如果使用这个终端的用户退出了该终端(例如,在终端上执行Ctrl+c命令,即控制台中断),则这个进程就会被终止;而后台进程也是属于某一个终端shell创建的进程,但是除非该进程自己退出(包括正常和非正常)或者被其他进程和用户手工终止,否则即使用户进行控制台中断或退出该终端,但是后台进程会一直运行直到完成为止。在需要的情
原创力文档


文档评论(0)