Chapter2b章节课堂_第1页
Chapter2b章节课堂_第2页
Chapter2b章节课堂_第3页
Chapter2b章节课堂_第4页
Chapter2b章节课堂_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云操作系统及应用操作系统及应用processes and threads and threads华南理工大学计算机科学与工程学院2009年 秋季2operating systems and applicationsoperating systems and applicationsoperating systems and applicatio

2、ns 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云processesthreadsinterprocess communicationclassical ipc problemsscheduling3operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l需要解决三个问题需要解决三个问题v第一,一个进程如何把信息传递给另一个进第一,一个进程如何把信息传递给另一个进程。程。v第二,确认在关键活动

3、中两个或更多的进程第二,确认在关键活动中两个或更多的进程不会把事情搞乱。不会把事情搞乱。t例如,两个进程都试图取得例如,两个进程都试图取得1mb的内存的内存v第三个问题与正确的顺序有关第三个问题与正确的顺序有关t例如,如果进程例如,如果进程a产生数据,而进程产生数据,而进程b打印数据,打印数据,那么那么b在打印之前必须等待,直到在打印之前必须等待,直到a已经产生了一已经产生了一些数据。些数据。4operating systems and applicationsoperating systems and applicationsoperating systems and application

4、s 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云两个进程同时想访问共享内存两个进程同时想访问共享内存l定义:两个或多个进程读写某些共享数据,而最后的结果取决于定义:两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序,称为进程运行的精确时序,称为竞争条件竞争条件(race conditionrace condition)。)。5operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐

5、红云l临界资源临界资源:一段时间内只允许一个进程访问的资源:一段时间内只允许一个进程访问的资源l把对临界资源把对临界资源( (如:共享内存如:共享内存) )进行访问的程序片段称作进行访问的程序片段称作临界区临界区( (critical region或或critical section) )。l以某种手段确保当一个进程在使用一个共享变量或文件以某种手段确保当一个进程在使用一个共享变量或文件时,其他进程不能做同样的操作,称作时,其他进程不能做同样的操作,称作互斥互斥( (mutual exclusion) )。l对于一个好的对于一个好的互斥的解决方案互斥的解决方案必须满足的四个条件必须满足的四个条

6、件v任何两个进程不能同时处于其临界区任何两个进程不能同时处于其临界区v不应对不应对cpucpu的速度和数量做任何假设的速度和数量做任何假设v临界区外运行的进程不得阻塞其他进程临界区外运行的进程不得阻塞其他进程v不得使进程无限期等待进入临界区不得使进程无限期等待进入临界区6operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云使用临界区实现互斥使用临界区实现互斥7operating systems

7、and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 禁止中断禁止中断v使每个进程在刚刚进入临界区后立即禁止所有中断,并在使每个进程在刚刚进入临界区后立即禁止所有中断,并在就要离开之前再打开中断。就要离开之前再打开中断。v对操作系统本身是一项很有用的技术,对用户进程则不是对操作系统本身是一项很有用的技术,对用户进程则不是一种合适的通用互斥机制。一种合适的通用互斥机制。l 锁变量锁变量v设立一个共享设立一个共享(锁锁)变量,其初值

8、为变量,其初值为0。当一个进程想进入。当一个进程想进入临界区时,它首先测试该锁,如果该锁的值是临界区时,它首先测试该锁,如果该锁的值是0,则该进,则该进程将其设置为程将其设置为1并进入临界区。若该锁的值已经为并进入临界区。若该锁的值已经为1,则该,则该进程将等待直到其值变为进程将等待直到其值变为0。v是否能实现互斥?是否能实现互斥?8operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云临界区问题

9、的一种解法临界区问题的一种解法 (a) (a) 进程进程 0 (b) 0 (b) 进程进程 1 1l严格轮换法严格轮换法v设立一个整型变量,用于记录轮到哪个进程进入临界区,并检查或更新设立一个整型变量,用于记录轮到哪个进程进入临界区,并检查或更新共享内存。如为共享内存。如为0 0时,进程时,进程0 0进入临界区;为进入临界区;为1 1时,进程时,进程1 1进入临界区进入临界区v连续测试一个变量直到某个值出现为止,称为连续测试一个变量直到某个值出现为止,称为忙等待忙等待(busy waiting)(busy waiting)v问题?问题?( (考虑一个进程比另一个进程慢很多的情况考虑一个进程比另

10、一个进程慢很多的情况) )9operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l peterson解法解法v 是一个不需严格轮换的软件互斥算法是一个不需严格轮换的软件互斥算法v 设立一个整型变量设立一个整型变量turn作为进入临界区的标志,同时作为进入临界区的标志,同时设立一个数组设立一个数组interested来表示轮到的进程是否希望进来表示轮到的进程是否希望进入临界区。入临界区。t只有当轮

