第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.

Slides:



Advertisements
Similar presentations
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
Advertisements

第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
WCI361 Windows Vista WCI361 Windows Vista 运行性能设计与 改进.
计算机应用基础 项目化教程 第1章计算机基础知识与操作入门.
Chapter 10 效能測量與分析.
第二章 微型计算机系统 第一节 基本术语和基本概念 第二节 计算机系统的基本构成 第三节 微机系统的硬件组成 第四节 微机系统的软件组成.
第四章 存储系统 4-1 存储系统概论 4-2 RAM(随机读写存储器) 4-3 ROM(只读存储器) 4-4 高速缓冲存储器(Cache)
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
Foundations of Computer Science
第5章 多级结构的存储系统 5.1 三级结构存储系统概述 主存储器 虚拟存储器 CPU 高速缓存 三级结构的存储系统.
第四章 存储系统 计算机科学技术系 2006 年 4 月.
Chap4 電腦硬體基本單元 高中資訊科技概論 松崗圖書公司.
计算机应用基础 计算机基础知识.
第三章 存储系统 现代计算机系统都以存储器为中心 在计算机运行过程中,存储器是各 种信息存储和交换的中心。
中央广播电视大学开放教育试点课程 计算机操作系统.
操作系统 Operating System.
操作系统结构.
最新計算機概論 第3章 計算機組織.
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
第四章 存储器管理.
第五章 设 备 管 理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 I/O软件 5.5 设备分配
第四章 存储体系.
Chapter 13 輸入/輸出系統 (I/O Systems)
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
作業系統的結構 日期 : 2018/9/17.
存储器的层次结构 512KB~8MB 400GB/S 1~8GB 12GB/S CPU Cache RAM 500GB DISK
第 4 章 記憶單元.
计算机应用基础 第二章 操作系统基础 2018/11/16.
數位邏輯的基礎.
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
電腦的種類 超級電腦 (supercomputer) 大型電腦 (Mainframe) 迷你電腦 ( Mini computer)
第8章作業系統.
淘宝核心系统数据库组 余锋 利用新硬件提升数据库性能 淘宝核心系统数据库组 余锋
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
C H A P T E R 10 存储器层次.
4.1 概述 4.2 主存储器 4.3 高速缓冲存储器 4.4 辅助存储器.
第 6 章 存储系统 6.1 概述 存储器的层次结构 存储器的分类 存储器的基本组成
第四章 存 储 器 4.1 概述 4.2 主存储器 4.3 高速缓冲存储器 4.4 辅助存储器.
计算机组成与系统结构 陈泽宇 副教授.
5 Computer Organization (計算機組織).
Ch 9: Input/Output System 输入/输出系统
第七章设备管理 7. 1 概述 7. 2 I/O软件的组成 7. 3 I/O硬件特点 7. 4 有关技术 7. 5 网络设备 7
计算机组成原理 武汉科技大学 计算机科学与技术学院
信息存储与管理 国家天文台 (科技处)信息与计算中心.
淄博职业学院 授课老师:罗汉江 上课班级:P12物联网应用技术1班 上课地点:物联网基础实验室508
電腦的硬體架構.
作業系統 (Operating System)
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
China’s Software Industry August 2006 Instructor: Hengming Zou, Ph.D.
数 控 技 术 华中科技大学机械科学与工程学院.
第一章 微型计算机概论 本章内容提要: 微型计算机系统的基本术语 微型计算机系统的发展与分类 微型计算机的系统组成.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
操作系统原理与设计 Operating Systems: Design and Implementation
作業系統 第三章 作業系統結構.
第四章 存储器管理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式
计算机组装、维修及 实训教程 第9章 硬盘驱动器 2019年4月11日星期四.
靜宜大學專用 PowerPoint 檔案 數位教材
计算机系统结构(2012年春) ----存储层次: Cache基本概念
基础篇 微型计算机系统 硬件系统 软件系统 操作系统基础 作业 计算机编码和数制 系统综述.
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.
導 論 教學投影片.
第六章 記憶體.
第五章 虚 拟 存 储 器 5.1 虚拟存储器概述 5.2 请求分页存储管理方式 5.3 页面置换算法 5.4 “抖动”与工作集
李元金 计算机与信息工程学院 第 14 讲 存储器管理(3) 李元金 计算机与信息工程学院 1/
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
进程调度算法和作业调度算法。 (1) 先来先服务(FCFS)调度算法
第11章 儲存裝置 與其管理.
李元金 计算机与信息工程学院 第 17 讲 设备管理(1) 李元金 计算机与信息工程学院 1/
Presentation transcript:

第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理

5.1 I/O 系 统 5.1.1 I/O设备 1. I/O设备的类型 1) 按传输速率分类 低速设备,每秒钟几个字节至数百个字节,(键盘、 鼠标器、语音的输入和输出等设备) 中速设备,每秒钟数千个字节至数万个字节。(针式打印机、激光打印机等) 高速设备, 数百千个字节至数十兆字节。 (磁带机、 磁盘机、 光盘机等)

2) 按信息交换的单位分类 块设备(Block Device),用于存储信息。(以数据块为存取单位),如磁盘,每个盘块的大小为512 B~4 KB。特征:   1、传输速率较高 2、可寻址(可随机读/写任一块);3、DMA方式。 字符设备(Character Device),用于数据的输入和输出。 其基本单位是字符, 故称为字符设备。如打印机,特征:  1、传输速率低 2、不可寻址(不能指定源地址和目标地址) 3、中断驱动

3) 按设备的共享属性分类 这种分类方式可将I/O设备分为如下三类: 独占设备。 (临界资源) (2) 共享设备。 (一段时间允许多个进程同时访问,如磁盘) (3) 虚拟设备。 (将一个独占设备变换为若干逻辑设备,如CPU)

2. 设备与控制器之间的接口 输出:先到缓冲,再到转换器(信号/数据) 输入:先到转换器,再到缓冲 控制信号:读操作,写操作,磁头移动等 状态:正在读或写,读写完成等

5.1.2 设备控制器 1. 设备控制器的基本功能 接收和识别命令(CPU的命令。控制寄存器存放命令和参数,译码,如磁盘的read,write,format) 2) 数据交换  (控制器中数据寄存器,CPU/控制器/设备) 3) 标识和报告设备的状态 (状态寄存器) 4) 地址识别 (每个设备都有一个地址,配有地址译码器) 5) 数据缓冲 (IO设备与CPU之间速度矛盾,主机/控制器/设备) 6) 差错控制 (对IO设备传来的数据进行差错检测)

2. 设备控制器的组成 图 5-2 设备控制器的组成

三部分组成: 1、设备控制器与处理器的接口 2、设备控制器与设备的接口 3、IO逻辑 三类信号线:数据线、地址线、控制线 两类寄存器:数据寄存器、控制\状态寄存器 2、设备控制器与设备的接口 一个控制器可接多个设备,一个接口接一个设备 3、IO逻辑 实现对设备的控制, CPU启动设备过程:发送控制命令和地址给控制器,IO逻辑接收命令并译码

5.1.3 I/O通道 1. I/O通道(I/O Channel)设备的引入 I/O通道是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。 IO通道的目的使原来由CPU执行的IO任务承担下来 但I/O通道又与一般的处理机不同: 指令类型单一,主要局限于与I/O操作有关的指令; 通道没有自己的内存,与CPU共享内存。

2. 通道类型 1) 字节多路通道(Byte Multiplexor Channel) 字节多路通道不适于连接高速设备 图 5-3 字节多路通道的工作原理

2) 数组选择通道(Block Selector Channel) 可以连接多台高速设备, 只含有一个分配型子通道,在一段时间内只能控制一台设备进行数据传送,并独占该通道。 这种通道的利用率很低。

3) 数组多路通道(Block Multiplexor Channel) 数组多路通道是以上二种通道结合而形成的一种新通道 数据传送是按数组方式进行 有多个非分配型子通道, 数据传输速率很高,通道利用率也高 广泛地用于连接多台高、中速的外围设备

3. “瓶颈”问题 图 5-4 单通路I/O系统

多通路方式:增加通路,不增加通道,通道很贵 解决了:瓶颈,增加了可靠性 图 5-5 多通路I/O系统

5.1.4 总线系统 对总线的时钟频率,带宽,传输速率要求越来越高。 图 5-6 总线型I/O系统结构

2. 局部总线(Local Bus) VESA(Video Electronic Standard Association)总线 2) PCI(Peripheral Component Interface)总线 EISA,VESA,PCI,AGP,PCI-Express(1X-16X最高可达到10GB/s )

5.2 I/O控制方式 5.2.1 程序I/O方式 (轮询方式或忙-等待方式) CPU发出指令后,置busy =1,不断测试busy,直到busy=0表示指令完成 CPU的绝大部分时间都处于等待I/O设备完成循环测试中,造成对CPU的极大浪费。

图 5-7 程序I/O和中断驱动方式的流程

5.2.2 中断驱动I/O控制方式 CPU发出IO指令后返回继续执行原任务,控制器完成指令后向CPU发出中断信号,CPU利用花费极短时间处理中断 CPU与I/O设备并行工作,提高资源利用率及吞吐量。    例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0.1 ms。 此方式,CPU约有 99.9 ms的时间处于忙—等待中。 采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。 程序IO和中断IO都是以字为单位进行干预。    如从硬盘读1K的数据块,要中断1K次。

5.2.3 直接存储器访问DMA I/O控制方式 1. DMA(Direct Memory Access)控制方式的引入 ① 数据传输的基本单位是数据块; ② 所传送的数据是从设备直接送入内存的,或者相反; ③ 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。 可见,DMA方式成百倍地减少了CPU对I/O的干预。

2. DMA控制器的组成 图 5-8 DMA控制器的组成

在DMA控制器中设置如下四类寄存器: (1) 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息, 或设备的状态。 (2) 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。 (3) 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。 (4) 数据计数器DC。 存放本次CPU要读或写的字(节)数。

5.2.4 I/O通道控制方式 1. I/O通道控制方式的引入 以一组数据块的读(或写)及有关的控制和管理为单位的干预。   可实现CPU、通道和I/O设备三者的并行操作   例如,当CPU只需向I/O通道发送一条I/O指令,以给出通道程序的首址和要访问的I/O设备,通道接到并执行该指令。

(2) 内存地址。 (读出或写入时的内存首址) (3) 计数。 (读、写数据字节数) (4) 通道程序结束位P。(通道程序最后一条指令) 2. 通道程序 --由一系列通道指令构成 指令包含信息: 操作码。( 读、写、控制) (2) 内存地址。 (读出或写入时的内存首址) (3) 计数。 (读、写数据字节数) (4) 通道程序结束位P。(通道程序最后一条指令) (5) 记录结束标志R。 (R=0代表数据在同一记录,R=1表示记录的最后一条数据)

操作 P R 计数 内存地址 WRITE 80 813 140 1034 1 60 5830 300 2000 250 1850 720

5.3 缓 冲 管 理 5.3.1 缓冲的引入 缓和CPU与I/O设备间速度不匹配的矛盾。 5.3 缓 冲 管 理 5.3.1 缓冲的引入 缓和CPU与I/O设备间速度不匹配的矛盾。 (2) 减少CPU的中断频率,放宽CPU中断响应时间的限制。 (网络通信,906K/S,100us中断一次,否则缓冲区内数据冲掉) (3) 提高CPU和I/O设备之间的并行性。

图 5-10 利用缓冲寄存器实现缓冲

5.3.2 单缓冲和双缓冲 1. 单缓冲(Single Buffer) 图 5-11 单缓冲工作示意图

2. 双缓冲(Double Buffer) 图 5-12 双缓冲工作示意图

单向 双向 图 5-13 双机通信时缓冲区的设置

5.3.3 循环缓冲 (速度相差很大时采用) 1. 循环缓冲的组成(每个缓冲区大小相同;R:空,G:满,C:计算) 图 5-14 循环缓冲 Nexti:指向下一个R,Nextg:指向下一个G,current:指向正在计算 图 5-14 循环缓冲

