操作系统快速入门笔记–5
这一节主要记录的是操作系统设施管理的知识
I/O设施
现代计算机系统通常配备大量的I/O设施,用于计算机系统与外部世界(如客户、其它计算机或者电子设施等)进行信息交换或者存储
I/O设施又称为外围设施或者外部设施,简称外设
I/O操作:内存和I/O设施之间的信息传送操作
- 不仅影响计算机的通用性和可扩充性,也是计算机
系统综合解决能力和性价比的重要因素
分类
按信息传输方式分:
输入设施,输出设施,输入输出设施
按交互功能分:
人机交互设施,存储设施,机机通信设施
按设施管理分配:
字符设施
块设施:以固定大小的数据块进行信息交换
网络设施:用于与远程设施通信
设施管理的目标
克服设施和CPU速度的不匹配所引起的问题,使主机和设施并行工作,提高设施使用效率。
对设施进行笼统,屏蔽设施的物理细节和操作过程,配置驱动程序,提供统一界面,供客户或者高层软件使用。
- 笼统位文件系统的结点,统一管理
- 裸设施:不被操作系统直接管理,由应用程序读写,I/O效率更高
设施管理的功能
- 设施中断解决
- 缓冲区管理
- 设施的分配和去配
- 设施驱动调度
- 实现虚拟设施
设施管理的层次
- I/O硬件 I/O设施及其接口线路,控制部件,通道
- I/O软件 系统I/O软件 客户空间I/O软件
设施控制器
为达到模块化和通用性的设计目标,通常将I/O设施中的机械部件和电子部件分开解决。
其中,电子部件称为设施控制器。
设施控制器又称为设施适配器、I/O控制器、I/O
控制接口,简称I/O模块或者I/O接口。
操作系统与控制器交互,而非与设施交互。
设施控制器的功能
设施控制器是CPU与设施之间的接口,功能如下:
- 接受和识别CPU或者通道发来的命令
- 实现数据交换
- 发现和记录设施及自身的状态信息,供CPU解决使用
- 当连接多台设施时,设施地址识别。
设施控制器的组成
设施控制器的组成部分.png
轮询方式
- 解决器向控制器发送一个I/O命令。
- 假如设施未就绪,则重复测试过程,直至设施就绪。
- 执行数据交换。
等待I/O操作完成后,才可以继续其它操作。
轮询方式.png
特点:
- 解决I/O请求会终止原程序的执行
- CPU需要等待I/O设施就绪
- CPU需要参加数据传送
- CPU和设施只能串行工作,效率低下。
中断方式
流程:
- 解决器向控制器发出一个I/O命令,而后继续执行后续指令
- 假如该进程不需要等待I/O完成,后续指令可以仍是该进程中的指令
- 否则,该进程在这个中断上挂起,解决器执行其余工作
- 控制器检查设施状态,就绪后发起中断
- CPU响应中断,转向中断解决程序
- 中断解决程序执行数据读写操作
恢复执行原价程序
中断方式.png
特点:
- 响应终端后会终止源程序的执行
- CPU不需要等待I/O设施就绪
- CPU需要参加数据传送
- CPU与设施部分并行操作,效率有所提高
直接存储器访问(DMA)方式
DMA模块:模拟解决器来访问主存和设施控制器之间的数据交换。
流程:
- 解决器向DMA模块发出I/O命令
- 解决器继续执行其它工作,DMA模块负责传送
一律数据 数据传送结束后,DMA中断解决器。
DMA.png
特点:
- CPU不会终止源程序的执行
- CPU只在数据传送的开始和结束时参加
- 开始时,CPU需要对DMA模块进行初始化
- 结束时,CPU响应中断,但不必保存现场
DMA方式中的周期窃取
当DMA和CPU同时经总线访问内存时,CPU总是将总线的占有权让给DMA一个或者几个主存周期
周期窃取对推迟CPU与主存的数据交换影响不大
- 数据传送过程是不连续的和不规则的
CPU大部分情况下与Cache进行数据交换,直接访
问内存较少。
CPU在IO控制中的作用.png
I/O通道
又称为通道控制器、I/O解决器
设施控制器包含自身专用的解决器和通道程序
- I/O指令不再由解决器执行,而是存在主存中,由I/O通道所包含的解决器执行
- 采用四级连接:解决器,通道,控制器,设施
可控制多台同类或者不同类的设施
流程:
- CPU在遇到I/O请求的时候启动制定通道。
- 一旦启动成功,通道开始控制I/O设施进行操作,CPU执行其余任务
- 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软件
设计目标:
- 高效率:改善设施效率,尤其是磁盘I/O操作的效率
- 通用性: 用统一的标准来管理所有设施
设计思路:把软件组织成层次结构,低层软件用来屏蔽硬件细节,高层软件向客户提供简洁友善的界面。
主要考虑的问题:
- 设施无关性:编写访问文件的程序与具体设施无关。
- 出错解决:低层软件能解决的错误不让高层软件感知。
- 同步/异步传输: 支持阻塞和中断驱动两种工作方式。
- 缓冲技术:建立数据缓冲区,提高吞吐率。
I/O软件的层次结构
IO软件的层次结构.png
I/O中断解决程序
位于操作系统底层,与硬件设施密切相关,与系统其他部分尽可能少地发生联络。
进程请求I/O操作时,通常被挂起,直到数据传输结束后并产生I/O中断时,操作系统接管CPU后转向中断解决程序。
当设施向CPU提出中断请求时,CPU响应请求并转入中断解决程序。
功能:
检查设施状态寄存器的内容,判断中断产生的起因,根据I/O操作的完成情况进行相应的解决。
- 若数据传输有错,向上层软件报告设施的出错信息,实施重新执行。
- 若正常结束,唤醒等待传输的进程,使其转换为就绪态。
- 若有等待传输的I/O命令,通知相关软件启动下一个I/O请求。
设施驱动程序
包括与设施密切相关的所有代码。
从独立于设施的软件中接收并执行I/O请求
- 把客户提交的逻辑I/O请求转化为物理I/O操作的启动和执行。
- 监督设施能否正确执行,管理数据缓冲区,进行必要的纠错解决。
功能:
- 设施初始化:在系统首次启动或者设施传输数据时,预置设施和控制器以及通道状态。
- 执行设施驱动例程:负责启动设施,进行数据传送。对于具备通道方式,还负责生成通道指令和通道程序,启动通道工作。
- 调用和执行中断解决程序。负责解决设施和控制器及通道所发出的各种中断。
设施驱动程序的层次
每个设施驱动程序只解决一种设施,或者者一类紧密相关的设施。
设施驱动程序分为整体驱动程序和分层驱动程序
- 整体驱动程序直接向操作系统提供接口和控制硬件
:适用于功能简单的驱动程序,效率较高,但较难迁移 - 分层驱动程序将驱动程序分成多层,放在栈中,系统接到I/O请求时先调用栈顶的驱动程序,栈顶的驱动程序可以直接解决请求或者向下调用更低层的驱动程序,直至请求被解决。适用于功能复杂、重用性要求较高的驱动程序,结构清晰且便于移植,会添加部分系统开销。
独立于设施的I/O软件
执行适用于所有设施的常用I/O功能,并向客户层软件提供一致性接口。
功能:
- 设施命名:通过路径名寻址设施
- 设施保护:检查客户能否有权访问所申请设施
- 提供与设施无关的数据单位:字符数量,块尺寸
- 缓冲技术:传输速率,时间束缚,不能直接送达目的地
- 设施分配和状态跟踪:分配不同类型的设施错误
- 错误解决和报告:驱动程序无法解决的错误
客户空间的I/O软件
库函数
- 一小部分I/O软件不在操作系统中,是与应用程序链接在一起的库函数,甚至完全由运行于客户态的程序组成。
- 系统调用通常由库函数封装后供客户使用,封装函数只是将系统调用所用的参数放在合适位置,而后执行访管指令来陷入内核,再由内核函数实现真正的I/O操作。
** SPOOLing软件**
在内核外运行的系统I/O软件,采用预输入、缓输出和井管理技术,通过创立守护进程和特殊目录处理独占型设施的空占问题。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 操作系统快速入门笔记–5