第五章:输入输出(IO)管理
I/O设备概念:
指计算机内部除中央处理器和内存之外的全部设备,通常也称为外部设备。
I/O设备分类:
·按交互对象分类:
·人机交互设备
·与计算机或其它电子设备交互的设备
·计算机间的同信设备
·按交互方向分类:
·输入(可读)
·输出(可写)
·输入/输出(可读写)
·按外设特性分类:
·使用特性
·传输数据率
·信息组织特性
I/O控制方式:
·程序訪问控制方式
·中断控制方式
·DMA方式(直接存储器寻址方式):在内存中进行数据的搬运
·通道方式(代表:USB)
I/O软件的目标:
·设备独立性:当去訪问某一设备时,不须要去对该设备的详细的操作方 式要了解
·统一命名
I/O的层次结构:
·用户层
·设备独立层
·设备驱动层
·中断层
·硬件层
I/O调度概念:
调度一组请求就是确定一个好的顺序来执行这些请求。
操作系统为每一个设备维护一个请求对列来实现调度。
I/O核心子系统改善计算机效率的一种方法是进行I/O操作调度,使用内存或磁盘上的存储空间的技术。如缓冲、快速缓存、假脱机。
快速缓存:
快速缓存是能够保留数据拷贝的快速内存,快速缓存拷贝的訪问要比原始数据訪问更高效。
缓存区:
缓冲区是用来保存在两设备之间或在设备和应用程序之间所传出数据的内存区域。
採用缓冲的三个作用:
·处理数据流的生产者与消费者之间的速度差
·协调数据传输大小不一致的设备
·应用程序I/O的拷贝语义
缓冲区:
·单缓冲
·双缓冲
·循环缓冲
·缓冲池
设备分配概述:
·对于独占型设备进程必须先申请分配,而后才干够进行I/O传输
·对于共享型设备和虚拟型设备,无须考虑分配问题,进程能够通过文件系 统直接请求使用。
设备分配的原则:
依据设备的特性、用户要求和系统配置情况来决定
设备的分配方式:静态分配和动态分配
设备分配的策略:先请求先分配(FIFO)、优先级高者先分配
假脱机技术(SPOOLing):
将一个独享型设备转变为一个共享型设备
SPOOLing系统的组成:
·输入井和输出井(存在于外存中)
·输入缓冲区和输出缓冲区(存在于内存中)
·输入进程SP1和输出进程SP0
出错处理:
假设I/O设备出错了应由I/O处理
第五章:输入输出(IO)管理的更多相关文章
- Java程序设计(2021春)——第五章输入输出笔记与思考
Java程序设计(2021春)--第五章输入输出笔记与思考 本章概览: 异常处理简介 程序运行时,环境.操作等可能出现各种错误.故障,我们希望程序具有容错能力,给出错误信息.面向对象的程序设计里有异常 ...
- SpringBoot | 第二十五章:日志管理之自定义Appender
前言 前面两章节我们介绍了一些日志框架的常见配置及使用实践.一般上,在开发过程中,像log4j2.logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了.但在一些特殊需求 ...
- 操作系统——第五章 输入输出(I/O)管理
这就是SDT表和DCT表
- 《APUE》-第五章标准IO库
大多数UNIX应用程序都使用I/O库,本章说明了该库所包含的所有函数,以及某些实现细节和效率方面的考虑.同时需要重点关注标准I/O使用了缓冲的技术,但同时也是因为它的出现,产生了很多细节上的问题. 流 ...
- PMP 第五章 项目范围管理
1.范围管理主要是干什么?什么是产品范围?什么是项目范围? 项目范围管理包括确保项目做而且只做成功完成项目所需的全部工作的各过程.管理项目范围主要是在定义和控制哪些工作应该包括在项目内,哪些不应 ...
- 流畅python学习笔记:第十五章:上下文管理器
在开始本章之前,我们首先来谈谈try-excep..final模块.在Python中,进行异常保护的最多就是用try..except..final.首先来看下下面的代码.进行一个简单的除法运算.为了防 ...
- iBatis第五章:事务管理
---------------------------- 1.什么是事务 ------------------------------ 什么是事务? 需要注意的是,事务的概念不是针对某个特定的数据库的 ...
- 第五章:Admin管理后台
Django奉行Python的内置电池哲学.它自带了一系列在Web开发中用于解决常见问题或需求的额外的.可选工具.这些工具和插件,例如django.contrib.redirects都必须在setti ...
- 第五章:Admin管理后台 - 1:自定制Admin
如果只是在admin中简单的展示及管理模型,那么在admin.py模块中使用admin.site.register将模型注册一下就好了: from django.contrib import admi ...
- 第五章:Admin管理后台 - 2:自定义Admin actions
通常情况下,admin的工作模式是"选中目标,然后修改目标",但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以 ...
随机推荐
- linux网络相关命令使用
A,iptables使用示例 1,将请求80端口的包发送给本机8180端口(这样,别的机器访问本机的80端口时会被转发到8180端口去) iptables -t nat -A PREROUTING - ...
- Java对象序列化与反序列化一 JSON
Java对象序列化与反序列化一 JSON 1. 依赖库 jackson-all-1.6.1.jar 2. 代码 public class Student { private String nam ...
- 积跬步,聚小流------关于UML类图
UML的存在 类图是使用频率比較高的UML图,它用于描写叙述系统中所含的类以及它们之间的相互关系,帮助人们简化对系统的理解,也是系统分析和设计阶段的重要产物,也是系统编码和測试的重要类型根据. UML ...
- CRC32 vs Java.HashCode
找了容量为27万中文词库进行试验 CRC32 中冲突率 < 0.01% 而 Java.HashCode 有 4% hashCode 的速度 应该比 CRC 快 2-3 倍 CR ...
- JavaScript中的字符串
JavaScript字符串是JavaScript最重要的部分,可能比任何其他的数据类型都更多的用到. 所有的JavaScript对象共享的方法之一就是toString(). 字符串对象叫做String ...
- 总结一下ASP.NET MVC 网站的部署问题
总结一下ASP.NET MVC 网站的部署问题 近日,准备把MVC建了一个新的测试站点部署到IIS上面,结果没想到出现了一系列的问题和错误,准备记录一下. 第一个问题,就是如何将MVC的站点部署到II ...
- opencv第一站:配置opencv环境(2015-12-12)
今天论坛申请的书< OpenCV 计算机视觉编程攻略(中国工信出版社)>到了,准备研究研究机器视觉. 晚上安装了 vc2008 及 opencv 最新版 3.0.0,试了各种配置都是错误提 ...
- BZOJ 1634: [Usaco2007 Jan]Protecting the Flowers 护花( 贪心 )
考虑相邻的两头奶牛 a , b , 我们发现它们顺序交换并不会影响到其他的 , 所以我们可以直接按照这个进行排序 ------------------------------------------- ...
- JS 获取星期几的四种写法
今天是星期几的4种JS代码写法,有需要的朋友可以参考一下 第一种写法 复制代码代码如下: var str = ""; var week = new Date().getDay() ...
- UnixShell编程(第三版)
这本书相当老了,04年的,现在 在linux上做实验. 1,date 显示日期. 2,who 显示用户,who am i 3,echo 后面字符串会全部输出,,会过滤掉多余空格,单双引号,分号等. ...