由于笔者要准备参加研究生考试复试,而操作系统这门课程又是复试考试中的一门课程,因此参考笔者报考学校的ppt,特此记录一下自己的学习过程,下面正文开始了:
引言
- 设备的概念
一个计算机系统就是由大量的设备构成的,例如:CPU,磁盘,显卡,显示器,鼠标,键盘等。这些设备的特点和功能各不相同。在这些设备中,有一类是作为计算机系统与外界交互的工具使用的,他具体负责计算机与外部的输入输出工作,我们称这类设备为外部设备,简称外设。本片文章主要研究的是操作系统中对这类设备的管理策略。 - 设备管理的目标
- 提高设备的利用率,就是提高CPU与I/O设备之间的并行操作
- 为用户提供方便统一的界面
- 方便:是指用户能独立于具体设备的复杂物理特性之外而方便地使用设备
- 统一:是指对不同地设备尽量使用统一的操作方式
I/O系统概述
- I/O系统的定义
计算机负责管理I/O的机构称为I/O系统(硬件和软件的组合) - I/O系统的结构
a. 单总线结构
b. 多总线结构
c. 具有通道系统的I/O系统
- I/O系统的控制方式
- 程序控制I/O(直接控制)
- 优点:简单
- 缺点:CPU的大部分时间都用于对硬件进行测试,效率低下
- 中断驱动I/O
- 优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。提高了CPU的利用率。中断技术使得CPU和外设之间的并行工作成为可能。
- 缺点:数据仍然需要通过CPU进行传输,由于CPU每次处理的数据量较少,因此这种方式只适于数据传输率较低的设备
- 直接存储访问I/O
优点:CPU只需干预I/O操作的开始和结束,而其中的数据读写无需CPU控制,适于高速设备。 - 通道控制方式I/O
优点:解决了I/O操作的独立性和各部件工作的并行性。通道把中央处理机从繁琐的输入输出操作中解放出来。采用通道技术后,不仅能实现CPU和通道的并行操作,而且通道与通道之间也能实现并行操作,各通道上的外围设备也能实现并行操作,从而可达到提高整个系统的效率的根本目的
- 程序控制I/O(直接控制)
- I/O设备的分类
- 按数据组织分类
- 块设备(Block Device):指以数据块为单位来组织和传送数据信息的设备。属于有结构设备。块设备的基本特征是:
- 传输速率较高,通常每秒钟为几兆位
- 它是可寻址的,即可随机地读/写任意一块
- 磁盘设备的I/O采用DMA方式
- 字符设备(Character Device):指以单个字符为单位来传送数据信息的设备。这类设备一般用于数据的输入和输出(交互式终端、打印机)。它属于无结构设备。字符设备的基本特征是:
- 传输效率较低
- 不可寻址,即不能指定输入时的源地址或输出时的目标地址
- 字符设备的I/O常采用中断驱动方式
- 块设备(Block Device):指以数据块为单位来组织和传送数据信息的设备。属于有结构设备。块设备的基本特征是:
- 按数据传输率分类
- 低速设备:指传输速率为每秒钟几个字节到数百个字节的设备。典型的设备有键盘、鼠标、语音的输入等。
- 中速设备:指传输速率在每秒钟数千个字节至数十千个字节的设备。典型的设备有行式打印机、激光打印机等
- 高速设备:指传输速率在数百千个字节至数兆字节的设备。典型的设备有磁带设备、磁盘设备、光盘设备等。
- 从资源分配的角度分类
- 独占设备:指一段时间内只允许一个用户(进程)访问的设备,大多是低速的I/O设备,如用户终端、打印机等属于这类设备。因为独占设备属于临界资源,所以多个并发进程必须互斥地进行访问
- 共享设备:指在一段时间内允许多个进程同时访问的设备,典型的共享设备是磁盘,共享设备不仅可以获得良好的设备利用率,而且是实现文件系统和数据库系统的物质基础。
- 虚拟设备:指通过虚拟技术将一台独占设备变换为若干个用户(进程)共享的逻辑设备。一般可以利用假脱机技术(SPOOLing技术)实现虚拟设备
- 按数据组织分类
I/O软件的组成
- I/O软件的组成部分
- I/O交通管制程序
负责各I/O设备之间的协调工作 - I/O调度程序
负责设备的分配和调度 - I/O设备处理程序
负责每类设备的具体操作
- I/O交通管制程序
- I/O软件的设计目标
- 设备独立性(device independence)
- 统一命名
- I/O软件的结构
- 中断处理程序
- 中断机制原理:
- 设置中断的目的:解决高速处理设备和低速输入输出设备之间的矛盾,提高系统工作效率
- 中断机制原理:
- 设备驱动程序
- 设备驱动程序是直接同硬件打交道的软件模块。一般而言,设备驱动程序的任务为:接受来自与设备无关的上层软件的抽象请求,进行与设备相关的处理。
- 具体来说,其功能主要有:
- 控制和监督各I/O控制器的正确执行,并进行必要的错误处理
- 处理和设备相关的操作,如排队、挂起、唤醒等。
- 缓冲区管理
- 进行一些较为底层的和具体设备相关的处理工作
- 设备驱动程序的特点
与I/O设备的硬件结构密切联系,是操作系统底层中唯一知道各种输入输出设备的控制器细节及其用途的成分。 - 设备驱动程序的结构
- 由于驱动程序和硬件结构有着密切的联系,因此不同的硬件其驱动程序的结构也不同
- 但是对于略有差异的同一类设备,为了方便使用,系统往往会提供一个通用的设备驱动程序。当然为了追求更好的性能,用户可以使用厂家提供的专门为该设备编写的设备驱动程序。
- 与设备无关的系统软件
- 是建立在设备驱动程序之上的,与具体设备无关的I/O功能的集合
- 功能:
- 统一命名:将设备的符号映射到相应的设备驱动程序上,对外提供统一的命名方式。
- 设备保护:对设备进行必要的保护,防止无授权的应用或用户的非法使用
- 提供与设备无关的逻辑块:屏蔽底层各种I/O设备空间大小、处理速度和传输速率的差异,只向上层提供大小统一的逻辑块尺寸。
- 缓冲管理
- 存储设备的块分配:查找一个存储设备的空闲块并进行分配
- 独占设备的分配和释放
- 出错处理:一般来说I/O错误有两种:
- 操作故障:由驱动程序处理
- 非操作故障:如磁盘受损而不能再读,由与设备无关的软件处理,并向上层返回出错信息
- 用户空间的I/O软件
常见的主要有:I/O系统调用、SPOOLING系统:构成虚拟设备 - I/O系统的层次结构与每层的主要功能
具有通道的设备管理
- 通道
- 通道的类型
a. 字节多路通道(Byte Multiplexor Channel)
b. 数组选择通道(Block Selector Channel)
c. 数组多路通道(Block Multiplexor Channel) - 字节多路通道
可以获得较好的通道利用率 - 数组选择通道
可以获得较好的数据传输速率 - 数组多路通道
既具有很高的数据传输速率,又能获得令人满意的通道利用率 - 术语:
- 通道命令:通道又称为I/O处理机,具有自己的指令系统,常常把I/O处理机的指令称为通道指令
- 通道程序:用通道命令编写的程序称通道程序,通道通过执行通道程序控制I/O设备运行
- 通道地址字:用来存放通道程序首地址的内存单元称通道地址字
- 通道状态字:是通道向操作系统报告工作情况的状态汇集
- 通道的工作原理
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习等系列文章