【正确答案】
B
【答案解析】基本的设备分配程序。
通过一个具有I/O通道的系统的例子来介绍设备分配过程。当某进程提出I/O请求后,系统的设备分配程序可按下述步骤进行设备分配。
(1)分配设备
首先根据I/O请求中的物理设备名,查找系统设备表(SDT),从中找出该设备的设备控制表(Device Control Table,DCT),再根据DCT中的设备状态字段,可知该设备是否正忙。若忙,便将请求I/O的进程的PCB挂在设备等待队列上;否则,便按照一定的算法来计算本次设备分配的安全性。如果不会导致系统进入不安全状态,便将设备分配给请求进程;否则,仍将其PCB插入设备等待队列。
(2)分配控制器
在系统把设备分配给请求I/O的进程后,再到其DCT中找出与该设备连接的控制器控制表(Controller Control Table,COCT),从COCT的状态字段中可知该控制是否忙碌。若忙,便将请求I/O进程的PCB挂在该控制器的等待队列上;否则,便将该控制器分配给进程。
(3)分配通道
在该COCT中又可以找到与该控制器连接通道的通道控制表(Channel Control Table,CHCT),再根据CHCT内的状态信息,可知该通道是否忙碌。若忙,便将请求I/O的进程挂在该通道的等待队列上;否则,将该通道分配进程。只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功,然后便可启动该I/O设备进行数据传送。