南大OS
设备管理
概述
解决目标:与cpu速度不匹配问题
屏蔽设备物理细节
IO控制方式
设备控制器:与系统交互的接口
轮询方式:处理器向控制器轮询结果,等待控制器就绪
中断方式:控制器向处理发出中断
DMA直接存储器访问方式:DMA负责传送全部数据,处理器只在开始和结束时
参与
IO通道:通道处理器,CPU让通道程序控制IO设备,通道执行完后发出中断
总线和IO:总线极大影响计算机价格
单总线模型:慢速设备过多占用总线
三级总线模型:局部总线,主存总线,扩展总线
南桥与北桥:北桥(主存控制器),南桥(IO控制器)扩展成多级总线
采用IO通道的多级总线:
IO软件
设计目标:
高效率
通用性
设计思路:
层次性:用户空间自定义的调用->独立于设备的系统调用->设备驱动->中断处理->硬件
实现:
IO中断程序:位于OS底层,与硬件密切,通用的部分
设备驱动程序:完成到设备机器码转换,具体的部分
独立于设备的:封装好的操作设备的接口,系统调用级别
用户空间的:存在OS内核之外库函数,虚拟设备软件
IO缓冲区:在内存开辟的专门临时存放IO数据
目的:
解决速度匹配
协调逻辑大小和物理大小
提高并行性
减少IO操作产生的中断
操作过程
写:写满缓冲区后,才真正写到设备上,回写思想
读:从缓冲区选取合适的大小读入到进程
单缓冲技术:
在主存系统中开设一个缓冲区,进程处理快但设备读写无法跟上.
双缓冲技术:开设两个,一个被进程使用时另一个依旧与设备交互,解决设备速度慢问题
循环缓冲技术:让IO设备数据不断地进入缓冲区
设备独立性
逻辑设备:应用程序和物理设备无关,例如逻辑打印机
优点:设备更改不用修改源程序,提高系统可靠性,使分配灵活
独占型外围设备的分配
独占:一次只能一个进程使用
静态分配:进程活动前就申请好所有设备,利用率低
动态分配:随用随申请,使用时才申请,会发生死锁
设备表:每类设备有一张设备表,记录具体设备,通过设备表管理来分配设备
设备类表:设备表的表
磁盘:最重要的io设备
物理结构
磁盘:多个盘片
盘面:一个盘片2个盘面 磁头号
磁道:盘面上的同心圆 柱面号
扇区:每个磁道分为固定大小的扇区 扇区号
簇:相邻扇区组织
物理块地址:柱面号,磁头号,扇区号
磁盘调度:解决多个程序访问磁盘,使总时间最少
移臂调度:减少寻道总时间
常用算法:单向扫描,双向扫描,电梯调度
旋转调度:使得旋转总圈数最少
常用算法:循环排序
优化分布:
改变信息的排列方式,交替排序
按柱面而非盘面存储
SPOOLing系统
虚拟设备技术:一类物理设备模拟另一类物理设备
SPOOLing系统:用磁盘缓存慢速字符设备
输入井:输入缓存
输出井:
井管理程序:处理缓存数据
预输入程序:是设备数据进入到缓存
缓输出程序:服务进程有权使用硬件,将缓存输出到设备,此时主进程早已结束
批处理系统的作业管理:一连串作业的调度管理
SPOOLing系统:磁盘缓存作业设备数据
对应状态:输入->收容->执行->完成
打印机Spooling:磁盘缓存打印内容
守护进程(缓输出)是唯一有特权使用打印机设备的进程
打印文件前,用户进程先产生完整的待输出文件,并存放在打印目录(输出井)下
打印机空闲时,启动守护进程,打印待输出文件