首页 理论教育 计算机操作系统中的设备分配

计算机操作系统中的设备分配

时间:2023-11-06 理论教育 版权反馈
【摘要】:由于在多道程序环境中,系统中的设备供所有进程共享,而I/O设备是有限的,为防止多个进程对设备的无序竞争,特规定系统设备不允许用户自行使用,必须由系统统一分配。进程必须先向系统提出I/O申请,然后由设备分配程序,便按照相应的分配算法进行资源分配。当有多个进程对同一设备提出I/O请求时,根据按照进程提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程。

计算机操作系统中的设备分配

前面所讨论的I/O控制方式,以及中断技术、缓冲管理都是在以下条件成立的情况下进行的:每个准备传送数据的进程都已经申请到了它所需要的外设、控制器和通道。由于在多道程序环境中,系统中的设备供所有进程共享,而I/O设备是有限的,为防止多个进程对设备的无序竞争,特规定系统设备不允许用户自行使用,必须由系统统一分配。进程必须先向系统提出I/O申请,然后由设备分配程序,便按照相应的分配算法进行资源分配。如果申请进程得不到它所申请的资源时,将被发入资源等待队列中等待,直到所需要的资源被释放。为了实现设备分配,必须在系统中设置相应的数据结构和设备分配算法。

6.5.1 设备分配用数据结构

设备的分配和管理通过下列数据结构进行,各数据结构如图6-13所示。

图6-13 设备分配数据结构

1.设备控制表(device control table,DCT)

系统为每一个设备都配置了一张设备控制表,用于记录本设备的特性、设备与I/O控制器的连接情况,包括设备标识、使用状态和等待使用该设备的进程队列等,DCT表在系统生成时或在该设备与系统连接时创建,且表中的内容根据系统执行情况被动态地修改。DCT表包括以下内容:

(1)设备类型。反映设备的特性,例如是字符设备、块设备或是终端设备。

(2)设备标识。用来区别设备。

(3)设备状态。反映设备处于工作中还是空闲,若与该设备相连接的控制器或通道正忙,也不能启动该设备,也应将设备的状态标志置为忙状态。

(4)指向控制器表的指针。该指针指向该设备所连接的控制器的控制表。若在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接,此时DCT中应设置多个控制器表指针,指向每一个控制器表。

(5)重复执行次数。由于外部设备在传送数据时,较易发生数据传送错误,因此在许多系统中,如果发生传送错误,并不立即认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生错误时应重复执行的次数,在重复执行时,若能恢复正常传送,则仍认为传送成功,仅当重复执行次数达到规定值而传送仍不成功时,才认为传送失败。

(6)设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都会按照一定的策略排成一个队列,该队列为设备请求队列(设备队列)。其队首指针指向队首PCB,在有的系统中还设置了队尾指针。(www.xing528.com)

2.系统设备表(system devic table,SDT)

系统设备表为整个系统一张,记录了系统中全部设备的情况,每个设备占一个表项,每个表项包括有设备类型、设备标识符、设备控制表指针及设备驱动程序的入口等。

3.控制器控制表(controller control table,COCT)

系统为每一个控制器设置了一张用于记录本控制器情况的控制器控制表,它反映了I/O控制器的使用状态以及和通道的连接情况。在DMA方式时,通道的连接情况项无须设置。

4.通道控制表(channel control table,CHCT)

该表只在通道控制方式的系统中存在,每个通道都有一张表。

6.5.2 设备分配原则

设备分配的原则是既要充分发挥设备的使用效率,尽可能让设备忙,但又要避免因不合理分配方法造成的进程死锁;另外还要做到把用户程序和具体的物理设备隔离开来,即用户程序面对的是逻辑设备,而设备分配程序将在系统把逻辑设备转换成物理设备后,再根据分配算法将用户要求的物理设备进行分配。

6.5.3 设备分配算法

对设备进行分配的算法,与进程调度的算法有相似之处,常用的算法有以下两种:

(1)先请求先分配。当有多个进程对同一设备提出I/O请求时,根据按照进程提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程。

(2)优先级高者先分配。这种策略与进程调度中的优先权高的进程优先获得处理方法一样。即优先权高的进程所提出的I/O请求优先予以满足,而对于优先级相同的I/O请求则按先来先服务原则排队。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