文章目录
I/O的五种模型总结
1. 五种 I/O 模型
- 阻塞I/O
- 非阻塞I/O
- I/O复用
- 事件(信号)驱动I/O
- 异步I/O
为什么要发起系统调用?
因为进程想要获取磁盘中的数据,而能和硬件打交道的只能是内核,进程通知内核说我要磁盘中的数据,此过程就是系统调用。
一次I/O的完成的步骤
当进程发起系统调用时,这个系统调用就进入内核模式,然后开始I/O操作。
I/O操作分为两个步骤;
1、磁盘把数据装载到内核的内存空间,
2、内核的内存空间的数据copy到用户的内存空间中(此过程是I/O发生的地方)
以下是进程获取数据的详细图解过程;
调用过程:
①进程向内核发起一个系统调用,
②内核接收到系统调用,知道是对文件的请求,于是告诉磁盘,把文件读取出来
③磁盘接收到来着内核的命令后,把文件载入到内核的内存空间里面
④内核的内存空间接收到数据之后,把数据copy到用户进程的内存空间(此过程是I/O发生的地方)
⑤进程内存空间得到数据后,给内核发送通知
<