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

一、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技术:

 

 

 

转载于:https://www.cnblogs.com/jalja/p/11502765.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js控制a标签点击事件 触发下载

问题背景,动态获取data把url赋值到a标签的url中,让a标签自动下载 首先想到的应该是$(xxx).click(), 查资料明白:js中的$(...).click()事件只能触发绑定的onClick方法,不能跳转到href。 第二种方法:获取到url之后locat…

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

五、I/O软件原理 输入输出软件的总体目标是将软件组织成一种层次结构 低层软件用来屏蔽硬件的具体细节高层软件则主要是为用户提供一个简洁、规范的界面设备管理的4个层次: 用户层软件 -》向系统发出I/O请求,显示I/O操作的结果,提供⽤户与设备…

jQuery第二天

课程回顾: ​ jQuery:JavaScript库 ​ 入口函数:$(function () {}); ​ jQuery:jQuery对象,DOM对象 ​ jQuery转成DOM:$(‘元素’)[索引值] ​ DOM转成jQuery:$(DOM对象); ​ 筛选方法&am…

切换Debug/Release编译模式和Archive的作用

在学这个之前,以为很难,也起不到什么作用,但是等真正运用到工程里面,才发现,这个能帮你省下很多工作量。 1,Debug和Release版本区别? 进行iOS开发,在Xcode调试程序时&am…

Linux 防火墙:Netfilter iptables

一、Netfilter 简介 (1) Netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制,而 iptables 只是操作 netfilter 的一个命令行工具(2) Netfilter 是 Linux CentOS 6 内置的防火墙机制,Firewall 是 Linux CentOS 7 内置的…

无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...

无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。 在项目里添加 现有项 把SQLite.Interop.DLL文件添加进来,然后点击属性 修改一个属性 把 属性 复制到输出目录 改为 始终复制 然后打开你的项目属性 进入生成的 页面&a…

jQuery第三天

课程回顾: ​ 动画效果:基本动画,滑动动画,淡入淡出,自定义动画效果(animate) ​ 事件切换:hover(over,out); ​ 停止动画:stop ​ 操作属性:prop(固有属…

C语言程序设计II—第八周教学

第八周教学总结(15/4-21/4) 教学内容 本周的教学内容为:   8.4 电码加密 知识点:指针与字符串,重难点:字符指针与字符串的关联和区别;   8.5 任意个整数求和 知识点:动态内存分配…

AFNetworking 对数据进行https ssl加密

参考来源:http://www.cnblogs.com/jys509/p/5001566.html 现在在工作中的工作需求:https请求验证证书一般来讲如果app用了web service , 我们需要防止数据嗅探来保证数据安全.通常的做法是用ssl来连接以防止数据抓包和嗅探其实这么做的话还是不够的 。…

数据库系统原理(第一章概述)

一、数据库基本概念 什么是数据:数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的、 可以鉴别的信息。 数据是信息存在的一种形式,只有通过解释或处理的数据才能成为有用的信息。 什么是数据库:…

jQuery第四天

课程回顾: ​ 元素操作: ​ 遍历元素: ​ $(‘元素’).each(function (index, elm) {}); ​ $.each(对象,function (index, elm) {}); ​ 创建元素:$(‘ 新的元素?’);​ 添加元素: ​ 内部添加&…

navigationController的NavigationBar和ToolBar的POP或PUSH消失问题

今天在工作中发现一个坑, 其他页面都是隐藏。YSViewController 使用的时候必须是需要 navigationBar 和 toorbar,但是 pop出这个viewcontroller后,需要隐藏navigationBar 和 toorbar,但是直接设置为hiddenYES会出现其他页面压栈出…

实验二:Linux下Xen环境的安装

实验名称: Linux下Xen环境的安装(centOS7) 实验环境: 本次实验基本是在centOS7的环境下完成,系统内核和系统版本如下: 实验要求: 为centOS7的环境下安装Xen的平台,能够正常使用Xen下…

IDEA写vue项目出现红色波浪线警告如何解决??

1.看图 2.希望对大家有帮助,只要修改了这个就可以,如有任何问题都可以留言,谢谢大家 2019-09-1923:54:11 作者:何秀好 转载于:https://www.cnblogs.com/itboxue/p/11553395.html

数据可视化(BI报表的开发)第一天

课程回顾: ​ jQuery事件注册: ​ $(元素).click(function () {}); ​ $(元素).on(‘click’, [后代元素], function () {}); ​ $(元素).one(‘click’, function () {}); ​ 解绑事件:off ​ 自动触发: ​ $(元素).click…

在Block中使用weakSelf与strongSelf的意义

在Block中使用weakSelf与strongSelf的意义 我们都会声明一个弱引用在block中使用, 目的就是防止循环引用, 那么weakSelf与strongSelf一起使用目的是什么呢? 首先先定义2个宏: #define YXWeakSelf(type) __weak typeof(type) weak##type type; #define StrongSelf(type) __…

操作系统原理之操作系统简介(第一章)

一、 什么是操作系统 操作系统:是一种复杂的系统软件,是不同程序代码、数据结构、数据初始化文件的集合,可执行。 操作系统是用户与硬件之间的接口:操作系统与硬件部分相互作用,并且为运行在计算机上的应用程序提供执行…

数据可视化(BI报表的开发)第二天

9、公用面板样式 所有的面板的基础样式是一致的,提前布局好。 面板 .panel :box-sizing,边框图,大小,定位【51 38 20 132】容器 .inner:padding:24,36,定位外部拉宽标…

关于Xcode 7.3 7.3.1 断点 卡死 无限菊花

关于Xcode 7.3 7.3.1 断点 卡死 无限菊花 只要一打断点,就无限卡死,变量区一直菊花在转,只有强制退出Xcode才能重新编译,找了Google和Stack OvewFlowe依然没有解决办法. 删除项目,重新安装Xcode,重新运行程序一切办法都解决不到,百度上说的"build setting中将Enable Clang…

html5+hbuilder+夜神模拟器+webview

HTML5 Plus应用概述 首先新建一个移动App项目,文件-->新建-->移动APP HTML5 Plus移动App,简称5App,是一种基于HTML、JS、CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与…