大学峡谷秀,机组未学溜,如今涕泪流,共勉之
近来学习netty零拷贝,复习并笔记之
1、概念
以主机为中心,将信息从外部设备读入或输出的操作称为IO,外部设备包括输入输出设备例如鼠标键盘显示器,以及外部存储设备(除内存、cpu缓存之外的存储器)例如硬盘光盘。
IO系统主要是对各种信息输入输出的控制,分为IO软件和IO硬件两部分,软件就是驱动程序、用户管理程序等,硬件包括外部设备、IO总线等
2、IO控制方式
2.1、程序查询
通过程序,CPU不断轮询IO设备是否准备就绪,就绪后执行输入/输出指令与外设交换信息。cpu效率很低,适用于数据传输率低的外设、对I/O处理的实时要求不那么高的情况
2.2、程序中断
IO设备就绪,并向CPU控制器发送中断请求,CPU控制器则在执行完当前一条指令后,保存上下文,开始执行中断服务程序,执行输入/输出指令,之后恢复中断现场继续执行。CPU和外设独立工作,但是传输数据过程中需要cpu干预
2.3、DMA (Direct Memory Access,直接内存存取)
主存和设备之间存在直接数据通路,交换信息时无需依赖cpu控制,完全由硬件进行信息传送。有中断方式的优点(cpu与外设独立工作),但是数据传送不再经过cpu,解放cpu资源,适用于高速外设的成组数传送
DMA数据传送过程分为三步
1)预处理,io设备读写就绪,dma向cpu发送DMA请求,请求系统总线控制权,cpu响应后,DMA接管总线开始传送
2)数据传送,dma确定传送数据的主存地址和长度,规定数据在主存和外设间传送方向,发出读写控制信号,执行传送
3)后处理,传送完毕,通知CPU操作结束,CPU执行中断处理程序进行结束处理(数据正确性验证等),再继续执行主程序