桌子上有一只盘子 每次只能放入一只水果 父亲专向盘子中放苹果 母亲专向盘子中放桔子 一个儿子专等吃桔子 一个女儿专等吃苹果。只要盘子中空 则父亲或母亲可向盘子中放一只水果 仅当盘子中有自己需要的水果时 儿子或女儿可从盘子中取出。将父亲 母亲 儿子 女儿看做四个进程 用PV操作进行管理使这四个进程能正确地并发执行。

继续教育 盘子,专向,儿子 已帮助 人

请帮忙给出正确答案和分析,谢谢!

热搜:一度电可供一只50瓦的灯泡照明几小时呢

答案解析

难度★★☆ 搜索
  • 参考答案:定义信号量:S:表示是否可以向盘子中存放水果,初值为1,表示可以向盘中放一只水果。SP:表示盘子中是否有苹果,初值为0,表示无苹果。SO:表示盘子中是否有桔子,初值为0,表示无桔子。
    Begin
    B:integer;
    S,SO,SP:semaphore;
    S:=1; SO:=0; SP=0;
    Cobegin
    Process father
    begin
    Ll: have an apple;
    P(S);
    put an apple;
    V(SP);
    go to L1
    end;
    Process mother
    begin
    L2: have an orange;
    P(S);
    put an orange;
    V(SO);
    go to L2
    end;
    Process son
    begin
    L3: P(SO);
    get an orange;
    V(S);
    eat an orange;
    go to L3
    end;
    Process daught
    begin
    L2: P(SP);
    get an apple;
    V(S);
    eat an apple
    go to L4
    end;
    Coend;
    End;