第3讲现在的操作系统怎么管理内存PPT课件
合集下载
计算机操作系统 存储器管理ppt课件

2.具有快表的地址变换机构
不具快表,则需两次访问内存。 (1)访页表 (2)得到绝对地址内容
有快表,速度提高。 快表贵,不能太多。
2.具有快表的地址变换机构
页表寄存器
逻辑地址
页表始址 页表长度
>
越界中断
页号 页内地址
+
页号 块号
1
输
入
寄
b
存
器
页表
页号 块号
b 快表
b
d
物理地址
………
……… ………
………
………
………
两级页表示意图
逻辑地址
外部页号 外部页内地址 页内地址
P1
P2
d
外部页表寄存器
+
+
b
d
物理地址
外部页表
页表
具有两级页表的地址变换机构
例
某虚拟存储器的用户编程空间共32个页面,每页为 1KB,内存为16KB。假定某时刻一用户页表中已调入 内存的页面对应的物理块号如下表:
返回分区号 及首址
4.2.5 对换
1 对换的引入 将阻塞进程,暂时不用的程序,数据换出。 将具备运行条件的进程换入。 类型: 整体对换:进程对换,解决内存紧张 部分对换:页面对换/分段对换:提供虚存支持
2 对换空间的管理 外存 对换区比文件区侧重于对换速度。 因此,对换区一般采用连续分配。采用数据结构 和分配回收类似于可变化分区分配。
段表: 逻辑段—map—物理段
地址变换机构:图4-16,4-17 分页与分段:
(1)页是信息的物理单位,段是逻辑单位 (2)页长度固定,段长度不固定(由用户指定) (3)一维与二维
第3讲现在的操作系统怎么管理内存PPT课件

3 有效位为0表示页不在内存,产生 缺页中断,中断处理完后返回产 生缺页中断的指令重新执行,设 有虚地址访问序列:
2362H、1565H、25A5H,请问
页页有 号框效
号位
0
101H 1
1
---- 0
2
254H 1
1、依次访问上述3个 地址,各需要多少时 间? 2、基于上述访问序 列,1565H的物理地 址是多少?说明理由
-
页框是硬性划分,逻辑地址空间怎么分页
• 保留段,段中分页(段页式) • 将二维的段地址变为一维的地址后再分页(页式)
0
1
3 2
这时,需要段表和页表
-
段\页
• 保留段,段中分页(段页式) • 将二维的段地址变为一维的地址后再分页(页式)
-
段、页同时存在:段面向用户/页面向硬件
4G 用户栈段
cs:ip 逻辑地址
0
用户代码段 用户数据段 操作系统段
虚拟内存
物理地址
0x7008
0x00345008
虚拟地址 对用户是 透明的
-
内存
第3单元 主存管理
第3节 分页存储管理
什么是页 分页管理方案 举例
-
分页管理方案要解决的问题
✓ 地址映射 ✓ 多级页表/快表 ✓ 虚存
-
分页重定位
页中的逻辑地址
Page#
Offset
R=0
R=0
R=0
R=1
用来选择淘汰页,移动速度慢! 更像Clock吧!
R=1
R=1
R=0 R=0 R=1
-
总结:请求分页过程
页表 缺页中断处理
磁盘
load [addr]
重新执行
2362H、1565H、25A5H,请问
页页有 号框效
号位
0
101H 1
1
---- 0
2
254H 1
1、依次访问上述3个 地址,各需要多少时 间? 2、基于上述访问序 列,1565H的物理地 址是多少?说明理由
-
页框是硬性划分,逻辑地址空间怎么分页
• 保留段,段中分页(段页式) • 将二维的段地址变为一维的地址后再分页(页式)
0
1
3 2
这时,需要段表和页表
-
段\页
• 保留段,段中分页(段页式) • 将二维的段地址变为一维的地址后再分页(页式)
-
段、页同时存在:段面向用户/页面向硬件
4G 用户栈段
cs:ip 逻辑地址
0
用户代码段 用户数据段 操作系统段
虚拟内存
物理地址
0x7008
0x00345008
虚拟地址 对用户是 透明的
-
内存
第3单元 主存管理
第3节 分页存储管理
什么是页 分页管理方案 举例
-
分页管理方案要解决的问题
✓ 地址映射 ✓ 多级页表/快表 ✓ 虚存
-
分页重定位
页中的逻辑地址
Page#
Offset
R=0
R=0
R=0
R=1
用来选择淘汰页,移动速度慢! 更像Clock吧!
R=1
R=1
R=0 R=0 R=1
-
总结:请求分页过程
页表 缺页中断处理
磁盘
load [addr]
重新执行
WINDOWS操作系统原理之内存管理精品PPT课件

