操作系统习题-全部
end
W0: begin
wait ( full2 );
从B中取出数据;
signal ( empty );
打印;
end
W1: begin
wait ( full1);
从B中取出数据;
signal ( empty );
打印;
end
parend
end
什么是进程?什么是线程?线程与进程有什么关系?
答:进程是程序关于某个数据集的一次运行,
一个程序多次运行可以形成多个进程。
线程是系统处理机调度的单元,是进程为了争夺处理机而产生
一个进程至少有一个主线程,随着业务的需要,它可以创建多个线程,它们是进程的多个线程,共享进程的资源,但替进程争取处理机
信号量一般是由哪些成员组成的?它的值表示什么含义?
组成:一个整数:表示资源量的数目
一个队列:存放等待资源而阻塞的进程队列的队首
假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。
进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。
要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。
请用wait和signal原语写出它们的并发程序。
解:
SR—B1为空可以写入,SM—B1有内容可读,SM2—B2为空可写入,SP—B2有内容可读
begin SR,SM1,SM2,SP:semaphore;
B1,B2:record;
SR:=1;SM1:=0;SM2:=1;SP:=0
Cobegin
process read (3分)
X:record;
begin R: (接收来自输入设备上一个记录)
X:=接收的一个记录;
wait(SR);