11、到了某进程,而其他进程不希望进入临界区时,该只有当轮到了某进程,而其他进程不希望进入临界区时,该进程才能进入,否则,将等待。进程才能进入,否则,将等待。v在使用共享变量之前在使用共享变量之前,各个进程使用其进程号各个进程使用其进程号0或或1作为作为参数来调用参数来调用enter_region, 该调用在需要时将使进程等该调用在需要时将使进程等待待,直到能安全地进入临界区直到能安全地进入临界区v在完成对共享变量的访问之后在完成对共享变量的访问之后,进程将调用进程将调用leave_region,表示操作已完成表示操作已完成, 若其他进程希望进入临若其他进程希望进入临界区界区,则现在就可以进入则现在

12、就可以进入.10operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云lpeterson解法解法11operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l tsl指令指令v 是一种需要硬件支持的方案

13、是一种需要硬件支持的方案. 使用了测试并加锁指令使用了测试并加锁指令tsl rx, lock, 它将它将一个内存字一个内存字lock读到寄存器读到寄存器rx中中, 然后在该内存地址上存一个非然后在该内存地址上存一个非0值值.v 使用共享变量使用共享变量lock来协调对共享内存的访问。当来协调对共享内存的访问。当lock为为0时,任何进程都可时,任何进程都可以使用以使用tsl指令将其设置为指令将其设置为1,并读写共享内存。当操作结束时,进程用,并读写共享内存。当操作结束时,进程用一条普通的一条普通的move指令将指令将lock的值重新设置为的值重新设置为0。12operating systems

14、 and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l peterson解法和解法和tsl指令都是正确的指令都是正确的,但是它们但是它们都有忙等待的缺点都有忙等待的缺点, 浪费浪费cpu时间时间.l 在无法进入临界区时在无法进入临界区时, 采用阻塞而不是忙等待采用阻塞而不是忙等待的方法的方法:v使用通信原语使用通信原语sleep和和wakeuptsleep 是一个将引起调用进程阻塞的系统调用是一个将引起调用进程阻塞的系统调用,即

15、被挂起即被挂起,直直到另外一个进程将其唤醒到另外一个进程将其唤醒.twakeup调用有一个参数调用有一个参数,即要唤醒的进程即要唤醒的进程.13operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 生产者生产者-消费者问题消费者问题(也称为有界缓存区问题也称为有界缓存区问题)v问题描述问题描述:两组进程共享一个公共的固定大小的缓存两组进程共享一个公共的固定大小的缓存区区, 其中一组是生产者其中

16、一组是生产者, 将信息放入缓存区将信息放入缓存区;另一组是另一组是消费者消费者, 从缓存区中取出信息从缓存区中取出信息.v当缓存区已满当缓存区已满, 生产者还想放入新的数据项时生产者还想放入新的数据项时,生产生产者休眠者休眠, 待消费者取走数据项后再唤醒它待消费者取走数据项后再唤醒它; 当缓存区当缓存区已空已空,消费者还想从中取数据时消费者还想从中取数据时, 消费者休眠消费者休眠,待生产待生产者放入数据项后再唤醒它者放入数据项后再唤醒它.n-114operating systems and applicationsoperating systems and applicationsoperat

17、ing systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云含有严重竞争条件的生产者含有严重竞争条件的生产者- -消费者问题消费者问题v设立一个变量设立一个变量count跟踪缓跟踪缓存区中的数据项数存区中的数据项数. 如果缓存区的大小为如果缓存区的大小为n, 则生产者代码检查则生产者代码检查count是否达到是否达到n, 若是若是, 则生产则生产者休眠者休眠; 否则生产者向缓存区中否则生产者向缓存区中放入一个数据项并增加放入一个数据项并增加 count的值的值; 消费者首先测试消费者首先测试 count是是否为否为0, 若是若是,则休眠则休眠;否则

