操作系统——IO管理
一、IO系统结构
在计算机系统中。cpu要和很多外设进行交互。比方鼠标,键盘,网卡等等。
1、IO是怎样协调工作的那?
(1)对于设备来说,其有两部分组成,一部分是机械部分,还有一部分是电子控制部分。
而电子控制部分是通过各种寄存器和cpu进行通信,被cpu所控制的。
比方控制寄存器,数据寄存器,状态寄存器。
他们分别和控制总线,数据总线,状态总线相连接。
(2)操作系统对IO设备的管理
主要分为三部分:逻辑IO,设备驱动程序,中断服务程序
设备驱动程序:完毕了对不同设备的各种各样的控制,相应用层提供接口。
中断服务程序:当设备结束的时候。向cpu发出中断信号。
2、设备的分类——按数据组织分
2.1 块设备:以数据块作为传输存储的单位
2.2字符设备:以字符为单位存储传输信息。
3、IO管理的目标和任务(为什么进行设备管理)
(1)依照用户的请求,控制设备的各种操作。完毕io设备和内存的数据交换。终于完毕io请求。
设备的分配和回收:查看设备的状态,调用相关的分配策略,进行设备的分配。
运行设备驱动程序:用户通过设备驱动程序完毕对设备的控制。
设置中断处理:设备完毕后,向cpu发出中断。
(2)建立方便统一独立于设备的接口
方便性:对用户提供了方便的接口,使的控制外部设备的时候不考虑复杂的物理特性。
(3)充分利用各种技术(通道。中断,缓冲等)提高cpu与设备。设备与设备之间的并行工作能力。
4、IO控制方式
(1)轮询方式:不断的查看io设备的状态信息,然后做出回应。
(2)中断的方式:当设备完毕操作时候,对cpu发出中断。
(3)DMA:不用通过cpu,内存和IO设备直接进行数据交换。
5、IO软件的设计
分层的设计思想。
底层是对硬件的控制和操作。高层是逻辑的操作。
(1)用户级IO软件:用户运行输入输出系统调用,对IO数据进行格式化。
(2)设备无关的软件层
(3)设备驱动层
(4)中断处理层:当IO操作完毕的时候,唤醒设备驱动程序进程,进行中断处理。
操作系统——IO管理的更多相关文章
- 操作系统-IO管理概述
IO管理概述 一.IO设备 IO设备管理是操作系统设计中最凌乱也最具挑战性的部分.由于它包含了很多领域的不同设备以及与设备相关的应用程序,因此很难有一个通用且一直的设计方案.所以在理解设备管理之前,应 ...
- 操作系统-IO管理疑难点
IO管理疑难点 一.分配设备 首先根据IO请求中的物理设备名查找系统设备表(SDT),从中找出该设备的DCT(设备控制表),再根据DCT中的设备状态字段,可知该设备是否正忙.若忙,便将请求IO进程的P ...
- 操作系统-IO管理和磁盘调度
I/O设备 IO设备的类型 分为三类:人机交互类外部设备:打印机.显示器.鼠标.键盘等等.这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换的 存储设备:用于存储程序和数据的设备,如磁盘.磁 ...
- 操作系统之IO管理
IO系统结构 设备的分类 按数据组织分 块设备: 信息的存取总是以数据块为单位. 它属于有结构设备,如磁盘等. 磁盘设备的基本特征是传输速率较高,以及可寻址,即对它可随机地读/写任一块. 字符设备: ...
- 操作系统IO模型
操作系统IO模型 声明:如下内容是根据APUE和mycat两本著作中关于I/O模式的一些内容加上自己的一些理解整理而成,仅供学习使用. 本节内容 UNIX下可用的五种I/O模型 三种I/O模型 Rea ...
- 操作系统---IO权限管理和敏感指令
简化版 使用IOPL设置一个特权级的用户程序对所有端口的访问权限,使用I/O位图对一个特权级的用户程序设置个性化的端口访问权限(能访问部分端口.不能访问另外的端口). 用户程序的CPL<IOPL ...
- 操作系统--进程管理1--单个CPU情况
1.进程概念 进程:一个正在执行的程序:操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态.而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切.程序代码被加载进内存后就以进 ...
- 操作系统--进程管理(Processing management)
一.进程的组成 进程通常由程序.数据和进程控制块(Process Control Block,PCB)组成. 二. 进程的状态以及状态切换 进程执行时的间断性决定了进程可能具有多种状态,最基本的三种状 ...
- 操作系统--IO系统任务简述
内核IO---操作系统对于IO的职责 1.对文件和设备命名空间的管理 2.文件和设备访问的控制 3.IO操作控制 4.文件系统的空间分配 5.设备分配 6.IO缓冲管理 7.IO调度方式 8.设备状态 ...
随机推荐
- autorun - 自动装载/卸载CDROMs并在装载后执行/path/to/cdrom/autorun
总览 autorun [-lmqv?V] [-a EXEC] [-c CDPLAYER] [-e STRING] [-i MILLISEC] [-n STRING] [-t STRING] [--au ...
- dom监听事件class
layui.use(['layer', 'form'], function(){ var layer = layui.layer ,form = layui.form; var $ = layui.j ...
- javascript中常见undefined与defined的区别
在JavaScript中相信“undefined”与“defined”对大家来说都肯定不陌生,但是又不是很清楚它们的区别,先看两个demo我们再说, 例1. console.log(parms); / ...
- (3)Gojs model简介
(3)Gojs model简介 在GoJS中,model用来存储表的基本数据,包括node.link等具体对象和属性,与其在视觉上的展示效果不相关.model中往往只保存相对简单的数据,最方便且持久化 ...
- Eclipse(MyEclipse)使用技巧——修改注释字体大小
Eclipse在安装完成后,注释的字体大小远远小于代码的大小,按照网上查的相关信息 窗口——首选项——常规——外观——颜色和字体——基本——文本字体——编辑 Window -->Preferen ...
- 笔试算法题(54):快速排序实现之单向扫描、双向扫描(single-direction scanning, bidirectional scanning of Quick Sort)
议题:快速排序实现之一(单向遍历) 分析: 算法原理:主要由两部分组成,一部分是递归部分QuickSort,它将调用partition进行划分,并取得划分元素P,然后分别对P之前的部分和P 之后的部分 ...
- Mysql 字符函数详解
MySql 所有字符串函数函数详解 ASCII(str) 返回str最左边第一位字符的ASCII编码,如果str为空,则返回 0 .如果str为NULL,则返回NULL -- 只返回a的ASCII编码 ...
- mongodb的安装与简单操作
MongoDB中文社区:http://www.mongoing.com 数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer --->磁盘操作 1.高度事务性的场景 ...
- 零基础入门学习Python(10)--列表:一个打了激素的数组
前言 有时候我们需要把一些东西暂时保存起来,因为他们有着一些直接或间接的联系,我们需要把它们放在某个组或者集合中,未来可能用得上. 很多接触过编程的朋友都知道,都接触过数组这个概念,那么数组这个概念事 ...
- js 技巧 (十)广告JS代码效果大全 【3】
3.[允许关闭] 与前面两个代码不同的是,广告图下方增加了一个图片按纽,允许访客点击关闭广告图片,下面文本框中就是实现效果所需代码: var delta=0.015; var coll ...