N计算机操作系统教程第二章c解读.ppt

  1. 1、本文档共136页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
N计算机操作系统教程第二章c解读

* * * * * * * * * * * * * * * * * * 第二章 进程管理 则将当前进程的need_reched 域置位 将来某个时刻才真正执行调度程序 某一时刻,可运行态进程中就会有优先级高于当前进程的进程 调度程序为每个处于可运行状态的进程赋予一个权值,以这个权值作为优先级。 每次时钟中断处理程序将当前进程的ounter的值减1 第二章 进程管理 当一个普通进程的时间片用完以后,并不马上用nice对counter进行赋值 用完上个时间片的普通进程才有了再次被调度的机会 只有所有处于可运行状态的普通进程的时间片(p-counter==0)都用完了以后,才用pnice对counter重新赋值 第二章 进程管理 所有进程都采用分时调度策略时 2.根据各进程的nice值确定执行的时间片(counter) 1.创建任务指定采用分时调度策略,并指定优先级nice值(-20~19) 3.若不等待资源,则将进程加入到就绪队列 4.计算每个就绪进程动态优先数(counter+20-nice), 选择最大者运行 时间片用完后(counter减至0)或者主动放弃cpu时,进程被放入就绪队列或等待队列末尾 5.调度程序重复上面计算过程(转到第4步) 6.当所有就绪进程的count都为0时,重复第2步 第二章 进程管理 所有进程都采用FIFO调度策略时 1.创建进程时指定采用FIFO,并设置实时优先级 rt_priority(1-99) 2.如果没有等待资源,则将该任务加入到就绪队列中 3.根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的进程使用CPU,该FIFO进程将一直占有CPU直到有优先级更高的任务就绪(即使优先级相同也不行)或者主动放弃(等待资源)。 4.若当前进程因等待资源而主动放弃CPU,则进入等待队列,此时重复第3步 第二章 进程管理 所有任务都采用RR调度策略时 1.进程创建时指定调度参数为RR,并设置进程的实 时优先级和nice值(nice值将是时间片长度)。 2.如果没有等待资源,则将该任务加入到就绪队列中 3.根据实时优先级计算调度权值(1000+rt_priority), 选择权值最高的进程使用CPU 4.如果就绪队列中的RR进程时间片为0,则根据nice 值设置该任务的时间片,同时将该进程放入就绪 队列的末尾。重复步骤3 5.当前进程由于等待资源而主动放弃CPU,则加入等 待队列中。重复步骤3 第二章 进程管理 既有分时调度,又有FIFO调度和RR调度 1. RR调度和FIFO调度的进程属于实时进程, 以分时调度的进程是非实时进程 2.当实时进程准备就绪后,若当前运行的是非实时 进程,则实时进程立即抢占非实时进程 3. RR进程和FIFO进程都采用实时优先级做为调度的 依据,RR是FIFO的一个延伸 5.如果将两个优先级一样的任务的调度策略都设为RR, 则保证了这两个任务轮流执行,保证了公平 4. FIFO时,如果两个进程的优先级一样,则选择先 进入就绪的进程 第二章 进程管理 5. 调度时机 (1) 进程主动放弃处理机 (2) 进程被迫放弃处理机 当前进程调用 sleep()进入等待态 当前进程调用exit() 退出执行时 当前进程时间片用完,即进程的counter已减为0 增加一个新进程时,若新进程比当前进程的counter值高, 则将当前进程的need_reched 域置位。 系统调用执行完毕返回用户态时执行ret_with_reschedule 程序段。该程序段判断当前进程的need_reched 域,若置位,则执行调度程序 中断处理完毕返回到用户态时,与上种情况做相似处理 保存当前进程CPU现场 6.调度程序schedule() 若采用的是轮转法,则检查当前进程COUNT是否为0,若是,则重新分配时间片COUNT,并将其挂到队列尾部 将need_resched重新置0 计算可运行队列的每个进程的goodness,高者将获得CPU 若队列中所有进程时间片耗尽,重新置时间片 1. Linux进程的创建 2.7.6 Linux进程控制 父进程在运行过程中通过系统调用fork()创建子进程 c.进程的终止 1)撤消所有的信号量。 2)释放其所有的资源,包括存储空间、已打开的文件、工作目录、信号处理表等。 3)置进程状态为“终止态”(TASK_ZOMBIE) 4)向它的父进程发送子进程终止的信号。 5)

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档