操作系统学习笔记_12_I/O管理 --I/O管理概述
I/O管理
--I/O管理概述
一、I/O控制方式
1.I/O 设备概念
I/O设备:是指计算机系统中除控制器、运算器(中央处理机)和内存以外的全部设备,通常也称为外部设备。
I/O操作:是内存与外设的介质之间的传输数据操作。
2.I/O 设备分类
(1)按交互对象分类:人机交互设备等。
(2)按交互方向分类:输入输出设备等。
(3)按外设特性分类:块传输设备或字符传输设备等。
3.I/O 管理目标
设备管理的功能是依照I/O子系统的结构和设备类型指定分配和使用设备的策略。
设备管理的目标是:提高效率;方便使用;方便控制。
4.I/O 应用接口
提供设备使用的用户接口:命令接口和编程接口。
设备分配和释放:使用设备前,须要分配设备和对应的通道、控制器。
设备的訪问和控制:包含并发訪问和差错处理。
I/O缓冲和调度:目标是提高I/O訪问效率。
5.I/O 接口控制方式
设备管理的主要任务之中的一个是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的I/O控制方式有四种,例如以下所述。
(1)程序訪问控制方式
(2)中断控制方法
(3)DMA[直接存储器寻址]方式
【DMA与中断控制使得CPU从大量没用的工作中解放出来】
(4)通道方式
【冯诺依曼计算机体系:运算器,控制器,存储器,I/O设备】
二、 I/O软件层次结构
1.I/O软件的目标
(1)设备独立性。
(2)统一命名。
2.I/O 软件层次结构
I/O软件中,较低的层处理与硬件有关的细节,并将硬件的特征与较高的层隔离;而较高的层则向用户提供一个友好的、清晰而规整的 I/O接口。
一般的I/O软件结构分为四层。
|
用户层 |
|
设备无关独立层(操作系统) |
|
设备驱动程序 |
|
中断处理程序 |
中断处理程序:I/O设备中断方式是控制输入输出设备和内存与CPU之间的数据传送的主要方式。 设备驱动程序:I/O设备驱动程序是直接同硬件打交道的软件模块。
【中断处理程序与设备驱动程序一般由硬件开发商来完毕】
设备独立层:在I/O软件中,除了设备驱动程序以外,大部分软件是与设备无关的。
用户层软件:用户使用设备的系统调用或API。通常的I/O由图书馆系统调用过程。
版权声明:本文博主原创文章。博客,未经同意不得转载。
操作系统学习笔记_12_I/O管理 --I/O管理概述的更多相关文章
- 操作系统学习笔记----进程/线程模型----Coursera课程笔记
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...
- kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- 深挖计算机基础:趣谈Linux操作系统学习笔记
参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ...
- 操作系统学习笔记5 | 用户级线程 && 内核级线程
在上一部分中,我们了解到操作系统实现多进程图像需要组织.切换.考虑进程之间的影响,组织就是用PCB的队列实现,用到了一些简单的数据结构知识.而本部分重点就是进程之间的切换. 参考资料: 课程:哈工大操 ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
- GIT学习笔记(3):分支管理
GIT学习笔记(3):分支管理 何谓分支 GIT是如何存储数据的 GIT不是存储文件差异或者变化量,而是一系列文件的快照.在Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容 ...
- SpringBoot学习笔记:Swagger实现文档管理
SpringBoot学习笔记:Swagger实现文档管理 Swagger Swagger是一个规范且完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.Swagger的目标是对RE ...
随机推荐
- android ksoap2调用.net Webservice 方法总结
android ksoap2调用.net Webservice 方法直接放到一个类里: package com.util; import org.ksoap2.SoapEnvelope; impor ...
- 新型I/O架构引领存储之变(四)
新型I/O架构引领存储之变(四) 作者:廖恒 应对挑战--商务及技术考量 本文前面的部分分析了砖块模式与生俱来的总拥有成本(TCO)过高的问题.为了战胜这一挑战,超大规模数据中心的运营者须要从两个不同 ...
- WEB网站性能优化
最近做了一个WEB现场.幸运的是,一开始.但后来越来越慢,特别是在调试模式,,这肯定是我们的代码有问题.但是即使业务不是非常复杂的也非常慢,我们就想当然的觉得我们的代码没问题,可最后证明还是我们的代码 ...
- 《深入了解Android:Wi-Fi、NFC和GPS音量》勘误表
资源下载更新(我不知道为什么被115网盘屏蔽) 深入了解android它wifi-nfc-gps 115网盘礼包码:5lbee5qn4g5ghttp://115.com/lb/5lbee5qn4g5g ...
- 【 D3.js 入门系列 --- 4 】 怎样使用scale(比例)
本人的个人博客为: www.ourd3js.com csdn博客为: blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 在上一节中使用了一个非常重要的概念 - scale (这个不知道 ...
- Lucene40SkipListWriter
多级跳跃表是保存在tim文件里的. tip是term index,tim是term dictionary.记忆方法是,p是pointer因此是term index. 这个类会保存多个level的las ...
- FileUpload类别FileUpload1.FileName和FileUpload1.PostedFile.FileName差异
FileUpload1.FileName 用来获取client上使用 FileUpload 控件上载的文件的名称.此属性返回的文件名称不包括此文件在client上的路径. FileUpload1.Po ...
- URAL 1725. Sold Out!(数学啊 )
题目链接:space=1&num=1725" target="_blank">http://acm.timus.ru/problem.aspx?space= ...
- js淡入淡出
示例: js淡入淡出 原理:更改css不透明数值 知识点: css不透明 filter:alpha(opacity:30); opacity:0.3;} 小技巧: 小于临界值,做加速 大于临界值,做减 ...
- WCF 部署时,soap:address location 显示的是电脑名,而不是ip地址
部署WCF服务时,发现soap:address location 和wsdl:import location 显示是电脑名,而不是ip地址,这样外面公司的人就无法下载剩下的wsdl,post也会往错误 ...