计算机IO模型一、内存与IO,磁盘IO,网络IO

前言

  最近在学习研究计算机IO模型,对于从不同渠道搜集的资料以及自己的理解做一个整理和总结。


1. 内核态会存在缓存页,pageCache,这就是第二次读取文件比第一次快的原因。内核提供了一份缓存供多个程序读取。 FD文件描述符,fd是交给程序用的,类似于java中的迭代器,每个线程维护自己的迭代器,就是集合的指针,用来遍历集合。

2. 内核态有个dirty 标志,用来标识程序对文件进行了修改,如果为dirty,就会flush到磁盘上,进行持久化。至于怎么flush,由内核来决定什么时候flush。

3. 冯诺依曼计算机组成:控制器,主存储器,输入输出设备I/O。 在linux系统中,一切皆文件。任何程序都有标准输入(0),标准输入(1),错误输入(2)。

4. 在内核态中,pageCache是页缓存,也是kernel的折中方案。application里面也存在缓冲区,buffer io。应用程序访问内核,应用程序在和内核通信过程中会通过system_call系统调用来实现。当CPU读到int 0x80指令后,会保护现场,切换用户态和内核态。内核态缓冲区会存在pageCache,一个pageCache大小是4k。application读取kernel数据的时候,会先在pageCache中找有没有,如果没有对应的数据就会触发缺页操作,从硬盘上读取,这个读取通过dma协处理器进行操作。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值