一、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. Docker关于镜像、容器的基本命令

    镜像 1.获取镜像 docker pull 服务器:端口/仓库名称:镜像 ➜ ~ docker pull python Using default tag: latest 2.查看镜像信息 列出本机所 ...

  2. 浅入浅出 Go 语言接口的原理

    浅入浅出 Go 语言接口的原理 接口是 Go 语言的重要组成部分,它在 Go 语言中通过一组方法指定了一个对象的行为,接口 interface 的引入能够让我们在 Go 语言更好地组织并写出易于测试的 ...

  3. springboot + shiro + mysql + mybatis 工程快速搭建

    1. 新建 springboot 工程 2. 随便起个名字 3. 初始化工程 4. 导入 shiro 和 thymeleaf 依赖 <!-- thymeleaf依赖 --> <dep ...

  4. Matplotlib Date Index Formatter 日期索引格式化学习

    官方网站:https://matplotlib.org/gallery/ticks_and_spines/date_index_formatter2.html#sphx-glr-gallery-tic ...

  5. Shell命令-搜索文件或目录之which、find

    文件及内容处理 - which.find 1. which:查找二进制命令,按环境变量PATH路径查找 which命令的功能说明 which 命令用于查找文件.which 指令会在环境变量 $PATH ...

  6. C学习笔记(6)--- 共用体,位域深入

    1.共用体(Union): 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置 ...

  7. win10python安装iis

    django部署iis https://www.cnblogs.com/guangang/articles/9268644.html python部署iis https://www.cnblogs.c ...

  8. luoguP1447 [NOI2010]能量采集

    https://www.luogu.org/record/22874213 题目大意:给定n和m,求Σ(1<=i<=n)Σ(1<=j<=m)GCD(i,j)* 2-1 i和j的 ...

  9. 使用 IDEA 翻译插件

    使用 IDEA 翻译插件 1.安装 在IDEA插件中搜索 translation根据下载量排序有个完全匹配名称的插件,下载,重启 2.配置翻译插件 都是中文,就不说了

  10. Python 协程 (Coroutine)

    协程 (Coroutine) 什么是协程 协程(微线程)是比线程更轻量化的存在,像一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程 最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控 ...