操作系统第五章 设备管理(上)笔记

第五讲 设备管理(上)

5.1 I/O控制系统

5.1.1 I/O设备

1.I/O设备的类型

I/O设备分类的重要指标:
(1)设备使用特性
(2)数据传输速率
(3)数据传输单位
(4)设备共享属性

按设备的使用特性分类
(1)存储设备。如磁盘、磁带等;
特点是容量大,价格便宜。
(2)输入/输出设备。如:键盘、显示器等,可以接收用户的命令,显示命令的执行结果。

按传输速率的高低,可分为:
(1)低速设备,指传输速率仅为每秒钟几个字节至数百个字节
的一类设备。如:键盘、 鼠标器等。
(2)中速设备,指传输速率在每秒钟数千个字节至数万个字节的一类设备。如:行式打印机、激光打印机等。
(3)高速设备,指其传输速率在每秒钟数万个字节至数兆字节的一类设备。如:磁带机、 磁盘机、 光盘机等。

按信息交换的单位分类:
(1)块设备,用于存储信息,属于有结构设备。其传输速率较高;可寻址,即可随机地读/写任一块。
(2)字符设备,用于数据的输入和输出。 其基本单位是字符, 故称为字符设备。

按设备的共享属性分类:
(1)独占设备。如:打印机。
(2) 共享设备。 指在一段时间内允许多个进程同时访问的设备。如:磁盘。
(3) 虚拟设备。 指通过虚拟技术,将一台独占设备变换为若干台逻辑设备,供若干进程同时使用。如虚拟打
印机

2.设备与控制器间的接口

控制信号线:
作为由设备控制器向I/O设备发送控制信号时的通路。规定了设备将要执行的操作,如:读操作:指由设备向控制器传送数据;写操作:从控制器接收数据。
状态信号线
用于传送指示设备当前状态的信号。如:正在读;读完成等

5.1.2 设备控制器

concept:
设备控制器是CPU与I/O设备之间的接口,接收从CPU发来的命令,去控制I/O设备工作,使CPU从繁杂的设备控制事务中解脱出来。设备控制器是一个可编址的设备,可连接多个备,使每个设备地址对应一个设备。设备控制器通常做成电路卡形式,称为接口卡。如打印卡、显卡等。

1.设备控制器组成在这里插入图片描述
设备控制器与处理机的接口
共有3类信号线:数据线、地址线、控制线。
数据线通常与两类寄存器相连,
(1)数据寄存器:用于存放从设备送来的数据(输入)、或者从CPU送来的数据(输出)。
(2)控制/状态寄存器用于存放从CPU送来的控制信息,或者设备状态信息。

在控制器上可以有多个接口,一个接口可以连接一台设备。每个接口都存在数据、控制、状态三种类型的信号。
控制器中的I/O逻辑,根据处理机发来的地址信号,去选择一个设备接口。

I/O逻辑:
I/O逻辑用于实现对设备的控制。
  通过一组控制线与处理机交互,处理机利用I/O逻辑向控制器发送I/O指令;I/O逻辑对收到的命令进行译码。
  每当CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令,对所选设备进行控制。

2. 设备控制器的基本功能
1)接收和识别命令
2) 数据交换
3) 标识和报告设备的状态
4) 地址识别
5) 数据缓冲
6) 差错控制

5.1.3 I/O通道

1. I/O通道的引入

I/O通道是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。

I/O通道又与一般的处理机不同:
(1)其指令类型单一,这是由于通道硬件比较简单,所能执行的命令,主要局限于与I/O操作有关的指令;
(2)通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,通道与CPU共享内存。

2. I/O通道类型

  • 字节多路通道
  • 数组选择通道
  • 数组多路通道

5.1.4 总线系统

计算机系统中的各部件,如CPU、主存、I/O设备之间的联系,都是通过总线实现的。总线性能是用总线的时钟频率、带宽、传输速率等指标来衡量的

(1)ISA总线是为了1984年推出的80286型微机而设计的总线结构。其总线的带宽为8位,最高传输速率为2Mb/s。
(2)EISA总线是扩展ISA总线,其带宽为32位,总线的传输速率高达32Mb/s,可以连接12台外部设备。

局部总线,是指将多媒体卡、高速LAN网卡、高性能图形板等,从ISA总线上卸下来,再通过局部总线控制器,直接连接到CPU总线上,使之与高速CPU总线相匹配,而打印机、传真机、CDROM等仍挂在ISA总线上。

(1)VESA总线带宽32位,最高传输速率132M b/s。
(2) PCI总线支持64位系统,最高传输速率132Mb/s;在CPU与设备之间插入一个管理层,协调数据传输,提供一致的接口。


5.2 I/O控制方式

