当前位置: 首页 > news >正文

CS162 13-17 虚拟内存

起源

为啥我们需要虚拟内存-----------需求是啥?

可以给程序提供一个统一的视图,比如多个程序运行同一个代码段的话,同一个kernel,就可以直接共享

 cpu眼里的虚拟内存

无限内存的假象

设计迭代过程

为啥这样设计?

一个迭代过程

用上下界来做

 缺点

 还要考虑到内存不足,要和磁盘做swap的情况

真正的虚拟内存设计

PageTable 

页表的改变会影响进程地址空间的独立性,所以采用了双模式,要进入内核态才能做修改。

如果单独一个page table的话,如果地址空间是4GB那么我们要2百万的entry

分级页表 

所以我们采用了两级页表,为了避免浪费空间

 转换过程&TLB

 

不需要每次都到mmu里面遍历页表,用TLB缓存住。 

 

Page fault & 按需分页

page fault

 按需分页

何时触发

 替换策略

LRU是min的一种近似方法 

 

 

 

 

 总结

 

 

 

http://www.lryc.cn/news/104863.html

相关文章:

  • 接口自动化测试-Jmeter+ant+jenkins实战持续集成(详细)
  • 最长连续序列——力扣128
  • uniapp app端 echarts 设置tooltip的formatter不生效问题以及解决办法
  • Spring入门-技术简介、IOC技术、Bean、DI
  • 深度学习之反向传播
  • 网络安全 Day23-mariadb数据库数据管理和备份
  • Centos7 上安装 redis-dump 和redis-load 命令
  • 【NLP PyTorch】字符级RNN循环网络模型姓氏对应国家分类(项目详解)
  • C++设计模式之责任链设计模式
  • 《Java-SE-第二十三章》之单例模式
  • 如何快速同步第三方平台数据?
  • 反射(一)
  • 29.利用fminbnd 求解 最大容积问题(matlab程序)
  • express学习笔记7 - docker跟mysql篇
  • Leetcode(一):数组、链表部分经典题目详解(JavaScript版)
  • 内网穿透的底层原理是什么
  • Bash配置文件
  • 写Acknowledgement的时候,latex日志出现警告
  • GCC生成map文件
  • IOS看书最终选择|源阅读转换|开源阅读|IOS自签
  • easyui实用点
  • 算法训练营第五十六天||● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇
  • C语言每日一题:10.不使用+-*/实现加法+找到所有数组中消失的数。
  • LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
  • JS数组的详解与使用
  • c++ / python / java / PHP / SQL / Ruby / Objective-C / JavaScript 发展史
  • Linux第一个小程序-进度条(缓冲区概念)
  • CentOS7环境安装tomcat
  • C# 中使用ValueTask优化异步方法
  • KVM创建新的虚拟机(图形化)