• 在此1 M大小的映射表中,有相当数量的表项其实并没有 用,所以,为这部分表项分配存储空间是浪费。Intel x86 采用了分级页表的方式来管理这一映射关系。32位虚拟地 址中的页索引部分又被分成页目录索引(10位)和页表索 引(10位)两部分,所以,一个32位虚拟地址的实际构成
如图3中最上边的虚拟地址结构所示。
页式内存管理
• 下面我们以Intel x86为例来介绍从虚拟内存页面到物理内存页面 的映射。
首先,寻址系统必须确定页面的大小,标准的大小为4 KB,32 位地址值的最后12位是页内偏移,而前20位则是页索引部分, 用于找到一个实际的物理页面。因此,在这样的系统上,页面映 射表是一个1 048 576(即1 M)大小的表。
访问内存时必须要通过段描述符,这意味 着Windows将所有的段描述符都构造成了 从基地址0开始,且段的大小设置为 0x80000000、0xc0000000或0xffffffff,具 体取决于段的用途和系统设置。
所以,Windows系统中的代码,包括 操作系统本身的代码和应用程序代码,所 面对的地址空间都是线性地址空间。这种 做法相当于屏蔽了处理器中的逻辑地址概 念,段只被用于访问控制和内存保护。
Windows操作系统的存储管理
内存管理
• 指软件运行的时候对计算机内存资源进行 分配和使用的技术,主要目的是如何高效、 快速的分配,并且在适当时候释放和回收 内存资源。
• 内存可以通过许多媒介实现,例如磁带或 者是硬盘,或者是小阵列容量的微芯片。
两个内存
• 物理内存——就是插在主板上的内存条,它是固定的,内 存条的容量多大,物理内存就有多大(集成显卡系统除 外),但是如果程序运行很多或者程序本身很大的话,就 会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。
操作系统第章存储管理课件

可变分区存储管理
定义:将内存划分为大小可变的分区,根据进程大小分配所需分区。 优点:可充分利用内存空间,避免内存浪费。 缺点:需要复杂的内存分区管理算法,增加了系统开销。 适用场景:适用于多道程序环境,支持多个大小不等的进程。
段式存储管理
定义:将程序划分为多个逻辑段,每个段都有独立的地址空间 优点:方便编程、易于模块化、提高内存利用率 缺点:会产生碎片,降低内存利用率 适用场景:适用于多道程序环境下,支持高级语言的编译和存储空间的动态分配
,a click to unlimited possibilities
汇报人:
目录
操作系统的定义和功能
定义:操作系统是计算机系 统的核心软件,负责管理计 算机硬件和应用程序的资源。
功能:提供人机交互界面、 管理计算机硬件、管理软件 资源、保障系统安全等。
Байду номын сангаас
操作系统的分类
批处理操作系统 分时操作系统 实时操作系统 网络操作系统
虚拟存储器的概念和原理
概念:虚拟存储器是一种将内存和外存统一管理,为用户提供大容量、 连续的存储空间的技术。
工作原理:通过将内存和外存统一管理,实现按需加载和卸载,使用户 无需关心物理存储细节,实现高效、方便的存储管理。
优势:提供大容量、连续的存储空间,提高存储利用率,降低管理成本。
实现方式:通过内存管理、文件系统、数据库等技术实现。
存储器的分类和特点
添加标题
分类:根据存储器的读写特性,可以分为只读存储器(ROM)、随机存取存储器(RAM)和高速缓 存存储器(Cache)。
添加标题
特点:只读存储器只能读取数据,不能写入数据;随机存取存储器可以随机访问任意地址的数据,读 写速度较快;高速缓存存储器则具有高速、容量小等特点,用于暂存CPU访问的数据和指令。
操作系统内存管理PPT课件

