首页 > 系统相关 >复习笔记|第十六章 Windows存储器管理《操作系统原理教程》

复习笔记|第十六章 Windows存储器管理《操作系统原理教程》

时间:2023-08-07 14:12:40浏览次数:46  
标签:第十六章 复习 Windows 主存 VAD 对象 地址 页表 进程

参考教材:《操作系统原理教程(第4版)》刘美华 翟岩龙著

大纲问题回答(精简版)

1. 两种数据结构:虚拟地址描述符VAD、区域对象,这两种结构各有什么作用?

◆P304
◼ Windows系统采用一棵由虚拟地址描述符(VAD)构成的平衡二叉树来管理进程私有地址空间。一个进程的一组VAD结构构成一棵自平衡二叉树,便于快速查找。
◼ 区域对象(Section Object)
1.虚拟地址描述符VAD
◼ 当线程要求分配一块连续虚存时,系统为它建立一个VAD结构。
◼ VAD结构:被分配的地址域、该域是共享的还是私有的、该域的存取保护以及是否可继承等信息。
◼ 进程页表的构建一直推迟到访问页时才建立。(“懒惰”方式)
image.png
2.区域对象
◼ 区域对象 (section object) 被称为文件映射对象,是一个可被多个进程共享的存储区。
◼ 一个区域对象可被多个进程打开。
◼ 利用区域对象映射磁盘上的文件(包括页文件,可执行文件)。然后访问这个文件就像访问内存中的一个大数组,而不需要读/写操作。
image.png

2. 虚拟内存区域:空闲的、保留的、提交的。

进程私有2G地址空间的地址域可能是空闲的,被保留reserved,被提交committed。
◼被保留:已预留虚存,还没分配物理主存
◼被提交:已分配物理主存或交换区。
分配主存时,可以先保留地址域,后提交物理主存;也允许保留和提交同时实现。
第一阶段只保留地址空间,特别适合线程正在创建大的动态数据结构的情况。

3. 32位逻辑地址,二级页表。页目录表项和页表项具有相同的数据结构,该数据结构包含哪些数据项?进程页表建立的时机。进程的地址转换过程。

⚫ 在32位的地址空间上,允许每个用户进程占有4G的虚存空间。低2GB为进程的私有地址空间,高2GB为进程公用的操作系统空间。
32位的地址被分解为三部分:
image.png
◼ 采用二级页表结构:页目录表、页表
1. 页表/页目录表的结构
x86系统平台
◼ 进程页表的构建一直推迟到访问页时才建立。( “懒惰”方式)
image.png

4. 管理物理内存的数据结构:页框数据库。页框的8种状态,页框的状态转换图16.9。

页框数据库PFN
◼ 页框数据库是一个数组,其索引号从0到主存的页框总数-1。
◼ 内存页框有八种状态:
1. 活动(有效):是进程工作集的一部分
2. 转移:说明一个页框正处于I/O操作进行中
3. 备用:已不属于工作集,页表项仍然指向该页,但被标记为正在转移的无效PTE。
4. 更改:已不属于工作集,修改未写磁盘,页表项仍指向该页,被标记为正在转移的无效PTE。
5. 更改不写入:更改但不写入磁盘
6. 空闲:不属于任何一个工作集
7. 零初始化:清零的空闲页框
8. 坏页框
IMG_20221127_223823_edit_3657630901139797.jpg
image.png

5. 原型页表,区域对象的页表。虚拟页式中,采用原型页表实现多进程共享页。

P313
当一个页框被两个或多个进程共享时,存储器管理器依靠一个称为“原型页表”(Prototype PTE)的页表来记录这些被共享的页框。
区域对象有原型页表
当进程访问区域对象中的页时,利用原型页表填写进程页表。

6. Windows采用的页替换策略是什么?

① 调页策略:将所缺的页及其前后的一些页装入主存。局部性原理。
② 置页策略:放到物理主存。
③ 置换策略:在多处理器系统中,采用了局部先进先出置换策略。而在单处理器系统中,更接近于最近最久未使用策略(LRU,也称为“时钟页面置换算法”)。

大纲问题回答

1. 两种数据结构:虚拟地址描述符VAD、区域对象,这两种结构各有什么作用?(3)

VAD:线程要求分配一块连续的虚存时,系统并不立即为其建立页表,而是先为其建立一个 VAD 结构,记录被分配的地址域、域的共享/私有、域的存储保护和是否可继承等信息;
存储管理器通过维护一组 VAD 结构,记录每个进程地址空间的状态。一个进程的一组 VAD 结构构成一棵自平衡二叉树,以便快速查找。
区域对象:即文件映射对象,是一个可以被多进程共享的存储区;一个区域对象可被多个进程打开;使用区域对象,访问文件就像访问主存上的一个数组一样,无需文件 I/O 操作;
区域对象的作用为:
①可将一个可执行文件装入主存;
** ②可将一个大于进程地址空间的文件映射到进程地址空间;
③可被缓存管理器用于访问被缓存文件中的数据**;