2. 循环缓冲区的使用 Getbuf过程。 (2) Releasebuf过程。 计算过程:Current→ Nextg,Nextg移向下一个G 输入过程:当前Nexti指向的R提供出来,Nexti 指向下一个R。 (2) Releasebuf过程。 计算过程将C中的数据取完,用Releasebuf 将C释放

说明:输入数据大于处理数据,全部缓冲区已满。 3. 进程同步 Nexti指针追赶上Nextg指针。 说明:输入数据大于处理数据,全部缓冲区已满。 (2) Nextg指针追赶上Nexti指针。 说明:输入数据小于处理数据,全部缓冲区已空。

5.3.4 缓冲池(Buffer Pool) 1. 缓冲池的组成 三种类型的缓冲区: ① 空(闲)缓冲区; 形成以下三个队列:   三种类型的缓冲区:   ① 空(闲)缓冲区;   ② 装满输入数据的缓冲区;    ③ 装满输出数据的缓冲区。   形成以下三个队列: (1)空缓冲队列emq。 (2) 输入队列inq。 (3) 输出队列outq。

3. 缓冲区的工作方式 图 5-15 缓冲区的工作方式 1、收容输入:调用Getbuf(emq)在emq中摘下一空区,并装满数据,挂到inq中。 2、提取输入:调用Getbuf(inq)从inq摘一区,提取数据,并挂入emq。 3、收容输出:调用Getbuf(emq)从emq中摘一区,装入输出数据,并挂入outq。 4、提取输出:调用Getbuf(outq)从out中摘一满区,提取数据,并挂入emq。

5.4 设 备 分 配 5.4.1 设备分配中的数据结构 1. 设备控制表DCT 图 5-16 设备控制表

2. 控制器控制表、 通道控制表和系统设备表 图 5-17 COCT、 CHCT和SDT表

5.4.2 设备分配时应考虑的因素 1. 设备的固有属性 独享设备。 (2) 共享设备。 (3) 虚拟设备。

2. 设备分配算法 先来先服务。 (2) 优先级高者优先。

3. 设备分配中的安全性 安全分配方式  一旦发出IO申请,便阻塞,不再继续运行,直到IO操作完成。摒弃“请求并保持”,防止死锁。 2) 不安全分配方式 发出IO申请后继续运行,需要时再发出IO申请,  允许“请求并保持”,但进行安全计算。

5.4.3 设备独立性 1. 设备独立性(Device Independence)的概念 即:应用程序独立于具体使用的物理设备。 逻辑设备和物理设备这两个概念。 请求时使用逻辑设备名称;实际执行时使用物理设备名称。 系统须具有将逻辑设备名称转换为物理设备名称的功能。

在实现了设备独立性的功能后,可带来以下两方面的好处。 1) 设备分配时的灵活性 避免了因指定物理设备,可能已被用,而不能用同类空闲设备。 2) 易于实现I/O重定向 不必改应用程序,便可实现设备重定向,如屏幕输出转为打印输出。

2. 设备独立性软件 ( 在驱动程序上的一层软件) 1) 执行所有设备的公有操作 ① 对独立设备的分配与回收; ② 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序; ③ 对设备进行保护,禁止用户直接访问设备; ④ 缓冲管理,即设备的缓冲区进行有效的管理,以提高I/O的效率; ⑤ 差错控制。绝大多数错误主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。

2) 向用户层(或文件层)软件提供统一接口 无论何种设备, 它们向用户所提供的接口应该是相同的。   例如, 对各种设备的读操作,在应用程序中都使用read; 而对各种设备的写操作,也都使用write。

2) LUT(Logic Unit Table)的设置问题 3. 逻辑设备名到物理设备名映射的实现 逻辑设备表 2) LUT(Logic Unit Table)的设置问题 一个进程一个LUT(多用户) 整个系统一个LUT(单用户) 图 5-18 逻辑设备表

5.4.4 独占设备的分配程序 1. 基本的设备分配程序 分配设备   请求物理设备名→ 查系统设备表SDT → 查DCT → 忙否→ 忙,挂入设备队列;不忙,安全计算→安全则分配→ 不安全则等待。 2) 分配控制器   找DCT → 与之相联的控制器的COCT → 忙否→ 忙则等;不忙则分配。 3) 分配通道 找与之相联的通道的CHCT → 忙否→ 忙则等;不忙则分配。 只有设备、控制器、通道都分配成功,设备才算分配成功。

