I/O控制方式

1.1 程序直接控制方式

如图(a)所示,CPU给设备控制器发出数据存取命令,设备控制器控制设备进行存取操作,此时CPU轮询设备状态寄存器的忙状态,直到设备状态寄存器指示设备不忙且设备数据寄存器中有数据,CPU将设备数据寄存器中的数据写入存储器中。

1.2 中断驱动方式

如图(b)所示,中断驱动方式允许CPU在等待设备存取操作的同时处理其他事务,设备存取完成后通过控制总线给CPU发出中断信号,CPU在指令周期结束时检查中断,保存当前进程上下文,执行中断处理程序,将数据从设备数据寄存器写入存储器中。

1.3 直接存储器访问方式

如图(c)所示,不同于程序直接控制方式和中断驱动方式,直接存储器访问方式(DMA)在设备和存储器之间开辟直接的数据交换通道。直接存储器访问方式的主要特点:

1. 设备与存储器直接进行数据交互,无需CPU干预。

2. 数据交换的基本单位是块(程序直接控制方式和中断驱动方式以字为基本单位)。

3. CPU在数据交换开始时设置数据块大小和数据存取的存储器位置等控制信息,设备数据存取完成时通过控制总线发送中断信号通知CPU。

1.4 通道控制方式

通道控制方式是直接存储器访问方式的扩展,通过引入I/O专用处理机,根据CPU的命令执行通道程序进一步减少CPU对数据交换过程中控制信息(如数据块大小和数据存取的存储器位置)的干预。

通道控制方式与直接存储器访问方式的的主要区别:

1. 通道控制方式的数据交换基本单位为一组数据块。

2. 直接存储器访问方式需要CPU设置数据交换过程中的控制信息,而通道控制方式依赖通道程序进行控制。

3. 直接存储器访问方式中一个控制器仅能控制一台设备与存储器之间的数据交换,而通道控制方式中一条通道可以同时控制多台设备与存储器的数据交换。

1.5 扩展知识

[1] I/O控制方式

[2] 设备管理 | I/O控制方式

原文地址:https://www.cnblogs.com/loop0day/p/11762101.html

时间: 2024-08-10 18:15:28

I/O控制方式的相关文章

IO相关的知识点:输入输出控制方式

前言: 博主最近在温习操作系统原理相关的知识点,分享给那些志同道合的朋友,某些地方如果存在争议的,欢迎加Q讨论.计算机的知识实在是太多太多了,像个无底洞,不专门做学术研究,博主觉得对它的了解还是适可而止. 简介: 我们都知道计算机分为五大基本部件:运算器.控制器.存储器.输入设备和输出设备.其中,IO设备主要是由设备控制器和设备本身共同组成,其中设备控制器是集成在电路板上的一块芯片或者一组芯片,主要用于接收,识别从cpu发来的命令,并控制IO设备工作.每个控制器都有少量的用于通信的寄存器,每个寄

ZeroMQ接口函数之 :zmq_proxy_steerable – 以STOP/RESUME/TERMINATE控制方式开启内置的ZMQ代理

ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ————————————————————————————————————— ZeroMQ 官方地址:http://api.zeromq.org/4-1:zmq-proxy-steerable zmq_proxy_steerable(3)      ØMQ Manual - ØMQ/4.1.0 Name zmq_proxy_steerable – 以STOP/RESUM

输入输出控制方式

 通常,如果外部设备要与存储器进行数据交换,则必须通过CPU执行输入输出指令以及存储器读写指令来完成的.一般而言,CPU管理外围设备的输入输出控制方式有5种:程序查询方式.中断方式.DMA方式(直接内存存取).通道方式.外围处理机方式,前两种方式由软件实现,后三种方式由硬件实现. 一,程序实现 1. 程序查询方式 程序查询方式是要CPU不断使用指令检测方法来获取外设工作状态.CPU与外围设备的数据交换完全依赖于计算机的程序控制,在进行信息交换之前,CPU要设置传输参数,长度等,然后启动外设工

Python的线程&进程&协程[1] -> 线程 -> 多线程的控制方式

多线程的控制方式 目录 唤醒单个线程等待 唤醒多个线程等待 条件函数等待 事件触发标志 函数延迟启动 设置线程障碍 1 唤醒单个线程等待 Condition类相当于一把高级的锁,可以进行一些复杂的线程同步控制.一般Condition内部都有一把内置的锁对象(默认为RLock),对于Condition的使用主要有以下步骤: 建立两个线程对象,及Condition对象; 线程1首先获取Condition的锁权限,acquire(); 线程1执行需要完成的任务后,调用等待wait(),此时,线程1会阻

项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示

1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 7. 基于treegrid实现菜单展示 2 常见的权限控制方式 2.1 url拦截实现权限控制 shiro基于过滤器实现的   2.2 注解方式实现权限控制 底层:代理技术     3 基于shiro的url拦截方式验权   <!-- 配置过滤器工厂 --> <bean id="

10.3 输入输出的控制方式

计算机组成 10 输入输出设备 10.3 输入输出的控制方式 现在看来,跟外界交互也没有那么复杂嘛.跟以前与存储器的交互差不了多少,我给一个地址,得到一个数:或者给一个地址,写进去一个数,这样就跟外设进行交互了.这么说也不是不对,最简单的情况确实是这样的.那我们也不妨从这最简单情况开始说起吧. CPU控制外设进行输入输出的方式主要有三种. 程序控制方式 中断控制方式 直接存储器访问方式 那我们先来看第一种程序控制方式.我们还是用这个并行接口作为例子,来讲解程序控制方式是如何工作的. 程序控制方式

10.4 中断控制方式

计算机组成 10 输入输出设备 10.4 中断控制方式 那原本为了好好看书好好进行运算(把CPU运算类比成看书),我就不出去吃中饭了,定了一份外卖.结果呢?为了能收到这份外卖,我不得不总是去校门口看一看外卖来了没有.看一遍,又看一遍,再看一遍,再看一遍.那结果一上午,啥书都没有看成,这样就不合算了.我都还不如玩会儿游戏呢,折腾这个干嘛?那怎么解决呢?我们得追加投资,增加一个设备.我们装一部电话.然后跟送外卖的说好,你到了校门口就给我打电话.这样呢我就可以安心地坐在这先玩游戏了,玩的很开心,突然电

总结权限控制方式 ----------(2)

1. URL拦截方式:在spring配置文件中配置过滤器链:配置项目请求对应拦截规则   2. 注解方式: a)开启注解扫描   b)service方法使用注解 验证当前用户是否有权限,当没有权限时候,shiro框架抛出异常: 解决:在Realm中给用户进行授权下:给当前用户增加权限即可 3. 页面标签实现权限控制 a) 导入标签库 <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro" %&g

shiro框架的四中权限控制方式

一.在自定义的realm中进行权限控制 在applicationContext.xml文件中添加  /areaAction_pageQuery.action = perms["area"] <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <!-- 注入shiro框架核心对象,安全管理器 --> <pr