精华内容
下载资源
问答
  • 哲学家进餐问题Dining-PhilosophersProblem6.* OSC 经典同步问题 主讲教师:夏莹杰 xiayingjie@ 经典进程同步问题 经典进程同步问题是从进程并发执行中归纳的典型例子。主要的经典同步问题有生产者-消费者问题、读者...

    哲学家进餐问题Dining-PhilosophersProblem

    6.* OSC 经典同步问题 主讲教师:夏莹杰 xiayingjie@ 经典进程同步问题 经典进程同步问题是从进程并发执行中归纳的典型例子。主要的经典同步问题有生产者-消费者问题、读者-写者问题、哲学家进餐问题等。 生产者-消费者问题(producer-consumer Problem ) 生产者-消费者问题是最著名的同步问题,它描述一组生产者(P1 ……Pm)向一组消费者(C1……Cq)提供消息。它们共享一个有界缓冲池(bounded buffer pool),生产者向其中投放消息,消费者从中取得消息,如下图所示。生产者-消费者问题是许多相互合作进程的一种抽象。 生产者-消费者问题 假定缓冲池中有n个缓冲区,每个缓冲区存放一个消息。由于缓冲池是临界资源,它只允许一个生产者投入消息,或者一个消费者从中取出消息。即生产者之间、生产者与消费者之间、消费者之间都必须互斥使用缓冲池。所以必须设置互斥信号量mutex,它代表缓冲池资源,它的数值为1。 P1 Pm C1 Cq B0 B1 …. …... ……… Bn-1 生产者-消费者问题 生产者和消费者二类进程之间应满足下列二个同步条件: 只有在缓冲池中至少有一个缓冲区已存入消息后,消费者才能从中提取消息,否则消费者必须等待。 只有缓冲池中至少有一个缓冲区是空时,生产者才能把消息放入缓冲区,否则生产者必须等待。 为了满足第一个同步条件,设置一个同步信号量full,它代表的资源是缓冲区满,它的初始值为0,它的值为n时整个缓冲池满。 为了满足第二个同步条件,设置另一个同步信号量empty,它代表的资源是缓冲区空,它的初始值为n,表示缓冲池中所有缓冲区空。 生产者-消费者问题 Shared datasemaphore full=0, empty=n, mutex=1; main() cobegin{ }coend Ci //消费者进程 do { P(full); P(mutex); … remove an item from buffer to nextc … V(mutex); V(empty); … consume the item in nextc … } while (1); Pi //生产者进程 do { … produce an item in nextp … P(empty); P(mutex); … add nextp to buffer … V(mutex); V(full); } while (1); 读者-写者问题The Readers-Writers Problem 一个数据集(如文件)如果被几个并行进程所共享: 有些进程只要求读数据集内容,它称读者 一些进程则要求修改数据集内容,它称写者 几个读者可以同时读些数据集,而不需要互斥 一个写者不能和其它进程(不管是写者或读者)同时访问些数据集,它们之间必须互斥。 信号量及变量设置: 写者与写者及读者需要互斥,用互斥信号量wrt表示,初值为1 readcount变量来记录读者数,初值为0 由于readcount是读者间共享变量,属于临界资源,它也需互斥,设置互斥信号量mutex,初值为1。 读者写者问题: Shared datasemaphore mutex=1, wrt=1;int readcount = 0;// readcount变量来记录读者数 main() cobegin{ Writer process: while(1){ wait(wrt); … writing is performed … signal(wrt); } 读者写者问题: Reader Process: while(1){ wait(mutex); readcount++; if (readcount == 1) wait(wrt); signal(mutex); … reading is performed … wait(mutex); readcount--; if (readcount == 0) signal(wrt); signal(mutex); } }coend 哲学家进餐问题Dining-Philosophers Problem 问题描述(由Dijkstra首先提出并解决) : 5个哲学家围绕一张圆桌而坐,桌子上放着5支筷子,每两个哲学家之间放一支; 哲学家的动作包括思考和进餐,进餐时需要同时拿起他左边和右边的两支筷子,思考时则同时将两支筷子放回原处。 如何保证哲学家们的动作有序

    展开全文
  • 哲学家进餐问题

    2011-11-08 13:09:44
    哲学家进餐问题
  • 哲学家就餐问题

    2013-11-13 14:36:58
    哲学家就餐问题 操作系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,575
精华内容 2,630
关键字:

哲学家就餐问题