早教吧 育儿知识 作业答案 考试题库 百科 知识分享

操作系统习题求解有三个进程PA,PB,PC合作解决文件打印问题,PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录,PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录,PC将缓冲

题目详情
操作系统习题求解
有三个进程PA,PB,PC合作解决文件打印问题,PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录,PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录,PC将缓冲区2的内容打印出来,每执行一次打印一个记录,缓冲区的大小等于一个记录大小,请用P,V原语操作来描述文件的正确打印.(编程题)
▼优质解答
答案和解析
semaphore empty1,full1,empty2,full2;
empty1=empty2=1;full1=full2=0;
parbegin
process PA{
while(1){
从输入设备上读信息;
P(empty1);
将读入的信息放入B1;
V(full1);
}
}
process PB{
while(1){
P(full1);
从B1中取出一缓冲区内容;
V(empty1);
P(empty2);
将B1中的内容复制到B2;
V(full2);
}
}
process PC{
while(1){
P(full2);
从B2中取出内容;
V(empty2);
打印内容;
}
}
parend