2. 设备分配程序的改进 增加设备的独立性   使用逻辑设备请求,从SDT找第一类该设备的DCT,若忙找第二类同类设备,所有都忙时挂入等待队列。 2) 考虑多通路情况   通道和控制器可多路选择,即若与设备相联的第一个控制器(通道)忙时,找第二个控制器(通道) 。

5.4.5 SPOOLing技术 1. 什么是SPOOLing 脱机输入、 脱机输出技术:即利用专门的外围控制机,脱机输入、 输出功能。 此时的外围操作与CPU对数据的处理同时进行 我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On-Line),或称为假脱机操作。模拟外围控制机脱机输入、 输出功能。

2. SPOOLing系统的组成 图 5-19 SPOOLing系统的组成

  输入井和输出井:在磁盘中两大存储空间,输入井是模拟脱机输入时的磁盘暂存IO设备输入的数据;输出井是模拟脱机输出时的磁盘,存放模拟应用程序的输出数据。   输入缓冲区和输出缓冲区:在内存,输入缓冲区是暂存输入设备送来的数据,再传送到输入井;输出缓冲区是暂存从输出井送来的数据,再送给输出设备。   输入进程SPi和输出进程SPo:输入进程SPi模拟脱机IO输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井;输出进程SPo 模拟脱机IO输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再从输出井的数据经输出缓冲区送到输出设备上。

打印机空闲时,从请求打印队列取出一张表,从输出井中传送数据到输出缓冲区中,打印。 3. 共享打印机   请求打印输出时, SPOOLing系统同意为它打印输出,但并不真正分配打印机,而只为它做两件事: ① 由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中; ② 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中, 再将该表挂到请求打印队列上。   打印机空闲时,从请求打印队列取出一张表,从输出井中传送数据到输出缓冲区中,打印。

4. SPOOLing系统的特点 提高了I/O的速度。 (2) 将独占设备改造为共享设备。 (3) 实现了虚拟设备功能。

5.5 设 备 处 理 5.5.1 设备驱动程序的功能和特点 1. 设备驱动程序的功能 5.5 设 备 处 理 5.5.1 设备驱动程序的功能和特点 1. 设备驱动程序的功能 (1) 接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、 磁道号及扇区号。 (2) 检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。

(3) 发出I/O命令,如果设备空闲,便立即启动I/O设备;如果设备忙,则挂在设备请求队列上等待。 (4) 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。 (5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。

2. 设备处理方式 各个操作系统方式不同,可分为三类: (1) 为每一类设备设置一个进程,专门用于执行这类设备的I/O操作 。 (2) 在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。 (3) 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块), 供用户进程或系统进程调用。

(1) 驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。(把请求传给控制器,把状态传给控制器) 3. 设备驱动程序的特点 (1) 驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。(把请求传给控制器,把状态传给控制器) (2) 驱动程序与设备控制器、I/O设备的硬件特性紧密相关, 因而对不同类型的设备应配置不同的驱动程序。(不同厂家) (3) 驱动程序与I/O设备所采用的I/O控制方式紧密相关。(如中断方式,DMA方式) (4) 由于驱动程序与硬件紧密相关, 因而其中的一部分必须用汇编语言书写。

5.5.2 设备驱动程序的处理过程 将抽象要求转换为具体要求(如将盘块号→磁头数、磁道数、扇区) 2. 检查I/O请求的合法性(如试图从打印机输入,试图写只读的数据 ) 3. 读出和检查设备的状态 (检查是否处于接收就绪状态) 4. 传送必要的参数 (如传送的字节数,及内存首址) 5. 工作方式的设置 (同步,异步) 6. 启动I/O设备

5.5.3 中断处理程序中的处理过程 1、唤醒被阻塞的驱动(程序)进程 2、保护被中断的进程的CPU环境 3、转入相应的设备中断处理程序 5.5.3 中断处理程序中的处理过程 1、唤醒被阻塞的驱动(程序)进程 2、保护被中断的进程的CPU环境 3、转入相应的设备中断处理程序 4、中断处理 (正常中断则向控制器发出新命令或结束,异常中断则作终止处理) 5、恢复被中断的进程现场

