1.设备管理的目标
设备的种类繁多,而其物理特性和使用方式各不相同,所以设备管理这一部分在整个操作系统中占很大比重。设备管理要达到的目标主要有以下几点。
①使用方便。系统应向用户提供使用方便的界面,使用户摆脱具体设备的物理特性,按照统一的规则使用设备。简单的I/O程序至少也需要几百条指令,由操作系统负责I/O工作,用户就从这种繁杂琐碎的事务中解放出来了。用户只需把要打印的文件拖放到打印机图标上就能进行打印,而不用管打印机的具体操作,这样大大方便了用户的使用。
②与设备无关,也称作设备独立性。也就是说,用户程序应与实际使用的物理设备无关,由操作系统考虑因实际设备不同而需要使用不同的设备驱动程序等问题。这样,用户程序的运行就不依赖于特定设备是否完好、是否空闲,而是由系统合理地进行分配,不论实际使用哪一台同类设备,程序都应正确执行。此外,还要保证用户程序可在不同设备类型的计算机系统中运行,不致因设备型号的变化而影响程序的工作。
在已经实现设备独立性的系统中,用户编写程序时一般不再使用物理设备,而是使用虚拟设备,由操作系统实现虚、实对应。例如,在UNIX系统中,设备作为特殊文件,与其他普通文件一样由文件系统统一管理,从而使用户能像使用普通文件那样使用各种设备,用户具体使用的物理设备由系统统一管理。
③效率高。为了提高设备的使用效率,除合理地分配各种设备外,还要尽量提高外设和CPU以及外设之间的并行性,往往采用通道和缓冲技术。另外,还要均衡系统中各设备的负载,最大限度地发挥所有设备的潜力。
④管理统一。在设计上,对各种设备尽可能采用统一的管理方法,使得设备管理系统简练、可靠且易于维护。(www.xing528.com)
2.设备管理的功能
为了实现上述目标,操作系统的设备管理要具有以下功能。
(1)监视设备状态。一个计算机系统中存在着许多设备、控制器和通道,在系统运行期间它们完成各自的工作,并处于各种不同的状态。例如,系统内共有3台打印机,其中一台正在进行打印,一台出现故障,另一台空闲。系统要知道三台打印机的情况,当有打印请求时就能进行合理的分配——把空闲的打印机分出去。所以,设备管理的功能之一就是记住所有设备、控制器和通道的状态,以便有效地管理、调度和使用它们。
(2)进行设备分配。按照设备的类型(是独占的、可共享的还是虚拟的)和系统中所采用的分配算法,实施设备分配,即决定把一台I/O设备分给谁——要求该类设备的进程,并把使用权交给它。在大、中型系统中,还应分配相应的控制器和通道,以保证I/O设备CPU之间有传送信息的通路。如果一个进程没有分到所需的设备、控制器或通道,那么它就进入相应的等待队列。完成这一功能的程序称为设备分配程序(或I/O调度程序)。
(3)完成I/O操作。通常完成这一部分功能的程序叫作设备驱动程序。在设置有通道的系统中,应根据用户提出的I/O要求,构成相应的通道程序。通道程序由通道指令构成,实现简单的I/O控制和操作。通道程序由通道去执行。总之,系统按照用户的要求调用具体的设备驱动程序,启动相应的设备,进行I/O操作,并且处理来自设备的中断。操作系统中每类设备都有自己的设备驱动程序。
(4)缓冲管理与地址转换。为了使计算机系统中各个部分充分并行,不致因等待外设的I/O而妨碍CPU的计算工作,以及减少中断次数,大多数I/O操作都涉及缓冲区,因此,系统应对缓冲区进行管理。此外,用户程序应与实际使用的物理设备无关,这就需要将用户在程序中使用的逻辑设备转换成物理设备的地址。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。