磁盘的结构
磁盘调度
磁盘读写时间
磁盘调度算法
先服务算法(FCFS)
最短时间优先考虑算法(SSTF)
扫描算法(电梯算法,SCAN)
Look调度算法
循环扫描算法(C-SCAN)
减少磁盘的延迟时间
交替编号
错位命名
磁盘管理
磁盘初始化
引导块(启动块)
坏块管理
I/O设备
I/O控制器
I/O控制方式
程序直接控制模式
中断驱动模式
DMA方式
DMA 方式
通道控制模式
I/O软件层次
用户层的I/O软件
设备独立软件
设备驱动程序
中断处理程序
假脱机系统(SPOOLing)
设备分配
缓冲区管理
磁盘是一种外存设备,可用于存储信息,空间大,但读取速度慢于内存,断电后数据不会消失
磁盘的结构
磁盘表面为磁性物质,可记录二进制数据
磁盘的磁将分为磁道(同心圆)
磁道又分为扇区,,这个扇区叫磁块
内扇区面积小,但存储的数据和其他扇区一样多,所以数据密度最大
磁盘信息的读取:依靠磁头臂带动磁头运动,磁头运动到目标磁盘块所在的磁道上,然后磁盘会转动,让目标磁块在磁头下划过,从而完成信息读取或者写入
盘面,柱面
因此,磁盘块的物理地址定义为(柱面号、盘面号、扇区号)
磁盘分类:
1.根据磁盘是否可以更换分为固定磁盘和可更换磁盘
2据磁头能否移动分类:
磁盘调度
磁盘读写时间
:磁头找到指定磁道的时间;分为两部分:1。启动磁头臂的时间2。磁头在磁盘上移动到指定磁道的时间
指定的磁盘通过旋转磁盘在磁头下划过
:磁盘读写的时间
磁盘调度算法
先服务算法(FCFS)
h3 id="%C2%A0%E6%9C%80%E7%9F%AD%E5%AF%BB%E6%89%BE%E6%97%B6%E9%97%B4%E4%BC%98%E5%85%88%E7%AE%97%E6%B3%95(SSTF)"> 最短寻找时间优先算法(SSTF)按要求顺序执行,依次访问
选择离当前磁头最近的访问
扫描算法(电梯算法、SCAN)
磁头只有移动到最外侧,才可以向内移动
Look调度算法
电梯算法要求:磁头只有移动到最外侧,才可以向内移动,Look调度算法对其优化,只要没有访问请求了,就可以向内移动
循环扫描算法(C-SCAN)
减少磁盘的延迟时间
磁盘读写数据之后会需要一小段时间来处理,这就会造成连续读取的问题
例如:磁盘访问连续的1,2,3磁盘块,由于访问1结束之后,需要一小段时间来处理,那么2就无法访问,就必须等待磁盘重新转动一轮后访问
为了解决这个问题,尽量的不让逻辑上相邻的磁盘块在物理上也相邻
交替编号
错位命名
磁盘的柱面结构,两个磁盘的磁盘号不要对应
因为所有磁面是一起连轴转的,而磁盘读写数据之后会需要一小段时间来处理,磁盘之间扇区编号一致的话,也会存在必须等待磁盘重新转动一轮后才可以访问的问题
磁盘管理
磁盘初始化
第一步:物理初始化,划分扇区,一个扇区包括三个部分:头,数据区域,尾
第二步:磁盘分区
第三步:逻辑格式化:创建文件系统
引导块(启动块)
电脑开机时,要进行一系列的初始化,这些初始化程序称之为自举程序
一部分自举程序放在只读寄存器(ROM)中,ROM集成在主板上
大部分自举程序放在磁盘的引导块中,引导块位于磁盘的固定位置
电脑开机时,先执行ROM的自举程序,根据这个程序找到引导块位置,加载引导块的自举程序进入内存,完成初始化
坏块管理
坏掉的磁盘扇区,属于硬件故障,要将这个坏块位置标注出来,不给予分配
I/O设备
I/O就是input和output,也就是输入、输出
I/O设备就是输入或者输出数据的设备,例如鼠标,键盘,显示器……
:鼠标,键盘,显示器,数据传输慢
U盘,光盘等 数据传输快
路由器,光猫等 数据传输均衡
I/O控制器
I/O设备由机械部件和电子部件(I/O控制器)构成
CPU无法控制I/O设备的机械部件,CPU只能通过I/O设备的电子部件来实现控制I/O设备
- 与主机交互
- (记录设备状态)状态/控制寄存器
- (数据交换)数据缓冲寄存器
- (接受命令)地址译码和 I/O 控制逻辑
- 与设备交互
- 外设接口控制逻辑
I/O控制方式
程序直接控制方式
1、完成一次读写操作的过程
第一步:CPU向I/O控制器发出读指令,于是I/O控制器控制对应设备启动,设备的状态寄存器设置为1(忙碌或者未就绪)
第二步:设备准备输入的数据,这期间CPU就会一直循环检查状态位,等待设备输入完成
第三步:设备数据准备完成,将数据提交给I/O控制器,并报告自身状态
第三步:I/O控制器将数据放置到数据寄存器中,并修改设备的状态寄存器成为0
第四步:CPU读取数据寄存器内容,CPU读入自己的数据寄存器,后CPU将自己的数据寄存器的数据放入内存
中断驱动方式
- 处理器向控制器发出 I/O 命令,然后继续执行后续指令。
- 如果该进程支持异步 I/O,则继续执行该进程。
- 否则,进程在这个中断点挂起,CPU 执行其他程序。
- 控制器检查设备状态,就绪后发起中断。
- CPU 响应中断,转向中断处理程序。
- 中断处理程序执行数据读写操作。
- 恢复执行原先程序。
DMA方式
4.2.4 DMA 方式
DMA: 直接存储器访问
DMA 模块: 模仿处理器来控制主存和设备控制器之间的数据交换
通道控制方式
I/O软件层次
用户层的I/O软件
一般而言,大部分的I/O 软件都在操作系统内部,但仍有一小部分在用户层,包括与用户程序链接在一起的库函数,以及完全运行于内核之外的一些程序。
设备独立性软件
设备独立性软件是为了应用程序独立于具体使用的物理设备。
为了实现设备的独立性,系统必须设置一张LUT,Logical Unit Table),用于。在该表的每个表目中包含了三项:逻辑设备名、物理设备名和设备驱动程序的入口地址。LUT 的设置可采取两种方式:第一种方式是在整个系统中只设置一张LUT;第二种方式是为每个用户设置一张LUT。
设备驱动程序
设备驱动程序通常又称为设备处理程序,,又由于它常以进程的形式存在,故以后就简称之为设备驱动进程。,此外,它也将由设备控制器发来的信号传送给上层软件。设备驱动程序的主要任务是启动指定设备。但在启动之前,还必须完成必要的准备工作,如检测设备状态是否为“忙”等。在完成所有的准备工作后,才最后向设备控制器发送一条启动命令。工作过程如下:
- 将抽象要求转换为具体要求;
- 检查I/O 请求的合法性;
- 读出和检查设备的状态;
- 传送必要的参数;
- 工作方式的设置;
- 启动I/O 设备。
中断处理程序
中断处理层的主要工作有:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态等。
假脱机系统(SPOOLing)
通过SPOOLing 技术便可将一台物理I/O 设备虚拟为多台逻辑I/O 设备,同样允许多个用户共享一台物理I/O设备。为了缓和CPU的高速性与I/O 设备低速性间的矛盾而引入了脱机输入、脱机输出技术。。该技术是利用专门的外围控制机,。使得此时的外围操作与CPU对数据的处理同时进行。SPOOLing系统必须建立在,这通常是采用磁盘存储技术。
共享打印机
设备分配
-
- (4) 提高CPU和I/O设备之间的并行性。
- (3) 解决数据粒度不匹配的问题。
- (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
- (1) 缓和CPU与I/O设备间速度不匹配的矛盾。
-
- 在单缓冲情况下,每当用户进程,操作系统便在主存中为之
解决生产者和消费者在使用缓冲区时的互斥问题
由系统的缓冲区构成