操作系统原理之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 在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...
随机推荐
- vscode 设置代码格式化缩进为2个空格
打开文件——>首选——>设置 输入搜索 tabsize 按照下图设置即可,然后打开 注意:如果不将Detect Indentation 勾选取消 以前用tab创建的忘记依然为4个空格
- 免sdk实现微信/支付宝转账打赏功能
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/162 近期发现了一个很好的开源项目,可以给自己的app添加 ...
- cpu 乱序执行与问题【转】
转自:https://blog.csdn.net/lizhihaoweiwei/article/details/50562732 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议 ...
- Mybatis-plus中的常用注解
@TableName:数据库表相关 @TableId:表主键标识 @TableField:表字段标识 @TableLogic:表字段逻辑处理注解(逻辑删除) @TableId(type= IdType ...
- Pwnable-cmd1
ssh cmd1@pwnable.kr -p2222 (pw:guest) 先看一下c的源码 #include <stdio.h> #include <string.h> in ...
- Drop_out--防止过拟合
With probability keep_prob, outputs the input element scaled up by 1 / keep_prob, otherwise outputs ...
- 题解:T103342 Problem A. 最近公共祖先
题目链接 题目大意 求每个点对的lca深度的和 以每一层分析,得出通式 由于1e9的数据范围要化简表达式得到O(能过) 瞎搞后就是2^(2n+2)-(4n+2)*2^n-2 code: #includ ...
- layUI学习第一日:myeclipse中使用layUI
第一步:下载layUI,网址:https://www.layui.com/ 第二步:查看layUI解压后的内容,和官网解释各个文件夹的内容 第三部:在myeclipse中新建一个web project ...
- Jenkins根据svn版本号进行构建
在svn版本url后面加上“@svn版本号”,如@2105 原文:https://blog.csdn.net/jlminghui/article/details/40426849
- jQuery中的工具(十)
1. jQuery.each(object, [callback]), 通用遍历方法,可用于遍历对象和数组 不同于遍历 jQuery 对象的 $().each() 方法,此方法可用于遍历任何对象.回调 ...