实现文件映射(2)的过程:
①创建或打开一个被映射的磁盘文件
②创建一个与被映射文件大小相等的区域对象
③将区域对象的一个视口映射到进程保留的某部分地址空间,之后进程就可以像访问主存一样访问文件。当进程访问一个无效的页时,引起缺页中断,存储器管理器会自动地将这个页从映射文件调入主存。
④访问完成,解除被映射的这个视口,并将修改部分写回文件。
⑤若还需要访问文件的其他部分,可再映射文件的另一个视口,否则关闭区域对象和磁盘文件,结束映射过程

◆P304
◼ Windows系统采用一棵由虚拟地址描述符(VAD)构成的平衡二叉树来管理进程私有地址空间。一个进程的一组VAD结构构成一棵自平衡二叉树,便于快速查找。
◼ 区域对象(Section Object)
1.虚拟地址描述符VAD
◼ 当线程要求分配一块连续虚存时,系统为它建立一个VAD结构。
◼ VAD结构:被分配的地址域、该域是共享的还是私有的、该域的存取保护以及是否可继承等信息。
◼ 进程页表的构建一直推迟到访问页时才建立。( “懒惰”方式)
image.png
2.区域对象
◼ 区域对象 (section object) 被称为文件映射对象,是一个可被多个进程共享的存储区。
◼ 一个区域对象可被多个进程打开。
◼ 利用区域对象映射磁盘上的文件(包括页文件,可执行文件)。然后访问这个文件就像访问内存中的一个大数组,而不需要读/写操作。
image.png

2. 虚拟内存区域:空闲的、保留的、提交的。(4)

进程私有2G地址空间的地址域可能是空闲的,被保留reserved,被提交committed。
空闲的:未使用的虚存区域;
保留的:已预留虚存,未分配物理主存;
提交的:已分配物理主存或交换区;
分配主存时,可以先保留地址域,后提交物理主存;也允许保留和提交同时实现。
第一阶段只保留地址空间,特别适合线程正在创建大的动态数据结构的情况。

3. 32位逻辑地址,二级页表。页目录表项和页表项具有相同的数据结构,该数据结构包含哪些数据项?进程页表建立的时机。进程的地址转换过程。

数据项包括:页框号、全局符位、大页位、修改位、访问位、禁用高速缓存标志、写直通位、所有者位、页的写保护位、有效位;
进程的页表在访问页时才建立(同 Linux),称为懒惰方式;
虚地址变换的过程就是标准的二级页表虚地址变换的过程:先用页目录索引找页表地址,再用页表索引结合页表地址找页框地址,最后用页内地址结合页框地址计算物理地址;最终再访问物理主存中的代码或数据页;

⚫ 在32位的地址空间上,允许每个用户进程占有4G的虚存空间。低2GB为进程的私有地址空间,高2GB为进程公用的操作系统空间。
32位的地址被分解为三部分:
image.png
◼ 采用二级页表结构:页目录表、页表
1. 页表/页目录表的结构
x86系统平台
◼ 进程页表的构建一直推迟到访问页时才建立。( “懒惰”方式)
image.png

4. 管理物理内存的数据结构:页框数据库。页框的8种状态:活动、转换、备用、更改、更改不写入、空闲、零初始化、坏,页框的状态转换图16.9。(2)

页框数据库PFN
页框数据库是一个数组,其索引号从0到主存的页框总数-1
◼ 内存页框有八种状态:
1. 活动(有效):是进程工作集的一部分
2. 转移:说明一个页框正处于I/O操作进行中
3. 备用:已不属于工作集,页表项仍然指向该页,但被标记为正在转移的无效PTE。
4. 更改:已不属于工作集,修改未写磁盘,页表项仍指向该页,被标记为正在转移的无效PTE。
5. 更改不写入:更改但不写入磁盘
6. 空闲:不属于任何一个工作集
7. 零初始化:清零的空闲页框
8. 坏页框
IMG_20221127_223823_edit_3657630901139797.jpg
image.png

5. 原型页表,区域对象的页表。虚拟页式中,采用原型页表实现多进程共享页。(5)

原型页表区域对象的页表,用于记录被共享的页框
进程访问区域对象中的页(即共享一个页)时,需要使用原型页表项并将其信息填写到进程的页表中

P313
当一个页框被两个或多个进程共享时,存储器管理器依靠一个称为“原型页表”(Prototype PTE)的页表来记录这些被共享的页框。
区域对象有原型页表
当进程访问区域对象中的页时,利用原型页表填写进程页表。

6. Windows采用的页替换策略是什么?(4)

