Frozen5293's blog Frozen5293's blog
首页
  • 游戏开发
  • 博客相关
  • 技术问题
  • 分类
  • 标签
  • 归档
  • 友情链接
关于
GitHub (opens new window)

Frozen5293

刀剑钺戟摧狂浪,山河草木岁众生
首页
  • 游戏开发
  • 博客相关
  • 技术问题
  • 分类
  • 标签
  • 归档
  • 友情链接
关于
GitHub (opens new window)
  • 内存

frozen5293
2023-09-24
随笔
目录

内存

# 虚拟内存

# 页面置换算法

  1. 最佳置换算法(OPT)

每次淘汰的页面永远不被使用 或者最晚被访问 性能:最好,无法实现

  1. 先入先出(FIFO)

先换入的先换出 性能:时间简单,性能差,可能会出现Belady异常

  1. 最近最久未使用(LRU)

每次淘汰上一次访问时间最早的 性能:好,实现困难,开销大?,需要硬件支持

  1. 时钟置换算法(NRU)(改进)(不改进则是没有修改位)

每次访问会将页面的访问位置1 每次淘汰,会将1置0,0被淘汰换出 被修改的才会写入外存 实现: 修改位 访问位 循环链表 性能:

优先级 未被访问 未被修改
       未被访问 被修改
       被访问   未被修改
       被访问   被修改
1
2
3
4

# 进程

  1. 驻留集(请求分页系统为进程分配的物理块的集合) 如果有虚拟内存一般要小于进程的总大小

    过小的坏处,频繁缺页

    过大的坏处,资源利用率低,多道程序并发度(进程数)下降

  2. 工作集 在一个时间段内实际访问页面的集合,还有窗口来进行判定 工作集越大则局限性不行,工作集越小则局部性越好

  3. 驻留级分配方案 固定分配 : 驻留级大小不变,分配时决定

    可变分配 : 驻留级大小变化,运行时决定

    局部置换 : 缺页置换只发生在当前进程

    全局置换 : 一个进程的缺页置换可以替换其他进程的页

  4. 页面换入时机 预调页策略

     根据局部性原理
     
     一次调入若干相邻的页,命中率50%
     
     一般只在进入进程使用,由程序员指定
    

    请求调页策略

     一次一页,不缺不调页
    
     IO开销大
    
  5. 如何调入内存

    内存+兑换区充足:从(磁盘)兑换区调入内存

    内存+兑换区不重组:不被修改的调入内存,需要时再从文件区调入,被修改的则写入兑换区

    unix:一次性从文件区调入,使用过的页面则被写入兑换区

  6. 问题

    1. 抖动的原因 内存不够,刚换入就要换出
编辑 (opens new window)
上次更新: 2024/04/16, 00:35:21
最近更新
01
Rust序列化函数
04-29
02
Rust错误处理
04-29
03
1
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Frozen5293 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式