5.2.1程序I/O方式

 在处理机向控制器发出一条I/O指令启动输入设备输入数据时,读出状态寄存器的设备状态,将busy标志位置为1; 然后,需要不停测试busy标志位, 如果busy标志=1,表示输入未完成,处理机继续测试,直到busy标志位=0,表明输入数据已进入控制器数据寄存器中;处理机将数据寄存器中的数据取出,送入指定内存单元中。[

5.2.2中断驱动I/O方式

 在输入数据时,当设备控制器收到CPU发来的读命令后,便去控制输入设备读数据。当输入数据已进入控制器的数据寄存器时,控制器便通过控制线向CPU发送一个中断信号,CPU检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,再通过控制器与数据线将数据写入指定内存单元中。
在这里插入图片描述

5.2.3直接存储器访问DMA I/O控制方式

1. DMA控制方式的引入
① 数据传输的基本单位是数据块,即在CPU与
I/O设备之间,每次传送至少一个数据块;
② 所传送的数据是从设备直接送入内存的,或
者相反;
③ 仅在传送一个或多个数据块的开始和结束时,
才需CPU干预,整块数据的传送是在控制器的控
制下完成的。
在这里插入图片描述
2. DMA控制器的组成
在这里插入图片描述
为了实现在主机与控制器之间成块数据的直接交换, 必须在DMA控制
器中设置如下四类寄存器:
(1) 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制
信息, 或设备的状态。
(2) 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内
存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
(3) 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。
(4) 数据计数器DC。存放本次CPU要读或写的字(节)数。
3. DMA工作过程
在这里插入图片描述

5.2.4I/O通道控制方式

1.I/O通道控制方式的引入
  I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。

2.通道程序
(1) 操作码。
(2) 内存地址。
(3) 计数。
(4) 通道程序结束位P。
(5) 记录结束标志R。


5.3 缓冲管理

5.3.1 缓冲的引入

(1)缓和CPU与I/O设备间速度不匹配的矛盾。
(2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
(3) 提高CPU和I/O设备之间的并行性。

5.3.2 单缓冲和双缓冲

1.单缓冲
在单缓冲情况下,每当用户进程发出
一个I/O请求时,OS便在主存中为之分配
一个缓冲区。

2.双缓冲
引入双缓冲后,在设备输入时,先将
数据送入第一个缓冲区,装满后便转向第
2个缓冲区;这时,OS可从第一个缓冲区
中移出数据,送入用户进程;由CPU对数
据进行计算。

在这里插入图片描述

5.3.3 循环缓冲

1.循环缓冲的组成
(1)缓冲区。缓冲区大小相同,
分为三种类型:用于装入输入数
据的空缓冲区R、已装满数据的缓
冲区G、现行工作区C
(2)指针。用于指示计算进程下
一个可用缓冲区G的指针nextg、
指示输入进程下次可用的空缓冲
区nexti、指示计算进程正在使用
的缓冲区C的指针 current
2.循环缓冲区的使用
(1) Getbuf过程。
计算进程要使用缓冲区数据时,将由指针nextg所指示的缓冲区,提
供给进程;将其改为现行工作区,令current指针指向该缓冲区的第一个
单元,同时,将nextg移向下一个G缓冲区。
5.3.3 循环缓冲
(2) Releasebuf过程。
当计算进程把C缓冲区中的数据提取完毕时,调用Releasebuf过程,
释放C;将该缓冲区C改为空缓冲区R。
3.进程同步
(1) Nexti指针追赶上Nextg指针。
说明输入进程的速度大于计算进程的速度,全部空缓冲区装满数据。此
时,输入进程阻塞,称为系统受计算所限。
(2) Nextg指针追赶上Nexti指针。
说明计算进程的速度大于输入进程的速度,全部数据缓冲区取空。此时,
计算进程阻塞,称为系统受IO所限。

5.3.4 缓冲池

1.缓冲池的组成
将相同类型的缓冲区链成一个队列,形成
以下三个队列:
(1) 空缓冲队列emq。
(2) 输入队列inq。
(3) 输出队列outq。
除了上述3个队列外,还具有4种工作缓冲区:
(1) 用于收容输入数据的工作缓冲区hin;
(2) 用于提取输入数据的工作缓冲区sin;
(3) 用于收容输出数据的工作缓冲区hout;
(4) 用于提取输出数据的工作缓冲区sout。
2. Getbuf过程和Putbuf过程

Getbuf(type)过程:
指从type所指示队列 的
队首,摘下一个缓冲区。

Procedure Getbuf(type)
begin
Wait(RS(type));
Wait(MS(type));
B(number):=Takebuf(type);
Signal(MS(type));
end

Putbuf(type,number)过程:
用于将由number参数所指示的缓
冲区,挂在type队列上。

Procedure Putbuf(type, number)
begin
Wait(MS(type));
Addbuf(type, number);
Signal(MS(type));
Signal(RS(type));
end

3. 缓冲区的工作方式
(1)收容输入。
在这里插入图片描述
(2)提取输入。
在这里插入图片描述
(3)收容输出。
在这里插入图片描述
(4)提取输出。
在这里插入图片描述


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值