操作系统原理之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控制方式

*********************************轮询控制方式*****************************************

********************************************中断控制⽅式*****************************************

**************************************DMA控制⽅式*************************************

***************************************************************************************************

当CPU要从磁盘读⼊⼀个数据块时,就向磁盘控制器发送⼀条读命令。
该命令被送到DMA的命令寄存器CR中,同时CPU将本次读⼊数据将要放在内存中的起 始地址送DMA的MAR寄存器,将本次要读的字节数送⼊DC寄存器。
然后启动DMA控制器进⾏数据传输,在DMA控制输⼊过程中,CPU可以执⾏其他的进 程,当本次读⼊的数据全部传输完毕后,DMA向CPU发送中断请求。
三、 缓冲管理 Chapter
缓冲区是⽤来保存两个设备之间或设备与应⽤程序之间传输数据的内存区域 由于CPU的速度远远⾼于I/O设备,为了尽可能使CPU与设备并⾏⼯作,提⾼ 系统的性能,通常需要操作系统在设备管理软件中提供缓冲区管理功能。
*****************************************缓存的引入*********************************

************************************单缓冲********************************************

************************************双缓冲(缓冲交换)*******************************

*************************************循环缓冲*******************************************
在数据到达和数据离去的速度差别很⼤的情况下,需要增加缓冲区的数量

四、 设备分配
设备分配中的数据结构:⽀持设备分配的数据结构需要记录设备的状态(忙或空闲)、设备类型等基本信息




设备分配:
设备分配应考虑以下3个因素:
设备的固有属性:独占性、共享性、可虚拟性

设备分配算法:

设备分配⽅式:

设备独⽴性:
设备独⽴性的基本含义:应⽤程序独⽴于具体使⽤的物理设备
应⽤程序中,使⽤逻辑设备名称来请求使⽤某类设备 系统在实际执⾏时,必须使⽤物理设备名称.


SPOOLing技术:



操作系统原理之I/O设备管理(第六章上半部分)的更多相关文章
- 操作系统原理之I/O设备管理(第六章上半部分下)
五.I/O软件原理 输入输出软件的总体目标是将软件组织成一种层次结构 低层软件用来屏蔽硬件的具体细节 高层软件则主要是为用户提供一个简洁.规范的界面 设备管理的4个层次: 用户层软件 ->向系统 ...
- 操作系统原理2——OS结构
操作系统原理2——OS结构 计算机系统是由硬件系统和软件系统两部分组成, 操作系统是软件系统的一个组成部分,它是直接在硬件系统的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结构有一个 ...
- 网络操作系统 第六章 Window Server 2008 活动目录
本章小结 在企业网络中,活动目录是必不可少的,它将网络中各种对象组织起来进行管理,方便了网络对象的查找,增强了网络的安全性,为用户的物流管理提供了极大的便利,本章首先介绍了活动目录的基本概念,然后通过 ...
- Linux操作系统原理
Linux操作系统原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事 ...
- [CSAPP笔记][第六章存储器层次结构]
第六章 存储器层次结构 在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置. 虽然是一个行之有效的模型,但没有反应现代系统实际工作方式. 实际上,存储器系统(memo ...
- 第六章P2P技术及应用
第六章P2P技术及应用 P2P技术在我们日常生活中非常实用,例如我们常用的QQ.PPLive.BitTorrent就是基于P2P技术研发.下面将本章中的重点内容进行归纳. 文章中的Why表示产生的背景 ...
- 精通Web Analytics 2.0 (8) 第六章:使用定性数据解答”为什么“的谜团
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第六章:使用定性数据解答"为什么"的谜团 当我走进一家超市,我不希望员工会认出我或重新为我布置商店. 然而, ...
- 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (37) ------ 第六章 继承与建模高级应用之独立关联与外键关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-13 在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...
随机推荐
- 版本管理·玩转git(团队合作)
如果你想让一位叫"伙夫"的程序员,和你一起开发,首先你得在你的代码仓库把伙夫添加到此项目中来,让其成为开发者. 具体步骤: 项目->管理->项目成员管理->开发者 ...
- gitlab设置项目组成员权限
你敢相信这是个码农? setting菜单的“Members”功能页: 该页面展示了当前Project的成员列表,以及每个成员对应的权限角色,Owner/Master/Developer 注意到该页面顶 ...
- SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1)
SRDC - ORA-30036: Checklist of Evidence to Supply (Doc ID 1682700.1) Action Plan 1. Execute srdc_db_ ...
- nginx 文件服务器配置,模板配置文件,有注释
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/e ...
- 详解YUV数据格式
我们在讲 FFmpeg 系列的时候,有提到 YUV 的.其中包括YUV播放器.简单的YUV格式介绍. 一.YUV简介 YUV,是一种颜色编码方法.常使用在各个影像处理元件中. YUV在对照片或影片编码 ...
- 无法添加符号: 归档没有索引;运行 ranlib 以添加一个
这将告诉您对象文件的格式.如果对象文件是针对不同的平台编译的,则会导致无法为存档创建索引.要纠正这种情况,您需要重新编译这些文件.
- scanf函数和cin的区别、类的数组、C++排序函数
给定n个字符串,将这n个字符串按照字典序进行排列,此处用排列函数是C++的库函数sort,产生如下两个疑问,望大佬解答 #include <iostream> #include <a ...
- 在实际工作中使用requests+unittest进行接口测试
之前学习python做接口测试时,用的时requests+excel的方式来进行接口测试,后来在工作中也用unittest来做了一个项目的接口测试,接口测试用例完全基于unittest来编写,把大致步 ...
- bolb与base64的图片互转
直接看图简单明了. 注:便于测试你可以自己用base64图片测试互转一下.这里base64图片太长了就不给予展示了,望理解
- 洛谷 P1840 【Color the Axis_NOI导刊2011提高(05)】 题解
看了一下题解,显然在做无用功啊,而且麻烦了许多,但是这道题真心不难,显然是一个区间修改的题目,然后查询的题目 我的线段树只需要记录一个量:区间和 看了一下其他题解的pushdown函数,发现真心写的很 ...