博客
关于我
5.1I/O管理概述
阅读量:799 次
发布时间:2023-04-16

本文共 1425 字,大约阅读时间需要 4 分钟。

#脑图与设备管理概念整理

##设备管理基础知识

共享设备必须是可寻址且可随机访问的设备

共享设备是指一段时间内允许多个进程同时访问的设备

虚拟设备是指将一个物理设备变换成多个对应的逻辑设备

为了便于上层软件编制,设备控制器通常需要提供控制寄存器、状态寄存器和控制命令
字节多路通道用作连接大量的低速或中速I/O设备
将系统中的每台设备按某种原则统一进行编号,这些编号作为区分硬件和识别设备的代号,称为设备的绝对号
通道控制设备管理器、设备管理器控制设备工作
通道是处理输入/输出的硬件

##DMA与中断控制方式对比

DMA方式与中断控制方式的主要区别在于数据传送的方式:

中断控制方式在每个数据传送完成后中断CPU,而DMA控制方式则在所要求传送的一批数据全部传送结束时中断CPU
中断控制方式的数据传送在中断处理时由CPU控制完成,而DMA控制方式则在DMA控制器的控制下完成。尽管如此,在DMA控制方式中,数据传送的方向、存放数据的内存始址及传送数据的长度等仍然由CPU控制
DMA方式以存储器为核心,中断控制方式以CPU为核心。因此,DMA方式能与CPU并行工作
DMA方式传输批量的数据,中断控制方式的传输则以字节为单位

##DMA与通道控制方式对比

DMA控制方式与通道控制方式的主要区别体现在以下几个方面:

在DMA控制方式中,在DMA控制器控制下设备和主存之间可以成批地进行数据交换而不用CPU干预,这样既减轻了CPU的负担,又大大提高了I/O数据传送的速度。通道控制方式与DMA控制方式类似,也是一种以内存为中心实现设备与内存直接交换数据的控制方式
不过在通道控制方式中,CPU只需发出启动指令,指出通道相应的操作和I/O设备,该指令就可以启动通道并使通道从内存中调出相应的通道程序执行
与DMA控制方式相比,通道控制方式所需的CPU干预更少,并且一个通道控制多台设备,进一步减轻了CPU的负担。此外,对通道来说,可以使用一些指令灵活改变通道程序,这点DMA控制方式无法做到

##技术问题解答

###1. DMA方式与中断控制方式的主要区别是什么?

中断控制方式在每个数据传送完成后中断CPU,而DMA控制方式则在所要求传送的一批数据全部传送结束时中断CPU

中断控制方式的数据传送在中断处理时由CPU控制完成,而DMA控制方式则在DMA控制器的控制下完成。尽管如此,在DMA控制方式中,数据传送的方向、存放数据的内存始址及传送数据的长度等仍然由CPU控制
DMA方式以存储器为核心,中断控制方式以CPU为核心。因此,DMA方式能与CPU并行工作
DMA方式传输批量的数据,中断控制方式的传输则以字节为单位

###2. DMA方式与通道控制方式的主要区别是什么?

在DMA控制方式中,在DMA控制器控制下设备和主存之间可以成批地进行数据交换而不用CPU干预,这样既减轻了CPU的负担,又大大提高了I/O数据传送的速度。通道控制方式与DMA控制方式类似,也是一种以内存为中心实现设备与内存直接交换数据的控制方式

不过在通道控制方式中,CPU只需发出启动指令,指出通道相应的操作和I/O设备,该指令就可以启动通道并使通道从内存中调出相应的通道程序执行
与DMA控制方式相比,通道控制方式所需的CPU干预更少,并且一个通道控制多台设备,进一步减轻了CPU的负担。此外,对通道来说,可以使用一些指令灵活改变通道程序,这点DMA控制方式无法做到

转载地址:http://tsgfk.baihongyu.com/

你可能感兴趣的文章
MySQL Binlog 日志监听与 Spring 集成实战
查看>>
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>