24
地址转换体系结构
25
逻辑内存和物理内存的分页模型
26
分页示例
27
空闲帧
28
页表的实现
页表保存在内存中 页表基寄存器(PTBR)指向页表 页表长度寄存器(PTLR)指示页表的大小 在这种方式下,每次数据/指令的访问需要访问两次内
存。一次访问页表,另一次访问数据/指令 两次内存访问问题可以用特别的快速查找硬件缓冲
7
基地址寄存器和界限地址寄存器
一个进程使用的内存地址范围是由一对基地址 寄存器和界限地址寄存器来定义
8
一个用户程序的多步骤处理
9
地址绑定
地址绑定是从一个地址空间到另一个地址空间 的映射
将指令与数据绑定到内存,有以下几种情况
不知道驻留地址
10
逻辑地址空间和物理地址空间
逻辑地址:CPU所生成的地址 –(虚拟地址) 物理地址:从内存单元所看到的地址
3
首先讨论: 符号内存地址到实际物理地址的绑定 逻辑地址与物理地址的区别 动态装载、动态链接代码及共享库
4
在计算机科学中,库是用于开发软件的子程序 集合。库和可执行文件的区别是,库不是独立 程序,他们是向其他程序提供服务的代码。 库链接是指把一个或多个库包括到程序中,有 两种链接形式:静态链接和动态链接,相应的, 前者链接的库叫做静态库后者的叫做动态库。
(frame) 将逻辑内存分为同样大小的块,称为页
(page) 跟踪所有的空闲帧 建立页表用来将逻辑地址转换为物理地址。 内部碎片
23
地址转换方法
CPU生成的地址分成以下两部分
– 页号(p):页号作为页表中的索引。页表中包含每 页所在物理内存的基地址。
– 页偏移(d):与页的基地址组合就形成了物理地址, 就可送交物理单元。
地址转换体系结构
25
逻辑内存和物理内存的分页模型
26
分页示例
27
空闲帧
28
页表的实现
页表保存在内存中 页表基寄存器(PTBR)指向页表 页表长度寄存器(PTLR)指示页表的大小 在这种方式下,每次数据/指令的访问需要访问两次内
存。一次访问页表,另一次访问数据/指令 两次内存访问问题可以用特别的快速查找硬件缓冲
7
基地址寄存器和界限地址寄存器
一个进程使用的内存地址范围是由一对基地址 寄存器和界限地址寄存器来定义
8
一个用户程序的多步骤处理
9
地址绑定
地址绑定是从一个地址空间到另一个地址空间 的映射
将指令与数据绑定到内存,有以下几种情况
不知道驻留地址
10
逻辑地址空间和物理地址空间
逻辑地址:CPU所生成的地址 –(虚拟地址) 物理地址:从内存单元所看到的地址
3
首先讨论: 符号内存地址到实际物理地址的绑定 逻辑地址与物理地址的区别 动态装载、动态链接代码及共享库
4
在计算机科学中,库是用于开发软件的子程序 集合。库和可执行文件的区别是,库不是独立 程序,他们是向其他程序提供服务的代码。 库链接是指把一个或多个库包括到程序中,有 两种链接形式:静态链接和动态链接,相应的, 前者链接的库叫做静态库后者的叫做动态库。
(frame) 将逻辑内存分为同样大小的块,称为页
(page) 跟踪所有的空闲帧 建立页表用来将逻辑地址转换为物理地址。 内部碎片
23
地址转换方法
CPU生成的地址分成以下两部分
– 页号(p):页号作为页表中的索引。页表中包含每 页所在物理内存的基地址。
– 页偏移(d):与页的基地址组合就形成了物理地址, 就可送交物理单元。
操作系统ppt课件完整版

