workingset以恢复足够的内存-Piazza.ppt

  1. 1、本文档共124页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
workingset以恢复足够的内存-Piazza.ppt

* * * * * * * * * * * * * * * * * * * * 考虑以下序列: A B C A B D A D B C B 最优页替换: 缺页: 5 次 Where will D be brought in? Look for page not referenced farthest in future. What will LRU do? Same decisions as MIN here, but won’t always be true! Example: 最优页替换 C D C B A B C B D A D B A C B A 3 2 1 Ref: Page: 考虑以下序列: A B C D A B C D A B C D LRU (same as FIFO here): Every reference is a page fault! 在该例中最优页替换性能好很多: D LRU 性能可能差? C B A D C B A D C B A C B A D C B A D C B A D 3 2 1 Ref: Page: B C D C B A C B A D C B A D C B A D 3 2 1 Ref: Page: Adding memory = 降低缺页率? Yes for LRU and MIN Not necessarily for FIFO! (Belady’s anomaly) After adding memory: With FIFO, contents can be completely different In contrast, with LRU or MIN, contents of memory with X pages are a subset of contents with X+1 Page D C E B A D C B A D C B A E B A D C B A E 3 2 1 Ref: Page: C D 4 E D B A E C B A D C B A E B A D C B A E 3 2 1 Ref: Page: First-In-First-Out (FIFO) Algorithm Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (3 pages can be in memory at a time per process) 4 frames FIFO Replacement – Belady’s Anomaly more frames (can) ? more page faults (but not generally) 1 2 3 1 2 3 4 1 2 5 3 4 9 page faults 1 2 3 1 2 3 5 1 2 4 5 10 page faults 4 4 3 存在Belady 异常的FIFO替换缺页曲线图 Belady异常 引用串: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 帧 4帧 FIFO 替换算法 – Belady异常 期望: 增加帧数 ? 降低缺页率? 1 2 3 1 2 3 4 1 2 5 3 4 9 page faults 1 2 3 1 2 3 5 1 2 4 5 10 page faults 4 4 3 LRU页替换 内存引用序列: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 计数器的实现 每一个页表项 有一个计数器,每次页通过这个表项被访问,把记录拷贝到计数器中 当一个页需要改变是,查看计数器来觉得改变哪一个页0 1 2 3 5 4 4 3 5 8 page faults LRU页替换 计数器实现 每个页表项都关联一个使用时间域 需要一个逻辑时钟或计数器,对每次内存引用,计数器都会增加。 每次内存引用时,时钟寄存器的内容都会复制到相应页表项的使用时间域内 进行页替换时,选择具有最小时间(或者计数器值)的页 问题 需要搜索页表 每次内存访问都需要写页表项的使用时间域 上下文切换时需要维护页表 需要考虑时钟溢出 LRU页替换 栈实现 在一个双链表中保留一个记录页数目的栈 最近被访问的页 : 移到栈顶 最坏情况下需要改变6个指针 无需查找,栈底部即是要找的页 理想实现方式: 每次访问记录Timestamp 将页按访问时间排序 实现过于复杂,too expensive Page 6 Page 7 Page 1 Page 2 Head Tai

文档评论(0)

wendang_12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档