18、从中取走一个数据否则从中取走一个数据项项, 并递减并递减count的值的值; 每个进程同时也检查另每个进程同时也检查另一个进程是否应该被唤一个进程是否应该被唤醒醒, 若是若是, 则唤醒之则唤醒之.15operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 由由e.w.dijkstra在在1965年提出年提出.是一种新的变量是一种新的变量类型类型l 取值可以为取值可以为0(表示没有保存下来的唤醒操

19、作表示没有保存下来的唤醒操作)或或者正整数者正整数(表示有一个或多个唤醒操作表示有一个或多个唤醒操作)l 对信号量设立两种操作:对信号量设立两种操作:down(或或p) 和和up(或或v)v对一信号量执行对一信号量执行 down操作操作, 则是检查其值是否大于则是检查其值是否大于0. 若大于若大于0, 则其值减则其值减1并继续并继续; 若其值为若其值为0, 则进程将则进程将休眠休眠. 检查数值检查数值, 修改变量值以及可能发生的休眠操修改变量值以及可能发生的休眠操作均作为单一的作均作为单一的, 不可分割的原子操作完成不可分割的原子操作完成.vup操作对信号量的值增操作对信号量的值增1,唤醒一个

20、在该信号量上唤醒一个在该信号量上休眠的进程。不会有进程因执行休眠的进程。不会有进程因执行up而阻塞而阻塞.信号量的信号量的值增值增1和唤醒一个进程同样也是不可分割的和唤醒一个进程同样也是不可分割的。16operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 实现进程互斥实现进程互斥down(mutex); up(mutex); 17operating systems and applicatio

21、nsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云提问:提问: 1. mutex的取值范围?的取值范围? down(mutex); up(mutex); up(mutex); up(mutex); down(mutex); down(mutex); semaphore mutex=1;18operating systems and applicationsoperating systems and applicationsoperating systems

22、 and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 实现进程同步实现进程同步down(s); up(s); 19operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云down(s); up(s); 执行时两种可能性:执行时两种可能性:1.在进程在进程b还没有送数据之前,还没有送数据之前,进程进程a先执行了先执行了down(s),结果结果会怎样?会怎样?2.进程进

23、程b的的up(s)操作已经完成操作已经完成,进程进程a才执行了才执行了down(s),结果结果会怎样?会怎样?答:答:l进程进程a执行执行down(s), 会使自己进会使自己进入阻塞状态,直至进程入阻塞状态,直至进程b送数送数据后执行据后执行up(s),才能将它唤醒才能将它唤醒l若进程若进程b的的up(s)操作已经完成操作已经完成, 进程进程a才执行了才执行了down(s), 则进程则进程a不会阻塞。它可以顺利地取不会阻塞。它可以顺利地取到数据,完成下面的操作。到数据,完成下面的操作。semaphore s=0;20operating systems and applicationsopera

24、ting systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 用信号量解决生产者和消费者问题用信号量解决生产者和消费者问题21operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云22operating systems and applicationsoperating syste

25、ms and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 用信号量解决生产者和消费者问题用信号量解决生产者和消费者问题23operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 桌上有一个盘子,可以存放一个水果。父亲总是放桌上有一个盘子,可以存放一个水果。父亲总是放苹果到盘子中,而母亲总是放香蕉

26、到盘子中;一个苹果到盘子中,而母亲总是放香蕉到盘子中;一个儿子专等吃盘子里的香蕉,而一个女儿专等吃盘子儿子专等吃盘子里的香蕉,而一个女儿专等吃盘子里的苹果。请用信号量解决此问题。里的苹果。请用信号量解决此问题。l 分析:分析:v父亲、母亲、儿子和女儿共用一个盘子,盘子一次只能放父亲、母亲、儿子和女儿共用一个盘子,盘子一次只能放一个水果。一个水果。v当盘子为空时,父亲和母亲均可以试着将一个水果放入盘当盘子为空时,父亲和母亲均可以试着将一个水果放入盘中,但一次只能有一个人成功放入水果。中,但一次只能有一个人成功放入水果。v若放入盘子中的是香蕉,则允许儿子吃,女儿必须等待若放入盘子中的是香蕉,则允许

