计算机系统的输入输出设备种类、型号、规格繁多,所以必须屏蔽设备的物理特性,向用户提供一个统一、简便的使用接口,实现所谓的与设备无关性(设备独立性)。
所谓方便,是指用户能摆脱具体物理设备的繁琐规定的束缚而方便灵活地使用设备。
所谓统一,是指对各种不同的设备都使用同一界面。例如,在UNIX系统中从各种输入设备输入信息都使用系统调用read,向各种输出设备传送信息都使用系统调用write.
一、设备独立性:用户在编制程序时使用的设备与实际使用的设备无关,用户程序中使用的是逻辑设备。
物理设备名:系统提供的设备标准名称(绝对号)
逻辑设备名:用户自己指定的设备名(设备类·相对号)
逻辑设备名到物理设备名的转换
在应用程序中,用逻辑设备名使用设备虽然方便了用户,但系统却只识别物理设备名,因此在实际执行时,还必须使用物理设备名。为此,在系统中必须具有将逻辑设备名称转换为某物理设备名称的功能。
二、设备独立性的类型
1、一个程序应该独立于分配给它的某种类型的具体设备。
1)保护程序不会因为某一台物理设备发生故障或已分配给其它程序而失效;
2)使操作系统根据当时总的设备配置情况自由地分配适当类型的设备。
2、一个程序应该尽可能与它所使用的I/O设备类型无关。
指在I/O信息时,可以从不同类型的设备上I/O,若要改变设备的类型,程序只需做很少的修改。
实现设备无关性的一个好办法就是采用分层思想,逐层抽象。
三、设备管理的分层
1)输入输出控制系统(与设备无关的软件)
它与用户相互交互,完成设备的分配、调度并向程序员提供一个统一的编程接口,实现了逻辑设备向物理设备的转换。
2)设备驱动程序
它直接与设备打交道,控制设备控制器,完成具体的输入输出。