操作系统系列(二)缓存与缓冲区

一    缓存类型

①  CPU缓存

百度百科

CPU的Cache,它中文名称是'高速缓冲存储器','读写速度'很快,几乎与CPU一样。

cache由来: 由于'CPU的运算速度'太快,内存的数据'存取速度''无法跟上'CPU的速度,所以在'cpu与内存间'设置了'cache'为cpu的'数据快取区'

+++++++++++++++'工作原理'+++++++++++++++

  1)当计算机'执行程序'时,数据与地址管理部件会'预测'可能要用到的数据和指令,并将这些'数据和指令'预先'从内存中读出送到'Cache

  2)一旦需要时,'先检查Cache',若有就从Cache中读取,'若无再访问内存',现在的CPU还有一级cache、二级cache、三级cache

小结: Cache就是用来'解决CPU与内存之间'速度'不匹配'的问题,避免内存与辅助内存'频繁存取'数据,这样就'提高了'系统的'执行效率'

CPU缓存分级别的意义

备注: CPU的cache越大,级数越多,CPU的'访问速度'越快

'RAM'(暂时的、'动态的'存储数据,具体点就是我们通常说的'内存条')和'ROM'(永久的、'固定的'存储数据,通俗讲就是我们说的'光盘'、dvd、手机'内存卡'等)

RAM和ROM有哪些区别?

②  磁盘缓存

smartctl指令

③  内存缓存

++++++++++++++'后续专门写一篇博客'++++++++++++++

应用场景: 'memcached'、'redis' -->利用'内存作为'缓存

'哪些数据'需要缓存:应该'频繁'读取 --> '热点数据'

慢设备: '磁盘'

"buffers/cached"的内存理解: 由于这块内存从'操作系统的角度'确实'被使用',但如果'用户要使用',这块内存是可以很快'被回收被用户程序使用',因此从'用户角度'这块内存应划为'空闲状态'
++++++++++++++++++'应用场景'++++++++++++++++++

1)愿意'消耗一些内存空间'来'提升速度'

2)预料某些数据会'被查询多次'以上-->'热点数据'

备注: 缓存中存放的数据'不会超过内存容量'(应用程序的本地缓存'不会'把数据存储到文件或服务器上)

/proc/sys/vm/drop_caches

缓存更新的坑

④  浏览器缓存

nginx缓存

理解误区:'没有所谓'的'服务器缓存'和'客户端缓存',浏览器缓存'实质'是'HTTP缓存机制'

备注: 后续'专门写'一篇博客

彻底理解浏览器的缓存机制(http缓存机制)

1)浏览器缓存(Browser Caching)是为了'节约网络的资源'加速浏览

特点: 浏览器在'用户磁盘上|内存上'对'最近请求过的文档'进行存储,当访问者'再次请求这个页面时',浏览器就可以'从本地磁盘显示文档',这样就可以'加速页面的阅览',并且可以'减少服务器的压力',浏览器的缓存的数据只是'短时间'保存,可以人为的清空

备注: 一般只会缓存'静态资源' -->'html、js、css'

思考:浏览器的'默认缓存行为'?

浏览器的缓存策略

当一个缓存中的数据被多次读取,实际上就'减少了'该数据从'慢速设备中'读取的量,这就存在某种算法去选择'什么数据需要保存在cache中',因为尽可能多的让'cache命中'能提高性能

⑤  几个思考

思考1: 如果没有缓存?会发生什么?

思考2: 缓存能'解决'的问题

思考3: 缓存'命中率'

二    缓冲

(1)缓冲的几个通俗易懂的案例

①   倒垃圾

++++++++++++++++'倒垃圾的案例去理解缓冲区'++++++++++++++++

1)我们'倒垃圾'的时候,'不可能'一有垃圾就'直接跑去'垃圾站倒垃圾吧

2)而是'先把垃圾倒到垃圾桶','垃圾桶满了'再'一起倒'到垃圾站

备注: 其中'垃圾桶'就是这个'缓冲容器',得到'缓冲池'满了,再一起处理

说明: Java的缓冲流一样,都有一个buffer;很多'中间件'都有这个有,'目的'为了'减少io操作次数',提高效率

②   视频缓冲

③   铁道

④   牙签

⑤   缓冲优势

为什么缓冲区能提升性能

Buffer的核心作用是'用来缓冲'-->'缓和冲击'

举例: 比如你'每秒要写100次硬盘',对'系统冲击'很大,'浪费'了'大量时间'在忙着'处理开始写和结束写'这两件事嘛

用个'buffer暂存'起来,变成每10秒写一次硬盘,对'系统的冲击'就很小,写入效率高了,日子过得爽了,极大'缓和了冲击'

'思考':没有缓冲区呢?

⑥   缓冲区的应用

'Java字节流'的读写:'一次一个字节'、'有一个8kb的buffer' -->损耗在哪里?

⑦   原理

缓冲区溢出的基本原理

缓冲区溢出攻击防护方法

三  Cache和Buffer的区别

Cache 和 Buffer 都是缓存,主要区别是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值