一、IO方式
1、中断方式
1)当某个进程要进行IO
操作时,CPU
会将该线程挂起,向相应的IO设备控制器发一条IO
命令,然后CPU
返回继续执行自己原来的任务。
2)设备控制器收到命令,启动指定的IO
设备。此时CPU
和IO
设备并行工作。
3)以读数据为例,IO
设备读完数据之后,设备控制器会向CPU
发送中断信号,CPU
检查输入过程中是否出错。若没有出错,CPU
执行中断处理程序,
在中断处理中,将数据写入内存。
2、DMA方式
1)当CPU
要读数据的时候,向磁盘控制器发送一条读命令,同时将内存起始地址以及磁盘源地址发送至DMA
控制器。之后CPU
执行自己原来的任务,整个数据传送过程由DMA
控制。
2)DMA
控制器从磁盘上读如数据,再将数据写入内存中
3、linux实现
当应用程序想要进行IO
操作时,进程会通过系统调用从用户态切换到内核态,并且CPU
会将该进程挂起。系统调用是通过CPU
执行int 0x80
这条