2024/1/30
10
进程同步与通信
2024/1/30
进程同步
多个进程在执行过程中需要协调其推进速度,以保证它们之 间正确的协作关系。进程同步的主要任务是使并发执行的诸 进程之间能有效地共享资源和相互合作,从而使程序的执行 具有可再现性。
进程通信
进程通信是指进程之间的信息交换。在分布式系统中,进程 通信是实现分布式计算和协同工作的基础。常见的进程通信 方式包括管道(pipe)、消息队列(message queue)、信 号(signal)等。
2024/1/30
9
进程调度算法
调度算法的分类
根据调度策略的不同,进程调度算法可分为先来先服务(FCFS)、短作业优先( SJF)、优先级调度(Priority Scheduling)、时间片轮转(RR)等。
调度算法的选择
在选择调度算法时,需要考虑系统的整体性能、资源利用率、响应时间等因素。 不同的调度算法适用于不同的应用场景和需求。
将程序的逻辑地址空间划分为固定大小的页,而物理内存划分为同样大 小的页框。程序加载时,可将任意一页放入内存中任意一个页框,实现 离散分配。
页表
记录逻辑页与物理页框的对应关系。
2024/1/30
03
优缺点
提高了内存利用率,减少了碎片;但增加了系统开销,可能产生抖动现
象。
15
段式存储管理
基本思想
把程序按内容或过程(函数)关 系分成段,每段有自己的名字。 一个用户作业或进程所包含的段 对应于一个二维线性虚拟空间,
即一个段表。
段表
记录各段在内存中的起始地址和 段的长度。
优缺点
便于实现共享和保护;但容易产 生碎片,浪费内存空间。
《计算机操作系统》存储器管理 ppt课件

进程的程序和数据是存放在主存储器中,每当使 用时,被临时复制到一个速度较快的高速缓存中。
当CPU访问一组特定信息时,首先检查它是否在 高速缓存中,如果已存在,可直接从中取出使用, 以避免访问主存,否则,再从主存中读出信息。
2.磁盘缓存
由于目前磁盘的I/O 速度远低于对主存的访问速 度,因此将频繁使用的一部分磁盘数据和信息, 暂时存放在磁盘缓存中,可减少访问磁盘的次数。
B的起始地址变为L,C的起始地址变为L+M
图 4-4 程序链接示意图
1、静态链接方式(续)
(1)对相对地址进行修改
由编译程序产生的所有目标模块中,使用的都是相 对地址,其起始地址都为0,在链接成一个装入模块 时修改模块的相对地址。即把原B中的所有相对地址 都加上L,把原C中所有相对地址都加上L+M。
3、运行时动态链接
这是指对某些目标模块的链接,是在程序执行中 需要该目标模块时,由OS去找到该模块并将之装 入内存并把它链接到调用者模块上。
★源程序经过编译后,可得到一组目标模块,再利 用链接程序将这组目标模块链接形成装入模块。 根据链接时间的不同,可把链接分成如下三种:
1、静态链接方式
在程序运行之前,先将各目标模块及它们所需的 库函数,链接成一个完整的装配模块(又称执行 模块),以后不再拆开。我们把这种事先进行链 接的方式称为静态链接方式。
CPU的控制部件只能从主存储器中取得指令和 数据,数据能够从主存储器读取并将它们装入到 寄存器中,或者相反
主存储器的访问速度远低于CPU执行指令的速 度,引入寄存器和高速缓存。
4.1.2 主存储器与寄存器
2.寄存器
寄存器访问速度最快,完全能与CPU协调工作, 但价格却十分昂贵,因此容量不可能做得很大
当CPU访问一组特定信息时,首先检查它是否在 高速缓存中,如果已存在,可直接从中取出使用, 以避免访问主存,否则,再从主存中读出信息。
2.磁盘缓存
由于目前磁盘的I/O 速度远低于对主存的访问速 度,因此将频繁使用的一部分磁盘数据和信息, 暂时存放在磁盘缓存中,可减少访问磁盘的次数。
B的起始地址变为L,C的起始地址变为L+M
图 4-4 程序链接示意图
1、静态链接方式(续)
(1)对相对地址进行修改
由编译程序产生的所有目标模块中,使用的都是相 对地址,其起始地址都为0,在链接成一个装入模块 时修改模块的相对地址。即把原B中的所有相对地址 都加上L,把原C中所有相对地址都加上L+M。
3、运行时动态链接
这是指对某些目标模块的链接,是在程序执行中 需要该目标模块时,由OS去找到该模块并将之装 入内存并把它链接到调用者模块上。
★源程序经过编译后,可得到一组目标模块,再利 用链接程序将这组目标模块链接形成装入模块。 根据链接时间的不同,可把链接分成如下三种:
1、静态链接方式
在程序运行之前,先将各目标模块及它们所需的 库函数,链接成一个完整的装配模块(又称执行 模块),以后不再拆开。我们把这种事先进行链 接的方式称为静态链接方式。
CPU的控制部件只能从主存储器中取得指令和 数据,数据能够从主存储器读取并将它们装入到 寄存器中,或者相反
主存储器的访问速度远低于CPU执行指令的速 度,引入寄存器和高速缓存。
4.1.2 主存储器与寄存器
2.寄存器
寄存器访问速度最快,完全能与CPU协调工作, 但价格却十分昂贵,因此容量不可能做得很大
计算机操作系统-存储器管理 ppt课件

