计算机操作系统之进程管理课件

上传人:我*** 文档编号:137929345 上传时间:2020-07-12 格式:PPT 页数:86 大小:1.54MB
返回 下载 相关 举报
计算机操作系统之进程管理课件_第1页
第1页 / 共86页
计算机操作系统之进程管理课件_第2页
第2页 / 共86页
计算机操作系统之进程管理课件_第3页
第3页 / 共86页
计算机操作系统之进程管理课件_第4页
第4页 / 共86页
计算机操作系统之进程管理课件_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《计算机操作系统之进程管理课件》由会员分享,可在线阅读,更多相关《计算机操作系统之进程管理课件(86页珍藏版)》请在金锄头文库上搜索。

1、第二章,进程管理,2.1.1 程序的顺序执行及特征 一、程序执行有固定的时序。(图2-1p27) 二、特征: 顺序性、封闭性、可再现性,2.1进程的基本概念,I1,C1,P1,I2,C2,P2,2.1.2前趋图定义,有向无循环图 表示方式: (1)p1-p2 (2)-=(p1,p2)| p1 必须在p2开始前完成 (图2-2 P27) 节点表示:一条语句,一个程序段,一进程。,P1,P1,P1,P1,2.1.3 程序的并发执行,一、多个程序的并发执行(可能性分析),I1,I2,I3,I4,C1,C2,C3,C4,P1,P2,P3,P4,t,程序的并发执行(2),二、特征 间断性 失去封闭性:主

2、要由共享资源引起 不可再现性:P29例,设N的初值为n。 有2个循环程序A和B,它们共享一个变量N,程序A每执行一次时,都要做N:=N+1; B则每次要执行Print(N), 然后再做N:=0. 若程序A,B以不同的速度运行有以下三种不同的结果,程序的并发执行(3),N:=N+1在print(N)和N:=0之前,则N值分别为n+1,n+1,0. N:=N+1在print(N)和N:=0之后,则N值分别为n,0,1. N:=N+1在print(N)和N:=0之间,则N值分别为n,n+1,0.,2.1.4进程的特征和状态,1. 进程的特征和定义 一、定义: 程序的一次执行过程 1.结构特征 进程:

3、由程序段、数据段及进程控制块三部分构成,总称“进程映像”。 2.动态性 由“创建”而产生,由“调度”而执行;由得不到资源而阻塞;由撤消而消亡。(而程序是静态的)。,2.1.4进程的特征和状态(2),3.并发性 只有建立了进程,才能并发执行。 4.独立性。 独立运行,独立获得资源。 5.异步性:(间断性),2.1.4进程的特征和状态(3),2. 进程的三种基本状态(图2-5p31) 就绪状态 执行状态 阻塞状态,就绪,阻塞,执行,时间片完,进程调度,I/O请求,I/O完成,图25 进程的三种基本状态及其转换,2.1.4进程的特征和状态(4),3. 挂起状态(被换出内存的状态) 引入原因 终端用户

4、请求 父进程请求 负荷调节需要 操作系统需要 进程状态的转换(图2-6) 活动就绪 静止就绪 活动阻塞 静止阻塞 静止就绪 活动就绪 静止阻塞 活动阻塞,图26 具有挂起状态的进程状态图,执行,活动 就绪,静止 就绪,活动 阻塞,静止 阻塞,激活,挂起,激活,挂起,释放,释放,挂起,请求I/O,实验,写一个程序描述进程状态迁移过程。 要求: 提供导致进程状态变化的调用接口,包括创建、删除、调度、阻塞、时间到、挂起、激活等。 实现进程列表显示的接口。 注:这里设计的进程是一个假设的对象实体,是由程序自己创建和删除,不是系统维护的进程。,2.1.5进程控制块,1.进程控制块的作用 是进程存在的唯一

5、标志; PCB(process control block)常驻内存 2.进程控制块中的信息 标识、处理机状态,进程调度信息,进程控制信息,链接指针,资源清单,同步机制,程序地址,阻塞原因,优先级,现场,进程状态,pid,2.1.5进程控制块(2),3.PCB的组织 链接(p33图2-7) 索引(p34图2-8),执行指针,就绪队列指针,阻塞队列指针,空闲队列指针,1,PCB9,0,PCB8,9,PCB7,7,PCB6,PCB5,8,PCB4,0,PCB3,3,PCB2,4,PCB1,等待队列示例,struct wait_queue struct task_struct * task; str

6、uct wait_queue * next; ;,PCB,PCB,PCB,2.1.5进程控制块(3),3.PCB的组织 索引(p34图2-8),PCB7,PCB6,PCB5,PCB4,PCB3,PCB2,PCB1,执行指针,就绪表指针,阻塞表指针,补充,PCB和进程的代码数据放在一起吗? 系统态和用户态 系统空间和用户空间 系统调用和普通调用的区别? 系统调用会引起从用户态进入核心态,2.2 进程控制,2.2.1 进程的创建 一、进程图: 描述了进程的家族关系:(P34 图2-9) 子进程可继承父的资源,撤消时应归还给父进程,父的撤消会撤消全部子进程。 二、引起创建进程的事件: 1.用户登录:

7、 为终端用户建立一进程 2.作业调度:(不是进程调度) 为被调度的作业建立进程 3.提供服务: 如要打印时建立打印进程,2.2.1 进程的创建(2),4.应用请求: 由应用程序建立多个进程 三、进程的创建:(creat原语) 1.申请空白PCB(一个系统的PCB是有限的) 2.为新进程分配资源(不同于一般的分配,PCB-LIST在一个特殊区域) 3.初始化PCB 4.将新进程插入就绪队列。,2.2.2 进程的终止,一、引起进程终止的事件 1.正常结束:如Halt、logoff 2.异常结束:如Protect error、overtime等 3.外界干预: a.系统员kill进程; b.父进程终

8、止; c.父进程请求。,2.2.2 进程的终止(2),二、进程的终止过程 (1)检查进程状态; (2)执行态中止,且置调度标志为真。 (3)有无子孙需终止。 (4)归还资源给其父进程或系统。 (5)从PCB队列中移出PCB.,2.2.3 进程的阻塞与唤醒,一、引起进程阻塞和唤醒的事件 1.请求系统服务而得不到满足时,如问系统请求打印。 2.启动某种操作而需同步时:如该操作和请求该操作的进程需同步运行(即非异步操作)。 3.新数据尚未到达:如进程A写,进程B读,则A未写,完B不能读。 4.无新工作可做。,2.2.3 进程的阻塞与唤醒(2),二、进程阻塞过程: 是进程自身的一种主动行为 a.调bl

9、ock原语 b.停止执行,修改PCB入阻塞队列(一个或多个),并转调度。 三、唤醒过程 其它相关进程完成。 a.wakeup原语 b.修改PCB,入就绪队列 可见,有block原语,在其它进程中就应有wakeup原语。,2.2.4 进程的挂起与激活,一、进程的挂起过程 由进程自己或其父进程调suspend原语完成,将该进程PCB移到指定区域,注意状态的改变,有可能要重新调度。 二、进程的激活过程。 active原语(如在外存,调入内存,改变状态,根据情况看是否调度,如抢先或非抢先)。 阻塞、唤醒一般由OS实现,而挂起与激活可由用户干预。,2.3进程同步,同步:并发进程在执行次序上的协调,以达到

10、有效的资源共享和相互合作,使程序执行有可再现性。,2.3.1 进程同步的基本概念,1.两种形式的制约关系 资源共享关系:(进程间接制约) 需互斥地访问临界资源。 相互合作关系:(进程直接制约) 2. 临界资源:(一次仅允许一个进程访问的资源) 引起不可再现性是因为临界资源没有互斥访问。,生产者消费者问题,Var n, integer; Type item=; var buffer:array0,1,n-1 of item; in, out: 0,1, , n-1; counter: 0,1,n;,生产者消费者问题,producer: repeat produce an item in next

11、p; while counter=n do no-op; bufferin:=nextp; in:=(in+1)mod n; counter:=counter+1; until false;,consumer: repeat while counter=0 do no-op; nextc:=bufferout; out:=(out+1) mod n; counter:=counter-1; consumer the item in nextc; until false;,生产者消费者问题(2),设counter的初值为5 register1:=counter; register2:=count

12、er; register1 :=register1+1; register2:=register2-1; counter :=register1; counter :=register2;,register1:=counter; (register1:=5) register1 :=register1+1; (register1:=6) register2:=counter; (register2:=5) register2 :=register2-1; (register2:=4) counter :=register1; (counter:=6) counter :=register2;

13、(counter:=4),定义:进程访问临界资源的那段代码。 访问临界资源的描述: 进入区:检查有无进程进入 临界区: 退出区:将访问标志复位 Repeat Entry section Critical section Exit section Until false,3. 临界区,4.同步机制应遵循的准则,1.空闲让进 2.忙则等待 3.有限等待:应保证为有限等待,不会产生死等。 4.让权等待:不能进入临界区的执行进程应放弃CPU执行权。,2.3.2 信号量机制,1 整型信号量 是一个整型量,通过2个原子操作wait(s)和signal(s)来访问。 Wait(s): while s= 0

14、do no-op s:=s-1; Signal(s): s:=s+1;,2 记录型信号量,由于整型机制中会不断测试不满足“让权等待”而引入 type semaphore=record value:integer; L: list of process; end L:为进程链表,用于链接所有等待该类资源进程。 procedure wait(s) var s: semaphore begin s.value:=s.value 1; if s.value 0 them block (S,L) end,2 记录型信号量(2),procedure signal (S) var s:semaphone b

15、egin s.value:=s.vaule+1 if s.value=0 then wakeup(s.L) end 用wait(s)和signal(s)实现同步与互斥。 在记录型信号量机制中: s.value初值:表示系统中某类资源的数目。 s.value0:表该信号量链表中已阻塞进程的数目。,3 AND型信号量,当不用它时,有可能发生系统死锁。 死锁:在无外力作用下的一种僵持状态。 AND信号量例:P42. 特点:要么全分配,要么一个也不分配。,3 AND型信号量,process A: wait(Dmutex); wait(Emutex);,process B: wait(Emutex);

16、wait(Dmutex);,若2进程交替执行,则死锁,3 AND型信号量,Swait(s1,s2,sn) if s11 and and sn 1 then for i:=1 to n do si:=si-1; endfor else place the process in the waiting queue with the first si found with si1, and set the program count of this process to the beginning of swait operation end if Ssignal(s1,s2,sn) for i:=1 to n do si:=si+1; remove all the process waiting in the queue associated with si into the ready queue endfor,4 信号量集(略),为提高效率而对AND信号的扩充。(P43) 三种特例: (1)Swait(S,d,d):允许每次申请d个资源。 当资源数少于d时,不

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号