I/O的控制方式——查询,中断,dma(转)
早期,I/O串行,查询方式。
发展,I/O并行,两种方式其一是中断方式,其二是dma方式,使得外部设备能直接与主存储器信息交换,减轻了cpu的工作量。
技术继续发展,出现通道结构,实质上为高性能的dma控制器(微处理器,dma方式的进化),目的在于让I/O自己完成输入输出。
技术再发展,出现I/O处理机,实质上为更高性能的处理器(dma再进化),成为小型的cpu系统,具有自己的寄存器,内存,指令集。
注意区别,I/O指令,是属于中央处理器的指令集,比如8086的in,out指令。
通道指令,通道自身微处理器的指令。编写控制通道的输入输出程序,是由操作系统的开发者完成的。现代的I/O系统, 遇到中央处理器的I/O指令,不象早期那样直接去控制输出与输入,而是去调用通道程序。
换句话说,现代计算机系统中,cpu的I/O指令仅仅发了一个命令信号,而实际工作是由通道(微处理器)自己的程序来完成的。
端口概念:接口当中的寄存器。
i/o与主机的联系:
1. i/o设备编址方式
①统一编址: 在主存地址中划出一部分作为端口地址,这叫I/O映射(由硬件完成)。
优点可以简化指令集,用一个指令既可以与主存通信,也可以与i/o端口通信。
这种方式是通过划分地址的不同,来区分访问主存与I/O。
②不统一编址: x86架构,有专用的I/O指令,比如与主存通信是move,I/O通信是in,out。
2. i/o设备控制方式
①查询方式: 又分为传统查询(串行),cpu踏步等待。
轮询方式(局部并行),cpu以一定的周期按照次序去查询每一个外设,看它是否有数据输入或输出 。
就好像我们在网上进行了购物,传统查询方式工作机制是:从付款开始后,我们就站在小区门口等待,一直到快递公司把货物送到手上,这个期间什么事情都不做。
显然,传统查询太蠢,于是改进为轮询方式,工作机制是:从付款开始后,我们每隔一段时间(比如4小时),去小区门口查看一下,如果货物到了就拿取,没到的话继续回来做其他事情。
比起传统查询,轮询方式的效率提高多了。
②中断方式: 局部并行
中断方式比起轮询来说,又改进了一步,工作机制是:从付款开始后,我们正常做其他事情,快递公司会主动给我们打电话(中断信号),报告货物已到,接到电话后我们暂停当前的工作,去小区门口领取货物,然后回来接着做剩余的工作。
显然,日常生活中,大部分人使用的就是中断方式。
③ dma方式:完全并行
dma是中断方式的更好改进,工作机制是:我们命令秘书去网上购买商品,同时让秘书负责商品的收取,整个过程基本上不需要自己参与,可以完全专注于当前工作。
——————————————————————————————————————
无论是传统查询,轮询,以及中断,都需要cpu自己完成额外工作。
而dma彻底解放了cpu与I/O通信的额外负担。
dma方式下cpu让出了总线(地址总线,数据总线,控制总线),暂时由dma控制器来接管总线,控制器就能直接完成i/o设备与主存的数据交换。
如果恰好cpu此时需要访问主存,那它不得不暂停一个存储周期(不是指令周期),如果只需要访问寄存器或者cache,那cpu就不会有任何停顿。
其效率比较图如下:
I/O的控制方式——查询,中断,dma(转)的更多相关文章
- 操作系统-I/O(4)I/O控制方式
I/O控制的方式分为: 程序直接控制方式(最简单的I/O方式) • 无条件传送:对简单外设定时(同步)进行数据传送 • ...
- WS2812B彩灯详细讲解篇(STM32 PWM+DMA控制 STM32 HAL库编程 循环延时控制多种控制方式)
一.效果展示 观看演示效果:https://www.bilibili.com/video/BV1JT4y1P72Q 二. 基础认识 (一) 小理论 WS2812B是一种智能控制LED光源,将控制电路 ...
- I/O控制方式
I/O控制方式 在计算机系统中,CPU管理外围设备也有几种类似的方式: 1 程序查询方式 程序查询方式是早期计算机中使用的一种方式.数据在CPU和外围设备之间的传送完全靠计算机程序控制,查询方式的优点 ...
- 了解一下IO控制器与控制方式
IO控制器 CPU无法直接控制IO设备的机械部件,因此IO设备还要有个电子部件作为CPU和IO设备机械部件之间的"中介",用于实现CPU对设备的控制. 这个电子部件就是IO控制器, ...
- JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作
1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...
- JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理
1 学习计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 n 在spring文件中配置开启shiro注解支持 n 在Action方法上使用注解 3.★使用shiro的标签进行 ...
- 1、 Shiro框架:认证,授权(验权 2. Shiro框架实现权限控制方式:
1. Shiro框架:认证,授权(验权) a) 认证逻辑:applicationCode—>通过工具类获取subject对象,调用login方法参数令牌信息->安全管理器------> ...
- 项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示
1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 ...
- spring事务:事务控制方式,使用AOP控制事务,七种事务传播行为,声明事务,模板对象,模板对象原理分析
知识点梳理 课堂讲义 1)事务回顾 1.1)什么是事务-视频01 事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败. 1.2)事务的作用 事务特征(ACID) 原子 ...
随机推荐
- 【ACM】找新朋友
//make up a table of prime factors #include <stdio.h> #include <stdlib.h> #define MAX 32 ...
- 云计算之路-阿里云上-新发现:又一种与虚拟内存有关的CPU波动情况
在云上真是无奇不有,昨天偶然间发现在IIS的应用程序池回收设置中,仅仅设置了一下基于虚拟内存限制的回收,就引发了CPU有规律的波动.在这篇博文中,我们将向大家汇报一下云计算之路上的这个小发现. 在之前 ...
- ffmpeg相关资源
FFPLAY的原理(一) http://blog.csdn.net/shenbin1430/article/details/4291893 ubuntu12.04下命令安装ffplay等: sudo ...
- v - bind
1. 用于处理html标签的动态属性,即动态赋值(动态地绑定一个或多个特性,或一个组件 prop 到表达式) 2. 官网API <!DOCTYPE html> <html lang= ...
- 【转】JAVA – 虚函数、抽象函数、抽象类、接口
1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行 ...
- iOS开发-使用storyboard实现UILabel的自适应高度(iOS8)
好久没有写博客了.以后多写些博客,对自己是一种提升.对大家也是一种帮助 近期特别痴迷storyboard和xib的可视化编程,在写项目的时候遇到个问题就是怎样使UILabel自适应高度,查了好多文章博 ...
- Windows进程通信 -- 共享内存
享内存的方式原理就是将一份物理内存映射到不同进程各自的虚拟地址空间上,这样每个进程都可以读取同一份数据,从而实现进程通信.因为是通过内存操作实现通信,因此是一种最高效的数据交换方法. 共享内存在 Wi ...
- adb shell root
因为开发需要,我经常会用到adb这个工具(Android Debug Bridge),我们都知道adb shell默认是没有root权限的,修改系统文件就很不方便了,adb push一个文件就提示Pe ...
- 南阳OJ 背包问题
/*背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 如今有非常多物品(它们是能够切割的),我们知道它们每一个物品的单位重量的价值v和 重量w(1< ...
- redis可视化工具的安装和调试
Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...