图 5-20 中断现场保护示意图

图 5-21 中断处理流程

5.6 磁盘存储器管理 5.6.1 磁盘性能简述 1、每条磁道上可存储相同数目的二进制位 2、内层磁道的密度较外层磁道的密度高 5.6 磁盘存储器管理 5.6.1 磁盘性能简述 1、每条磁道上可存储相同数目的二进制位 2、内层磁道的密度较外层磁道的密度高 3、温盘每条磁道分为30个扇区,每个扇区600个字节,512个字节存数据,其余存控制信息。 4、磁盘存数据之前,必须先格式化。

每个扇区包括两个字段: 1、标识符字段: 利用磁道号、磁头及扇区号来标识一个扇区;CRC用于段校验。 2、数据字段。 SYNCH Byte:定界符; Data:数据 CRC:校验码

1. 数据的组织和格式 图 5-22 磁盘的格式化 Synch Byte:定界符

2. 磁盘的类型 1) 固定头磁盘 这种磁盘在每条磁道上都有一读/写磁头,有效地提高了磁盘的I/O速度。 这种结构的磁盘主要用于大容量磁盘上。 2) 移动头磁盘 每一个盘面仅配有一个磁头,也被装入磁臂中。磁头必须能移动以进行寻道。速度较慢,但由于其结构简单,故仍广泛应用于中小型磁盘设备中。

其中s为启动磁臂的时间, n为磁头移动磁道数 3. 磁盘访问时间 1) 寻道时间Ts   指把磁臂(磁头)移动到指定磁道上所经历的时间。 Ts=m×n+s, 其中s为启动磁臂的时间, n为磁头移动磁道数 ,m是一常数,与磁盘驱动器的速度有关,对一般磁盘, m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间约为2 ms。 其寻道时间将随寻道距离的增加而增大,大体上是5~30 ms。

2) 旋转延迟时间Tτ 指定扇区移动到磁头下面所经历的时间。 对于硬盘,典型的旋转速度大多为5400 r/min,每转需时11.1 ms,平均旋转延迟时间Tτ为5.55 ms;

3) 传输时间Tt   数据从磁盘读出或向磁盘写入数据所经历的时间。 Tt的大小与每次所读/写的字节数b和旋转速度有关: 其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数, 访问时间Ta表示为: Ta = Ts + Tτ + Tt

5.6.2 磁盘调度 1. 先来先服务FCFS(First-Come, First Served) 图 5-23 FCFS调度算法 5.6.2 磁盘调度 1. 先来先服务FCFS(First-Come, First Served) 1、按进程请求访问磁道的先后次序调度 2、公平、简单,不会长时间请求得不到满足 3、未对寻道优化 图 5-23 FCFS调度算法

2. 最短寻道时间优先SSTF(Shortest Seek Time First) 1、访问与当前磁头最近的磁道。 2、每次寻道时间最短,但不能保证平均寻寻道时间最短。 图 5-24 SSTF调度算法

3. 扫描(SCAN)算法 1) 进程“饥饿”现象 SSTF算法可能导致某个进程发生“饥饿”(Starvation)现象。   因为只要不断有新的、且其所要访问的磁道与磁头当前所在磁道的距离较近进程的请求到达   解决访求:SCAN算法。

2) SCAN算法 1、考虑欲访问磁道与当前磁道的距离,也考虑当前磁头移动方向。 2、也叫电梯调度算法 图 5-25 SCAN调度算法示例

4. 循环扫描(CSCAN)算法 图 5-26 CSCAN调度算法示例 磁头单向读写

5. N-Step-SCAN和FSCAN调度算法 在以上算法中会出现磁臂粘着, 即:一些进程反复请求对某一磁道的I/O操作。 在高密度磁盘上容易出现此情况。   N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,子队列之间按FCFS算法调度, 队列内部按SCAN算法调度。   出现新的磁盘I/O请求,将新请求进程放入其他队列。   当N值取得很大时,接近于SCAN算法; 当N=1时, N步SCAN算法便蜕化为FCFS算法。

