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)管理的更多相关文章

  1. Java程序设计(2021春)——第五章输入输出笔记与思考

    Java程序设计(2021春)--第五章输入输出笔记与思考 本章概览: 异常处理简介 程序运行时,环境.操作等可能出现各种错误.故障,我们希望程序具有容错能力,给出错误信息.面向对象的程序设计里有异常 ...

  2. SpringBoot | 第二十五章:日志管理之自定义Appender

    前言 前面两章节我们介绍了一些日志框架的常见配置及使用实践.一般上,在开发过程中,像log4j2.logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了.但在一些特殊需求 ...

  3. 操作系统——第五章 输入输出(I/O)管理

    这就是SDT表和DCT表

  4. 《APUE》-第五章标准IO库

    大多数UNIX应用程序都使用I/O库,本章说明了该库所包含的所有函数,以及某些实现细节和效率方面的考虑.同时需要重点关注标准I/O使用了缓冲的技术,但同时也是因为它的出现,产生了很多细节上的问题. 流 ...

  5. PMP 第五章 项目范围管理

    1.范围管理主要是干什么?什么是产品范围?什么是项目范围?    项目范围管理包括确保项目做而且只做成功完成项目所需的全部工作的各过程.管理项目范围主要是在定义和控制哪些工作应该包括在项目内,哪些不应 ...

  6. 流畅python学习笔记:第十五章:上下文管理器

    在开始本章之前,我们首先来谈谈try-excep..final模块.在Python中,进行异常保护的最多就是用try..except..final.首先来看下下面的代码.进行一个简单的除法运算.为了防 ...

  7. iBatis第五章:事务管理

    ---------------------------- 1.什么是事务 ------------------------------ 什么是事务? 需要注意的是,事务的概念不是针对某个特定的数据库的 ...

  8. 第五章:Admin管理后台

    Django奉行Python的内置电池哲学.它自带了一系列在Web开发中用于解决常见问题或需求的额外的.可选工具.这些工具和插件,例如django.contrib.redirects都必须在setti ...

  9. 第五章:Admin管理后台 - 1:自定制Admin

    如果只是在admin中简单的展示及管理模型,那么在admin.py模块中使用admin.site.register将模型注册一下就好了: from django.contrib import admi ...

  10. 第五章:Admin管理后台 - 2:自定义Admin actions

    通常情况下,admin的工作模式是"选中目标,然后修改目标",但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以 ...

随机推荐

  1. MySQL对于有大量重复数据表的处理方法

    需要在MySQL的一张innodb引擎的表(tableA)上添加一个唯一索引(idx_col1_u).但是对于每个key(col1)表中已经有大量重复数据.此时,做数据的手工清理,或者SQL处理是非常 ...

  2. <Win32_16>来看看标准菜单和右键菜单的玩法

    日常应用中,菜单主要分为两种:(1) 标准菜单(处于应用程序菜单栏处的菜单)    (2)右键快捷菜单 几乎你所见过或使用过的软件中,都有它俩儿 为应用程序添加它们的基本步骤: (1)用代码或者IDE ...

  3. HDU 1568 Fibonacci

    题解:首先,对于小于10000的斐波那契数,我们直接计算,当大于10000时,用公式,由于只要输出前四位,所以不用考虑浮点数的问题,算出其取log的结果: tmp=(log(sq5/5)+n*log( ...

  4. mysql下的SELECT INTO语句

    在mysql下使用SELECT INTO语句会产生ERROR 1327 (42000): Undeclared variable:new_tablename 此时要使用: CREATE TABLE C ...

  5. Curling 2.0(dfs回溯)

    Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15567   Accepted: 6434 Desc ...

  6. JavaScript 高级程序设计(第3版)笔记——chapter5:引用类型(基本包装类型部分)

    一.介绍 为了方便操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean, Number, String. 实际上,每当读取一个基本类型值得时候,后台就会创建一个对应的基本包装 ...

  7. Android之判断设备网络连接状态,并判断连接方式

    在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线 ...

  8. hdu 4465 Candy 2012 成都现场赛

    /** 对于大数的很好的应用,,缩小放大,,保持精度 **/ #include <iostream> #include <cmath> #include <algorit ...

  9. (IOS)截图Demo

    思路是建一个UIView的子类,获取划动出的矩形,用协议将矩形传递给代理对象,依据该矩形完成图像数据的截取,并显示出来. 截图视图类: #import <UIKit/UIKit.h> @p ...

  10. VC之美化界面(内容覆盖十分全面,经典)

    界面美化 摘要本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理: 2. 熟悉Windows消息机制,熟悉MFC的消息映射和 ...