27、儿子吃,女儿必须等待v若放入盘子中的是苹果,则允许女儿吃,儿子必须等待若放入盘子中的是苹果,则允许女儿吃,儿子必须等待24operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云v设置信号量设置信号量dish, 表示盘子是否为空,初值为表示盘子是否为空,初值为1v设置信号量设置信号量 apple,表示盘中是否有苹果,初值为表示盘中是否有苹果,初值为0v信号量信号量banana,表示盘中是否有香蕉,初

28、值为表示盘中是否有香蕉,初值为0father() while (true) down(dish); put apple into dish; up(apple) daughter() while (true) down(apple); take apple from dish; up(dish); eating apple mother()?son()?25operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主

29、讲教师:徐红云l 如果不需要信号量的计数能力,可以使用信号量的一种简化版本,称为互斥如果不需要信号量的计数能力,可以使用信号量的一种简化版本,称为互斥信号量信号量l mutexmutex是一个可以处于两态之一的变量:加锁和解锁是一个可以处于两态之一的变量:加锁和解锁l mutex mutex 使用两个过程:当一个线程(或进程)需要访问临界区时,它调用使用两个过程:当一个线程(或进程)需要访问临界区时,它调用mutex_lockmutex_lock,如果该信号量当前是解锁的,此调用成功,调用线程可自由进,如果该信号量当前是解锁的,此调用成功,调用线程可自由进入临界区;如果该互斥信号量已经加锁,调

30、用线程被阻塞,直到在临界区中入临界区;如果该互斥信号量已经加锁,调用线程被阻塞,直到在临界区中的线程完成并调用的线程完成并调用mutex_unlock.mutex_unlock.26operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 使用信号量要非常小心,否则很使用信号量要非常小心,否则很容易导致死锁容易导致死锁l hoarehoare等人提出了一种高级同步原等人提出了一种高级同步原语,称为

31、语,称为管程管程l 一个管程是一个由过程、变量及一个管程是一个由过程、变量及数据结构等组成的集合,它们组数据结构等组成的集合,它们组成一个特殊的模块或软件包成一个特殊的模块或软件包l 进程可在需要的时候调用管程中进程可在需要的时候调用管程中的过程,但它们不能在管程之外的过程,但它们不能在管程之外声明的过程中直接访问管程内的声明的过程中直接访问管程内的数据结构数据结构l 任意时刻管程中只能有一个活跃任意时刻管程中只能有一个活跃进程,使管程能有效地进程,使管程能有效地完成互斥完成互斥27operating systems and applicationsoperating systems and

32、applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云v当一个管程过程无法继续运行时,它会当一个管程过程无法继续运行时,它会在条件变量上执行在条件变量上执行waitwait操作,该操作导致调用进程自身阻塞操作,该操作导致调用进程自身阻塞. .v进程可以通过进程可以通过对其伙伴正在等待的一个条件变量执行对其伙伴正在等待的一个条件变量执行signalsignal操作,以唤醒该伙伴进程操作,以唤醒该伙伴进程v条件变量不是计数器,也不能象信号量那样累积信号供以条件变量不是计数器,也不能象信号量那样累积信号供以后使用

33、。所以后使用。所以waitwait操作必须在操作必须在signalsignal操作之前。操作之前。l互斥与同步互斥与同步28operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云说明:说明: 条件变量条件变量x:表示等待原因表示等待原因29operating systems and applicationsoperating systems and applicationsoperating sy

34、stems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云 用管程实现的生产者用管程实现的生产者- -消费者问题的解法框架消费者问题的解法框架 管程定义管程定义 进程调用进程调用30operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云31operating systems and applicationsoperating systems and applic

35、ationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l消息传递使用两条原语:消息传递使用两条原语:sendsend和和receivereceivevsend(destination,&message),send(destination,&message),向一个给定的向一个给定的目标发送一条消息目标发送一条消息. .vreceive(source,&message),receive(source,&message),从一个给定的源从一个给定的源接收一条消息。接收一条消息。如果没有消息可

36、用,则接收者如果没有消息可用,则接收者可能被阻塞,直到一条消息到达,或者,带着可能被阻塞,直到一条消息到达,或者,带着一个错误码立即返回一个错误码立即返回. .32operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 用消息传递解决生产者用消息传递解决生产者- -消费者问题消费者问题v 消费者首先将消费者首先将n n条空消息发条空消息发送给生产者。当生产者向消送给生产者。当生产者向消费者传递一

