操作系统快速入门笔记–5

作者 : 开心源码 本文共3394个字,预计阅读时间需要9分钟 发布时间: 2022-05-14 共166人阅读

这一节主要记录的是操作系统设施管理的知识

I/O设施

现代计算机系统通常配备大量的I/O设施,用于计算机系统与外部世界(如客户、其它计算机或者电子设施等)进行信息交换或者存储
I/O设施又称为外围设施或者外部设施,简称外设
I/O操作:内存和I/O设施之间的信息传送操作

  • 不仅影响计算机的通用性和可扩充性,也是计算机
    系统综合解决能力和性价比的重要因素

分类

按信息传输方式分:
输入设施,输出设施,输入输出设施
按交互功能分:
人机交互设施,存储设施,机机通信设施
按设施管理分配:
字符设施
块设施:以固定大小的数据块进行信息交换
网络设施:用于与远程设施通信

设施管理的目标

克服设施和CPU速度的不匹配所引起的问题,使主机和设施并行工作,提高设施使用效率。
对设施进行笼统,屏蔽设施的物理细节和操作过程,配置驱动程序,提供统一界面,供客户或者高层软件使用。

  1. 笼统位文件系统的结点,统一管理
  2. 裸设施:不被操作系统直接管理,由应用程序读写,I/O效率更高

设施管理的功能

  1. 设施中断解决
  2. 缓冲区管理
  3. 设施的分配和去配
  4. 设施驱动调度
  5. 实现虚拟设施

设施管理的层次

  1. I/O硬件 I/O设施及其接口线路,控制部件,通道
  2. I/O软件 系统I/O软件 客户空间I/O软件

设施控制器

为达到模块化和通用性的设计目标,通常将I/O设施中的机械部件和电子部件分开解决。
其中,电子部件称为设施控制器。
设施控制器又称为设施适配器、I/O控制器、I/O
控制接口,简称I/O模块或者I/O接口。
操作系统与控制器交互,而非与设施交互。

设施控制器的功能

设施控制器是CPU与设施之间的接口,功能如下:

  1. 接受和识别CPU或者通道发来的命令
  2. 实现数据交换
  3. 发现和记录设施及自身的状态信息,供CPU解决使用
  4. 当连接多台设施时,设施地址识别。

设施控制器的组成设施控制器的组成部分.png

轮询方式

  1. 解决器向控制器发送一个I/O命令。
  2. 假如设施未就绪,则重复测试过程,直至设施就绪。
  3. 执行数据交换。
  4. 等待I/O操作完成后,才可以继续其它操作。

    轮询方式.png

    特点:

  5. 解决I/O请求会终止原程序的执行
  6. CPU需要等待I/O设施就绪
  7. CPU需要参加数据传送
  8. CPU和设施只能串行工作,效率低下。

中断方式

流程:

  1. 解决器向控制器发出一个I/O命令,而后继续执行后续指令
  • 假如该进程不需要等待I/O完成,后续指令可以仍是该进程中的指令
  • 否则,该进程在这个中断上挂起,解决器执行其余工作
  1. 控制器检查设施状态,就绪后发起中断
  2. CPU响应中断,转向中断解决程序
  3. 中断解决程序执行数据读写操作
  4. 恢复执行原价程序

    中断方式.png

    特点:

  5. 响应终端后会终止源程序的执行
  6. CPU不需要等待I/O设施就绪
  7. CPU需要参加数据传送
  8. CPU与设施部分并行操作,效率有所提高

直接存储器访问(DMA)方式

DMA模块:模拟解决器来访问主存和设施控制器之间的数据交换。

流程:

  1. 解决器向DMA模块发出I/O命令
  2. 解决器继续执行其它工作,DMA模块负责传送
    一律数据
  3. 数据传送结束后,DMA中断解决器。

    DMA.png

特点:

  1. CPU不会终止源程序的执行
  2. CPU只在数据传送的开始和结束时参加
  • 开始时,CPU需要对DMA模块进行初始化
  • 结束时,CPU响应中断,但不必保存现场

DMA方式中的周期窃取

当DMA和CPU同时经总线访问内存时,CPU总是将总线的占有权让给DMA一个或者几个主存周期
周期窃取对推迟CPU与主存的数据交换影响不大

  1. 数据传送过程是不连续的和不规则的
  2. CPU大部分情况下与Cache进行数据交换,直接访

    问内存较少。CPU在IO控制中的作用.png

I/O通道

又称为通道控制器、I/O解决器
设施控制器包含自身专用的解决器和通道程序

  1. I/O指令不再由解决器执行,而是存在主存中,由I/O通道所包含的解决器执行
  2. 采用四级连接:解决器,通道,控制器,设施
    可控制多台同类或者不同类的设施

流程:

  1. CPU在遇到I/O请求的时候启动制定通道。
  2. 一旦启动成功,通道开始控制I/O设施进行操作,CPU执行其余任务
  3. I/O操作完成后,I/O通道发出中断,CPU中止当前工作,转向解决I/O操作结束事件

CPU与通道并行工作。

