|
五、设备管理
1.引言
在计算机系统中,除了处理器和主存之外,其他的大部分硬设备种类繁多,特性各异,操作方式的差异很大,从而使操作系统的设备管理变得十分繁杂。
(1)设备的类型20世纪80年代以来,由于个人计算机、网络的发展,外部设备更趋多样化、复杂化和智能化。例如网卡、仿真终端、虚拟终端、Windows终端和X-Windows终端。为简化设备管理程序,常对设备进行分类:①按数据组织方式:字符设备(常对应于慢速设备)和块设备(常对应于快速设备)。②按资源性能性质:独占设备(如终端、打印机),共享设备(如磁盘),虚拟设备(采用某种技术,将高速设备如磁盘虚拟化为多个“高速”读卡机和打印机,以提高系统效率,这也称为spoolˉing(假脱机)技术。
(2)设备管理的功能设备管理是对计算机输入/输出系统的管理,其主要任务是:实现对外部设备的分配和回收;启动外部设备;控制输入/输出设备与处理器或主存之间交换数据;实现对磁盘的调度;处理设备的中断,实现虚拟设备等。
(3)数据传输控制方式外部设备和主存之间常用的传输控制方式有4种:
①程序控制方式。处理器启动数据传输,然后等设备完成。程序控制方式不能实现并发。
②中断方式。中断方式的数据传输过程是这样的,进程启动数据传输(如读)后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请求,中断处理程序对数据传输工作处理以后,让相应进程成为就绪状态。以后,该进程就可以得到所需要的数据。
③直接存储访问(DMA)方式。其基本思想是外部设备和主存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器之外,DMA控制器中还包括传输字节计数器、主存地址寄存器等。DMA方式采用窃取(或挪用)处理器的工作周期和控制总线而实现辅助存储器和主存之间的数据交换。有的DMA方式也采用总线浮起方式传输大批量数据。
④设备连接现代计算机系统,系统对外部设备的控制常分为3个层次,即通道、控制器和设备。控制设备的软件分为与设备有关的和与设备无关的两大类。前者与具体的设备类型有关,设备驱动程序就是与设备有关的;与设备无关的软件主要用于在用户一级提供统一的接口,包括处理控制器的公共部分。需要处理的内容包括:为设备驱动程序提供统一的接口、设备命名、设备分配与回收、错误报告、块设备空间管理、缓冲管理等等。
(4)组块与缓冲通常高速外设的输入输出操作是以块为单位的,如磁盘块的大小是固定的。所谓块,又称为物理记录,是实际从设备读取或写到设备上的信息单位。相应的逻辑记录是从用户观点考察的一个信息单位。为了提高辅助存储器尤其是磁带的利用率,一般由若干逻辑记录组成一个物理记录,这称为组块技术。缓冲是一种暂存技术。它利用某个存储设备,在数据的传输过程中进行暂时的存储。缓冲技术的引入,有效地改善了处理器与输入输出设备之间速度不匹配的情况,也减少了设备的中断请求次数。缓冲技术可以采用硬件缓冲和软件缓冲两种。硬件缓冲是利用专门的硬件寄存器作为缓冲区;软件缓冲是利用操作系统的管理,用主存中的一个或多个区域作为缓冲区,进而可以形成缓冲池。
(5)虚设备采用假脱机技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备。假脱机简称spooling,是利用多道程序技术,采用一组程序或进程模拟一台输入输出处理机,脱机输出是使用虚设备技术的典型例子。在现代计算机系统中,每个窗口可以用一台设备来模拟自身,如常见的多窗口技术,即在一个终端上开多个窗口,每个窗口可以独立地进行显示,以监视用户不同任务的执行情况,这是通过缩小显示区域、平铺或重叠显示来模拟多个显示器的。
2.设备的分配
设备分配的原则是按照设备特性和用户要求来决定的。设备分配的目的是既要充分发挥设备的使用效率,尽可能地让设备忙;又要避免形成死锁;另外,还要做到设备的独立性,即用户程序面对的是逻辑设备,分配程序将在系统中把逻辑设备转换成物理设备之后,再根据要求的物理设备状态进行分配。设备分配有两种方法,即静态分配方法和动态分配方法。静态分配方法是在用户作业开始执行之前,系统一次分配该作业所需求的全部设备、控制器和通道,一旦分配之后,这些设备、控制器和通道就一直为该作业所占有,直到该作业终止而撤消。显然,设备的使用效率低。动态分配在进程运行过程中根据运行的需要而进行。当进程需要设备时,通过系统调用命令申请设备,由系统按照设定的策略分配相应的设备、控制器和通道给进程,一旦用完以后,便立即释放。动态分配方法有利于提高设备的利用率,但如果分配算法选用不当,有可能产生死锁。 3.磁盘调度算法
设备的动态分配算法与进程调度相似,也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配等策略。在多道程序系统中,低效率通常是由于磁盘类旋转设备使用不当造成的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。这时,对众多的访问要求按一定的次序响应,会直接影响磁盘的工作效率,进而影响系统的性能。访问磁盘的时间因子由3部分构成,它们是查找(查找磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。①先来先服务(FCFS)调度:按先来后到次序服务,未作优化。②最短查找时间优先(SSTF)调度:FCFS会引起读写头在盘面上的大范围移动,SSTF查找距离磁头最短(也就是查找时间最短)的请求作为下一次服务的对象。SSTF查找模式有高度局部化的倾向,会推迟一些请求的服务,甚至引起无限拖延(又称饥饿)。③SCAN调度:又称电梯算法,SCAN算法是磁头前进方向上的最短查找时间优先算法,它排除了磁头在盘面局部位置上的往复移动,SCAN算法在很大程度上消除了SSTF算法的不公平性,但仍有利于对中间磁道的请求。
共17页: 上一页 [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 下一页
|