《处理器管理》PPT课件.ppt
《《处理器管理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《处理器管理》PPT课件.ppt(92页珍藏版)》请在三一办公上搜索。
1、第2章 处理器管理,主讲:周文强 课程:操作系统,本章内容:,2.4 进程同步机制2.5 进程通信2.6 处理机调度,2.4 进程同步机制,操作系统中引入进程后,虽然改善了资源的利用率,提高了系统的吞吐量。但是,由于进程的异步性,也会给系统造成混乱。因此,必须有效地协调各个并发进程间的关系,从而使它们能正确的执行。本节主要介绍进程的同步与互斥的实现机制。,2.4.1 进程的并发性,在并发运行的系统中,若干个作业可以同时运行,而每个作业又需要有多个进程协作完成。在这些同时存在的进程间具有并发性,称之为“并发进程”。进程间的关系可以分为:1、资源共享关系2、相互合作关系,1、资源共享关系,系统中的
2、某些进程需要访问共同的资源,即当一个进程访问共享资源时,访问该共享资源的其他进程必须等待,当这个进程使用完后,其他进程才能使用。这时要求进程应互斥地访问共享资源。,2、相互合作关系,系统中的某些进程之间存在相互合作的关系,即一个进程执行完后,另一个进程才能开始。否则,另一个进程不能开始,这时就要保证相互合作的进程在执行次序上要同步。,1、临界资源,通常一次仅允许一个进程使用的资源称为临界资源,同时,也将一个进程访问的这种临界资源的那段程序代码称为临界区。操作系统中的进程就绪队列就是一种在一个时刻只能允许一个进程访问的临界资源。所以,进程的互斥就是两个进程不能同时进入访问同一临界资源的临界区。,
3、2、临界区(critical section),临界区是进程执行程序中的对临界资源访问的那一段程序,这段程序的进入执行,需要有一定的原则来协调。例如:1、有若干进程都欲进入临界区,它们不能互相阻塞,使得谁也进不了临界区,应当在有限时间内让一个进程进入临界区。2、每次至多有一个进程进入临界区,并且在临界区中只能停留有限的时间。,3、进程同步,多个相关进程在执行次序上的协调,这些进程相互合作,在一些关键点上需要相互等待或相互通信。通过临界区可以协调进程间相互合作的关系,这就是进程同步,4、进程互斥,当一个进程进入临界区使用临界资源时,另一个进程必须等待。当占用临界资源的进程退出临界区后,另一个进程
4、才被允许使用临界资源。通过临界区协调进程间资源共享的关系,就是进程互斥。,2.4.3 进程同步机制应遵循的原则,(1)空闲让进。当无进程处于临界区时,允许一个进程进入。(2)忙则等待。当有进程在临界区中,其他欲进入临界区的进程必须等待。(3)有限等待。对要求进入临界区的进程,应在有限时间内让其进入,避免“死等”。(4)让权等待。临界区让出,必须立即释放处理器,让等待进程进入,避免“忙等”。,12,锁操作:1.测试锁位的值;lock/unlock2.若原来的值是为“0”,将锁位置为“1”(占用该资源);3.若原来值是为“1”,(该资源已被别人占用),则转到1。开锁操作:进程使用完资源后,将锁位置
5、为“0”,称为开锁操作。,2.4.4 进程同步机制锁,13,PAA:lock(keyS)unlock(keyS)Goto A可能导致不公平现象,PBB:lock(keyS)unlock(keyS)Goto B,锁操作的缺点,14,1、循环测定锁定位,将损耗较多的CPU时间。2、影响系统可靠性和执行效率,并可能导致不公平现象。,2.4.5 进程同步机制-信号量,信号量是一种特殊变量,他用来表示系统中资源的使用情况。而整型信号量就是一个整型变量。当值大于0时,表示系统中对应可用资源的数目;当值小于0时,其绝对值表示因该类资源而被等待的进程数目;当值等于0时,表示系统中对应资源已经用完,并且没有因该
6、类资源而被等待的进程。,P,V原语,信号量的初值只能由P,V原语操做P:passeren V:verhoogP操作:申请资源操作sem减1若sem减1后仍大于1或等于零,则P返回,进程继续;若sem减1后小于零,则该进程阻塞转等待队列中。,V操作:释放资源操作,sem加1若sem加1后结果大于1,则V停止操作,该进程返回调用处,继续执行;若sem加1后小于或等于零,则该进程转就绪队列,同时进程调试选取一个等待队列中的进程转运行。P,V操作必须用原语实现。,18,用信号量实现两并发进程PA,PB互斥的描述如下:设sem为互斥信号量,其取值范围为(1,0,-1)其中sem=1表示进程PA和PB都未
7、进入S的临界区,sem=0表示进程PA或PB已进入S的临界区,sem=-1进程PA和PB中,一个进程已进入临界区,另一进程等待进入。描述:PA:PB:P(sem)P(sem)V(sem)V(sem),2.4.6 用P,V原语实现进程互斥,sem=1,进程A想使用临界区,进程A执行P操作,sem=0,进程B执行P操作,进程B想使用临界区,sem=-1,进程B被阻塞,进程A使用临界区完,进程A执行V操作,sem=0,进程B转入阻塞队列中,20,PAA:P(sem)V(sem)Goto A会导致不公平现象吗?,PBB:P(sem)V(sem)Goto B,放水果问题,有一个水果盘,只能放入1个水果。
8、父亲每次放1个苹果供儿子吃,或者放1个橘子供女儿吃。给出父亲、儿子、女儿的算法描述。,放水果问题,需要三个信号量s1,s2,s3分别代表需要盘子是否为空,是否可以有苹果,是否橘子。,父亲进程:A:P(s1)if 放苹果 then V(s2)else V(s3)goto A,s1=1,s2=0,s2=0,放水果问题,儿子进程:B:P(s2)取走苹果V(s1)goto B,女儿进程C:P(s3)取走苹果V(s1)goto C,用P,V原语操作实现进程同步的方法:为各并发进程设置私用信号量为私用信号量赋初值利用P,V原语和私用信号量规定各进程的执行顺序。,2.4.7 用P,V原语操作实现同步,PA,
9、Pp,buffer,deposit(data),remove(data),例 进程PA和PB共享缓冲队列发送和接收数据。,26,在PA至少送一块数据入一个缓冲区之前,PB不可能从缓冲区中取出数据(假定数据块长等于缓冲区长度);PA往缓冲队列发送数据时,至少有一个缓冲区是空的;由PA发送的数据块在缓冲队列中按先进先出方式排列。,解:设bufempty为进程PA的私用信号量,buffull为进程PB的私用信号量;令bufempty的初始值为n(n为缓冲队列的缓冲区个数),buffull的初值为0;,PA:deposit(data):begin local xP(bufempty);按FIFO选空缓
10、冲区buf(x);buf(x)databuf(x)置满标记V(buffull)end,PB:remove(data):begin local xP(buffull);按FIFO选装满数据缓冲区buf(x);data buf(x)buf(x)置空标记V(bufempty)end,2.4.8 利用信号量实现进程同步与互斥,生产者-消费问题消费者:系统中使用某一类资源的进程称为该资源的消费者。生产者:释放同类资源的进程称为该资源的生产者。,它们之间满足:消费者想接收数据时,有界缓冲区中至少有一个单元是满的;生产者想发送数据时,有界缓冲区中至少有一个单元是空的。生产者-消费者问题是同步关系,当有进程在
11、写数据时(如生产者进程)则同时不允许对该缓冲区进行读操作(如消费者进程)。故有界缓冲区是临界资源,进程必须互斥访问。生产者-消费者问题同时也具有互斥关系,设信号量mutex:用于访问缓冲区时的互斥,初值是1 avail:生产者进程的私用信号量,表示有界缓冲区中的空单元数,初值为n;full:为消费者进程的私用信号量,表示缓冲区中非空单元数,初值为0。avail+full=n,consumer(data):beginP(full)P(mutex)取缓冲区某单元数据V(avail)V(mutex)end,producer(data):beginP(avail)P(mutex)送数据入缓冲区某单元V
12、(full)V(mutex)end,每个进程中各个P操作的次序是重要的:先检查资源数目,再检查是否互斥否则可能死锁!,分析:P操作的顺序-很重要,P操作的顺序不当会产生死锁。例:假定执行顺序如下,分析:当full=0,mutex=1时,执行顺序:Consumer.P(mutex);Consumer.P(full);/C阻塞,等待Producer 发出的full信号 Producer.P(avail);Producer.P(mutex);/P 阻塞,等待Consumer发出的avail信号思考:还有其他的执行序列可以产生死锁吗?,发生死锁,2.4.9 利用信号量实现进程同步的方法,1、使用PV操
13、作的规则(1)分清哪些是互斥问题,哪些是同步问题(2)对于互斥问题要设置互斥信号量,不管有互斥关系的进程有几个或几类,互斥信号量的个数只与临界资源的种类有关(3)对于同步问题要设置同步信号量,通常同步信号量的个数与参与同步的进程种类有关(4)在每个进程中由于实现互斥的PV操作必须成对出现;用于实现同步的PV操作也必须成对出现。必须先执行对同步信号量的P操作,再执行对互斥信号量的P操作。,2、同步互斥问题的解题步骤,(1)确定进程。包括进程的数量、进程的工作内容,可以用流程图描述(2)确定同步互斥关系。根据使用的是临界资源,还是处理的前后关系,来确定互斥与同步,然后确定信号的个数、含义,以及对信
14、号量的PV操作(3)用C语言描述同步或互斥算法,2.5 进程通信,进程通信是指进程间的信息交换。进程通信所交换的信息量少则一个数值或状态,多则成千上万个字节。根据通信的机制不同将进程通信分为低级通信和高级通信。,低级通信-进程的同步和互斥,进程的同步和互斥称为低级通信。缺点:1、效率低,一次发送的信息量比较少。2、信号量机制主要依靠进程来控制,用户使用不方便。,高级通信,高级通信是指用户直接利用操作系统提供的一组通信命令,高效地传送大量数据的一种通信方式。高级通信机制分为3大类:1、共享存储器系统2、消息传递系统3、管道通信系统,2.5.1 共享存储器系统,在共享存储器系统中,相互通信的进程共
15、享某些数据结构或存储区,进程之间能够通过它们进程通信。共享存储器系统分为2种方式:1、共享数据结构方式2、共享存储区方式,1、共享数据结构方式,在这种通信方式下,相互通信的进程共用某些数据结构,并通过这些数据结构交换信息。这种方式与信号量机制相比,并没有发生太大的变化,比较低效、复杂,只适合于传送少量的数据。,2、共享存储区方式,这种通信方式是在存储器中划出一块共享存储区,相互通信的进程可以通过对共享存储区中的数据进行读或写来实现通信。这种方式效率高,可以传送较多的数据。,2.5.2 消息传递系统,在消息传递信息中,进程间的数据交换是以消息为单位进行的。用户直接利用系统中提供的一组通信命令(原
16、语)进程通信。消息传递系统成为最常用的高级通信方式。优点:1、工作效率提高2、简化了程序编制的复杂性,方便用户的使用。,1、直接通信方式,发送进程使用发送原语直接将消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上。接收接收进程使用接收原语从消息缓冲队列中读取消息。通常系统提供两条通信原语。发送原语:Send(Receiver,message);接收原语:Receive(Sender,message);例如原语Send(P2,M)表示将消息M发送给接收进程P2;而原语Receive(P1,M)则是表示接收由进程P1发送来的消息M。,2、间接通信方式,发送进程与接收进程通过中间实体信箱来完成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理器管理 处理器 管理 PPT 课件
链接地址:https://www.31ppt.com/p-4851325.html