操作系统(4)- 设备管理

设备管理概述

I/O设备(输入输出设备、外围设备、外设):用于计算机系统与外部世界进行信息交换或存储
I/O操作:内存和外设之间的信息传送操作,影响计算机系统的通用性和可扩充性,影响计算机综合处理能力和性价比的因素
鼠标、显示器、磁盘、光盘、网卡、键盘、打印机等
设备管理的目标:
①解决设备与CPU速度不匹配,使主机和设备充分并行工作,提高设备使用效率;
②屏蔽设备的物理细节和操作过程,配置驱动程序,提供统一界面(抽象为裸设备、设备文件)
设备管理的基本功能:
①设备中断处理
②缓冲区管理
③设备的分配与去配
④设备驱动调度
⑤虚拟设备的实现
设备管理的实现层次:
①I/O硬件:I/O设备及其接口线路,控制部件,通道
②I/O软件,系统I/O软件,用户空间I/O软件

I/O控制方式

设备控制器:OS与控制器交互,而非与设备交互,设备控制器具体控制设备进行I/O操作。
功能:
①接受和识别CPU或通道发来的命令;
②实现数据交互
③发现和记录设备及自身的状态信息,供cpu处理时使用
④当连接多台设备时,识别设备地址

在这里插入图片描述
I/O控制轮询方式、中断方式、直接存储器访问方式(DMA)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
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中断处理程序:位于OS底层,与硬件设备密切相关,与系统其余部分尽可能少的发生联系。
进程请求I/O操作时,通常会被挂起;数据传输结束后产生I/O中断;cpu响应请求并转入中断处理程序。
I/O中断处理程序的功能:
在这里插入图片描述
设备驱动程序:包括与设备密切相关的所有代码
从独立于设备的软件中接收I/O请求;
把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行;
监督设备是否正确执行,访问数据缓冲区,进行必要的纠错处理。
在这里插入图片描述
在这里插入图片描述
独立于设备的I/O软件:执行适用于所有设备的常用I/O功能,并向用户层软件提供一致性接口,包括:
设备命名:通过路径名寻址设备;
设备保护:用户是否有权访问设备;
提供与设备无关的数据单位:字符/块;
缓冲技术:调整cpu与I/O速度不匹配;
分配和状态跟踪:分配设备;
错误处理/报告:驱动无法处理的错误
④用户空间的I/O软件
库函数:一部分I/O软件可以使用库函数实现放在OS内核之外,运行时与应用程序连接
虚拟设备软件:用一类设备模拟另一类设备

I/O缓冲区

设置I/O缓冲区的目的:
①解决cpu和设备之间速度不匹配的矛盾
②协调逻辑记录大小和物理记录大小不一致的问题
③提高cpu和设备并行程度
④减少I/O操作对cpu的中断次数
⑤放宽cpu中断响应对时间的要求

I/O缓冲区:OS在内存中开辟的存储区,专门用于临时存放I/O操作的数据
在这里插入图片描述
单缓冲技术:OS在主存系统区开设一个缓冲区
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200811202514780.png在这里插入图片描述
双缓冲技术:OS在主存系统区开设两个缓冲区
在这里插入图片描述
循环缓冲技术:OS分配一组缓冲区,每个缓冲区有指向下个缓冲区的链表指针,构成循环指针
在这里插入图片描述

设备独立性

在这里插入图片描述
设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户进程和物理设备分离开来,再通过其他途径建立逻辑设备和物理设备之间的映射

设备管理中,需要将逻辑设备名转换为物理设备名,为此系统需要提供逻辑设备名和物理设备名的对应表,以供转换使用。

在这里插入图片描述

独占型外设的分配

独占式外围设备:一次只能由一个进程独占使用
分配方式:
静态分配:进程运行前申请
实现简单,能防止系统发生死锁,但会降低设备利用率
动态分配:进程随用随申请
提高设备利用率

设备分配的数据结构
设备表:每类设备都有各自的设备表,用来登记这类设备中每台物理设备
包括:物理设备名,逻辑设备名,占有设备的进程,分配标志,好/坏标志灯
设备类表:每类设备对应于设备类表的一栏
包括:设备类,总台数,空间台数,设备表的起始地址等
通过设备类表,查到具体的设备表,然后建立逻辑设备与物理设备的对应关系

磁盘的物理结构

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200811205117146.png在这里插入图片描述
面:磁盘面,从0开始编号
道:磁道,从0开始编号
扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,硬盘的读写以扇区为基本单位。从1开始编号
在这里插入图片描述
磁盘读写数据的方式
读写数据时,磁头必须定位到指定磁道上的指定扇区的开始处,基本过程:
①寻道:控制移动臂到达指定柱面
②旋转:等待要读写的扇区旋转到磁头下
③选择磁头号,进行数据传输
读取扇区的时间组成:
在这里插入图片描述
磁盘存取时间,即磁盘完成数据读写所需的时间(寻道时间+旋转延迟+数据传输时间)
在这里插入图片描述

磁盘的驱动调度

OS运行时可能同时接收到大量的I./O请求,如果随机去响应I/O请求,会得到很差的性能。
驱动调度:OS磁盘的调度策略,即按照最佳次序执行处理访问磁盘的多个I/O请求,以减少磁盘访问的总处理时间。
驱动调度策略包括:移臂调度,旋转调度
移臂调度:使移动臂的移动时间最短,从而减少寻道总时间
先到先服务:移动距离大,性能不好;
最短查找时间有限(最小短距离法):先执行查找时间最小的请求,具有较好的寻道性能,但也会产生饥饿现象(磁头位于磁盘边缘位置)
在这里插入图片描述
旋转调度:使得旋转延迟的总时间最小
循环排序:通过优化I/O请求排序,在最小旋转圈数内完成位于同一柱面的访问请求,旋转位置测定硬件和多磁头同时读写技术有利于提高旋转调度的效率

优化分布
在这里插入图片描述

SPOOLing系统

虚拟设备技术:用一类物理设备模拟另一类物理设备的技术
示例:内存卡模拟磁盘、块设备模拟字符设备、输入输出重定向
一个经典的SPOOLing系统
用高速的磁盘设备来模拟慢速的字符设备,缩短进程在内存中的驻留时间
在这里插入图片描述
SPOOLing系统的软件组成
①预输入程序:预先把数据从输入设备传送到磁盘输入井
②缓输出程序:把数据从磁盘输出井传送到输出设备
③井管理程序:控制作业进程和井之间的数据交换(事实上是I/O重定向)
在这里插入图片描述
在这里插入图片描述

批处理系统的作业管理

SPOOLing系统与作业管理
在这里插入图片描述
多道批处理OS的作业管理:
作业说明语言:用于作业控制的语言
作业说明书:刻画具体作业的控制方式
作业状态:输入状态(预输入)、后备状态(空闲)、运行状态(运行)、完成状态(缓输出)
作业调度:从后备状态作业中选择部分进入运行状态(前提是资源满足)
作业调度算法:优先数、段作业、响应比、设备搭配等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值