37、个数据项时,它费者传递一个数据项时,它取走一条空消息,并送回一取走一条空消息,并送回一条填充了内容的消息条填充了内容的消息v 如果生产者的速度比消费者如果生产者的速度比消费者快,则所有消息最终都将被快,则所有消息最终都将被填满,等待消费者,生产者填满,等待消费者,生产者将被阻塞,等待返回一条空将被阻塞,等待返回一条空消息消息v 如果消费者速度快,则情况如果消费者速度快,则情况正好相反,所有的消息均为正好相反,所有的消息均为空,等待生产者来填充它们空,等待生产者来填充它们,消费者被阻塞,以等待一,消费者被阻塞,以等待一条填充过的消息条填充过的消息33operating systems and a

38、pplicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 用于进程组的同步机制。当一个进程到达屏障时,它用于进程组的同步机制。当一个进程到达屏障时,它就被屏障阻拦,直到所有进程都到达该屏障为止。就被屏障阻拦,直到所有进程都到达该屏障为止。屏障的使用:屏障的使用: (a)进程接近屏障进程接近屏障 (b) 除了一个之外所有的进程都被屏障阻塞除了一个之外所有的进程都被屏障阻塞 (c) 当最后一个进程到达屏障时,所有的进程一起通过当最后一个进程到达屏

39、障时,所有的进程一起通过 34operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云processesthreadsinterprocess communicationclassical ipc problemsscheduling35operating systems and applicationsoperating systems and applicationsoperating syst

40、ems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云把叉子叉子把叉子36operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云叉子把叉子fork37operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师

41、:徐红云主讲教师:徐红云主讲教师:徐红云down(forki);down(forki+1%n);up(forki);up(forki+1%n);38operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 解决办法解决办法1. 至多只允许四位哲学家同时去拿左边的筷子至多只允许四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用

42、过的两只筷子,从并在用毕时能释放出他用过的两只筷子,从而使更多的哲学家能够进餐而使更多的哲学家能够进餐2. 仅当哲学家的左右两只筷子都可用时,才允仅当哲学家的左右两只筷子都可用时,才允许他拿起筷子进餐许他拿起筷子进餐3. 39operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l 办法办法2的一种实现方法的一种实现方法v使用一个数组使用一个数组state跟踪每一个哲学家是在进餐、思跟踪每一个哲学

43、家是在进餐、思考还是饥饿考还是饥饿v一个哲学家只有在两个邻居都没有进餐时,才允许一个哲学家只有在两个邻居都没有进餐时,才允许进入到进餐状态进入到进餐状态v使用一个信号量数组,每个信号量对应一位哲学家使用一个信号量数组,每个信号量对应一位哲学家,在所需的叉子被占用时,想进餐的哲学家就被阻,在所需的叉子被占用时,想进餐的哲学家就被阻塞塞v当被占用的叉子被释放时,可能唤醒被阻塞的哲学当被占用的叉子被释放时,可能唤醒被阻塞的哲学家家v每个哲学家想进餐时,运行每个哲学家想进餐时,运行philosopher进程进程40operating systems and applicationsoperating

44、systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云哲学家就餐问题的一种解法哲学家就餐问题的一种解法 (part 1)41operating systems and applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云哲学家就餐问题的一种解法哲学家就餐问题的一种解法 (part 2)42operating systems an

45、d applicationsoperating systems and applicationsoperating systems and applications 主讲教师:徐红云主讲教师:徐红云主讲教师:徐红云l问题描述:问题描述: 一个数据对象可被多个进程共享。其中有的进程一个数据对象可被多个进程共享。其中有的进程要求读,另一些进程要求写或修改。把要求读的进要求读,另一些进程要求写或修改。把要求读的进程称为程称为“读者读者”进程,其它进程称为进程,其它进程称为“写者写者”进程进程。允许多个读者进程同时读共享的数据对象,但不。允许多个读者进程同时读共享的数据对象,但不允许写者进程与其它写者进程或读者进程同时访问允许写者进程与其它写者进程或读者进程同时访问共享的数据对象。共享的数据对象。43oper

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论