一、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设备管理(第六章上半部分)的更多相关文章

  1. 操作系统原理之I/O设备管理(第六章上半部分下)

    五.I/O软件原理 输入输出软件的总体目标是将软件组织成一种层次结构 低层软件用来屏蔽硬件的具体细节 高层软件则主要是为用户提供一个简洁.规范的界面 设备管理的4个层次: 用户层软件 ->向系统 ...

  2. 操作系统原理2——OS结构

    操作系统原理2——OS结构   计算机系统是由硬件系统和软件系统两部分组成, 操作系统是软件系统的一个组成部分,它是直接在硬件系统的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结构有一个 ...

  3. 网络操作系统 第六章 Window Server 2008 活动目录

    本章小结 在企业网络中,活动目录是必不可少的,它将网络中各种对象组织起来进行管理,方便了网络对象的查找,增强了网络的安全性,为用户的物流管理提供了极大的便利,本章首先介绍了活动目录的基本概念,然后通过 ...

  4. Linux操作系统原理

    Linux操作系统原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事 ...

  5. [CSAPP笔记][第六章存储器层次结构]

    第六章 存储器层次结构 在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置. 虽然是一个行之有效的模型,但没有反应现代系统实际工作方式. 实际上,存储器系统(memo ...

  6. 第六章P2P技术及应用

    第六章P2P技术及应用 P2P技术在我们日常生活中非常实用,例如我们常用的QQ.PPLive.BitTorrent就是基于P2P技术研发.下面将本章中的重点内容进行归纳. 文章中的Why表示产生的背景 ...

  7. 精通Web Analytics 2.0 (8) 第六章:使用定性数据解答”为什么“的谜团

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第六章:使用定性数据解答"为什么"的谜团 当我走进一家超市,我不希望员工会认出我或重新为我布置商店. 然而, ...

  8. 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章  继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (37) ------ 第六章 继承与建模高级应用之独立关联与外键关联

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-13  在基类中应用条件 问题 你想从一个已存在的模型中的实体派生一个新的实体, ...

随机推荐

  1. 剑指offer 12:二进制中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解法一:设置标志为flag=1,逐个位移至不同位置,比较是否为1. C++实现 class Solution { publi ...

  2. (入门SpringBoot)SpringBoot项目创建基本配置(二)

    SpringBoot的环境搭建和基本开发:1.环境开发就不说了,一个程序员的基本功:2.基本开发-使用自定义的配置:2.1.配置文件.properties和yml文件.2.2.SpringBoot配置 ...

  3. 1. java 基本规则

    一.命名规范 1. 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式),HelloWorld 2. 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式),helloWorld 3. 方法名 ...

  4. jenkins添加TPS与服务器监控变化曲线图

    第一步,首先在测试的脚本中添加你所需要查看的曲线图的监控路径 譬如我想查看TPS变化图 添加hps监控图 添加服务器监控图 把所有jtl文件保存到/opt/workspace/B_Stress_Tes ...

  5. 201271050130-滕江南-《面向对象程序设计(java)》第十三周学习总结

      201271050130-滕江南-<面向对象程序设计(java)>第十三周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daiz ...

  6. 201871010102-常龙龙《面向对象程序设计(java)》第十一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  7. 如何下载安装MySQL 解压版和安装版以及2个版本的区别

    参考链接:https://blog.csdn.net/qq_33800083/article/details/80722829

  8. python27期前端

    第一天笔记:HTML:是一种标识性的语言css:层叠样式表是一种用来表现HTML等文件样式(效果)的计算机语言JavaScript:简称“JS”,是一种属于网络的脚本语言 常用来为网页添加各式各样的动 ...

  9. Paper | Deep Residual Learning for Image Recognition

    目录 1. 故事 2. 残差学习网络 2.1 残差块 2.2 ResNet 2.3 细节 3. 实验 3.1 短连接网络与plain网络 3.2 Projection解决短连接维度不匹配问题 3.3 ...

  10. python 学习常见问题笔记

    1.for...if...构建List segs = [v for v in segs if not str(v).isdigit()]#去数字 https://www.cnblogs.com/eni ...