1 I/O 管理的概念
1.1 引言
计算机外部设备
在计算机系统中除CPU和内存储外所有的设备和装置称为计算机外部设备(外围设备、I/O设备)。
存储设备:用来存放各种信息的设备称为存储设备,例如,软盘、硬盘、光盘和磁带等;
I/O设备:用来向计算机输入和输出信息的设备,如键盘、鼠标、显示器、打印机等。
在现代计算机系统中有些设备既可以做存储设备,也可以做I/O设备,例如,软盘、硬盘等。
I/O管理就是设备管理,它是操作系统的一个重要的组成部分,负责管理系统中所有的外部设备。
计算机外部设备种类繁多,特性各异。
主要表现在以下几个方面:
1.速度
不同的外部设备的传输速度的差别相当大,如键盘的传输速度不过几十,上百个字符,而磁盘的传输速度则是60万字节/每秒。
2.传输单位
有的设备的传输单位是字节,如键盘、打印机、显示器;
有的传输单位是字符块,如软盘、硬盘、磁带等;
有的传输单位是位,如个人计算机中的Serial Port(s) COM1、COM2
3.容许的操作(操作特性)
设备完成的操作种类各不相同,如打印机只允许写操作,键盘只能做读操作,而磁盘既可读,也可写。
4.出错条件
不同的设备,其出错条件也不相同,即数据传输失败的原因各种各样,如打印机有缺纸错,磁盘I/O有奇偶校验错等。
1.2 设计目标
1.字符代码的独立性 现在使用的ASCII码(美国信息交换标准码)
2.设备独立性
3.效率
4.设备处理的一致性
1.3 I/O管理功能
1.状态跟踪
设备控制块是存放设备管理和控制信息的数据结构。
系统要掌握设备的状态。
2.设备存取
实现对设备的存取操作
3.设备分配
在多用户的环境下,负责设备的分配和回收。
4.设备控制
设备控制包括设备的驱动、完成和故障中断处理。
1.4 设备独立性
一、设备独立性的概念
设备独立性是指用户在编程序时所使用的设备与实际设备无关。
两类设备独立性:
1.一个程序应独立于分配给它的某类设备的具体设备。即在用户程序中只指明I/O使用的设备类型即可。如在系统中配备了两台打印机,用户要打印时只要告诉系统要将信息送到打印机即可。
2.程序要尽可能地与它使用的设备类型无关。即在用户程序中只要指出要输入或输出信息,至如信息I/O使用的设备不需用户指明。
二、设备独立性的实现
在UNIX系统中,把设备与文件统一处理,这比前两种设备独立性又进了一步,对于用户来说,就没有设备的概念。
三、设备独立性的优点
1.方便用户编程
2.使用程序运行不受具体的机器环境的限制,如UNIX系统环境下,系统提供标准输入和输出,在用户程序中的输入输出都使用这两个标准的I/O,实际运行时,根据具体情况而定。
如果配备打印机,则将输出信息送到打印机打印,如果没有配备打印机,就把输出重定向到某个指定文件,把要打印的信息送到该文件中。
3.便于程序移植
1.5 设备控制块
一、设备控制块
设备控制块是设备管理的数据结构,用来存放设备的管理和控制信息,每类设备有一个设备控制块。
二、设备转换表(设备开关表)
设备开关表存放设备驱动和控制程序入口地址。