2) FSCAN算法 FSCAN算法实质上是N步SCAN算法的简化, 即FSCAN只将磁盘请求队列分成两个子队列。   当前所有请求磁盘I/O的进程形成的队列,按SCAN算法进行处理。   新出现的所有请求磁盘I/O的进程, 放入另一个等待处理的请求队列。

5.6.3 磁盘高速缓存(Disk Cache) 1. 磁盘高速缓存的形式 定义:利用内存中的存储空间,来暂存从磁盘中读出的盘块中的信息。   高速缓存是一组在逻辑上属于磁盘, 而物理上是驻留在内存中的盘块。   高速缓存在内存中可分成两种形式。 第一种是内存单独的存储空间,其大小固定; 第二种是把所有未利用的内存空间变为缓冲池,大小不固定。   当磁盘I/O操作频繁时,大一些;而在应用程序运行得较多时,小一些。

数据交付:将磁盘Cache中的数据传送给请求进程的。 2. 数据交付方式 数据交付:将磁盘Cache中的数据传送给请求进程的。   系统可以采取两种方式, 将数据交付给请求进程: (1) 数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。 (2) 指针交付。只将指向高速缓存中某区域的指针, 交付给请求者进程。 后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存到进程的内存工作区的时间。

除了考虑到最近最久未使用、最近未使用、最少使用原则外, 还考虑了以下几点: 3. 置换算法(Cache满时须置换)   除了考虑到最近最久未使用、最近未使用、最少使用原则外, 还考虑了以下几点:    (1) 访问频率。   指令执行频率高,则对磁盘Cache的访问频率也高 (2) 可预见性。 可预见哪些数据可能被再访问,如:刚写入数据而未满的,可能再被访问。 (3) 数据的一致性。 高速缓存中的数据易因断电而丢失,引起与磁盘不一致。

4. 周期性地写回磁盘 在UNIX系统强制性地每隔30 s将所有在高速缓存中已修改的盘块数据写回磁盘。   在MS-DOS中,只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,几乎不会丢失数据,但须频繁地启动磁盘。

5.6.4 提高磁盘I/O速度的其它方法 提前读(Read-Ahead) 读当前块时,将顺序的下一块也读入Cache (用于顺序访问) 2. 延迟写   将本应立即回写的Cache ,挂在空闲Cache队列尾,直到移到队首时,才回写。 3. 优化物理块的分布   文件分配盘块时,尽可能分配在同一或相邻磁道,避免磁头移动过长。以簇为单位分配。 4. 虚拟盘   利用内存空间去仿真磁盘,RAM盘。因易失性只用于放临时文件。虚拟盘由用户控制,磁盘Cache由OS控制。

5.6.5 廉价磁盘冗余阵列 1. 并行交叉存取 图 5-27 磁盘并行交叉存取方式

2. RAID的分级 RAID 0级。(并行存取,但无冗余) (2) RAID 1级。 (并行存取,镜像,如8个磁盘,4个并行,4个镜像) (3) RAID 3级。 (并行存取,一台奇偶校验盘) (4) RAID 5级。 (并行存取,奇偶位分布在N个盘中) (5) RAID 6级和RAID 7级。

3. RAID的优点 可靠性高。(镜像、冗余。根据未损信息恢复。) (2) 磁盘I/O速度高。 (并行交叉存取) (3) 性能/价格比高。 (以容量换性能,相比于大容量磁盘,性价比高)

设某作业占有7个页面,如果在主存中只允许装入4个工作页面(即工作集为4),作业运行时,实际访问页面的顺序是1, 2, 3, 6, 4, 7, 3, 2, 1, 4, 7, 5, 6, 5, 2, 1。试用FIFO与LRU页面调度算法,列出各自的页面淘汰顺序和缺页中断次数,以及最后留驻主存4页的顺序。(假设开始的4个页面已装入主存)

磁盘请求以10,22,20,2,40,6,38柱面的次序到达磁盘驱动器。寻道时每个柱面移动需要6ms,则采用先到先服务算法的寻道时间为__________;采用电梯算法(起始移动方向向外)的寻道时间为__________。(假设磁头开始位置在柱面20)