Linux操作系统进程管理.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
会计学;10.1.1 进程与进程描述符 1.进程概念 2.进程描述符(进程控制块) 由一个task_struct结构表示。task_struct结构是一个复杂的结构,占一千多字节,其各个成员用来准确描述进程在各方面的信息.主要有以下几个部分:; (1)进程标识 包括进程的标识号(pid)、进程的用户标识、进程的组标识等。每个进程的标识号是惟一的。 (2)调度相关信息 这部分内容与进程调度有关,一部分信息见后面的第5节。进程描述符中还需要有结构保存当进程被换出时寄存器的状态,该进程恢复运行时便可从正确的状态开始继续运行。 (3)进程虚拟空间信息 Linux的进程都在自己的私有地址空间中运行,task_struct的成员mm指向一个mm_struct结构,该结构描述进程空间。 ; (4)信号处理信息 Linux支持传统的UNIX信号语义。该部分记录了信号的处理函数及信号掩码等信息。 (5)文件相关信息 包含进程与文件系统交互的信息。这里主要分为两部分,一部分描述进程进行文件访问时用到的当前目录、根目录信息。另一部分描述被进程正在使用的文件信息,该部分主要有一个file结构数组,数组中的有效项指向某个文件对象。 (6)记账信息及统计信息 资源是有限的,每个进程对每种资源的使用都有一个限值。另外,还有统计信息来记录系统需要的信息,如页面异常次数、CPU使用时间等。; (7) 描述进程间关系的指针 ;10.1.2 核心态与核心栈 ; 因为进程描述符已经占用了1KB多的空间,所以核心栈的有效空间是6KB多一点,合理的设计使得这个容量已经足够了。核心栈与进程描述符如图10-1所示。; 进程状态及状态转换图 Linux的进程状态有五种,它们分别是: ; TASK_STOPPED:进程处于暂停状态,主要用于调试目的。如正在运行的进程收到SIGSTOP信号将进入TASK_STOPPED状态。 TASK_ZOMBIE:表示进程已经结束运行并释放了大部分占用的资源,但task_struct结构还未被释放。 ;第9页/共30页;10.1.4 进程的切换时机 当前进程放弃CPU的情况可以分为两种。 一、进程主动地放弃CPU 这种情况大体可以分为两类: 1.隐式地主动放弃CPU。往往是因为需要的资 源目前不能获取,如执行read( ),select( )等系 统调用的过程中,这种情况下的处理过程如下: 1)将进程加入合适的等待队列。 2)把当前进程的状态改为TASK_INTERRUTIBLE 或TASK_UNINTERRUTIBLE。 3)调用schedule( )函数,该函数的执行结果 往往是当前进程放弃CPU。; 4)检查资源是否可用,如果不可用,则跳转到 第Ⅱ步. 5)资源已可用,将该进程从等待队列中移去。; 进程的调度时机 进程的调度时机分成两种情形: 例如,进程被动放弃CPU的情形。当进程描述符的need_resched被置1时,并不立即直接调用schedule()调度函数。而是在随后的某个时刻,当进程从内核态返回用户态之前检查need_resched是否为1,如果为1,则调用schedule()调度函数。;10.1.5 进程的调度算法 核心函数是schedule( ),该函数的任务是选出一个可运行的进程。 1.进程描述符有如下成员与调度有关: 1)policy 标识进程的调度策略。 SCHED_OTHER 普通进程; SCHED_FIFO 实时进程,采用先进先 出的调度算法; SCHED_RR 实时进程,采用轮转法。; 2) rt_priority 实时进程的优先级,普通进 程不使用这个成员; 3) nice 普通进程的优先级; 4) counter 进程目前的CPU时间配额。; ()函数执行过程: 1)检查是否有软中断服务请求,如果有,则先执行这些请求。 2)若当前进程调度策略是SCHED_RR, 且 counter为0,则将该进程移到可执行进程队列的尾部并对counter重新赋值。 3)检查当前进程的状态,如为 TASK_INTERRUPTIBLE, 且该进程有信号接收,则将进程状态置为 TASK_RUNNING。 4)当前进程的状态不是TASK_RUNNING,则将其从可执行进程队列中移出,然后将当前进程描述符的need_resched恢复成0。 ;

文档评论(0)

kuailelaifenxian + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体太仓市沙溪镇牛文库商务信息咨询服务部
IP属地上海
统一社会信用代码/组织机构代码
92320585MA1WRHUU8N

1亿VIP精品文档

相关文档