电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

八 真经之管道通信问题(西北工大2000)


发布日期:2022/7/11
 

八 真经之管道通信问题(西北工大

在管道通信机制中用信号量描述读进程和写进程访问管道文件的过程假设管道文件大小为KB

问题分析

UNIX系统中利用一个打开的共享文件来连接两个相互通信的进程这个共享文件叫管道作为管道输入的发送进程以字符流的形式将信息送入管道而作为管道输出的接收进程从管道中获取信息管道通信机制要提供三方面的协调能力()互斥.当一个进程对管道进行读/写操作时另一个进程必须等待()同步当写进程把数据写入管道后便去睡眠等待直到输出进程取走数据后唤醒它若一次写入的数据超过缓沖区剩余空间的大小当缓沖区满时写进程必须阻塞并唤醒读进程()对方是否存在只有确定对方存在时才能够进行通信本题只需要考虑互斥同步问题由于只有一对进程访问管道因此不需要设置互斥信号量只要设置两个同步信号量emptyfull分别表示管道可写和可读

The PV code Using Pascal

begin

pipe:array[]of kilobytes;

ts=lengthin=out=:integer;

emptyfull:semaphore=;

cobegin

process PipeWriter

begin

repeat;

产生数据

p(empty);

length=data length;

while(length> and ts>)

begin

pipe[in]=data of KB;

in=(in+)mod n;

ts=ts;

length=length;

end

v(full);

end

process Consumer

begin

repeat;

p(full);

从缓沖区取出一件物品;

out=(out+)mod n;

ts=ts+;

v(empty);

end

coend

end

返回《操作系统之PV金典》

上一篇:自考知识点总汇之---操作系统(存储管理)

下一篇:操作系统概论模拟试题一答案