第五章
5.1 I/O硬件组成原理
5.1.1 I/O设备
- I/O设备大致可以分为两类:块设备和字符设备
块设备把信息存储在固定大小的块中,每个块都有自己的地址。通常块的大小在512字节至32768字节之间。块设备的基本特征是每个块都能独立于其他块而读写。磁盘是典型的块设备
字符设备以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有任何寻址操作。打印机、网络接口、鼠标,以及大多数与磁盘不同的设备都可看作是字符设备。
- 这种分类方法并不完美,有些设备就没有包括进去。例如,时钟既不是块可寻址的,也不产生或接收字符流。
5.1.2 设备控制器
- I/O设备一般由机械部件和电子部件两部分组成。
电子部件称作设备控制器或适配器。
机械部件则是设备本身。
- 控制器的任务是把串行的位流转换为字节块
5.1.3 内存映射I/O
- 每个控制器有几个寄存器用来与CPU进行通信。
- 内存映射I/O:用来解决CPU与设备的控制寄存器和数据缓冲区进行通信。
它将所有的控制寄存器映射到内存空间中,每个控制寄存器被分配唯一的一个内存地址,并且不会有内存被分配这一地址。
5.1.4 直接存储器存取(Directory Memory Access ,DMA)
- 无论一个CPU是否具有内存映射I/O,他都需要寻址设备控制器以便与他们交换数据。
- 只有硬件具有DMA控制器时操作系统才能使用DMA,而大多数系统都有DMA控制器。
5.2 I/O软件原理
5.2.1 I/O软件的目标
- 在设计I/O软件时一个关键的概念被认为是设备独立性。
- 与设备独立性密切相关的是统一命名。
- I/O软件的另一个重要问题是错误处理。
- 另一个关键问题是同步(即阻塞)和异步(即中断驱动)传输。
- I/O的另一个问题是缓冲。
5.2.2 I/O的三种不同实现方式
- 程序控制I/O
- 中断驱动I/O
- 使用DMA的I/O
5.3 I/O软件层次
5.4 盘
5.4.1 盘的硬件
- 盘具有多种多样的类型。最为常用的是磁盘(硬盘和软盘)。
磁盘
RAID
CD-ROM
可刻录CD
可重写CD
DVD
5.5 时钟
- 时钟,又称为定时器,由于各种各样的原因决定了它对于任何多道程序设计系统的操作都是至关重要的。
5.6 面向字符的终端
- 每台通用计算机至少都配有一个键盘和一个显示器用来与之通信。
- 终端可能会有多种形式,目前在实践中最为普遍遇到的三种类型是:
(1)为在大型机上使用的具有RS-232串行接口的独立的终端
(2)具有图形用户界面的个人计算机显示器
(3)网络终端