• 2022-11-01
    桌上有一只盘子,每次只能放入一只水果;爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果。
  • Semaphoremutex=1;Semaphoreapple=0;Semaphoreorange=0;Semaphoreempty=1;Father(){Father(){while(1){P(empty);P(mutex);把苹果放入盘子里;V(mutex);V(apple);}}mothermother(){while(1){P(empty);P(mutex);把桔子放入盘子里;V(mutex);V(orange);}}

    内容

    • 0

      桌子上有一个空盘子,允许存放一只水果,爸爸可以向盘中放苹果,妈妈向盘子中放橘子,女儿专门吃盘子中的苹果,儿子专门吃盘子中的橘子。规定当盘子空的时候一次只能放一只水果,请用信号量实现他们之间的同步问题。

    • 1

      桌上有一只盘子,每次只能放入一只水果。father削完苹果放入盘子, mother剥完桔子放入盘子,son专等吃盘中的桔子, daughter专等吃盘中的苹果。盘子空时father或mother可向盘中放一只水果,仅当盘中有自己需要的水果时, son或 daughter可从中取出,用wait、signal操作进行管理使这四个进程能正确地并发执行 。请写出上面的代码描述。

    • 2

      【1】桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步

    • 3

      桌上有一空盘,最多允许存放一个水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。 试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。

    • 4

      桌子上有一个可以装N个水果的果盘,爸爸往盘子中放水果(苹果或桔子),儿子从盘子中拿桔子,女儿从盘子中拿苹果,同一时间只能有一个人对水果盘进行操作。 现在有3个进程,dad,daughter,son,使用信号量empty=N,orange=0,apple=0,mutex=1 请用wait(empty), signal(empty) ,wait(orange) 等语句填空; 不要填分号,只填信号量操作即可 Dad(){ while(1){ [填空1] [填空2] //果盘互斥 将水果放入盘子; [填空3] if(放入的是桔子) [填空4] ; else [填空5] ; } } Son(){ while(1){ [填空6] ; [填空7] ; 从盘子中取桔子; [填空8]; [填空9] ; 吃桔子 } } Daughter(){ while(1){ [填空10] ; [填空11]; 从盘子中取苹果; [填空12]; [填空13]; 吃苹果 } }