第二轮408复习笔记 操作系统 第五章 输入输出管理

I/O管理概述

I/O设备

设备的管理

  • 信息交换的单位分类,I/O设备
    • 块设备:信息交换以数据块为单位,如磁盘、磁带等。磁盘设备的基本特征就是传输速率较高、可寻址
    • 字符设备:信息交换以字符为单位。传输速率低、不可寻址
  • 按使用特性分类
    • 存储设备:磁盘、磁带、固态硬盘
    • 输入输出设备:输入、输出、交互
  • 按设备的共享属性
    • 独占设备:同一时间段只能由一个进程占用的设备
    • 共享设备:同一时间段可允许运行多个进程同时访问
    • 虚拟设备:通过SPOOLi技术将独占设备改为共享设备,从而将设备同时分配多个进程

I/O接口
I/O接口是CPU与设备之间的接口,以实现设备和计算机之间的数据交换

  • 设备控制线与CPU的接口:用于实现CPU与设备控制器之间的通信。该接口有三类:数据线、控制线和地址线
  • 设备控制器与设备的接口:一个设备控制器可以连接一个或多个设备,因此控制器中有一个或多个设备接口。每个接口可传输数据、控制和状态三种类型信号
  • I/O逻辑:用于实现对设备的控制,它通过一组控制线与CPU交互,对从CPU收到的命令进行译码

I/O接口的类型

  • 按数据传送方式:并行接口和串行接口
  • 按主机访问I/O设备的控制方式:程序查询接口、中断接口、DMA接口
  • 按功能选择的灵活性:可编程接口和不可编程性接口

I/O控制方式

通道控制方式
I/O通道是一个特殊的处理机,它可执行一系列的通道指令。设置通道后,CPU只需向通道发出一条I/O指令
通道与DMA的区别:DMA需要CPU控制传输的数据块大小、传输的内存位置。而这些信息有通道控制的。另外,每个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制倒台设备与内存的数据交换

通道与一般处理机的区别是:通道指令的类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU共享内存

I/O软件层次结构

  • 用户层软件:实现用户交互,通常大部分的I/O软件都在操作系统内核,但仍有一小部分在用户层,包括与用户程序链接在一起的库函数
  • 设备独立性:用于实现用户程序与设备驱动器的统一接口、设备命名、设备保护、以及设备的分配与释放等同时为设备管理和数据传送提供必要的存储空间
    • 在应用程序中,使用逻辑设备名请求使用某设备,而在系统执行时,必须将逻辑设备映射成物理设备
    • 设备独立的主要功能:1. 执行所有设备的公有操作,对设备的分配与回收、将逻辑设备映射成物理设备名;对设备进行保护,禁止用户直接访问设备 ;缓冲管理;差错控制;提供独立与设备的大小统一的逻辑块,屏蔽设备之间信息交换单位大小和传输速率的差异 2. 向用户层提供接口
  • 设备驱动程序:负责具体实现系统对设备发出的指令操作,它是I/O进程与设备控制器之间的通信程序,通常以进程方式存在
  • 中断处理程序:用于保存中断进程CPU环境

应用程序I/O接口

  • 字符设备接口:字符设备是指数据的存取和传输是以字符为单位的设备,如键盘、打印机。基本特征是传输速率比较低、不可寻址,并且输入\输出时采用中断驱动方式,字符设备都属于独占设备,为此接口中还需要提供打开和关闭操作,以实现互斥共享
  • 块设备接口:块设备接口是指数据的存取和传输都以数据块为单位的设备、典型的块设备时磁盘。基本特征是传输速率较高、可寻址。磁盘设备I/O常采用DMA方式
  • 网络设备接口:许多操作系统提供的网络I/O接口作为网络套接字接口,套接字接口的系统调用使应用程序创建的本地套接字连接到远程应用程序创建的套接字,通过此连接发送和接收数据

错题回顾

  • 16 将系统调用参数翻译成设备操作命令的工作由设备无关的操作系统软件完成
  • 17 设备驱动程序负责将上层软件发来的抽象I/O要求转换为具体要求,发送给设备控制器,控制设备工作。设备驱动程序需要向设备写入命令,以控制设备的工作状态和数据传输方式

设备独立性软件

磁盘高速缓存