只适合于单道程序环境
ppt课件
10
4.1 程序的装入和链接
2. 可重定位装入方式 在多道程序环境下,目标模块的起始地址通常从 0开始,程序中的其他地址都是相对于起始地址 计算的。因此应采用可重定位装入方式,根据内 存的当前情况,将装入模块装入到内存的适当位 置。
注意:在采用可重定位装入方式将装入模块装入 内存后,会使装入模块中的所有逻辑地址与实际 装入内存的物理地址不同。
系统区(OS)
用户区 内存
ppt课件
21
4.2 连续分配方式
连续分配方式,是指为一个用户程序分配一个连 续的内存空间。
单一连续分配
固定分区分配
动态分区分配
可重定位分区分配
ppt课件
22
4.2.2 固定分区分配
1. 原理 将内存用户空间划分为若干个固定大小的区域,在每个分区中 只装入一道作业,便可以有多道作业并发执行。当有一空闲分 区时,便可以再从外存的后备作业队列中,选择一个适当大小 的作业装入该分区,当该作业结束时,可再从后备作业队列中 找出另一作业调入该分区。
ppt课件
13
4.1 程序的装入和链接
4.1.2 程序的链接
程序经过编译后得到一组目标模块,再利用链接程序 将目标模块链接,形成装入模块。 根据链接时间的不同,把链接分成三种: 1、静态链接:在程序运行前,将目标模块及所需的库 函数链接成一个完整的装配模块,以后不再拆开。 2、装入时动态链接:指将用户源程序编译后所得的一 组目标模块,在装入内存时,采用边装入边链接的链 接方式。 3、运行时动态链接:指对某些目标模块的链接,是在
分区分配中的数据结构 分区分配算法 分区分配及回收操作
ppt课件
26
4.2.3 动态分区分配
ppt课件
10
4.1 程序的装入和链接
2. 可重定位装入方式 在多道程序环境下,目标模块的起始地址通常从 0开始,程序中的其他地址都是相对于起始地址 计算的。因此应采用可重定位装入方式,根据内 存的当前情况,将装入模块装入到内存的适当位 置。
注意:在采用可重定位装入方式将装入模块装入 内存后,会使装入模块中的所有逻辑地址与实际 装入内存的物理地址不同。
系统区(OS)
用户区 内存
ppt课件
21
4.2 连续分配方式
连续分配方式,是指为一个用户程序分配一个连 续的内存空间。
单一连续分配
固定分区分配
动态分区分配
可重定位分区分配
ppt课件
22
4.2.2 固定分区分配
1. 原理 将内存用户空间划分为若干个固定大小的区域,在每个分区中 只装入一道作业,便可以有多道作业并发执行。当有一空闲分 区时,便可以再从外存的后备作业队列中,选择一个适当大小 的作业装入该分区,当该作业结束时,可再从后备作业队列中 找出另一作业调入该分区。
ppt课件
13
4.1 程序的装入和链接
4.1.2 程序的链接
程序经过编译后得到一组目标模块,再利用链接程序 将目标模块链接,形成装入模块。 根据链接时间的不同,把链接分成三种: 1、静态链接:在程序运行前,将目标模块及所需的库 函数链接成一个完整的装配模块,以后不再拆开。 2、装入时动态链接:指将用户源程序编译后所得的一 组目标模块,在装入内存时,采用边装入边链接的链 接方式。 3、运行时动态链接:指对某些目标模块的链接,是在
分区分配中的数据结构 分区分配算法 分区分配及回收操作
ppt课件
26
4.2.3 动态分区分配
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-
Clock算法的分析与改造
R=1 R=1 R=1
R=1
R=1
R=1
R=1
如果缺页很少,会? 所有的R=1 R=1
R=1
R=1 R=1 R=1
指针绕一圈后淘汰当前页, 退化为FIFO!
原因: 记录了太长的历史信息… 怎么办?
每个页加一个引用位(reference bit)
每次访问一页时,硬件自动设置该位为1
选择淘汰页:扫描该位,是1时清0,并继续扫描;
是0时淘汰该页
组织成循环队列较合适!
R=10 R=10 RR==10
淘
R=0
R=0
汰
这一实现方法称为 Clock Algorithm
R=0
R=1
R=1
R=1
R=0 R=0 R=1
• 淘汰算法
-
淘汰算法很重要 ➢ 全局淘汰还是局部淘汰? ➢ 选择哪页淘汰?
-
置换算法
OPT(OPTimal replacement),淘汰未来不用或者很久 才会用的 FIFO,先换入的先换出 LRU(Least Recently Used),最近最少使用的淘汰出去
LRU近似算法!
-
LRU近似实现: 将时间计数变为是和否
页目录
4 bytes
页表
-
基于快表的地址映射
要想真正实现“只访存1次”,TLB的命中率应该很高
TLB越大越好,但TLB很贵,通常只有[64, 1024]
逻辑地址 页号
Offset
有效 页号 修改 保护 页框号
1 140 0 R
56
1 20 1 R/W
23
0 19 0 R/X
29
1 21 0 R
43
并行查找! TLB
TLB未命中(失效)
页表
物理地址 物理页号
TLB命中
-
Offset
分页管理的特征:
1. 内存分为等长页面(frame):又叫物理页、帧、 页框架
2. 程序分为等长页(page),又叫逻辑页,页与页框 架等长
3. 页的分配与释放使用的数据结构一般为位示图 4. 地址映射只能采用动态重定位 5. 分页方案有利于交换,是提供虚存的较好方案,
-
页框是硬性划分,逻辑地址空间怎么分页
• 保留段,段中分页(段页式) • 将二维的段地址变为一维的地址后再分页(页式)
0
1
3 2
这时,需要段表和页表
-
段\页
• 保留段,段中分页(段页式) • 将二维的段地址变为一维的地址后再分页(页式)
-
段、页同时存在:段面向用户/页面向硬件
4G 用户栈段
cs:ip 逻辑地址
15
12110ຫໍສະໝຸດ 第几页页面尺寸(4K)
mov [0x2240], %eax
逻辑地址 0x02
0x240
页表指针
PCB中应有 此值
页号
0 1 2 3
页框号
5 1 3 6
保护
R R/W R/W
R
3
240
物理地址: 0x3240
-
分页管理方案要解决的问题
✓ 地址映射 ✓ 多级页表/快表 ✓ 虚存
-
页目录/页表
出换入的参考数据 ✓ 当需要的某页不在内存,会发生缺页中断,中
断处理程序负责将缺的页放入内存
-
缺页中断处理
启动要处理的指令
给出虚地址
硬件 软件
得到页号
该页在主存? Y N
缺页中断
有空闲页框? N Y 从外存读入所需的页
调整存储分配表和页表
重新启动被中断的指令
准备执行下条指令 执行完该指令
选一页淘汰
调整存储分配表和页表
N
要重写入?
Y 该页写入外存
-
关于缺页:
• 在进行重定位之前要先判断该页是否在内存(中 断位/有效位)
• 缺页中断和普通中断的区别:中断发生在一条指 令的执行过程中,中断返回后要重新执行该指令
• 发生缺页中断后进程的状态会改变,从运行状态 变为等待状态
• 缺页中断可能需要2次访问磁盘,先将淘汰出去的 页写入磁盘,再从磁盘读入需要的页
第3单元 主存管理
第3节 分页存储管理
什么是页 分页管理方案 举例
-
页框/页
物理内存划分成大小相等的页框,内存的分 配以页框为单位
程序被分割为大小相等的页,放到页框里
0
1
3 2
0
5
1
1
页表
2
3
3
6
页框7 页框6 段0:页3 页框5 段0:页0 页框4 页框3 段0:页2 页框2 页框1 段0:页1 页框0
出换入的参考数据 ✓ 当需要的某页不在内存,会发生缺页中断,中
断处理程序负责将缺的页放入内存
-
请求分页的页表变大了!
页号
主存块号 中断位
辅存地址 引用位 改变位
是不是在内存?
不在内存,在哪?
是否被访问过? 是否被修改过?
-
请求调页要解决的问题
✓ 磁盘上要有交换空间 ✓ 页表要有表明页是否在内存的标识,还要有换
并且没得外部碎片,但是有内部碎片。
-
分页管理方案要解决的问题
✓ 地址映射 ✓ 多级页表/快表 ✓ 虚存
-
提供虚存的分页——请求调页
➢ 当需要某页,才调入内存 ➢ 当内存不够时,按某种策略选择页
换出
-
请求调页要解决的问题
✓ 磁盘上要有交换空间 ✓ 页表要有表明页是否在内存的标识,还要有换
出换入的参考数据 ✓ 当需要的某页不在内存,会发生缺页中断,中
页面尺寸通常为4K,4G的虚地址空间,有220个页面
页表需要220行,一个页框放不下?
4 bytes
页目录
4 bytes
-
页框
多级页表好处:页目录+页表
页目录常驻内存,不需要映射的逻辑地址不需要在 内存中建立页表项
4 bytes
页目录
4 bytes
页表
-
多级页表地址映射
10 bits
页目录号
逻辑地址
0
用户代码段 用户数据段 操作系统段
虚拟内存
物理地址
0x7008
0x00345008
虚拟地址 对用户是 透明的
-
内存
第3单元 主存管理
第3节 分页存储管理
什么是页 分页管理方案 举例
-
分页管理方案要解决的问题
✓ 地址映射 ✓ 多级页表/快表 ✓ 虚存
-
分页重定位
页中的逻辑地址
Page#
Offset
10 bits
页号
12 bits
Offset
页目录指针
物理地址
物理页号
Offset
Offset
4 bytes
多级页表会造成访存次数的增加!
4 bytes
-
多级页表都存放在内存?
会增加访问内存的次数!
把近期要用的页表项放CPU里面!
TLB(Translation Lookaside Buffer)
4 bytes
断处理程序负责将缺的页放入内存
-
交换(swap)区
首次调入内存的页来源于文件区 准备换出的页,如果修改过,应
放入交换区 再次调入内存的页,如果没修改
过,来源于文件区,若修改过, 来源于交换区
磁盘
文件区 swap区
-
请求调页要解决的问题
✓ 磁盘上要有交换空间 ✓ 页表要有表明页是否在内存的标识,还要有换