【2017年整理】2进程管理.ppt

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

第二章??? 进程管理;2.1??进程的基本概念;1、前趋图与前趋关系;2、程序顺序执行的特征;3、程序的并发执行;并发执行时的特征 ①间断性——“停停走走” ②失去封闭性——原因:多个程序共享资源 ③不可再现性;程序A { n=n+1; };并发执行的条件:达到封闭性和可再现性;进程的定义;进程与程序的区别;4、进程的特征与状态;PCB;进程的基本状态及其转换;进程3种基本状态转换(3-4);进程的挂起状态(静止状态);进程的挂起状态(5-9);PCB(Process Control Block) PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。 OS是根据PCB来对并发执行的进程进行控制和管理的。是进程存在的唯一标志。 PCB可被操作系统中的多个模块读或修改,如被调度程序、资源分配程序、中断处理程序以及监督和分析程序读或修改。 PCB经常被系统访问,故应常驻内存。;Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.;(1)进程标识符 (2)处理机状态 (3)进程调度信息: (4)进程控制信息: ;(1)链接方式 把具有同一状态的PCB,用其链接字链接成一个队列 就绪队列、若干个阻塞队列、空队列 (2)索引方式 系统根据所有进程的状态建立相应的索引表 就绪索引表、阻塞索引表等,索引表在内存的首地址记录在内存的一些专用单元中。;执行指针 ;2.2? 进程的控制;进程图;1、进程创建;2、进程撤消;3、进程阻塞;4、进程唤醒;5、进程挂起与激活;同步现象;互斥现象;2.3? 进程同步;2、临界区(临界段);同步机制应遵循的规则 空闲让进:当无进程处于临界区时,允许一个请求进入临界区的进程立即进入自己的临界区 忙则等待:当已有进程进入自己的临界区时,所有其它试图进入临界区的进程必须等待 有限等待:对要求访问临界资源的进程,应保证该进程能在有效时间内进入自己的临界区,以免进入“死等”状态 让权等待:当进程不能进入自己的临界区时,应释放CPU,以免进程陷入“忙等” ;软件方法实现的同步机制;软件方法实现的同步机制;OS实现的同步机制——信号量;3、信号量(灯)机制;1965年,荷兰人Dijkstra首先提出信号量机制 信号量(Semaphores) 用于表示资源数目或请求使用某一资源的进程个数的数据结构。 信号量是一个被保护的变量,它的值只能通过初始化和两个wait、signal原语来操作——作为OS核心代码执行。;信号量的类型: 整型:S为初值非负的整型变量,通常描述资源的状态或可用资源的数量。 记录型:二元组(S,Q) ,Q初始状态为空的队列。 AND型:一次需要多个共享资源,改进wait-signal操作。 信号量集:一次需要N个多类资源,改进wait-signal 操作。;整型信号量 int S; //Semaphore wait(S) { while S≦0 do no-op; S--; } signal(S) {S++;} wait(s)和signal(s)是原子操作 只要信号量S≦0就不断测试,不满足让权等待 ;是一个记录型的数据结构,包含两个数据项,一是记数值域,另一是等待该信号量的进程队列首指针域。描述如下: ;wait(S) { S.value- - ; if S.value0 then block(S.L); //将该进程状态置为等待状态;并 将该进程的PCB插入相应的等待队列S.L末尾 };s.value的物理含义:;执行一次signal操作意味着释放一个单位的资源,故s.value = s.value +1。 加1后:若 s.value>0,则进程继续;若s.value ≤0,表示信号量请求队列中仍有因请求该资源而被阻塞的进程,因此应把队列中的一个或几个进程唤醒,使之转至就绪队列中。 ;设打印机资源信号量为s,初值为2。 ;AND型信号量;Swait(S1,S2,…,Sn) { while(true) { if (S1=1S2=1…Sn=1) { for (i=1;i=n;++i) --Si; break; } else { 调用进程进入第一个小于1信号量的等待队列Sj.L; 阻塞调用进程; }

文档评论(0)

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

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

1亿VIP精品文档

相关文档