1.设备独立性概念
为了便于用户作业及相应进程在运行期间利用各类设备I/O,管理程序应能屏蔽设备的物理特性,为用户建立虚环境。现代操作系统一般采用“设备独立性”的概念。
所谓设备独立性是指用户在编制程序时所使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名。逻辑设备名是用户自己指定的设备名(或设备号),它是暂时的、可更改的。而物理设备名是系统提供的设备的标准名称,它是永久的、不可更改的。虽然程序在实际执行中必须使用实际的物理设备,就好像程序在主存中一定要使用物理地址一样,但在用户程序中则应避免使用实际的物理名,而采用逻辑设备名。这样做的道理就和用户程序中要使用逻辑地址而不使用物理地址的道理一样。设备管理的任务之一就是把逻辑设备名转换成物理设备名。
设备独立性有两种类型。
(1)一个程序应该独立于分配给它的某种类型的具体设备。例如,一盘磁带装在哪一台磁带机上;或者选用哪一台行式打印机来输出程序是无关紧要的。这种类型的设备独立性既保护了程序不会单单因为某一台物理设备发生故障或已分配给其他程序而失效,又能使操作系统根据当时总的设备配置情况自由地分配适当类型的设备。
(2)程序应尽可能与它所使用的I/O设备类型无关。这种性质的设备独立性是指在输入信息(或输出信息)时,信息可以从不同类型的输入设备(或输出设备)上输入(或输出),若要改变输入设备(或输出设备)的类型,程序只需进行最少的修改。
2.设备独立性的实现(www.xing528.com)
由于系统提供了设备独立性的功能,从而使程序员可直接针对逻辑设备进行I/O。逻辑设备和实际设备的联系通常是由操作系统命令语言(如作业控制语言、键盘命令或程序设计语言)中提供的信息实现的。
程序设计语言通过软通道实现设备独立性。例如,用户用高级语言编程时,可以通过指定的逻辑设备名(符号名或数字)来定义一个设备(或文件),即提供从程序到特定设备(或文件)的传输线。执行这条语句实际上完成了用户指定的逻辑设备与所需的某个物理设备的连接。以后用户在程序中使用该逻辑设备进行各种I/O操作时,实际上是在一台与之相连的物理设备上进行。因此,在用户一级仅进行逻辑指派,而操作系统的I/O管理模块则需要建立逻辑设备与物理设备的连接(通过构造逻辑设备描述器),并在进程请求设备时进行设备分配和设备传输控制。
3.设备独立性的优点
逻辑设备特性是用户程序中所涉及的该类物理设备特性的抽象,这使得程序所对应的进程在执行时可利用该类设备中的任一物理设备,而不必仅限于使用具体的某一个设备。
使用逻辑设备名,不仅可以方便用户,而且对于改善资源利用率、提高系统的可扩展性和可适应性都有很大好处。例如,当某台设备坏了,只要操作系统改变分配就行了,而程序本身不必做任何修改。而且,任何两个作业都不会因为同时要同一台号的设备(而同类型的另一台设备却空着无用)而不能同时被系统接收。这样处理,设备利用率也可提高。下面举一例来说明。
假定系统拥有同类型a、b、c、d四台输入机,今有作业A申请两台输入机。如果该作业指定要使用a、b两台,那么,当其中有一台为另一作业Q所占有,或者是a、b两台中有一台坏了,虽然系统中还有c、d两台可用,且未被占用,但也不能接收作业A。这样处理是按物理设备名来分配的,造成了人为的限制。如果按逻辑设备名请求,作业A只要提出要求两台该类设备,系统就会将空闲的两台输入机分配给它。从而,作业A就可以投入运行,设备也可得到充分利用。另外,这样还可以提高系统的可适应性和可扩展性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。