6.1 I/O设备
输入输出系统是连接CPU和I/O设备的子系统,负责的是用户如何将所需的信息(文字、图表、声音、视频等)通过不同的外设输入到计算机中,以及计算机内部处理的结果信息如何通过相应的外设输出给用户。I/O设备的复杂性都隐藏在操作系统和I/O接口中。
从交互方式来分,外设分为:人-机交互设备、机器可读设备。
从操作功能来分,外设分为:输入/输出设备、外部存储设备。
输入输出系统:用于控制外设与主存、外设与CPU之间进行数据交换的软、硬件系统
I/O硬件:I/O设备和I/O接口。
I/O设备:计算机系统与人或者它机之间进行信息交换的装置。
I/O接口:I/O设备与主机之间的传送信息的“桥梁”。
I/O软件:I/O任务要有专用软件参与主机和外设之间的信息交换。
各种I/O设备使用不同的操作方法,由CPU直接控制不同的I/O设备,不切实际。I/O设备的数据传送速度比存储器和处理器的速度慢得多,使用高速的系统总线与慢速的I/O设备直接连接,不切实际。I/O设备经常使用与处理器不同的数据格式和字长度。因此,需要I/O接口提供服务。
I/O接口是I/O设备与I/O控制器之间的连接器,主要负责屏蔽差异,提供一致的访问界面。
I/O端口是I/O控制器中CPU能够访问到的各类寄存器。
从数据传输方式来分:串行(一次只传输1位),并行(多位一起进行传输)。
从能否连接多个设备来分:总线式(可连接多个设备),独占式(只能连接1个设备)。
从是否符合标准来分:标准接口 (通用接口),专用接口 。
按功能实现的灵活性来分:可编程接口,不可编程接口。
I/O控制器通过扩展卡或者南桥芯片与I/O总线连接,I/O总线经过北桥芯片与内存、CPU连接。
I/O端口的读写,就是向I/O设备送出命令或从设备取得状态或读/写设备数据。一个I/O控制器可能会有多个端口地址,I/O端口必须编号后,CPU才能访问。I/O设备的寻址方式就是I/O端口的编址方式。
(1) 统一编址方式:与主存统一编址,将主存空间分出一部分地址给I/O端口进行编号。
与访存指令一致的存/取指令,便于扩大系统吞吐率,外设或I/O寄存器数目几乎不受限制,读写控制逻辑简单。但是主存空间减少,外设寻址时间长。
(2) 独立编址方式:单独编号,成为独立的I/O地址空间。
I/O端口地址不占用存储器地址空间,故主存空间不受I/O地址的影响;I/O地址线较少,所以I/O端口译码简单,寻址速度快;使用专用I/O指令。但是程序设计灵活性差,增加了控制逻辑的复杂性和处理器引脚数。
注:《计算机原理》主要从硬件角度讨论I/O控制。
从软件角度讨论I/O控制是操作系统的主要内容——五大管理:作业、进程、存储、文件、设备
现代计算机系统中,用户程序和数据、操作系统自身的程序和数据,甚至各种输入输出设备,都是以文件形式出现。
文件是对存储设备的一种抽象,用户“按名取存”,无需知道这些文件究竟存放在什么地方。
文件管理:就是操作系统中实现文件统一管理的一组软件,负责文件的存储、检索、共享和保护。
设备管理:负责缓存管理、设备分配与处理、设备独立性和虚拟设备,追求设备的综合效率。
OS的职责由I/O系统的三个特性决定:
1、I/O系统被处理器执行的多个程序共享,由OS统一调度管理
2、I/O系统通常使用外部中断来要求处理器执行专门的输入/出程序。中断导致向内核态转移,故必须由OS来处理
3、I/O设备控制细节复杂,不能由上层用户程序来实现,需OS提供专门驱动程序
OS在I/O中必须提供的功能:
1、保证用户程序只能访问I/O设备中用户有权访问的那一部分。例如,用户程序不能读写没有授权的文件。
2、为用户程序提供设备的驱动程序,以屏蔽设备控制的细节
3、处理外部I/O设备产生的中断,提供中断服务程序
4、对共享的I/O资源提供合理的调度,使系统的吞吐率达到最佳
OS必须和I/O设备进行以下三类通信,并且阻止用户程序直接和I/O设备通信:
1、OS必须能给I/O设备提供命令,如:磁盘寻道
2、需要知道何时I/O设备完成操作?何时遇到什么异常情况?
3、数据必须能在主机(内存或CPU)和I/O设备之间进行传输
——学完这章就可以开始思考这些问题了,然后对比操作系统可以理解得更加深刻。
6.2 磁盘存储器
——磁记录原理不会考,这里仅讨论性能指标和计算。
信息以按盘片、柱面、磁道和扇区记录在磁表面上,每个盘面被划分成多个同心圆,称之为磁道。每个磁道都有一个编号,最外面的是0磁道。盘片组中所有盘面半径相同的磁道集合构