计算机操作系统笔记(四)

第四章 设备管理

4-1 概述

M I/O设备及其分类
U 设备管理的目标
M 设备管理的基本功能
U 设备管理的实现层次

I/O设备 又称外设
用于计算机系统与外界(用户、其他计算机或设备)的信息交换或存储

I/O 操作:内存和外设间的信息传送操作
影响计算机系统的通用性和可扩充性
影响CPU综合性能,性价比

I/O设备分类
Input设备:keyBOrad、mouse、Scanner
oUtput设备:Screen、Printer
输入输出设备:磁盘驱动器,网卡等
人机交互设备、存储设备、机机通信设备、字符设备、块设备、网络设备

设备管理的目标:
1.解决设备与CPU速度不匹配的问题,使主机与设备充分并行工作,提高设备
使用效率。
2.屏蔽设备的物理细节和操作过程,配置驱动程序提供统一的界面。

方法:1.抽象为裸设备;2.抽象为设备文件

设备管理的功能
1.设备中断处理
2.缓冲管理
3.设备分配与去配
4.设备驱动调度
5.虚拟设备的实现

设备管理的实现层次:
1.I/O硬件:I/O设备及接口线路、控制部件、通道

2.I/O 软件:系统I/O软件、用户空间I/O软件

4-2 I/O 控制方式
U I/O 控制器
U 三种基本的I/O控制方式
K I/O通道及其工作方式

设备控制器
1.模块化和通用性设计,设备(机械部件,电子部件)
2.电子部件,称为设备控制器(I/O接口,适配器)
3.系统与控制器交互,而非与设备直接交互
4.设备控制器具体控制设备进行I/O(机械式)

设备控制器的功能
1.接收和识别CPU或通道发来的命令
2.数据交换
3.发现和记录设备及自身的状态信息,供CPU处理使用
4.识别设备地址

设备控制器的组成:
计算机操作系统笔记(四)_第1张图片

I/O通道及其工作方式
查询、中断、DMA

I/O通道又称 I/O处理器,用于玩阿城独立的I/O任务
采用四级连接:处理器、通道、控制器、设备
通道可控制多台不同类的设备
处理器不再执行I/O指令,而是在主存中组织通道程序,由I/O通道执行。

I/O通道的工作流程

4-3 总线与I/O

K 总线对I/O的影响
K 几种经典的总线模型

总线:解决I/O速度不匹配的问题,
I/O和CPU速度、各设备速度不匹配

合理组织总线,使主机和设备充分并行,提高系统效率

单总线结构
计算机操作系统笔记(四)_第2张图片
缺点是慢设备制约快设备

三级总线模型
计算机操作系统笔记(四)_第3张图片
优点
主存与I/O之间的数据传送,处理器的内存活动分离,可以支持更多的I/O设备
缺点:不适用于I/O设备速率差太大的情形。

南桥与北桥
计算机操作系统笔记(四)_第4张图片
一种基于通道的服务器总线模型

4-4 I/O软件的实现层次

U 理解I/O软件的设计目标
U I/O软件的实现层次

目标
高效率:改善设备效率,尤其是磁盘I/O效率
通用性:用统一的标准管理所有设备

设计思路:把软件组织成层次结构,底层软件用来屏蔽硬件细节,
高层软件向用户提供友好的界面。

I/O软件设计要考虑的问题
设备无关性:访问设备的程序与具体设备无关
出错处理:底层软件能处理的不让高层软件感知。
同步/异步传输
缓冲技术

I/O软件层次结构
用户空间的I/O软件 -> I/O系统调用,I/O格式化
独立于设备的I/O软件 -> 设备的命名、保护、阻塞、缓冲、分配、跟踪
I/O设备驱动程序 -> 设备寄存器初始化,启动I/O操作,检查I/O状态
I/O中断处理程序 -> 处理I/O中断、唤醒驱动程序
I/O硬件 -> 执行I/O操作

4-5 I/O软件的实现

U I/O中断处理程序
U 设备驱动程序
U 独立于设备的I/O软件
U 用户空间的I/O软件

I/O中断处理程序
1.位于OS底层,与硬件设备密切相关,与系统其余部分尽可能很少联系
2.进程请求I/O操作时通常被挂起
3.数据传输结束后产生I/O中断
4.CPU响应请求中断,并转入中断处理程序

中断程序功能
1.检查设备状态寄存器,判断中断原因,根据I/O操作完成情况进行相应处理

设备驱动程序
1.包含于设备密切相关的所有代码。
2.从独立于设备的软件中接收I/O请求
3.把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行
4.监督设备是否正确执行,访问数据缓冲区,进行必要的纠错

设备驱动程序的功能
1.设备初始化:在设备传输数据时,预制设备控制器以及通道状态
2.执行设备驱动例程:负责启动设备,进行数据传输;组织通道程序,启动通道
3.执行与设备终端相关的具体处理程序:负责处理设备,控制器及终端发出的各
中断

刚才讲的I/O中断处理程序响应并原则处理I/O中断的过程,
而具体对于某一类设备,比如打印机,它出现中断后,就会有一些特殊的设备
相关的代码,这些东西是在设备驱动中加以提供的

设备驱动程序的层次
每个设备驱动程序原则上只处理一种设备。
1.高层处理类设备,底层处理具体设备
2.系统建立栈,接到I/O请求时先调用栈顶的驱动程序,然后继续
向下调用低层驱动程序,直到所有物理操作都被处理
3.这一方式使设备驱动实现结构清晰,便于移植,但会增加一部分系统开销。

