操作系统进程编写

只有一个盘子,盘子里只能放一个水果.父亲只往里放苹果,母亲只往里放橘子,儿子只吃苹果,女儿只吃橘子,请写出这个进程... 只有一个盘子,盘子里只能放一个水果.父亲只往里放苹果,母亲只往里放橘子,儿子只吃苹果,女儿只吃橘子,请写出这个进程 展开
 我来答
涵宝贝blue
2009-03-17
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
解:在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步描述如下:

int S=1;

int Sa=0;

int So=0;

main()

{

cobegin

father(); /*父亲进程*/

son(); /*儿子进程*/

daughter(); /*女儿进程*/

coend

}

father()

{

while(1)

{

P(S);

将水果放入盘中;

if(放入的是桔子)V(So);

else V(Sa);

}

}

son()

{

while(1)

{

P(So);

从盘中取出桔子;

V(S);

吃桔子;

}

}

daughter()

{

while(1)

{

P(Sa);

从盘中取出苹果;

V(S);

吃苹果;

}

}

思考题:

四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:

(1)应定义的信号量及初值: 。

(2)在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:

A() B() C() D()

{ { { {

[1]; [3]; [5]; [7];

read F; read F; read F; read F;

[2]; [4]; [6]; [8];

} } } }

思考题解答:

(1)定义二个信号量S1、S2,初值均为1,即:S1=1,S2=1。其中进程A和C使用信号量S1,进程B和D使用信号量S2。

(2)从[1]到[8]分别为:P(S1) V(S1) P(S2) V(S2) P(S1) V(S1) P(S2) V(S2)
怡神养性
2009-03-12 · TA获得超过858个赞
知道小有建树答主
回答量:601
采纳率:50%
帮助的人:519万
展开全部
没看懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式