操作系统中使用磁盘高速缓存技术来提高I/O速度,对访问高速缓存要比访问原始磁盘数据更为高效。利用用内存中存储空间来暂存从磁盘读出一系列盘块中的信息。因此磁盘高速缓存逻辑上属于磁盘,物理上在内存中盘块
单缓冲
每当用户进程发出一个I/O请求,操作系统在内存中分配一个缓冲区。一个缓冲区的大小就是一个块,从设备将一块数据输入缓冲区的时间为T,操作系统数据传送到工作区的时间为M,而CPU对这一块数据进行处理的时间为C
在单缓冲机制中C和T是可以并行
双缓存
为了加快输入和输出速度,提高设备利用率,引入了双缓冲机制。在双缓冲机制中C+M与T是并行的
循环缓冲
循环缓冲包含多个大小相等的缓冲区,每个缓冲区中一个链接指针指向下一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,循环缓冲区还需设置in和out两个指针,in指向第一个可以输入数据的空缓冲区,out指向第一个可以提取数据的满缓冲区。
缓冲池
缓冲区按使用情况分为:空缓冲队列,由空缓冲区链接而成的队列输入队列,由装满输入数据的缓冲区链接而成的队列 输入队列,由装满输出数据缓冲区
工作缓冲区:用于收容输入数据的工作缓冲区,用于提取输入数据的工作缓冲区,用于收容数据的工作缓冲区,用于提取输出数据的工作缓冲区

缓冲池的缓冲区有4种工作方式

  • 收容输入:输入进程需要输入数据时,从空缓冲队列的队首摘下一个空缓冲区,作为收容输入工作缓冲区
  • 提取输入:当计算进程需要输入数据时,从输入队列的队首取得一个缓冲区,作为提取输入工作缓冲区,从中提取数据,用完该数据后挂到空缓冲的队尾
  • 收容输出:计算进程需要输出数据时,从空缓冲队列的队首取得一个空缓冲区,作为收容输出工作缓冲区,当其中装满数据后,再将它挂到输出队列的队尾
  • 提取输出:输出进程需要输出数据时,从输出队首取得一个装满数据的缓冲区

设备分配与回收

设备分配时应考虑的因素
设备的固有属性

  • 独占设备
  • 共享设备
  • 虚拟设备
    设备分配中的安全性
  • 安全分配方式: 每当进程发出I/O请求后,便进入阻塞态,直到其I/O操作完成时才唤醒
  • 不安全分配:进程在发出I/O请求后仍然继续运行,仅当进程所请求的设备已被另一进程占用

设备分配的过程

  • 分配设备:首先根据I/O请求物理设备名查找SDT,从中找到DCT
  • 分配控制器:设备分配后,根据DCT找到COCT
  • 分配通道:控制器分配根据COCT找到CHCT
    只有设备控制器和通道都分配成功后,这次的设备分配才算成功

逻辑设备名到物理设备名的映射:逻辑设备表

SPOOLing技术

假脱机技术将独占设备改造成共享设备的技术

  • 输入井和输出井:在磁盘上开辟两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。
  • 输入缓冲区和输出缓冲区:在内存中开辟两个缓冲区。
  • 输入进程和输出进程:进程用于模拟脱机时的外围控制机

设备驱动程序接口

设备驱动程序接口接收上层应用发来的抽象I/O请求,将它们转换为具体要求后发送给设备控制器,进而使其启动设备去执行任务。

设备驱动程序有以下功能

  • 接收由上层软件发来的命令和参数,并将抽象转换与设备相关的具体要求
  • 检查用户请求的合法性,了解工作状态,传递与设备操作相关的参数,设置设备的工作方式
  • 发出I/O命令
  • 及时响应由设备控制器发来的中断请求

设备驱动程序的特点

  • 设备驱动程序将抽象的I/O请求转换为具体的I/O操作后,传送给设备控制器,并将设备控制器的记录的设备状态和I/O操作完成情况及时反馈给请求进程
  • 设备驱动程序采用与I/O控制方式紧密相关
  • 设备驱动程序与硬件紧密相关

磁盘和固态硬盘

磁盘的管理

磁盘格式化
在磁盘可以存储数据之前,必须将它分成扇区,以便磁盘控制器能够进行读写操作

分区
在可以使用磁盘文件之前,还要完成两个步骤,第一步是,将磁盘分区,每个分区由一个或多个柱面组成,第二步 将初使文件系统数据结构存储在磁盘上。

引导区
自举程序通常存放在ROM为了避免改变自举程序代码而需要改变ROM硬件问题只在ROM中保留很小的自举程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值