独立于设备的I/O软件
执行适用于所有设备的常用I/O功能,并向用户层软件提供一致性接口,
包括:设备命名,通过路径名寻址身,设备保护,库函数,虚拟设备软件。

4-6 I/O缓冲技术

M I/O缓冲技术
M 单缓冲技术
M 双缓冲技术
M 多缓冲技术

缓冲的目的
1.解决CPU与设备之间速度不匹配的问题
2.协调逻辑记录大小和物理记录大小不一致的问题
3.提高CPU和设备的并发性
4.减少中断次数
5.放宽对CPU中断响应的时间要求

I/O缓冲区:在内存中开辟的存储区,专门用于临时存放I/O操作的数据

操作过程:
写操作:将数据送入缓冲区,直到装满或需要写出,待适当的时候,系统将缓冲区的内容写到设备。

读操作:系统将设备上的物理记录读至缓冲区,根据要求将当前所需数据
从缓冲区中读出并传送给进程。

单缓冲技术
计算机操作系统笔记(四)_第5张图片

4-7设备独立性

M 概念
U 优点

问题的提出
作业执行前对设备提出请求,指定某台具体物理设备会让设备分配变得简单,
微机OS多采用这种方式。

缺点:如果所指定设备故障,即便计算机系统中有同类设备也不能运行。

设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户
进程和物理设备分离开来,再通过其他映射和物理设备之间的映射,设备
管理中需将逻辑设备名转换为物理设备名,为此系统需提供对应表以转换使用。

优点:应用程序与具体物理设备无关,系统增减设备时不需要修改源程序,
易于应对各种I/O设备故障,提高系统可靠性,增加设备分配的灵活性,有利于
更加有效地利用设备资源,实现多道程序设计。

4-8 独占型外设的分配

M 独占型外设的概念
M 分配方式
M 分配的数据结构

独占型外设的概念:一次只能由一个进程独占使用,比如keyboard、screen、
CD、Printer、磁带中,只有磁盘、光盘库、磁带库不是独占外设。

分配方式:
1.静态分配:进程运行前申请,实现简单,能够防止死锁,降低设备利用率。
2.动态分配:进程随用随申请

建立数据结构:设备表、设备类表

4-9 磁盘的物理结构

M 磁盘结构
M 磁盘读写时间
U 磁盘工作方式

磁盘由多个盘面组成,每个盘片一般有两个盘面
盘面包括多个同心圆结构的磁道,不同盘面位于相同位置的磁道构成柱面,每个磁道分为固定的多个扇区,相邻扇区组成簇。
计算机操作系统笔记(四)_第6张图片
物理块地址
1.柱面号、磁头号、扇区号
2.0盘面 0道1扇区

磁盘读写数据方式
读写数据时,磁头上必须定位到指定磁道上的指定扇区的开始处,
1.寻到,2.旋转,3.选择磁头号,进行数据传送

磁盘的存取时间
寻道时间、旋转时间、传送时间

4-10 磁盘的驱动调度

M 磁盘驱动调度
M 移臂调度算法
M 旋转调度算法

磁盘调度
磁盘肯同时接收若干I/O请求
随机响应I/O请求会得到很坏的性能
驱动调度:OS的磁盘调度策略,即按照最佳次序执行处理访问磁盘的多个
I/O请求,以减少磁盘访问的总处理时间。

驱动调度包括:移臂调度、旋转调度

移臂调度算法:
目的:使移动臂移动时间最短,从而减少寻道时间
移臂调度算法
先来先服务:移臂距离大,性能不好
最短查找时间优先:先执行查找时间最短的请求,具有较好的寻道性能,
存在“饥饿”现象。

扫描算法:单向扫描、双向扫描
电梯调度:双向扫描的改进,当前移动方向没有没有访问请求时就
改变移动方向

旋转调度
目的:使得旋转延迟的总时间减少
循环排列
优化分布:交替排序、相邻扇区集中成簇读写,按柱面集中存储数据

4-11 SPooling系统

U 虚拟设备的概念
M 经典的SPOOling系统
U 打印SPooling系统

虚拟设备技术
使用一类物理设备模拟另一类物理设备的技术
例如:1.用内存模拟磁盘;2.块设备模拟字符设备;3.输入输出重定向

一个经典的spooling系统
用高速的磁盘设备来模拟慢速的字符设备,缩短进程在内存中驻留的时间。
慢速I/O设备线I/O到(I/O井)
进程的运行过程只从I/O井输入输出信息,使得全部I/O都基于磁盘
加快进程周转时间,提高系统吞吐量。

区别:
I/O重定向文件是由用户进程自己来设定的
I/O井由OS统一管理

该SPOOLING系统的软件组成:1.预输入程序;2.缓输出程序;3.井管理程序
(I/O重定向)

SPOOLING系统
图–

打印SpooLing系统
打印机守护进程和Spooling打印目录
守护进程是唯一有特权使用打印机设备的进程。
打印文件前,用户进程先产生完整的待传输文件,并存放在打印目录下。
打印空闲时,启动打印进程,打印待输出文件。

4-12 批处理系统的作业管理

多批到处理OS的作业管理
作业说明语言:用于作业控制的语言
作业说明书:刻画具体作业的控制方式
作业状态:preinput、poststate(free)、running、finish
作业调度:从poststate作业中选中部分进入running
作业调度算法:优先数、短作业、响应、设备搭配

你可能感兴趣的:(MOOC南大COS,NOTE)