内存

内存使用与分段

每一条指令都要从逻辑地址算出物理地址——地址翻译

<段号,段内偏移>

GDT[Global Descriptor Table] 全局描述符表

LDT[Local Descriptor Table] 局部描述符表

内存分区与分页

固定分区

可变分区——时间长了会造成内存碎片

段面向用户 页面向硬件

多级页表与快表

为了提高内存的利用率,页应该小,但这样页表就大了。

第一种尝试

只存放到用到的页

第二种尝试

使用多级页表——类比成书的章目录和节目录(分层的思想)

增加了空间的利用率,但牺牲了时间效率

所以TLB 相联快速存储(局部性原理),是寄存器(就是加了一层缓存)

TLB条目数在64——1024之间

原因:

  • 程序的地址访问存在局部性(多为循环和顺序结构)
  • 空间局部性

内存的换入换出

实现虚拟内存就应该换入换出

换入换出实现了“大内存” 吧细小的内存整理

换出页面算法

  • FIFO
  • LRU Least resently used最近最少使用 用过去预知未来
    • 两种实现方法
    • 1——时间戳
    • 2——将时间计数修改为是和否(Clock算法 快慢指针实现 一种近似)


__EOF__

本文作者飞飞很要强
本文链接https://www.cnblogs.com/LiPengFeiii/p/15493537.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   飞飞很要强  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示