第5章 存储管理
合集下载
第五章 存储管理(1)ppt课件
❖ 分配结构—分配结构是用来登记内存使用情 况的数据结构。如空闲区表、空闲区队列等。
❖ 调入策略—用户程序在何时、怎样调入内存 的策略。
❖ 放置策略—用户程序调入内存时,确定将其
放置在何处的策略。
22
5.1.4 内存的分配与回收
❖ 交换策略—当需要将某个用户程序调入内存 而内存空间又不够时,就要确定哪个或哪些 程序可以从内存中移走。
45
2、动态分区时的分配与回收
❖ 从可用表或自由链中寻找空闲区的常用的三 种方法:
最先适应法(first fit algorithm)
最佳适应法(best fit algorithm)
最坏适应法(worst fit algoriathm)
这三种方法要求可用表或自由链按不同的方式排列。 46
最先适应法
❖ 每个进程都拥有自己的虚拟存储器,且虚拟存储器 的容量是由计算机的地址结构和寻址方式确定的。10
5.1.2 地址变换
❖ 地址重定位:从虚拟地址到内存地址的转换 称为地址重定位,或称为地址映射。
❖ 地址映射的方式:
1、静态地址重定位 2、动态地址重定位
11
1、静态地址重定位
❖在虚拟空间程序执行之前由装配程序完成地 址映射的工作。不能实现虚拟存储器
动态分配中所用到的数据结构; 分区的分配算法; 分区的分配和回收操作。
38
❖ 调入策略—用户程序在何时、怎样调入内存 的策略。
❖ 放置策略—用户程序调入内存时,确定将其
放置在何处的策略。
22
5.1.4 内存的分配与回收
❖ 交换策略—当需要将某个用户程序调入内存 而内存空间又不够时,就要确定哪个或哪些 程序可以从内存中移走。
45
2、动态分区时的分配与回收
❖ 从可用表或自由链中寻找空闲区的常用的三 种方法:
最先适应法(first fit algorithm)
最佳适应法(best fit algorithm)
最坏适应法(worst fit algoriathm)
这三种方法要求可用表或自由链按不同的方式排列。 46
最先适应法
❖ 每个进程都拥有自己的虚拟存储器,且虚拟存储器 的容量是由计算机的地址结构和寻址方式确定的。10
5.1.2 地址变换
❖ 地址重定位:从虚拟地址到内存地址的转换 称为地址重定位,或称为地址映射。
❖ 地址映射的方式:
1、静态地址重定位 2、动态地址重定位
11
1、静态地址重定位
❖在虚拟空间程序执行之前由装配程序完成地 址映射的工作。不能实现虚拟存储器
动态分配中所用到的数据结构; 分区的分配算法; 分区的分配和回收操作。
38
操作系统原理第5章 存储管理
• ②物理页帧表:整个系统有一个物 理页帧表,描述物理内存空间的分 配使用状况,其数据结构可采用位 示图和空闲页帧链表。
• 2.分页存储管理的实现 • 分页存储管理可谓“见缝插针”,解决了外碎片问题,具体实现技术如下:
• ①逻辑地址空间分页,将用户进程的逻辑地址空间分成若干大小相等的页。
• ②内存存储空间分帧,将内存的用户区划分成与页大小相同的页帧。
• ③内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的 页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的 映射。
5.2 分区式存储管理
• 内存分配方式可分为连续分配方式和离散分配方式。 • 分区式存储管理是连续分配方式,为一个进程分配一个连续的存储
空间。 • 分区式存储管理支持多道程序系统和分时系统,但内存分配存在不
可利用的内存空间,即碎片问题。碎片一般可分为内碎片和外碎片。
5.2.1单一连续分配
• 单一连续分配内存分配优缺点如下:
• ⑴首次适应算法
• 首次适应算法的空闲链是对空闲分区按照地址从低到高的顺序排 列起来。为进程选择分区时总是按地址从低到高搜索,只要找到 可以容纳该进程的空闲区,就把该空闲区切割出进程大小,分配 给该进程,余下的空闲分区仍留在空闲链中。若从链首直至链尾 都不能找到一个能满足要求的分区,则此次内存分配失败返回。
前一个空闲区F1相邻接。此时应将回收区 与插入点的前一分区合并,不必为回收分 区分配新表项,而只需修改其前一分区Fl的 大小,大小为两者之和。 • 情况二:前后邻空闲区,回收区同时与插 入点的前空闲区F1和后空闲区F2两个空闲 区邻接。此时将三个分区合并,使用前空 闲区F1的首址作为新空闲区的首址,大小 为三者之和,取消F2的表项。 • 情况三:后邻空闲区,回收分区与插入点 的后一空闲区F2相邻接。此时也可将两分 区合并,形成新的空闲分区,用回收区的 首址作为新空闲区的首址,大小为两者之 和。 • 情况四:前后不邻接空闲区,回收区不与 空闲区邻接。这时应为回收区单独建立一 新表项,填写回收区的首址和大小,并根 据其首址插入到空闲链中的适当位置。
• 2.分页存储管理的实现 • 分页存储管理可谓“见缝插针”,解决了外碎片问题,具体实现技术如下:
• ①逻辑地址空间分页,将用户进程的逻辑地址空间分成若干大小相等的页。
• ②内存存储空间分帧,将内存的用户区划分成与页大小相同的页帧。
• ③内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的 页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的 映射。
5.2 分区式存储管理
• 内存分配方式可分为连续分配方式和离散分配方式。 • 分区式存储管理是连续分配方式,为一个进程分配一个连续的存储
空间。 • 分区式存储管理支持多道程序系统和分时系统,但内存分配存在不
可利用的内存空间,即碎片问题。碎片一般可分为内碎片和外碎片。
5.2.1单一连续分配
• 单一连续分配内存分配优缺点如下:
• ⑴首次适应算法
• 首次适应算法的空闲链是对空闲分区按照地址从低到高的顺序排 列起来。为进程选择分区时总是按地址从低到高搜索,只要找到 可以容纳该进程的空闲区,就把该空闲区切割出进程大小,分配 给该进程,余下的空闲分区仍留在空闲链中。若从链首直至链尾 都不能找到一个能满足要求的分区,则此次内存分配失败返回。
前一个空闲区F1相邻接。此时应将回收区 与插入点的前一分区合并,不必为回收分 区分配新表项,而只需修改其前一分区Fl的 大小,大小为两者之和。 • 情况二:前后邻空闲区,回收区同时与插 入点的前空闲区F1和后空闲区F2两个空闲 区邻接。此时将三个分区合并,使用前空 闲区F1的首址作为新空闲区的首址,大小 为三者之和,取消F2的表项。 • 情况三:后邻空闲区,回收分区与插入点 的后一空闲区F2相邻接。此时也可将两分 区合并,形成新的空闲分区,用回收区的 首址作为新空闲区的首址,大小为两者之 和。 • 情况四:前后不邻接空闲区,回收区不与 空闲区邻接。这时应为回收区单独建立一 新表项,填写回收区的首址和大小,并根 据其首址插入到空闲链中的适当位置。
操作系统原理与实践教程第二版第5章:存储管理
编辑阶段
库函数文件 如:/lib/libc.a
编译程序 如:cc file1.c
目标文件 如:file1.o
编译阶段
运行程序 运行阶段
链接程序 如:ld
装入程序 (调入内存)
装入阶段
可执行文件 如:myprog
链接阶段
8
5.1.2 程序的运行过程
1. 编辑阶段
➢ 在编辑阶段,用户使用某种编辑软件把程序代码输 入到计算机中,并以文件的形式保存到指定的磁盘 上,形成用户的源程序文件,即源文件。
2. 编译阶段
➢ 计算机只能识别二进制语言,所以源程序文件不能 直接在计算机上运行,必须经过编译软件的编译, 形成相应的二进制目标代码后才能被计算机识别。 通常,用户程序的执行需要经过编译阶段,由初始 的文本文件(file1.c)变成CPU可以识别的一系列二 进制代码文件(file1.o)。
9
5.1.2 程序的运行过程
10
ቤተ መጻሕፍቲ ባይዱ
5.1.2 程序的运行过程
4. 装入阶段 ➢ CPU在运行程序时,首先要把用户程序装入内存。为了保证程序 的正确执行,程序在装入内存时要进行重新定位,即将程序和数 据捆绑到内存地址,以便CPU能够正确寻址。通常,程序装入内 存的方式有以下3种:
(1) 绝对装入方式。在程序编译时如果就知道进程在内存中的驻留地址, 那么就可以生成绝对地址。装入模块可以把用户程序装入到指定的位 置,这时程序中用到的所有地址都是内存中的绝对地址。
操作系统第五章 存储管理
★虚拟地址:用户数据和指令在虚地址空间中的地址。 ★虚拟存储器:将进程中的代码、数据等虚拟地址组成 的虚拟空间称为虚拟存储器。其容量受计算机地址结构 和寻址方式的限制。
5.1.1 虚拟存储器
源程序
0
逻辑地址空间
物理地址空间
BA=1000
Load A data1 100 Load A 200 Load A 200
第五章 存储管理
5.1 存储管理的功能
5.2 分区存储管理
5.3 覆盖与交换技术 5.4 页式管理
5.5 段式与段页式管理
5.3 覆盖与交换技术
主程序(30k) • 用 覆盖(overlay):由用户控制,操作系统提供覆盖 户 机制。整个作业分为常驻和覆盖两部分。子程序不 的 子程序 B(10k) 结 子程序 A(8k) 会同时调如内存,用户只要将最大的子程序作为覆 构 化 盖区告诉系统即可。 程
5.1.2 地址变换
★动态地址重定位
– 动态地址重定位是在程序执行过程中,在CPU 访问内存之前,将要访问的地址转换成内存物 理地址。
★优点: – 程序不必连续存放,可用多个BR,解决多个程 序段放在不连续的内存; – 程序不必在运行前全部放入内存;
– 有利于程序段共享。
5.1.2 地址变换
★动态地址重定位
5.2.3 分区管理其他问题的讨论
★关于虚存问题 – 用户进程所需内存容量受到分区大小的限制。解 决的方法是采用覆盖技术或对换技术。 ★关于地址变换和内存保护问题: – 地址变换使用静态重定位或动态重定位。动态重 定位需要硬件寄存器支持,用于存放区的基地址 和分区的长度,同时做地址保护用。
5.1.1 虚拟存储器
源程序
0
逻辑地址空间
物理地址空间
BA=1000
Load A data1 100 Load A 200 Load A 200
第五章 存储管理
5.1 存储管理的功能
5.2 分区存储管理
5.3 覆盖与交换技术 5.4 页式管理
5.5 段式与段页式管理
5.3 覆盖与交换技术
主程序(30k) • 用 覆盖(overlay):由用户控制,操作系统提供覆盖 户 机制。整个作业分为常驻和覆盖两部分。子程序不 的 子程序 B(10k) 结 子程序 A(8k) 会同时调如内存,用户只要将最大的子程序作为覆 构 化 盖区告诉系统即可。 程
5.1.2 地址变换
★动态地址重定位
– 动态地址重定位是在程序执行过程中,在CPU 访问内存之前,将要访问的地址转换成内存物 理地址。
★优点: – 程序不必连续存放,可用多个BR,解决多个程 序段放在不连续的内存; – 程序不必在运行前全部放入内存;
– 有利于程序段共享。
5.1.2 地址变换
★动态地址重定位
5.2.3 分区管理其他问题的讨论
★关于虚存问题 – 用户进程所需内存容量受到分区大小的限制。解 决的方法是采用覆盖技术或对换技术。 ★关于地址变换和内存保护问题: – 地址变换使用静态重定位或动态重定位。动态重 定位需要硬件寄存器支持,用于存放区的基地址 和分区的长度,同时做地址保护用。
存储管理
第五章存储管理
1存储管理的主要功能是什么?
【解答】
①主存的分配和回收存储管理的一个主要功能就是实现主存的分配和回收。多个进程同时进入主存,怎样合理分配主存空间,哪些区域是已分配的,哪些区域未分配,按什么策略和算法进行分配使得主存空间得到充分利用。当一个作业撤离或执行完后,系统必须收回它所占用的主存空间
②地址变换用户在程序中使用的是逻辑地址,而处理器执行程序时是按物理地址访问主存,要把逻辑地址变换为物理地址,存储管理软件必须配合硬件进行地址转换工作,把逻辑地址转换成物理地址,以保证处理器的正确访问。
③存储共享内存共享的原因有两个:一是为了更有效地使用内存空间;二是为了实现两个协同工作的进程所共享的内存缓冲区。使多个进程能动态地共享内存,以及多个进程可以共同使用同一软件,如编译程序,存放编译软件的内存即为共享内存区。
④“扩充”主存容量它借助于提供虚拟存贮器或其他自动覆盖技术,来达到“扩充”主存容量的目的。即为用户提供比主存的存储空间还大的地址空间。
⑤存储保护保证各道作业都在自己所属的存储区内操作,必须保证它们之间不能相互干扰、相互冲突和相互破坏,特别要防止破坏系统程序。为此,一般由硬件提供保护功能,软件配合实现。
2什么是地址重定位?动态重定位如何实现?
【解答】
为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放地址进行重定位,即要把逻辑地址转换成绝对地址。把逻辑地址转换成绝对地址的工作称“重定位”或“地址转换”。重定位的方式可以有“静态重定位”和“动态重定位”两种。
第五章 存储管理——操作系统原理课件PPT
物理地址空间
0 —————— 100 Load A,200
Load A,data1 编译连接
地址映射
BA=1000 Load A,200Βιβλιοθήκη Baidu
Data1
3456
1200 3456
—————
200
3456
2. 逻辑地址、物理地址和地址映射
逻辑地址空间
0 ……
100 Load A,200
0 VR 200
BR 1000
(1)定义 (2)如何重定位? (3)方式
5.1.3 重定位方法(地址变换) 2. 逻辑地址、物理地址和地址映射
逻辑地址(虚地址):用户的程序经过汇编或编译后形成 目标代码,目标代码采用逻辑地址的形式。
① 其首地址为0,其余指令中的地址都相对于首地址来 编址;
② 不能用逻辑地址在内存中读取信息。
5.1.3 重定位方法(地址变换) 2. 逻辑地址、物理地址和地址映射
物理地址(实地址):内存中存储单元的地址。物理地址 可直接寻址。
5.1.3 重定位方法(地址变换)
2. 逻辑地址、物理地址和地址映射
地址映射:将用户程序中的逻辑地址转换为运行时由机器 直接寻址的物理地址。
单选题 1分 把逻辑地址转换成物理地址称为( )。
A 地址分配 B 地址映射 C 地址保护 D 地址越界
操作系统_第五章 存储管理
返回本节
虚拟存储技术的核心
其核心是把作业的地址空间和主存的存储 空间看做两个不同的概念。一个计算机为 程序员提供了多大的地址空间,他就可以 在这个地址空间内编制多大的程序,而完 全不顾及实际内存的大小。 所谓虚拟存储器就是一个地址空间,正如 主存对应于存储空间一样。
虚存的形式
1、单段式虚存:是一个连续的线性空 间,其 地址顺序为:0,1,2,
空闲分区链表:在每个空闲分区的起始部 分开辟出一个单元,存放一个链表指针和 该分区的大小,链表指针指向下一个空闲 分区。
图5.7 空闲分区链表组织形式
内存的分配与回收
当某一个用户作业完成释放所占分区时, 系统应进行回收。在可变式分区中,应该 检查回收区与内存中前后空闲区是否相邻 ,若相邻,则应进行合并,形成一个较大 的空闲区,并对相应的链表指针进行修改 ;若不相邻,应将空闲区插入到空闲区链 表的适当位置。
编辑:形成源文件(符号地址)
编译:形成目标模块(模块内符号地址解析)
链接:由多个目标模块或程序库生成可执 行文件(模块间符号地址解析) 装入:构造PCB,形成进程(使用物理地址)
重定位方法:
绝对装入 可重定位装入 动态装入
1. 逻辑地址、物理地址和地址映射
逻辑地址(相对地址,虚地址):用户的 程序中相对于某个基准量(通常为0)编址 所用的地址。
虚拟存储技术的核心
其核心是把作业的地址空间和主存的存储 空间看做两个不同的概念。一个计算机为 程序员提供了多大的地址空间,他就可以 在这个地址空间内编制多大的程序,而完 全不顾及实际内存的大小。 所谓虚拟存储器就是一个地址空间,正如 主存对应于存储空间一样。
虚存的形式
1、单段式虚存:是一个连续的线性空 间,其 地址顺序为:0,1,2,
空闲分区链表:在每个空闲分区的起始部 分开辟出一个单元,存放一个链表指针和 该分区的大小,链表指针指向下一个空闲 分区。
图5.7 空闲分区链表组织形式
内存的分配与回收
当某一个用户作业完成释放所占分区时, 系统应进行回收。在可变式分区中,应该 检查回收区与内存中前后空闲区是否相邻 ,若相邻,则应进行合并,形成一个较大 的空闲区,并对相应的链表指针进行修改 ;若不相邻,应将空闲区插入到空闲区链 表的适当位置。
编辑:形成源文件(符号地址)
编译:形成目标模块(模块内符号地址解析)
链接:由多个目标模块或程序库生成可执 行文件(模块间符号地址解析) 装入:构造PCB,形成进程(使用物理地址)
重定位方法:
绝对装入 可重定位装入 动态装入
1. 逻辑地址、物理地址和地址映射
逻辑地址(相对地址,虚地址):用户的 程序中相对于某个基准量(通常为0)编址 所用的地址。
第5章 存储管理
Page number
12 11 page offset
0
p
d
地址结构
windows
5.10
Address Translation Architecture(地址变换机构)
windows
5.11
Paging Example
windows
5.12
Page Table Structure
Hierarchical Paging 分级页表 Hashed Page Tables 哈希页表 Inverted Page Tables 反向(反置)页
访问字段A:用于记录本页在一段时间内被访问的次数,或最近已有 多长时间未被访问,提供给置换算法选择换出页面时参考。
修改位M:表示该页在调入内存后是否被修改过。由于内存中的每 一页都在外存上保留一份副本,因此,若未被修改,在置换该页时 就不需将该页写回到外存上,以减少系统的开销和启动磁盘的次数 ;若已被修改,则必须将该页重写到外存上,以保证外存中所保留 的始终是最新副本。
行时可以在内存中移动,则地址绑定要延迟到运行时。需要硬件对地 址映射的支持MMU (例如基址和限长寄存器)
windows
5.7
Multistep Processing of a User Program
windows
5.8
Paging(分页)
操作系统课件-第5章存储器管理
► 分区分配算法 : ► 1)首次适应算法。该算法要求空闲分区链以地址
递增的次序链接。在分配内存时,从链首开始顺序 查找,直至找到一个大小能满足要求的空闲分区为 止;然后再按照作业的大小,从该分区中划出一块 内存空间分配给请求者,余下的空闲分区仍留在空 闲链中。若从链首直至链尾都不能找到一个满足要 求的分区,则此次内存分配失败,返回。该算法倾 向于优先利用内存中低址部分的空闲分区,从而保 留了高址部分的大空闲区。这为以后到达的大进程 分配大的内存空间创造了条件。其缺点是低址部分 不断被划分,会留下许多难以利用的、很小的空闲 分区,而每次查找又都是从低址部分开始,这无疑 会增加查找可用空闲分区时的开销。
► 2.地址变换 ► 一般情况下,一个进程装入时分配到的内存空间和
它的虚拟地址空间是不一致的。因此,当进程在运 行时,其所要访问的指令或数据的实际物理地址和 虚拟地址是不同的。显然,如果在进程装入或在它 执行时,不对有关的地址部分加以相应的修改,将 导致错误的结果。为了保证程序的正确执行,须将 程序的虚拟地址转换为物理地址,完成由虚拟地址 到物理地址的变换这一过程称为地址重定位或地址 映射。虚拟地址空间的程序和数据经过地址重定位 后,就变成可由CPU直接执行的绝对地址程序,其 变换过程如图5-2所示。
► 3)界限寄存器与CPU的用户态或核心态工作
方式相结合的保护方式。在这种保护模式下, 用户态进程只能访问那些在界限寄存器所规 定范围内的内存部分,而核心态进程则可以 访问整个内存地址空间。UNIX系统就是采用 的这种内存保护方式。
第五章 操作系统-存储管理
重定位的技术按重定位的时机可分为两种:静态重定 位(装入内存时重定位)和动态重定位(程序执行时 重定位) 。
1. 静态重定位
静态重定位:在目标程序装入内存时,由装入程序 对目标程序中的指令和数据的地址进行修改,即将 程序的逻辑地址都改成为实际的内存地址。装入操 作要求一次性完成。
优点:无需增加硬件地址转换机构,便于实现程序 的静态连接。
在程序执行期间,每次访问内存前进行重定位。地址 变换依靠硬件地址转换机构实现。 优点: ① 程序占用的内存空间动态可变,不必连续存放在 一处; ② 比较容易实现几个进程对同一程序副本的共享使 用。 缺点:需附加的硬件地址变换机构,增加了机器成本, 且软件实现算法复杂。
5.1.1 存储系统的层次组织
符号 源程序
汇编 编译 连接
目标 代码
地址重定位
可执行代 码
名字空间
地址空间
存储空间 :
R=X R=R+1 X=R
: x=x+1 :
0 : : R=X :
100
R=R+1 K X=R
:
100+K
:
程序的名字空间、地址空间及存储空间
程序中符号名的集合(符号空间) 目标模块中的地址(逻辑空间) CPU直接执行的绝对地址程序。这一地址集合(物理
本章内容
5.1 存储管理的基本概念
1. 静态重定位
静态重定位:在目标程序装入内存时,由装入程序 对目标程序中的指令和数据的地址进行修改,即将 程序的逻辑地址都改成为实际的内存地址。装入操 作要求一次性完成。
优点:无需增加硬件地址转换机构,便于实现程序 的静态连接。
在程序执行期间,每次访问内存前进行重定位。地址 变换依靠硬件地址转换机构实现。 优点: ① 程序占用的内存空间动态可变,不必连续存放在 一处; ② 比较容易实现几个进程对同一程序副本的共享使 用。 缺点:需附加的硬件地址变换机构,增加了机器成本, 且软件实现算法复杂。
5.1.1 存储系统的层次组织
符号 源程序
汇编 编译 连接
目标 代码
地址重定位
可执行代 码
名字空间
地址空间
存储空间 :
R=X R=R+1 X=R
: x=x+1 :
0 : : R=X :
100
R=R+1 K X=R
:
100+K
:
程序的名字空间、地址空间及存储空间
程序中符号名的集合(符号空间) 目标模块中的地址(逻辑空间) CPU直接执行的绝对地址程序。这一地址集合(物理
本章内容
5.1 存储管理的基本概念
第5章 存储管理--操作系统
虚拟存储器的实质:以时间换空间, 虚拟存储器的实质:以时间换空间,但时间 牺牲不大。 牺牲不大。 虚拟存储器的实现方式: 虚拟存储器的实现方式: ٭请求分页系统 ٭请求分段系统
5.1.2 地址变换
虚拟空间的划分: 虚拟空间的划分:使得编译链接程序可以把不同的程序 模块链接到一个统一的虚拟空间中去。 模块链接到一个统一的虚拟空间中去。与计算机系统结构有 关。
第5章 存储管理
5.1 存储管理的功能 5.2 分区存储管理 5.3 覆盖与交换技术 5.4 页式管理 5.5 段式和段页式管理 5.6 局部性原理与抖动问题
5.1 存储管理的功能
存储管理是指存储器资源(主要指内存和外存)的管理。 存储管理是指存储器资源(主要指内存和外存)的管理。 是指存储器资源 主存管理功能:内存的分配与释放、地址变换、 主存管理功能:内存的分配与释放、地址变换、内存保护 与共享、内存扩充技术。 与共享、内存扩充技术。
5.1.3 内外存数据传输的控制
控制内存和外存之间的数据流动的方式: 控制内存和外存之间的数据流动的方式: 用户程序自己控制:采用覆盖(overlay)技术。 (overlay)技术 用户程序自己控制:采用覆盖(overlay)技术。 操作系统控制: 操作系统控制:两种 交换(swapping): (swapping):由操作系统把那些在内存中处于等待 交换(swapping):由操作系统把那些在内存中处于等待 状态的进程换出内存,而把那些等待事件已经发生、处于就 状态的进程换出内存,而把那些等待事件已经发生、 绪态的进程换入内存。 绪态的进程换入内存。 请求调入(on demand)和预调入(on prefetch): 请求调入(on demand)和预调入(on prefetch):请求调 入方式是在程序执行时, 入方式是在程序执行时,如果所要访问的程序段或数据段不 在内存中, 在内存中,则操作系统自动地从外存将有关的程序段和数据 段调入内存的一种操作系统控制方式。而预调入则是由操作 段调入内存的一种操作系统控制方式。 预调入则是由操作 系统预测在不远的将来会访问到的那些程序段和数据段部分, 系统预测在不远的将来会访问到的那些程序段和数据段部分, 并在它们被访问之前系统选择适当的时机将它们调入内存的 一种数据流控制方式。 一种数据流控制方式。 只有请求调入和预调入方式可以实现虚拟存储器。 只有请求调入和预调入方式可以实现虚拟存储器。
计算机操作系统第五章 存储管理
地址空间,此时程序和数据的实际地址与原 来程序中的逻辑地址并非是一致的。
CPU访问地址的只能是物理地址,因此, 逻辑地址必须转换成正确的物理地址!
5.1 存储管理概述
地址变换 memory map 把程序中逻辑地址转换为物理地址的工作
称为地址转换或地址重定位、地址映射。 静态重定位:发生在作业执行前一次完 成,多由软件独立完成; 动态重定位:发生在程序执行过程中, 通常借助于地址转换机构硬件与软件共同 实现。
表头开始查找,找到第一个满足要求的空闲 区时,即停止查找。
即找到那个满足大小且是最小的空闲区, 分割分配。
5.4 动态分区管理
分配方法 (3) 最坏适应算法 通常要求空闲区按其空间大小递减排序。 当用户作业或进程申请一个空闲区时,
顺序查找到第一个满足要求的空闲区用来 分配。
即找到那个满足大小且是最大的空闲区, 分割并分配。
逻辑地址也可以是二维(多维)的,即程
序中的地址是不连续的。汇编语言程序 段式
5.1 存储管理概述
物理地址(绝对地址) 我们把主存中的实际存储单元称为物理地
址(绝对地址),物理地址的总体相应构成 了用户程序实际运行的物理地址空间。
操作系统将内存分为系统区和用户区两个 部分。
5.1 存储管理概述
逻辑地址与物理地址的关系 某个当程序运行时,操作系统则分配一些
标志 未分配 未分配 未分配
CPU访问地址的只能是物理地址,因此, 逻辑地址必须转换成正确的物理地址!
5.1 存储管理概述
地址变换 memory map 把程序中逻辑地址转换为物理地址的工作
称为地址转换或地址重定位、地址映射。 静态重定位:发生在作业执行前一次完 成,多由软件独立完成; 动态重定位:发生在程序执行过程中, 通常借助于地址转换机构硬件与软件共同 实现。
表头开始查找,找到第一个满足要求的空闲 区时,即停止查找。
即找到那个满足大小且是最小的空闲区, 分割分配。
5.4 动态分区管理
分配方法 (3) 最坏适应算法 通常要求空闲区按其空间大小递减排序。 当用户作业或进程申请一个空闲区时,
顺序查找到第一个满足要求的空闲区用来 分配。
即找到那个满足大小且是最大的空闲区, 分割并分配。
逻辑地址也可以是二维(多维)的,即程
序中的地址是不连续的。汇编语言程序 段式
5.1 存储管理概述
物理地址(绝对地址) 我们把主存中的实际存储单元称为物理地
址(绝对地址),物理地址的总体相应构成 了用户程序实际运行的物理地址空间。
操作系统将内存分为系统区和用户区两个 部分。
5.1 存储管理概述
逻辑地址与物理地址的关系 某个当程序运行时,操作系统则分配一些
标志 未分配 未分配 未分配
第5章存储管理PPT课件
⑤ 基址寄存器、长度寄存器和动态地址转换机制(动态 重定位)
2021/4/8
9
上界寄存器
下界寄存器
地
址
地址A
CPU
>
TA
<
TA 主 存
检 查 机
F
F
制
程序性异常
硬件提供一对寄存器,分别存放运行程序的上、下界地址。当CPU分配给某道作业时, 即将该作业的上、下界分别装入。
当程序被执行时,每访问一次主存,地址检查机制将CPU提供的访存地址与上、下界 寄存器的值进行比较。
第5章 存储管理
2021/4/8
1
存储管理主要是研究进程如何占用主存。
包括三个方面的内容:
1. 取:该将哪个进程从辅存调入主存。分“请调”和“预 调”。
2. 放:将取来的进程按何种方式放在主存的什么地方。
3. 替换:将哪个进程暂时从主存移到辅存,以让出空间供 其他进程占用。
4. “放”是存储管理的基础。 5. 连续的。即程序和数据必须放在主存的一片连续空间。
2021/4/8
32
5.2.2段式管理
1.空间安排
按照用户作业的自然段划分逻辑空间。例如:
主程序
段
子程序1
的
划
子程序2
分
OS 子程序2
主程序
作业在主存中 以段为连续存
2021/4/8
9
上界寄存器
下界寄存器
地
址
地址A
CPU
>
TA
<
TA 主 存
检 查 机
F
F
制
程序性异常
硬件提供一对寄存器,分别存放运行程序的上、下界地址。当CPU分配给某道作业时, 即将该作业的上、下界分别装入。
当程序被执行时,每访问一次主存,地址检查机制将CPU提供的访存地址与上、下界 寄存器的值进行比较。
第5章 存储管理
2021/4/8
1
存储管理主要是研究进程如何占用主存。
包括三个方面的内容:
1. 取:该将哪个进程从辅存调入主存。分“请调”和“预 调”。
2. 放:将取来的进程按何种方式放在主存的什么地方。
3. 替换:将哪个进程暂时从主存移到辅存,以让出空间供 其他进程占用。
4. “放”是存储管理的基础。 5. 连续的。即程序和数据必须放在主存的一片连续空间。
2021/4/8
32
5.2.2段式管理
1.空间安排
按照用户作业的自然段划分逻辑空间。例如:
主程序
段
子程序1
的
划
子程序2
分
OS 子程序2
主程序
作业在主存中 以段为连续存
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
page number p1 10
page offset
p2
10
d 12
where p1 is an index into the outer page table, and p2 is the displacement
within the page of the outer page table.
windows
5.5
Background
Logical address逻辑地址(相对地址,虚地址):用户的
程序经过汇编或编译后形成目标代码,目标代码通常采用 相对地址的形式。
其首地址为0,其余指令中的地址都相对于首地址来编址。 不能用逻辑地址在内存中读取信息。
Physical address物理地址(绝对地址,实地址):内存
a page number consisting of 20 bits. a page offset consisting of 12 bits. Since the page table is paged, the page number is further divided into : a 10-bit page number. (一个10位的页号) a 10-bit page offset. (一个10位的偏移) Thus, a logical address is as follows :
windows
5.22
Page Replacement Algorithms
First-In-First-Out Page Replacement (FIFO,先进先出页面置换算法
)
Optimal Page Replacement (OPT,最佳页面置换算法):选择“未来
不再使用的”或“在离当前最远位置上出现的”页面被置换。 Least Recently Used Page Replacement (LRU,最近最久违用算法): 选择内存中最久未使用的页面被置换。由于需要记录页面使用时间的 先后关系,硬件开销太大。 LRU Approximation Algorithms 近似LRU算法(NRU) Additional-Reference-Bits Algorithm附加引用位算法 Second-Chance Algorithm二次机会算法(clock算法) Enhanced Second-Chance Algorithm增强二次机会算法(改进 型的clock算法)
Paging 分页
Segmentation 分段
Segmentation with Paging 段页式
Demand Paging 请求页式
windows 5.4
Background
存储器是计算机系统的
重要组成部分,虽然内 存容量在不断扩大,但 内存仍是宝贵资源,如 何提高主存储器利用率 ,并扩充大主存,对主 存信息实现有效保护是 存储器管理主要任务, 也是各种不同存储管理 方法的目标
Internal fragmentation program, no external
fragmentation. associative memory or translation look-aside buffers (TLBs) 联想寄存器(快表)
windows 5.9
Address Translation Scheme(地址变换机制)
虚拟存储的基本原理
windows
5.19
Demand Paging
在请求分页系统中的每个页表项如图所示:
状态位P(存在位):用于指示该页是否已调入内存,供程序访问时 参考。 访问字段A:用于记录本页在一段时间内被访问的次数,或最近已有 多长时间未被访问,提供给置换算法选择换出页面时参考。 修改位M:表示该页在调入内存后是否被修改过。由于内存中的每一 页都在外存上保留一份副本,因此,若未被修改,在置换该页时就 不需将该页写回到外存上,以减少系统的开销和启动磁盘的次数; 若已被修改,则必须将该页重写到外存上,以保证外存中所保留的 始终是最新副本。 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调 入该页时使用。
windows
5.20
Steps in Handling a Page Fault
windows
5.21
Page Replacement 页面置换
在进程运行过程中,如果发生缺页,此时内存中又无空闲
块时,为了保证进程能正常运行,就必须从内存中调出一 页程序或数据送磁盘的对换区。但将哪个页面调出,则须 根据一定的页面置换算法来确定。 .
windows
5.15
Two-Level Page-Table Scheme
x86两级页表系统将32位逻辑地址空间的地址分成
三段:
页表目录号(外层页号p1)和页号(外层页内地址p2 )两项各占10位,偏移量(页内地址d)占12位。 每页的大小为4KB。 由于物理块号和页表的物理地址都占4个字节,使每页 中包含1024个页表项,所以页表目录和页表的大小也都 是4KB,即一页。在x86中设置了一个外层页表寄存器 (CR3),用于存放页表目录的基址。
中存储单元的地址。物理地址可直接寻址
windows
5.6
Address binding
指令和数据地址绑定到内存地址可以在三个不同的阶段发生。
Compile time (编译时期) : If memory location known a
priori, absolute code can be generated; must recompile code if starting location changes. 如果内存位置已知,可
存储管理
本章内容
内存管理概述
Windows 2000/XP内存管理 Windows 2000/XP外存管理 Windows 2000/XP高速缓存管理
windows
5.2
内存管理概述
Memory Management
Overlays 覆盖技术
SwappHale Waihona Puke Baidung 交换技术
Contiguous Allocation 连续分配
功能:需要调入页面时,选择内存中哪个物理页面被置换
。称为replacement policy。
出发点:把未来不再使用的或短期内较少使用的页面调出
,通常只能在局部性原理指导下依据过去的统计数据进行 预测。
从理论上讲,应将那些以后不再被访问的页面换出,或把
那些在较长时间内不会再被访问的页面换出。
生成绝对代码;如果开始位置改变,需要重新编译代码
Load time (装入时期) : Must generate relocatable code if
memory location is not known at compile time.如果内存位置
在编译时不知道,则必须生成可重定位代码
Execution time (执行时期) : Binding delayed until run
Hierarchical Paging
分级页表
Hashed Page Tables 哈希页表 Inverted Page Tables 反向(反置)页
表
windows
5.13
Hierarchical Page Tables
x86的逻辑地址空间有232Byte,如页面大小为4KB(
212Byte),则页表项达1M(220)个,每个页表项占 用4Byte,故每个进程的页表占用4MB内存空间,还 要求是连续的,显然这是不现实的。
time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers). 如果进程在执
windows
5.16
Two-Level Page-Table Scheme
windows
5.17
Address-Translation Scheme
Address-translation scheme for a two-level 32-bit paging
architecture (一个两级32位分页结构的地址转换机制)
frames (size is power of 2, between 512 bytes and 8192 bytes). (把物理内存分成大小固定的块,称为帧或 页框。) Divide logical memory into blocks of same size called pages. (把逻辑内存也分位固定大小的块,称为页。) Set up a page table to translate logical to physical addresses. (设置一个页表以便把逻辑地址转换为物理地 址。) 页表page table列出了进程的逻辑页与其在主存中的物理 帧间的对应关系
。)
31 Page number 12 11 page offset 0
p 地址结构
d
windows
5.10
Address Translation Architecture(地址变换机构)
windows
5.11
Paging Example
windows
5.12
Page Table Structure
行时可以在内存中移动,则地址绑定要延迟到运行时。需要硬件对地 址映射的支持MMU (例如基址和限长寄存器)
windows 5.7
Multistep Processing of a User Program
windows
5.8
Paging(分页)
Divide physical memory into fixed-sized blocks called
windows
5.18
Virtual Memory
局部性原理(principle of locality):指程序在执行过程中的一个较短时期,
所执行的指令地址和指令的操作数地址,分别局限于一定区域。还可以表现为:
时间局部性,即一条指令的一次执行和下次执行,一个数据的一次访 问和下次访问都集中在一个较短时期内; 空间局部性,即当前指令和邻近的几条指令,当前访问的数据和邻近 的数据都集中在一个较小区域内。 在程序装入时,不必将其全部读入到内存,而只需将当前需要执行的 部分页或段读入到内存,就可让程序开始执行。 在程序执行过程中,如果需执行的指令或访问的数据尚未在内存(称 为缺页或缺段),则由处理器通知操作系统将相应的页或段调入到内 存,然后继续执行程序。 操作系统将内存中暂时不使用的页或段调出保存在外存上,从而腾出 空间存放将要装入的程序以及将要调入的页或段――具有请求调入和 置换功能,只需程序的一部分在内存就可执行。
Address generated by CPU is divided into ( CPU产生的地址被分为) :
Page number (p) (页码) – used as an index into a page table which contains base address of each page in physical memory.(它包含每个页在物理内存中的基址,用来作为页表的索引) Page offset (d) (偏移)– combined with base address to define the physical memory address that is sent to the memory unit. (同基址相结合,用来确定送入内存单元的物理内存地址
分解逻辑地址空间到多个页表 一个简单的技术是两级页表
在x86中,为了减少页表所占用的连续的内存空间, 采用了两级页表机制。 Windows , Linux 。
windows
5.14
Two-Level Paging Example
A logical address (on 32-bit machine with 4K page size) is divided into :