带有局部存储器的I/O通道

总线

处理I/O设施速度不匹配的问题。
要使得主机和设施充分并行,提高系统效率。

单总线结构模型

将CPU、主存和I/O模块连接到同一组总线上
优点:结构简单,易于扩充
缺点:主存需要和I/O模块共用总线;设施增多会造成总线变长,进而添加传输时延;无法适用于大量高速设施。

三级总线

主存和Cache通过主存总线传送数据,主存总线和扩展总线上的I/O设施之间传送数据通过扩展总线接口缓冲。

优点:主存与I/O之间的数据传送与解决器的活动分离;
可以支持更多的I/O设施。
缺点:不适用于I/O设施数据速率相差太大的情形。

三级总线.png

采用南北桥的多级总线

通过存储总线、PCI总线、E(ISA)总线分别连接主存、高速I/O设施和低速I/O设施
优点:可以支持不同数据速率的I/O设施

南北桥.png

采用I/O通道的多级总线

支持CPU、主存和多个I/O通道之间的数据传送

支持I/O通道和I/O控制器,以及I/O控制器和设施之间的数据传送。采用I/O通道的多级总线.png


下面详情I/O软件

I/O软件

设计目标:

  1. 高效率:改善设施效率,尤其是磁盘I/O操作的效率
  2. 通用性: 用统一的标准来管理所有设施

设计思路:把软件组织成层次结构,低层软件用来屏蔽硬件细节,高层软件向客户提供简洁友善的界面。

主要考虑的问题:

  1. 设施无关性:编写访问文件的程序与具体设施无关。
  2. 出错解决:低层软件能解决的错误不让高层软件感知。
  3. 同步/异步传输: 支持阻塞和中断驱动两种工作方式。
  4. 缓冲技术:建立数据缓冲区,提高吞吐率。

I/O软件的层次结构

IO软件的层次结构.png

I/O中断解决程序

位于操作系统底层,与硬件设施密切相关,与系统其他部分尽可能少地发生联络。
进程请求I/O操作时,通常被挂起,直到数据传输结束后并产生I/O中断时,操作系统接管CPU后转向中断解决程序。
当设施向CPU提出中断请求时,CPU响应请求并转入中断解决程序。

功能:
检查设施状态寄存器的内容,判断中断产生的起因,根据I/O操作的完成情况进行相应的解决。

  1. 若数据传输有错,向上层软件报告设施的出错信息,实施重新执行。
  2. 若正常结束,唤醒等待传输的进程,使其转换为就绪态。
  3. 若有等待传输的I/O命令,通知相关软件启动下一个I/O请求。

设施驱动程序

包括与设施密切相关的所有代码。
从独立于设施的软件中接收并执行I/O请求

  1. 把客户提交的逻辑I/O请求转化为物理I/O操作的启动和执行。
  2. 监督设施能否正确执行,管理数据缓冲区,进行必要的纠错解决。

功能:

  1. 设施初始化:在系统首次启动或者设施传输数据时,预置设施和控制器以及通道状态。
  2. 执行设施驱动例程:负责启动设施,进行数据传送。对于具备通道方式,还负责生成通道指令和通道程序,启动通道工作。
  3. 调用和执行中断解决程序。负责解决设施和控制器及通道所发出的各种中断。

设施驱动程序的层次

每个设施驱动程序只解决一种设施,或者者一类紧密相关的设施。
设施驱动程序分为整体驱动程序和分层驱动程序

  1. 整体驱动程序直接向操作系统提供接口和控制硬件
    :适用于功能简单的驱动程序,效率较高,但较难迁移
  2. 分层驱动程序将驱动程序分成多层,放在栈中,系统接到I/O请求时先调用栈顶的驱动程序,栈顶的驱动程序可以直接解决请求或者向下调用更低层的驱动程序,直至请求被解决。适用于功能复杂、重用性要求较高的驱动程序,结构清晰且便于移植,会添加部分系统开销。

独立于设施的I/O软件

执行适用于所有设施的常用I/O功能,并向客户层软件提供一致性接口。
功能:

  1. 设施命名:通过路径名寻址设施
  2. 设施保护:检查客户能否有权访问所申请设施
  3. 提供与设施无关的数据单位:字符数量,块尺寸
  4. 缓冲技术:传输速率,时间束缚,不能直接送达目的地
  5. 设施分配和状态跟踪:分配不同类型的设施错误
  6. 错误解决和报告:驱动程序无法解决的错误

客户空间的I/O软件

库函数

  1. 一小部分I/O软件不在操作系统中,是与应用程序链接在一起的库函数,甚至完全由运行于客户态的程序组成。
  2. 系统调用通常由库函数封装后供客户使用,封装函数只是将系统调用所用的参数放在合适位置,而后执行访管指令来陷入内核,再由内核函数实现真正的I/O操作。

** SPOOLing软件**
在内核外运行的系统I/O软件,采用预输入、缓输出和井管理技术,通过创立守护进程和特殊目录处理独占型设施的空占问题。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 操作系统快速入门笔记–5

发表回复