一个SPOOLing系统由输入进程I、用户进程P、输出进程O、输入缓冲区、输出缓冲区组成。进程I通过输入缓冲区为进程P输入数据,进程P的处理结果通过输出缓冲区交给进程0输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPO

admin2019-08-01  32

问题 一个SPOOLing系统由输入进程I、用户进程P、输出进程O、输入缓冲区、输出缓冲区组成。进程I通过输入缓冲区为进程P输入数据,进程P的处理结果通过输出缓冲区交给进程0输出。进程间数据交换以等长度的数据块为单位,这些数据块均存储在同一个磁盘上,因此,SPOOLing系统的数据块通信原语保证始终满足:i+o()max。其中,max为磁盘容量(以该数据块为单位),i为磁盘上输入数据块总数,o为磁盘上输出数据总数。
    该SPOOLing系统运行时:
    (1)只要有输入数据,进程I终究会将它放入输入缓冲区;
    (2)只要输入缓冲区有数据块,进程P终究会输入、处理并产生结果数据写到输出缓冲区;
    (3)只要输出缓冲区有数据块,进程0终究会输出它。
    请说明该SPOOLing系统在什么情况下死锁,并说明如何修正约束条件(1)避免死锁,同时仍允许输入数据块和输出数据块存储在同一个磁盘上。

选项

答案(1)i+o≤max (2)当i=max,P的输出数据无处存放,i的输入数据占满磁盘时,死锁。 (3)应该增加约束:i+o≤max,使得输出数据块的长度o>0。

解析
转载请注明原文地址:https://jikaoti.com/ti/cWGjFFFM
0

最新回复(0)