从读卡机上读进 N 张卡片,复制并打印。要求复制的信息、打印 |
您所在的位置:网站首页 › sai卡机 › 从读卡机上读进 N 张卡片,复制并打印。要求复制的信息、打印 |
答 : 设互斥信号量 S1,S2 初值为 1 ,分别用于对 buffer1 和 buffer2 的互斥访问;同步信号量 Sn1,Sn2 初值为 1 ,分别表示 buffer1 和 buffer2 初始状态为空闲,可以放一张卡片信息;同步信号量 Sm1,Sm2 初值为 0 ,分别表示 buffer1 和 buffer2 中的信息还没有(或已被取用了)。用 P , V 操作完成这 3 个并发进程间能正确运行的程序如下: BEGIN S1,S2,Sn1,Sn2,Sm1,Sm2:semaphore; S1=S2=1; Sn1=Sn2=1; Sm1=Sm2=0; Cobegin Process produce get Begin L1: 从读卡机读进一张卡片信息; P(Sn1); P(S1); 将信息放入 buffer1; V(Sm1); V(S1); Goto L1 End Process produce copy Begin L2: P(Sm1); P ( S1 ); 从 buffer1 复制信息; V ( Sn1 ) ; V(S1); P(Sn2); P(S2); 将复制的信息放入 buffer2; V(Sm2); V(S2); Goto L2 End Process produce put Begin L3: P(Sm2); P(S2); 从 buffer2 取信息; V(Sn2); V(S2); 把信息从打印机输出; Goto L3 End Coend; END |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |