首页 > 其他分享 >8/23 深入理解计算机系统第九章

8/23 深入理解计算机系统第九章

时间:2022-08-23 21:28:42浏览次数:67  
标签:计算机系统 23 第九章 主存 内存 页表 缺页 虚拟内存 页面

9.3 虚拟内存作为缓存的工具

虚拟内存和物理内存的分页
虚拟内存可以分为:

  1. 未分配的,没有数据和它们相互关联,不占用磁盘空间。
  2. 缓存的,当前已经缓存在物理内存中的已分配页。
  3. 未缓存的,未缓存在物理内存的已分配页。

页表:
页表将虚拟页映射到物理页。页表是由页表条目(PTE)组成的数组。
PTE由一个有效位和一个n位地址字段(物理页号或者磁盘地址)组成。
有效位表示该虚拟页是否被缓存在主存中。
主存的映射是全链接的,即任意物理页都可以包含任意虚拟页。

缺页:
缺页异常是,读取对应的页表条目,根据标志位发现不在主存内,那么进行换页。
目前现代系统都是使用按需页面调度。
局部性原理
抖动:工作集超过物理内存的话,容易发生抖动,即页面不停换入换出。

9.4 虚拟内存作为内存管理工具

操作系统为每个进程提供了一个独立的页表,完成了进程的隔离和保护。并且多个虚拟页面可以映射到同一个物理页面上。
虚拟内存简化了链接和加载、代码和数据共享,以及应用程序内存的分配。

  • 简化链接:独立的地址空间运行每个进程的内存映像使用相同的基本格式,而不需要在意实际的存放位置。
  • 简化加载:加载器不需要从磁盘把数据复制到内存,只需要每个页面被引用时,虚拟内存系统自动的调入数据页。
  • 简化共享:可以将不同进程的虚拟页面映射到相同的物理页面,从而实现共享一份代码/数据。
  • 简化内存分配:分配的虚拟内存页面是连续的,而物理地址的页面可以是不连续的。

Linux可以使用mmap的系统调用来允许程序自己做内存映射。

9.5 虚拟内存作为内存保护的工具

有些页表会有许可位,方便区分内核模式才能访问的页面和普通页面。如果不在内核态的程序访问了内核才能访问的页面,linux会把这种异常报告为:段错误(segmentation fault)

9.6 地址翻译

页表寄存器
n位的虚拟地址包含两部分:一个是p位的虚拟页面偏移和一个n-p位的虚拟页号。
页面命中时,CPU硬件执行的顺序:

  1. 处理器生成一个虚拟地址,并传给MMU
  2. MMU根据虚拟页号生成PTE地址,并从高速缓存/主存中请求。
  3. 高速缓存/主存 返回给 MMU需要的页表条目
  4. MMU构造物理地址,并传给高速缓存/主存
  5. 高速缓存/主存返回请求的数据给处理器

页面命中全部由硬件来处理,缺页需要操作系统内核参与
缺页时,执行顺序
1-3步同上
4. PTE有效位是零,发生了缺页中断,传递控制到操作系统内核的缺页异常处理程序
5. 确定牺牲页,如果页面被修改过,则换出到磁盘
6. 调入新的页面,修改PTE
7. 再次执行导致缺页的指令,成功返回虚拟地址给MMU,...

可以使用块表加速地址翻译。
多级页表减少页表大小。

标签:计算机系统,23,第九章,主存,内存,页表,缺页,虚拟内存,页面
From: https://www.cnblogs.com/hy227/p/16617821.html

相关文章

  • 2022-08-23 第八组 卢睿 学习心得
    目录csscss的三大特性层叠性继承性优先级权重css权重公式常用的单位pxemrem百分比字体背景案例(模拟360图片)区块属性盒子模型文档流定位positionstaticabsoluterelativefixe......
  • 2022/8/23 总结
    A.神仙题这题的名字就是我的感受亲身经历,警钟敲烂,\(\mathtt{hash(\)}\)在\(\mathtt{c++}\)中是一个\(\mathtt{STL}\)函数。不要重名!不要重名!!不要重名!!!Solutio......
  • 达内培训Week2 8.23
    正则表达式regularexpressionregex8.23常见的正则表达方式:一、校验数字的表达式二、校验字符的表达式三、特殊需求表达式文件去看hsp的java文件packagecom.mly......
  • 8.23总结
    神仙题\(solution\)快读+sort找出现次数大于n/2的编号就可以过了,时间限制是5s,考场没过是我想太多ACCode#include<bits/stdc++.h>usingnamespacestd;inlineint......
  • 2022-8-23 第一组 (≥▽≤)
    目录1.CSScss三大特性常用单位字体大小背景列表圆角区块属性盒子模型定位可见性浮动动画练习后端必须掌握1.CSScss三大特性层叠性一个标签可以有多个css样式浏览器......
  • 2022-08-23 第二组刘禹彤 学习笔记
    打卡38天  ###学习内容CSS(续)CSS三大特性层叠性一个标签可以有多个CSS样式浏览器处理冲突的能力,如果一个属性通过两个相同的选择器设置到元素上,样式的层叠规则......
  • JAVA基础--案例课程--2022年8月23日
    第一节 买飞机票  packagecom.flowerDance.cases;importjava.util.Scanner;publicclassticketingSystem{publicstaticvoidmain(String[]args){......
  • 记录---从0823开始
    ----规范-----------读书笔记:第一章整洁代码1,整洁代码力求集中,每个函数、每个类和每个模块都全神贯注于一件事。2,整洁代码简单直接,从不隐藏设计者的意图。3,整洁代码应当......
  • 暑假学习一 8.23日
    今日学习内容:1.安装VMware虚拟机,并且按照黑马程序员课程提示搭建了几个虚拟机,中途出现的问题是,所给的课程资料并没有给镜像文件,搜索镜像文件时,搜不到iso1908的文件,当天下......
  • 2022-8-23 剑指offer-优先队列(堆)-每日一题-太难不写了
    剑指OfferII061.和最小的k个数对难度中等44收藏分享切换为英文接收动态反馈给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义......