2-OS进程管理精编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 进程管理;(一)进程的引入;程序顺序执行特征;(2)程序并发执行与特征 ;进程的引入;程序并发执行特征;例:观察者/报告者;(3)进程的引入;进程的特征;进程的特征;(二)进程的描述;进程的描述;2.进程状态的转换 ; ;系统中各进程状态转换影响; 创建状态,终止状态 挂起(suspend)状态 进程没有占用内存空间 处在挂起状态的进程映像在磁盘上 (调节负载,对换);创建(新new)状态;终止(退出exit)状态;Five-State Process Model;就绪状态(Ready):进程在内存且可立即进入运行状态 阻塞状态(Blocked):进程在内存并等待某事件的出现 阻塞挂起状态(Blocked, suspend):进程在外存并等待某事件的出现 就绪挂起状态(Ready, suspend):进程在外存,但只要进入内存,即可运行;挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况: 阻塞→阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,发生这种转换,以提交新进程或运行就绪进程 就绪→就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程 运行→就绪挂起:对抢占式系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态;激活(Activate):把一个进程从外存转到内存;可能有以下几种情况: 就绪挂起→就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,发生转换 阻塞挂起→阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程;七状态进程模型(续3);(2)进程控制模块 PCB(Process Control Block);PCB(Process Control Block);2. PCB的信息 ;;PCB表: 系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表 PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度 注:多道程序中的多道与系统并发度不同;PCB表组织方式(续);Date;PCB表组织方式(续);Date;(3)进程上下文(进程映象) ; ;进程上下文(进程映象);进程上下文(进程映象);Date;(三)进???控制; ; ; ;4. 内核功能;(3)进程控制原语; ; ; ; ; ;(四)线程(Thread) ;线程的引入;线程的引入;线程的定义;线程的特点; ;;引入线程的好处;例子1;例子2;2)线程与进程的比较; (五)进程同步 ;例1:飞机售票系统; ;1.进程间制约关系;2. 临界资源和临界区;临界资源和临界区;3.进程同步机制; ;进程同步机制;进程同步机制; 4. 检测和设置(TS)硬件指令;检测和设置(TS)硬件指令;5.信号量(Semaphores)机制;(1) 记录型信号量机制;(2) 信号量的类型; ; (3)P-V操作; ;(4)利用信号量实现进程互斥;(5)利用信号量实现进程同步; ; ; ; 实现C和P两进程同步的类PASCAL程序;;信号量及P、V操作讨论;信号量及P、V操作讨论;信号量及P、V操作讨论;例1:飞机售票系统; 生产者-消费者问题;生产者-消费者问题; ; ; ; ;;哲学家就餐问题 (the dining philosophers problem);哲学家就餐问题解法(1);;哲学家就餐问题解法(2);;;利用AND信号量机制解决哲学家进餐问题; 读者-写者问题; ;读者-写者问题;; ;例2;begin s,s1,s2:semaphore; B:integer; s:=1; s1:=0; s2:=0; parbegin process R1 x:integer; begin L1:{接收键盘输入的数}; x:=接收的数; p(s); B:=x; v(s1); goto L1 end ;Process R2 y:integer; begin L2:{从磁盘上读一个数}; y:=读入的数; p(s); B:=y; v(s2); goto L2; end Process w1 k:integer; begin L3:p(s1

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档