缓存的位置

简介:
缓存的位置是很有说头的,在windows里,因为内核设计思想就是将一切都映射到虚拟内存空间(便于通过其强大又复杂的内存管理器来进行一致化管理),那么文件缓存当然也映射了一片虚拟内存(记得曾几何时是512k,可以动态微调),当访问文件的时候,如果是缓冲读写,那么io管理器会将访问重订向到缓 存地址空间,如果缓存地址空间没有需要的数据那么就会发生缺页,接着内存管理器就会接管这次缺页处理最终读写文件并将文件内容映射到文件缓存地址空间,接着缓存再将内存返给用户进程,缓存既然被映射,实际上就要接受内存管理器的管理。 

而在linux中,文件缓存位于“基树”(2.4内核位于全局哈希表),这颗树并没有被映射,也就是说没有映射到虚存空间,文件缓存页面是游离的内存页面,它全靠基树缓存自身的一些机制来管理缓存,统一性稍逊一筹,但是你不得不为其巧妙的设计感叹。在linux中,内核认为并不是任何东西都是虚存映射的对象,它认为虚存仅仅是与内存访问和用户进程相关联的,像缓存这种东西是自成体系的,应该有自己的体系结构,没有必要和内存管理模块耦合,内存管理也没有 任何理由来承担所有的责任。这种设计比较松散,耦合性极小,特别适合移植,比如往没有mmu的嵌入式设备移植,linux只需要修改内存管理模块,而 windows就要傻笑了。



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274172

相关文章
|
缓存
idea更改默认缓存位置步骤
在idea使用中,会产生大量的缓存,一般默认存放在C盘里面,会加大C盘的储存负担,如果C盘足够大,可以不考虑更改idea的缓存位置
2386 0
idea更改默认缓存位置步骤
|
缓存 资源调度
修改yarn的默认安装和缓存位置
修改yarn的默认安装和缓存位置
656 0
|
缓存 Windows
Windows图标显示异常解决方法。桌面图标异常,开始菜单图标异常,任务栏图标异常。图标缓存位置。
Windows图标显示异常解决方法。桌面图标异常,开始菜单图标异常,任务栏图标异常。图标缓存位置。
913 0
Windows图标显示异常解决方法。桌面图标异常,开始菜单图标异常,任务栏图标异常。图标缓存位置。
|
存储 缓存 Python
Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码
Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码
589 0
Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码
|
2月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
92 1
|
2月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
78 6
|
26天前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
27天前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构