操作系统之I/O管理:1、I/O控制器、I/O控制方式(程序直接控制方式、中断驱动方式、DMA方式、通道控制方式)
1、I/O设备的概念、分类
- 基础知识
- 思维导图
- 什么是I/O设备?
- 分类
- I/O控制器
- 思维导图
- I/O控制器功能
- I/O控制器的组成
- 内存映像I/O vs 寄存器独立编址
- I/O控制方式
- 1、程序直接控制方式
- 2、中断驱动方式
- 3、DMA方式(直接存储器存取)
- 4、通道控制方式
- 对比
基础知识
思维导图
什么是I/O设备?
分类
![
I/O控制器
思维导图
I/O控制器功能
I/O控制器的组成
内存映像I/O vs 寄存器独立编址
I/O控制方式
1、程序直接控制方式
为解决上述方式中的缺点,产生了中断驱动方式
2、中断驱动方式
与程序直接控制相比,区别是:
1、在CPU发出读/写命令后,可将等待I/O的进程阻塞,先切换到别的进程执行
2、I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。
3、CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存
问题:中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能;每个字在I/O设备与内存之间的传输,都需要经过CPU。为此提出来DMA方式。
3、DMA方式(直接存储器存取)
1、CPU到I/O的操作都交由DMA控制器完成,数据的传输不在经由CPU处理,CPU仅在传送一个或多个数据块的开始和结束时,才需要干预。
2、区别于中断驱动方式,多加入一个DMA控制器用于数据传输。
3、DMA控制器:
1、从DMA控制图中可知,内存到I/O设备的数据传输通过DMA就可以完成,该不需要CPU的干预,大大提高了CPU与I/O设备间的并行效率
2、CPU只是负责发出对I/O设备的请求以及接收当数据传输完成后的中断
4、通道控制方式
通道控制方式区别于DMA方式:当CPU请求I/O设备时,会先在内存的任务清单中添加任务,然后通道检查内存中的任务清单,若有任务则由通道负责与I/O设备的数据传输。所以每次可以进行一组数据块的读写。
对比
操作系统之I/O管理:1、I/O控制器、I/O控制方式(程序直接控制方式、中断驱动方式、DMA方式、通道控制方式)相关推荐
- 【转】聊聊Linux操作系统中的显示管理器及如何更换
转自:聊聊Linux操作系统中的显示管理器及如何更换 - linux-123 - 博客园 聊聊Linux操作系统中的显示管理器及如何更换 | <Linux就该这么学> 什么是 Linux ...
- (王道408考研操作系统)第二章进程管理-第三节10:经典同步问题之哲学家进餐问题
本文接: (王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题 ((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题 (王道408 ...
- (王道408考研操作系统)第二章进程管理-第三节8:经典同步问题之吸烟者问题
本文接: (王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题 ((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题 文章目录 一 ...
- (王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题
注意:生产者与消费者问题Linux系统编程专栏有案例讲解 Linux系统编程39:多线程之基于阻塞队列生产者与消费者模型 Linux系统编程40:多线程之基于环形队列的生产者与消费者模型 本文接:(王 ...
- (王道408考研操作系统)第二章进程管理-第一节4:进程通信(配合Linux)
文章目录 一:什么是进程通信 二:如何实现进程间通信及其分类 三:通信方式1-共享存储(共享内存) (1)课本基础内容 (2)补充-Linux中的进程通信 四:通信方式2-管道 (1)管道是什么 (2 ...
- 【操作系统】操作系统的功能管理与分类
这两天复习了操作系统的一些理论,并将此整理成读书笔记,内容如下: 一般来说,操作系统可以分为五大管理功能部分: 1) 设备管理:主要是负责内核与外围设备的数据交互,实质是对硬件设备的管理,包括对输入 ...
- 利用图文和代码深度解析操作系统OS的内存管理实现原理机制和算法
利用图文和代码深度解析操作系统OS的内存管理实现原理机制和算法. 内存作为计算机系统的组成部分,跟开发人员的日常开发活动有着密切的联系,我们平时遇到的Segment Fault.OutOfMemory ...
- 操作系统-课堂笔记-内存管理(南航)
文章目录 内存管理 回顾 内存管理的作用是什么? 如何分配物理内存 物理内存分配方案 1.连续分配存储管理(可应用于嵌入式设备) 1.1单一连续分配 1.2固定分区分配 1.3可变分区分配 连续分配存 ...
- 从零手写操作系统之RVOS内存管理模块简单实现-02
从零手写操作系统之RVOS内存管理模块简单实现-02 内存管理分类 内存映射表(Memory Map) Linker Script 链接脚本 语法 基于符号定义获取程序运行时内存分布 基于 Page ...
- 笔记篇:操作系统第二章 进程管理
笔记篇:操作系统第二章 进程管理 目录 笔记篇:操作系统第二章 进程管理 2.1 进程的基本概念 2.1.1 程序的顺序执行及其特征 2.1.2 前驱图 2.1.3 程序的并发执行及其特征 2.1.4 ...
最新文章
- 全球首个开源图像识别系统上线了!人脸、商品、车辆识别一网打尽!
- gvim 实现自动全文排版
- 2440从sd卡启动wince
- as3 内容自适应容器大小
- java 线程 通过interrupted_分析Java线程中断机制stop和interrupted的用法
- [JSP暑假实训] 一.MyEclipse安装及JAVA基础知识
- 在c语言程序中无论是整数还是实数,C语言基础题及参考答案
- django后端用websocket传输数据
- StringUtils,FileUtils,PropertiesUtils,DataBaseUtils
- [oracle] 设置PL/SQL Developer 字符集
- c语言贪吃蛇自动移动,C语言贪吃蛇移动
- Android字体设置,Roboto字体使用
- 18个免费视频素材网站,超高清、不限速、无版权、可商用,1秒解决你90%的视频剪辑难题!
- 用微信公众号控制ESP8266的LED,进一步使用微信当遥控器
- LayUI之动态选项卡Tabiframe使用
- 暑期2020“大咖说开源” | 陈莉君:Linux从入门到深入内核有多远
- 磁力搜索网站+下载神器放送2019-03-05
- OS模块--批量修改文件名字(一)创建和修改文件路径
- Httpd:无法找到/etc/httpd/conf
- 【Educoder python 作业答案】国防科技大学《大学计算机基础》Python控制结构(二)※
热门文章
- 编程技术分享,程序员小技巧,程序员小伙伴们,你们用到了多少
- 官方:Angular 5 推迟到10月底发布
- 圆括号匹配c语言代码,求救!!一道关于表达式圆括号匹配的经典题目
- 近10万人基因组数据!美国All of Us项目发布首批人群队列数据
- 【资源】福利来了!生物学相关常用软件小工具,百度云下载链接持续更新中...
- R语言学习 - 非参数法生存分析
- 1288:三角形最佳路径问题-2019-07-04
- js写随机输出7位数代码教程
- 八个角最多可以把平面分成多少部分?_平面设计构图的基本形式
- 数字类 default 0和 default 0_04Optional类和接口中的default、static方法