I/O、CPU、磁盘、内存

I/O、CPU、磁盘、内存
I/O、CPU、磁盘、内存
cpu不可以直接存取硬盘上的数据,因为cpu直接访问的是内存,硬盘属于外部存储,数据必须先到内存才能被访问。
cpu是计算,内存是存数据。

  1. 操作系统内核是被加载到内存上;
  2. 在进行I/O操作的时候,是将任务交给DMA来处理,请求发出后CPU就不管了,在DMA处理完后通过中断通知CPU处理完成了。I/O操作消耗的cpu时间很少。
  3. CPU对数据进行判断以及逻辑处理,本身不能存储数据,这时cpu从内存取数据进行逻辑计算,如果内存没有数据,才会从硬盘读数据到内存,再对数据进行处理就像人吃饭一样,cpu就是人,内存就是碗,硬盘就是饭锅。
  4. 当cpu进程等待,需要在内存中保持上下文,会造成内存开销的增加,内存不够用的时候会用到虚拟内存,导致虚拟内存的增加,这时磁盘IO开销就会增加,内存里数据不够用,才用磁盘中取数据(就是磁盘I/O)
  5. 内存中的信息会随断电而丢失,硬盘中的信息会持久化存在。
  6. 当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后异常返回,程序继续运行。

I\O操作有哪些: 程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道。

CPU、内存、磁盘IO之间的关系