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) 原子 ...
随机推荐
- 转: 加快Android编译速度
转: http://timeszoro.xyz/2015/11/25/%E5%8A%A0%E5%BF%ABandroid%E7%BC%96%E8%AF%91%E9%80%9F%E5%BA%A6/ 加快 ...
- activemq订阅发布模式(非持久订阅)
生产者JMSProducer: package com.sun.test.aircraft.activemq.topic; import org.apache.activemq.ActiveMQCon ...
- JAVA基础(10)——IO、NIO
转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...
- [读后感]spring Mvc 教程框架实例以及系统演示下载
[读后感]spring Mvc 教程框架实例以及系统演示下载 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&qu ...
- Struct2-使用随笔
提要:最近写了一个2-3各页面的使用Struts2的Demo,在这里做下总结,都已经3年多没做J2EE了,有些感觉都快找不到了. 目录 1.必备开发工具 2.必备jar包 3.了解知识点 4.遇到的问 ...
- 纯JS写的2048游戏,分享之
这几天玩儿着2048这个游戏,突然心血来潮想练习下敲代码的思路.于是乎就模仿做了一个,到眼下位置还没有实现动态移动,不是非常好看,只是玩儿着自己模仿的小游戏还是蛮爽的,哈哈 假设没有玩儿过这个游戏,最 ...
- js实现回放拖拽轨迹-------Day48
今天有点小高兴,csdn博客浏览量过万了,在过去还从来没有过这么高的浏览量呢.不得不说.太多时候还是有些矫情.可看到这些鼓舞还是忍不住高兴啊,至少,这样让我有一种行内人员的感觉,吾道不孤啊. 闲话不多 ...
- hibernate 组件映射
注解方式: import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence ...
- hibernate3和4中 HibernateSessionFactory中不同之处 The method applySettings(Map) from the type ServiceRegistryBuilder is deprecated - The type ServiceRegistryBuilder is deprecated
hibernate3和4中 HibernateSessionFactory中不同之处 //serviceRegistry = new ServiceRegistryBuilder().applySet ...
- 两种方法一句代码隐藏Activity的标题栏
把Activity的标题栏隐藏有两种方法.一种是在在Activity里面设置javacode.还有一种是在项目的清单文件AndroidManifest.xml中设置模版样式. 一.在Activity中 ...