在多处理器系统中,采用了局部先进先出置换策略
在单处理器系统中,更接近于最近最久未使用策略(LRU,也称为“时钟页面置换算法”)。

① 调页策略:将所缺的页及其前后的一些页装入主存。局部性原理。
② 置页策略:放到物理主存。
③ 置换策略:在多处理器系统中,采用了局部先进先出置换策略。而在单处理器系统中,更接近于最近最久未使用策略(LRU,也称为“时钟页面置换算法”)。

标签:第十六章,复习,Windows,主存,VAD,对象,地址,页表,进程
From: https://www.cnblogs.com/JinyuLi/p/17611284.html

相关文章

  • 复习笔记|第十七章 Windows文件系统《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.Windows所支持的文件系统类型有哪些?❖支持FAT12、FAT16和FAT32文件系统。12、16和32分别为描述磁盘块簇地址使用的位数。NTFS.sys,使用64位的簇编号。❖现在主要使用NTFS(支持最大文件256TB)和FAT64(最大......
  • 复习笔记|第四章 存储器管理《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.存储器管理的功能。名字空间、地址空间、存储空间、逻辑地址、物理地址。(1)存储器分配:解决多进程共享主存的问题(2)地址转换或重定位:研究各种地址变换方法及相应的地址变换机构。(3)存储器保护:防止故障程序......
  • 复习笔记|第五章 文件系统《操作系统原理教程》
    参考教材:《操作系统原理教程(第4版)》刘美华翟岩龙著大纲问题回答(精简版)1.什么是文件和文件系统?文件系统的主要功能。UNIX系统如何对文件进行分类?它有什么好处?⚫文件是存储在外部存储器上的具有符号名的相关信息的集合。⚫文件系统:OS中管理文件的软件机构。包括管理文件所......
  • windows应用程序icon缓存、查看图标、icon制作方法
    windows程序图标缓存在vs中替换c++程序的图标后,需要重新编译,但是很多情况下都不会刷新,还是看到老的图标,只能重启电脑才能看到新的图标。通过ChatGPT得到相关的回答如下:如果在Windows上更换了可执行文件(.exe)的图标,但是在图标文件已经更改的情况下仍然显示旧的图标,可能是因......
  • Windows11使用docker desktop安装kafka&zookeeper集群
    docker-compose安装zookeeper集群参考文章:http://t.csdn.cn/TtTYIhttps://blog.csdn.net/u010416101/article/details/122803105?spm=1001.2014.3001.5501准备工作:​ 在开始新建集群之前,新建好文件夹,用来挂载kafka、zookeeper数据,如下:zookeeper文件夹D:\soft\docker\zookee......
  • Oracle 11g Windows迁移至linux方案
    1.前言根据迁移规范要求,特编写xxx数据库迁移至linux环境操作方案。2.方案描述2.1环境描述源库数据量为20T,操作系统为WindowsServer200864bit,数据库版本为oracle11.2.0.1,目标库操作系统为Linuxredhat7.6,数据库版本为11.2.0.4。详细信息如下:源端数据库:业务系统  数据库 I......
  • VIM进阶学习笔记(二) 总结复习vim的移动光标导航
    惊闻vim作者BramMoolenaar去世,享年62岁。唉,这vim还没学会,太遗憾了。。。几十年致力于这么伟大的工具开发,令人敬佩。致敬。 个人从vim大致入门后,使用了基本配置vim操作体验来看,vim是在Linux等命令行界面,以及鼠标还未普及的情况下,使得通过纯键盘操作达到十分便捷的强大编......
  • Sqlite windows11 安装与使用
    首先进入Sqlite官方网址:https://www.sqlite.org/download.html然后下载下面框起来的两个压缩文件 下载完成后解压接下来去配置环境变量,右键此电脑->属性->高级系统设置->环境变量->系统变量(新建)->变量名输入path,变量值输入解压出来的sqlite文件路径然后cmd测试一下 ......
  • Windows 在VMware Workstation 17上安装macOS Sonoma 虚拟机
    前言macOS在一些方面做得比Windows更好。但是,macOS只能安装在苹果电脑上,虽然黑苹果能满足部分人的要求,但依然有大部分机型无法安装黑苹果。而在虚拟机上,大部分用户都可以用上macOS,虽然流畅度等一般都没有白苹果、黑苹果好,但用来体验和日常使用是问题不大的。如果用来开发或编程之类......
  • Windows 11跳过网络连接设置方法
    在第一次启动Windows11的时候,会提示连接到网络,如果没有网络的话,则无法进入下一步,如下图: 通过输入命令oobe\/bypassnro可以跳过连接到网络,步骤如下:1.在“让我们为你连接的网络”这一步,按键盘【Shift】+【F10】或者【FN】+【Shift】+【F10】会弹出命令提示符,输入命令oobe\bypa......