《操作系统》第2章 进程管理2.ppt
《《操作系统》第2章 进程管理2.ppt》由会员分享,可在线阅读,更多相关《《操作系统》第2章 进程管理2.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统原理Principles of Operating System 12.4 进程的同步机构2.4.1 进程与资源n n资源是计算机系统的基本结构元素。资源是计算机系统的基本结构元素。n n资源可以分为软件资源和硬件资源,程序和数据资源可以分为软件资源和硬件资源,程序和数据属于软件资源;属于软件资源;CPU、内存、外设则属于硬件资内存、外设则属于硬件资源。源。n n在操作系统中一般把资源分为临界资源和共享资在操作系统中一般把资源分为临界资源和共享资源,源,n n所谓的临界资源是指在一段时间内仅允许一个进所谓的临界资源是指在一段时间内仅允许一个进程使用资源。如打印机、输入机、磁带机、信号程
2、使用资源。如打印机、输入机、磁带机、信号量和指针等,临界资源可以互斥共享;量和指针等,临界资源可以互斥共享;n n所谓的共享资源是指允许多个进程同时访问的资所谓的共享资源是指允许多个进程同时访问的资源。如处理机、内存和硬盘等。源。如处理机、内存和硬盘等。2进程制约关系n n间接相互制约。这种制约主要源于资源共享,间接相互制约。这种制约主要源于资源共享,这是不相关的进程由于共享同一资源而引起的,这是不相关的进程由于共享同一资源而引起的,即共享某类资源的进程之间由操作系统协调与控即共享某类资源的进程之间由操作系统协调与控制使用该资源的次序而产生相互制约。这种制约制使用该资源的次序而产生相互制约。这
3、种制约是进程是进程资源资源进程之间存在的约束,故称为间进程之间存在的约束,故称为间接制约。例如,有两个进程接制约。例如,有两个进程A和和B,如果在进程如果在进程A提出打印请求时,系统已将打印机分配给进程提出打印请求时,系统已将打印机分配给进程B,此时进程此时进程A阻塞。当进程阻塞。当进程B将打印机释放,进将打印机释放,进程程A被唤醒,获得打印机,由阻塞状态转为就绪被唤醒,获得打印机,由阻塞状态转为就绪状态。状态。3n n直接相互制约。这是相关进程之间为完成同一任务,进程某些操作之间在次序上存在制约关系。如果协作进程的某个操作没有完成,那么进程就会在工作到某些点上等待这个动作的完成,之后才能继续
4、执行下去。我们称这些并发执行的进程间存在着制约关系。这种制约是进程进程之间因共同目的而存在的直接约束,故称为直接制约。例如,输入进程A通过单缓冲向计算进程B提供数据。当缓冲区空时,计算进程B因不能获得所需数据而阻塞,当进程A把数据送入缓冲时,便唤醒进程B;反之,当缓冲区满时,进程A因不能再向缓冲中投放数据而阻塞,当进程B将缓冲内数据取走时,便唤醒进程A。4进程与资源的关系n n从这样一个简单系统的管理中我们得出一个结论:操作系统的任务是控制与管理进程和资源,必须提供一些机制来协调进程与进程之间、进程与资源之间的复杂关系。54.临界区设计原则n n我们对每个进程访问临界资源的那段程序从概念我们对
5、每个进程访问临界资源的那段程序从概念上分离出来,称之为临界区。上分离出来,称之为临界区。n n临界区设计原则如下:临界区设计原则如下:n n进入区进入区(entry section)。申请临界资源,为申请临界资源,为了进入临界区使用临界资源,在进入区要检查可了进入临界区使用临界资源,在进入区要检查可否进入临界区,如果可以进入临界区,通常设置否进入临界区,如果可以进入临界区,通常设置相应的相应的“正在访问临界区正在访问临界区”标志,以阻止其他进标志,以阻止其他进程同时进入临界区。程同时进入临界区。n n访问区访问区(critical section)。进程中访问临界进程中访问临界资源的一段代码。
6、资源的一段代码。n n退出区(退出区(exit section)。)。将将“正在访问临界正在访问临界区区”的标志清除,释放临界资源。的标志清除,释放临界资源。62.4.2 进程同步机构进程同步与互斥的概念n n在系统中有一些需要相互合作、协同工作的进程,这些进程的某些操作存在某种次序上的制约关系,这种制约关系称为进程的同步。n n多个相关进程在访问临界资源在操作时间上相互排斥。这种相互排斥关系叫做进程的互斥。n n各个进程互斥使用临界资源,互斥的实质是互斥共享临界资源,也可以认为互斥是同步的一种特殊形式。72.同步机构应遵循的准则 n n空闲让进n n忙则等待n n有限等待n n让权等待8上锁
7、原语与开锁原语n n实现的方法:设置锁变量实现的方法:设置锁变量w w,w=1w=1表示上锁,表示上锁,w=0w=0表示开锁。表示开锁。n n上锁原语上锁原语n nvoid lock(w)void lock(w)n nwhile(w=1)no-operate;while(w=1)no-operate;n nw=1;w=1;n n n n开锁原语开锁原语n nvoid unlock(w)void unlock(w)n nw=0;w=0;n n n n请读者思考上锁原语与开锁原语是否符合同步机请读者思考上锁原语与开锁原语是否符合同步机构应遵循的准则?构应遵循的准则?9信号量与P、V操作n n信号量
8、的值仅能由信号量的值仅能由信号量的值仅能由信号量的值仅能由P P操作、操作、操作、操作、V V操作改变的结构体变量。操作改变的结构体变量。操作改变的结构体变量。操作改变的结构体变量。信号量的值大于等于零时信号量的值大于等于零时信号量的值大于等于零时信号量的值大于等于零时代表一类可用资源个数,代表一类可用资源个数,代表一类可用资源个数,代表一类可用资源个数,其值小于零时其绝对值代其值小于零时其绝对值代其值小于零时其绝对值代其值小于零时其绝对值代表被阻塞进程的个数。表被阻塞进程的个数。表被阻塞进程的个数。表被阻塞进程的个数。n n信号量的描述如下:信号量的描述如下:信号量的描述如下:信号量的描述如
9、下:n nstructstruct semaphore semaphoren n intint value;value;n nqueue *queue *WQrWQr;n n;10n nwaitwait操作描述和定义如下:操作描述和定义如下:操作描述和定义如下:操作描述和定义如下:n nsemaphore s semaphore s n nvoid wait(s)void wait(s)n n s.value-;s.value-;n nif (s.value0)if (s.value0)block(sblock(s.WQr);/*.WQr);/*阻塞该进程阻塞该进程阻塞该进程阻塞该进程*/n
10、n n nV V操作描述和定义如下:操作描述和定义如下:操作描述和定义如下:操作描述和定义如下:n nsemaphore ssemaphore sn nvoid signal(s)void signal(s)n n s.value+;s.value+;n nif (s.value=0)if (s.value=0)wakeup(swakeup(s.WQr);/*.WQr);/*唤醒阻塞唤醒阻塞唤醒阻塞唤醒阻塞队列的对首进程队列的对首进程队列的对首进程队列的对首进程*/n n 112.5 经典进程同步问题2.5.1进程互斥n n利用利用利用利用waitwait操作、操作、操作、操作、signals
11、ignal操作设计出三个进程共享一台打印操作设计出三个进程共享一台打印操作设计出三个进程共享一台打印操作设计出三个进程共享一台打印机的并发程序描述如下机的并发程序描述如下机的并发程序描述如下机的并发程序描述如下:n nsemaphore semaphore mutexmutex=1;=1;n nvoid main()void main()n nparbegin(P1()parbegin(P1(),P2()P2(),P3();P3();n n n nvoid Pi()/*i=1void Pi()/*i=1,2 2,3*/3*/;n n n nn nwait(mutexwait(mutex););
12、n n使用打印机使用打印机使用打印机使用打印机;n nsignal(mutexsignal(mutex););n nn n 122.5.2生产者与消费者问题n n设置信号量和变量如下:full:满缓冲区资源信号量,初值为0;empty:空缓冲区资源信号量,初值为n;in:生产者指针,初值均为0;out:消费者指针,初值均为0;mutex:缓冲区操作的互斥信号量,初值为1;13生产者与消费者问题描述如下:n nsemaphore empty=n;n nsemaphore full=0;n nsemaphore mutex=1;n nmessage buffern;n nint in=0;n ni
13、nt out=0;n nvoid main()n nparbegin(proceducer(),consumer();n n14n nvoid proceducer()n ndo n n produce a new message;n n wait(empty);n n wait(mutex);n n send a new message to bufferin;n n in=(in+1)%n;n n signal(mutex);n n signal(full);n n while(true);n n15n nvoid consumer()n ndon n wait(full);n n wai
14、t(mutex);n n get a message from bufferout;n n out=(out+1)%n;n n signal(mutex);n n signal(empty);n n consume a message;n n while(true);n n162.5.3哲学家进餐的问题n n分析分析:每个哲学家的行为是:每个哲学家的行为是:思考,感到饥饿,拿到两只筷思考,感到饥饿,拿到两只筷子,进餐,餐毕,放下两只筷子,进餐,餐毕,放下两只筷子又继续思考。为了进餐,每子又继续思考。为了进餐,每个哲学家必须拿到两只筷子,个哲学家必须拿到两只筷子,并且每个人只能直接从自己的并且每
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 操作系统第2章 进程管理2 进程 管理
限制150内