IO相关的内容包含:
1.缓冲区操作
2.内核空间与用户空间
3.虚拟内存
4.分页技术
5.面向文件的IO和流IO
6.多工IO(就绪性选择——IO多路复用)
1. 缓冲区
进程执行io操作,归结起来,也就是向操作系统发出请求,让它要么把缓冲区里的数据排干,要么用数据把缓冲区填满。进程使用这一机制处理所有数据的操作。
io操作过程:
用户进程使用read()系统调用,要求其缓冲区被填满,内核即向磁盘控制硬件发出命令,要求其从磁盘读取数据。磁盘控制器把数据直接写入内核空间的内存缓冲区,这一步通过DMA(Direct Memory Access,数字信息号处理器中用于快速数据交换的技术,具有独立于CPU的后台批量数据传输能力)完成,无需主CPU协助。一旦磁盘控制器把缓冲区装满,操作系统内核即把内核空间的临时缓冲区数据拷贝到执行read()调用时进程相应的内存缓冲区
用户空间是常规进程所运行的区域,JVM就是常规进程,驻守在用户空间。用户空间是非特权区域,不能直接访问硬件设备。
内核空间能与设备控制器通讯,并控制用户区域进程的运行状态。所有IO都直接或间接通过内核空间。
<