2第二章进程管理(2).ppt.convertor

2第二章进程管理(2).ppt.convertor

ID:6487645

大小:81.50 KB

页数:12页

时间:2018-01-15

2第二章进程管理(2).ppt.convertor_第1页
2第二章进程管理(2).ppt.convertor_第2页
2第二章进程管理(2).ppt.convertor_第3页
2第二章进程管理(2).ppt.convertor_第4页
2第二章进程管理(2).ppt.convertor_第5页
资源描述:

《2第二章进程管理(2).ppt.convertor》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第二章进程管理(2)张琦27427024@qq.com内容2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程的同步问题2.5进程通信2.6线程本章节要讨论的问题如何控制和协调并发进程异步执行的时序?进程同步的主要任务是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作。进程的同步机制2.3进程同步2.3.1进程同步的基本概念1.两种形式的制约关系当程序并发执行时,由于资源共享和进程合作,使同处于一个系统中的诸进程之间可能存在着以下两种制约关系。间接相互制约关系---同处于一个系统的进程,通常都共享着某种系统资源。(2)直接相互制约关系---主要源

2、于进程间的合作。2.3进程同步2.临界资源(CriticalResource)凡是以互斥方式使用的共享资源都称为临界资源。临界资源具有一次只允许一个进程使用的属性。3.临界区(CriticalSection)把每个进程中访问临界资源的那段代码称为临界区。repeatentrysectioncriticalsection;exitsectionremaindersection;untilfalse;进入区---申请进入临界区临界区---访问临界资源退出区---退出对临界资源的访问剩留区---进程的其他代码2.3进程同步4.同步机制应遵循的规则空闲让进无进程处于临界区内时,可让一个申请进入该

3、临界区的进程进入。忙则等待临界区内有进程时,申请进入临界区的进程必须等待。有限等待进程进入临界区的请求,必须在有限的时间内满足。让权等待等待进入临界区的进程,必须立即释放CPU。2.3进程同步2.3.2信号量机制1.什么是信号量(semaphore)并发进程间的相互制约关系从本质上说是由于争夺和共享资源而产生的。将资源抽象为信号量,在信号量基础上引入同步操作原语:P操作、V操作。2.整形信号量整形信号量用于表示资源数目,用S表示。除初始化外,仅能通过两个标准的原子操作wait(S)和signal(S)来访问。这两个操作一直被分别称为P、V操作。wait和signal操作可描述为:wait(S

4、):whileS≤0dono-opS∶=S-1;signal(S):S∶=S+1;P操作:申请资源V操作:释放资源2.3进程同步3.记录型信号量在信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。其中:信号量值—表示某种资源的数量。等待队列指针—当信号量值为负时,表示该类资源已分配完,等待该类资源的进程排在等待队列中。L为指向该信号量等待队列的指针。记录型信号量是由于它采用了记录型的数据结构而得名的。上述两个数据项可描述为:2.3进程同步typesemaphore=recordvalue:integer;L:listo

5、fprocess;endP操作(wait原语)每执行一次P操作,即申请分配一个单位的资源。P(S)—表示对信号量S进行P操作。①S.value:=S.value–1②若S.value≥0进程继续执行。若S.value<0进程阻塞,并进入等待队列(L)。2.3进程同步V操作(signal原语)V(S)—表示对信号量S进行V操作,即释放一个单位的资源。①S.value:=S.value+1;②若S.value>0进程继续执行。若S.value≤0则释放S等待队列中的一个进程,使之转为就绪状态。相应地,wait(S)和signal(S)算法可描述为:2.3进程同步procedurevarS:

6、semaphore;beginS.value:=S.value-1;ifS.value<0thenblock(S,L)endprocedurevarS:semaphore;beginS.value:=S.value+1;ifS.value≤0thenwakeup(S,L);end当该资源已经分配完毕时,进程调用block原语,自我阻塞,并将该进程插入到等待队列中。说明有进程在等待队列中,应唤醒它们。wait(S)signal(S)2.3进程同步Vars:semaphore:=3;Printer:repeatwait(s);printthedocumentonthepaper

7、;signal(s);untilfalseP1P2P3P4阻塞210S-1P10记录型信号量的应用2.3进程同步AND型信号量假定有两个进程A和B,他们都要访问共享数据D和E。分别设置用于互斥的信号量Dmutex和Emutex,并令它们的初值都是1。processA:processB:wait(Dmutex);wait(Emutex);wait(Emutex);wait(Dmutex);若进程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。