多道程序设计与内存管理组织
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基址寄存器(BR),在程序装入后,将其内存空间的起始地址 B 送入 BR,一旦 遇到要访问地址的指令时,硬件便自动将其中的访问地址加上 BR 的内容形成世纪 物理地址,然后按该地址执行。
物理内存管理方案
空闲内存管理
数据结构
位图 每个分配单元对应于位图中的 一位,0表示空闲,1表示占用 (或者相反)
空闲区表、已分配区表 表中每一项记录了空闲区(或 已分配区)的起始地址、长度、 标志
空闲块链表
内存分配算法
首次适配firstfit ◦ 在空闲区表中找到第一个满足进程要求的空闲区
下次适配 next fit ◦ 从上次找到的空闲区处接着查找
最佳适配 best fit ◦ 查找整个空闲区表,找到能够满足进程要求的最小空
闲区
最差适配 worst fit ◦ 总是分配满足进程要求的最大空闲区
空闲块链表 :将所有空闲块链成一个链表
空闲区表、已分配区表 :空闲块首址和空闲块长度,没有记录的区域即为进程所占用
静态分配:程序要求的内存空间是在目标模块连接装入内存是确定并分配的,并且 在程序运行过程中不允许再申请或在内存中“搬家”,即分配工作是在程序运行前一 次性完成。
动态分配:程序要求的基本内存空间实在目标模块装入时确定并分配的,但是程序 运行过程中允许申请附加的内存空间或在内存中“搬家”,即分配工作可以在程序运 行前及程序运行中逐步完成。
一般由硬件提供一对寄存器:
基址寄存器:存放起始地址
界限寄存器:存放长度
或者是一对上界寄存器和下界寄存器
静态地址映射(静态重定位):
当用户程序被装入内存是,一次性实现逻辑地址到物 理地址的转换,以后不再转换。(软件完成)
动态地址映射(动态重定位):
在程序执行过程中要访问数据时再进行地址映射,即 逐条指令执行时完成地址映射。(硬件地址映射机制)
大的空闲区
又称:压缩技术,紧致技术,搬家技术
紧缩时要考虑的问题 系统开销 ? 移动时机 ?
分区管理优缺点:
优点:存储管理技术简单易行,内存共享,便于动态申请内存
缺点:内存利用率低,存在严重的碎片问题,不提供“虚存”,不能对内存“扩充”,存 储收到实际存储容量的限制。
页式存储管理
4.页式存储管理
出发点:打破存储分配的连续性,使得一个程序的逻辑地址空间可以分布在若干离散的内存块上,从而达到充分利用内存,提高内存利用率的目的。
存储管理的任务
(1)内存空间的管理、分配与回收
记住每个存储区域的状态(需要设置相应的非配表格,记录内存空间使用状态)
实施分配(分为静态非配和动态分配两种)
回收
为实现上述功能,必须引入分配表,统称为系统分配表,
组织方式有:
位示图表示法:用一位(bit)表示一个内存页面(0 表示空闲,1 表示占用)
空闲页面表:包括首页面号和空闲页面个数,连续若干的页面作为一组登记在表中;
逻辑上相邻的页,物理上不一定 相邻
典型页面尺寸:4K或4M
相关数据结构及地址转换
页表
页表项:记录了逻辑页号与页框号的对应关系
每个进程一个页表,存放在内存
空闲内存管理
地址转换(硬件支持)
CPU取到逻辑地址,自动划分为页号和页内地址; 用页号查页表,得到页框号,再与页内地址(页内偏移) 拼接为物理地址
硬件支持:
在地址映射机制中增加一个小容量的相联存储器。它由高速缓存器组成,可以从硬件上 保证按内容并行查找,速度快,所以称为快表。用来存放当前访问最频繁的少数活动页面的 页号。
(1)页表始址寄存器:用于保存正在运行的进程的页表在内存的首地址。
(2)页表长度寄存器,用于保存正在运行进程的页表长度。
页式存储管理优缺点:
1硬件寄存器每个进程都有一张页表,页表所指内存的起始地址和长度作为现场信息存入 PCB,进程一旦被调用,这些信息将被作为恢复现场信息送入系统的地址映射机制中的寄存器中。
2地址映射过程也表示硬件进行地址转换的依据,每执行一条指令时按照逻辑地址中的逻辑页号检查页表,若页表中无此页号,则产生一个“地址越界”的程序性中断事件;或页表中有此页号,则可得到对应的内存块号,将其转成为可以访问的内存物理地址:
配策略在分区说明表中查找空闲分区,找到则占用,完成时释放。
3.可变分区
1.根据进程的需要,把内存空闲空间分割出一个分区,分配给该进程
2.剩余部分成为新的空闲区
容易导致的问题:
外碎片化,导致内存利用率下降
碎片问题解决
碎片 → 很小的、不易利用的空闲区 → 导致内存利用率下降
解决方案 → 紧缩技术(memory compaction) 在内存移动程序,将所有小的空闲区合并为较
基址寄存器(BR),在程序装入后,将其内存空间的起始地址 B 送入 BR,一旦 遇到要访问地址的指令时,硬件便自动将其中的访问地址加上 BR 的内容形成世纪 物理地址,然后按该地址执行。
存储共享、存储保护(防止地址越界、防止操作越权)
答:
存储共享是指两个或多个进程共用内存中相同区域,这样不仅能使多道程序动态地共享 内存,提高内存利用率,而且还能共享内存中某个区域的信息。
目的:
1 通过代码共享节省内存空间
2 通过数据共享实现进程通信
(3)存储保护
存储保护目的:
为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,
避免各道程序间相互干扰。特别是当一道程序发生错误时,不至于影响其他程序的运行, 更要防止破坏系统程序。主要是硬件支持,软件配合实现的。存储保护内容:
优点:不要求作业或进程的程序段和数据在内存中连续存放,从而有效解决了碎片 问题,提高了内存的利用率,有利于组织多道程序执行
缺点:虽然页式存储管理消除了碎片,但每个程序的最后一页内总有一部分空间得 不到利用,如果页面较大,则这一部分的损失仍然很大。
段式存储管理
1内存划分:
内存空间被动态地划分为若干个长度不相同的区域,每个区域称作一个物理段。每个物理段在内存中有一个起始地址,称作段首址。将物理段中的所有单元从 0 开始依次编 制,称为段内地址。
2逻辑地址空间划分:
用户程序按逻辑上有完整意义的段来划分。成为逻辑段,简称段。一 个逻辑段中的所有单元从 0 开始编制,称为段内地址。用户程序的逻辑地址由段号和段内地址两部分组成:
存储管理
多道程序设计与内存管理
是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。这就称为多道程序设计。多道程序技术运行的特征:多道、宏观上并行、微观上串行。
需要内存管理做更多的工作
需要支持地址重定位
o程序中的地址不一定是最终的物理地址
动态分配的好处:具有较大的灵活性;暂不使用的信息可以不进内存,对提高内存 利用率大有好处;反映了程序的动态性,较之静态存储分配更为合理。
(2)内存共享
内存共享是指两个或多个进程共用内存中相同区域,这样不仅能使多道程序动态地共享
内存,提高内存利用率,而且还能共享内存中某个区域的信息。
包括:代码共享和数据共享。代码共享的代码必须是纯代码!
将该空闲区分为两部分,一部分供进程使用,另
一部分形成新的空闲区
回收问题
内存回收算法 ◦
当某一块归还后,前后空闲空间合并,修改内存空闲区表 ◦
四种情况
上相邻、下相邻、上下都相邻、上下都不相邻
伙伴系统
Linux低层内 存管理采用
一种特殊的 “分离适配” 算法
一种经典的内存分配方案
主要思想:将内存按2的幂进行划分,组成若干空闲块链表;查找该链表找到能满足进程需求的最佳匹配块
o在程序运行前无法计算出物理地址
o因为不能确定程序被加载到内存Βιβλιοθήκη Baidu么地方
需要支持地址保护
o进程间地址空间不能互访问
地址重定位
地址重定位:
将用户程序中的逻辑地址转换为运行时可由 机器直接寻址的物理地址的过程
目的:保证CPU执行指令时可正确访问内存单元
逻辑地址(相对地址,虚拟地址)
用户程序经过编译、汇编后形成目标代码,目标代 码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址
算法: ◦ 首先将整个可用空间看作一块:2U ◦ 假设进程申请的空间大小为 s,如果满足 2U-1 < s <= 2U,则分配整个块 否则,将块划分为两个大小相等的伙伴,大小为2U-1 ◦ 一直划分下去直到产生大于或等于 s 的最小块 。
基本内存管理方案
单一连续区,固定分区,可变分区,分页,分段,段页式
1 防止地址越界
2 防止操作越权(对属于自己区域的信息,可读或写;对公共区域中允许共享的信 息或获得授权可以使用的信息,可读而不可修改;对未授权使用的信息,不可读, 不可写)
(4)“扩充”内存容量(内存扩充)
在硬件支持下,软件、议案相互协作,将内存和外存结合起来统一使用。
(5)地址映射(地址转换)
逻辑地址(相对地址,虚地址):
给进程分配内存——地址空间
往内存加载内容——映射进程地址空间到物理内存
管理共享的内存
最小化存储访问时间
内存
由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器
系统区:用于存放操作系统
用户区:用于装入并存放用户程序和数据
不能用逻辑地址在内存中读取信息
物理地址(绝对地址,实地址)
内存中存储单元的地址,可直接寻址
静态地址映射(静态重定位):当用户程序被装入内存时,一次性实现逻辑地址到物 理地址的转换,以后不再转换。(软件完成)
动态地址映射(动态重定位):在程序执行过程中要访问数据时再进行地址映射,即逐条指令执行时完成地址映射。(硬件地址映射机制)
包括:代码共享和数据共享。代码共享的代码必须是纯代码!
目的:
1 通过代码共享节省内存空间
2 通过数据共享 实现进程通信 存储保护为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区 域,避免各道程序间相互干扰。特别是当一道程序发生错误时,不至于影响其他程序的 运行,更要防止破坏系统程序。主要是硬件支持,软件配合实现的。
分。为了满足不同程序的存储要求,各分区的大小可不相等。由于分区的大小固定,就限制 了可容纳程序的大小,因此要求程序运行时必须提供对内存资源的最大申请量。
每个分区装一个且只能装一个进程
管理办法:内存分配表
每个分区按顺序在分区说明表中对应一个表目,表目内容包括分区序号、分区
大小、分区起始地址以及使用状态,程序运行时,根据其最大需求量,按一定的分
1.单一用户(连续区)
特点:一段时间内只有一个进程在内存
简单,内存利用率低
内存分为两个区域:一个供操作系统使用;一个供用户使用 用户程序进内存时,是从内存用户区的固定地址开始连续完整存放;不存在分配、回收问题。
分区管理
2.固定分区
系统先把内存划分成若干个大小固定的分区,一旦划分好,在系统运行期间不再重新划
MMU:Memory Management Unit(存储管理部件)页式存储管理 英国曼彻斯特大学
设计思想
划分是由系 统自动完成 的,对用户 是透明的
用户程序地址空间划分划分为大小相等的部分─页
内存空间按页大小划分为大小相等的区域,称为内存块(物理页面,页框,页帧)
内存分配(规则)
以页为单位进行分配,并按进程需 要的页数来分配;
存储保护内容:
1 防止地址越界
2 防止操作越权
(对属于自己区域的信息,可读或写;对公共区域中允许共享的信 息或获得授权可以使用的信息,可读而不可修改;对未授权使用的信息,不可读, 不可写)
一般由硬件提供一对寄存器:
基址寄存器:存放起始地址
界限寄存器:存放长度
或者是一对上界寄存器和下界寄存器
存储管理的基本目标
用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为 0,其余指令中的地址都相对于首地址而编址,这就是逻辑地址的概念。
物理地址(绝对地址,实地址):
内存中存储单元的地址,可直接寻址
地址映射(地址转换,重定位):为了保证 CPU 执行指令时可以正确访问存储单元,需将用户程序中的逻辑地址 转换为运行时可由机器直接寻址的物理地址,这一过程称为地址映射。
物理地址=内存块号×块长+页内地址
注:由于块长是 2 的整数次幂,故实际上乘的运算在机器中用移位运算代替。因此上式的结 果就是把内存块号作为绝对地址(物理地址)的高位地址,而页内地址作为他的低地址部分。 图示见书上 P188
3快表的引入(书上 P189 详解)
TLB:Translation lookaside buffer,即旁路转换缓冲,或称为页表缓冲;里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。
物理内存管理方案
空闲内存管理
数据结构
位图 每个分配单元对应于位图中的 一位,0表示空闲,1表示占用 (或者相反)
空闲区表、已分配区表 表中每一项记录了空闲区(或 已分配区)的起始地址、长度、 标志
空闲块链表
内存分配算法
首次适配firstfit ◦ 在空闲区表中找到第一个满足进程要求的空闲区
下次适配 next fit ◦ 从上次找到的空闲区处接着查找
最佳适配 best fit ◦ 查找整个空闲区表,找到能够满足进程要求的最小空
闲区
最差适配 worst fit ◦ 总是分配满足进程要求的最大空闲区
空闲块链表 :将所有空闲块链成一个链表
空闲区表、已分配区表 :空闲块首址和空闲块长度,没有记录的区域即为进程所占用
静态分配:程序要求的内存空间是在目标模块连接装入内存是确定并分配的,并且 在程序运行过程中不允许再申请或在内存中“搬家”,即分配工作是在程序运行前一 次性完成。
动态分配:程序要求的基本内存空间实在目标模块装入时确定并分配的,但是程序 运行过程中允许申请附加的内存空间或在内存中“搬家”,即分配工作可以在程序运 行前及程序运行中逐步完成。
一般由硬件提供一对寄存器:
基址寄存器:存放起始地址
界限寄存器:存放长度
或者是一对上界寄存器和下界寄存器
静态地址映射(静态重定位):
当用户程序被装入内存是,一次性实现逻辑地址到物 理地址的转换,以后不再转换。(软件完成)
动态地址映射(动态重定位):
在程序执行过程中要访问数据时再进行地址映射,即 逐条指令执行时完成地址映射。(硬件地址映射机制)
大的空闲区
又称:压缩技术,紧致技术,搬家技术
紧缩时要考虑的问题 系统开销 ? 移动时机 ?
分区管理优缺点:
优点:存储管理技术简单易行,内存共享,便于动态申请内存
缺点:内存利用率低,存在严重的碎片问题,不提供“虚存”,不能对内存“扩充”,存 储收到实际存储容量的限制。
页式存储管理
4.页式存储管理
出发点:打破存储分配的连续性,使得一个程序的逻辑地址空间可以分布在若干离散的内存块上,从而达到充分利用内存,提高内存利用率的目的。
存储管理的任务
(1)内存空间的管理、分配与回收
记住每个存储区域的状态(需要设置相应的非配表格,记录内存空间使用状态)
实施分配(分为静态非配和动态分配两种)
回收
为实现上述功能,必须引入分配表,统称为系统分配表,
组织方式有:
位示图表示法:用一位(bit)表示一个内存页面(0 表示空闲,1 表示占用)
空闲页面表:包括首页面号和空闲页面个数,连续若干的页面作为一组登记在表中;
逻辑上相邻的页,物理上不一定 相邻
典型页面尺寸:4K或4M
相关数据结构及地址转换
页表
页表项:记录了逻辑页号与页框号的对应关系
每个进程一个页表,存放在内存
空闲内存管理
地址转换(硬件支持)
CPU取到逻辑地址,自动划分为页号和页内地址; 用页号查页表,得到页框号,再与页内地址(页内偏移) 拼接为物理地址
硬件支持:
在地址映射机制中增加一个小容量的相联存储器。它由高速缓存器组成,可以从硬件上 保证按内容并行查找,速度快,所以称为快表。用来存放当前访问最频繁的少数活动页面的 页号。
(1)页表始址寄存器:用于保存正在运行的进程的页表在内存的首地址。
(2)页表长度寄存器,用于保存正在运行进程的页表长度。
页式存储管理优缺点:
1硬件寄存器每个进程都有一张页表,页表所指内存的起始地址和长度作为现场信息存入 PCB,进程一旦被调用,这些信息将被作为恢复现场信息送入系统的地址映射机制中的寄存器中。
2地址映射过程也表示硬件进行地址转换的依据,每执行一条指令时按照逻辑地址中的逻辑页号检查页表,若页表中无此页号,则产生一个“地址越界”的程序性中断事件;或页表中有此页号,则可得到对应的内存块号,将其转成为可以访问的内存物理地址:
配策略在分区说明表中查找空闲分区,找到则占用,完成时释放。
3.可变分区
1.根据进程的需要,把内存空闲空间分割出一个分区,分配给该进程
2.剩余部分成为新的空闲区
容易导致的问题:
外碎片化,导致内存利用率下降
碎片问题解决
碎片 → 很小的、不易利用的空闲区 → 导致内存利用率下降
解决方案 → 紧缩技术(memory compaction) 在内存移动程序,将所有小的空闲区合并为较
基址寄存器(BR),在程序装入后,将其内存空间的起始地址 B 送入 BR,一旦 遇到要访问地址的指令时,硬件便自动将其中的访问地址加上 BR 的内容形成世纪 物理地址,然后按该地址执行。
存储共享、存储保护(防止地址越界、防止操作越权)
答:
存储共享是指两个或多个进程共用内存中相同区域,这样不仅能使多道程序动态地共享 内存,提高内存利用率,而且还能共享内存中某个区域的信息。
目的:
1 通过代码共享节省内存空间
2 通过数据共享实现进程通信
(3)存储保护
存储保护目的:
为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,
避免各道程序间相互干扰。特别是当一道程序发生错误时,不至于影响其他程序的运行, 更要防止破坏系统程序。主要是硬件支持,软件配合实现的。存储保护内容:
优点:不要求作业或进程的程序段和数据在内存中连续存放,从而有效解决了碎片 问题,提高了内存的利用率,有利于组织多道程序执行
缺点:虽然页式存储管理消除了碎片,但每个程序的最后一页内总有一部分空间得 不到利用,如果页面较大,则这一部分的损失仍然很大。
段式存储管理
1内存划分:
内存空间被动态地划分为若干个长度不相同的区域,每个区域称作一个物理段。每个物理段在内存中有一个起始地址,称作段首址。将物理段中的所有单元从 0 开始依次编 制,称为段内地址。
2逻辑地址空间划分:
用户程序按逻辑上有完整意义的段来划分。成为逻辑段,简称段。一 个逻辑段中的所有单元从 0 开始编制,称为段内地址。用户程序的逻辑地址由段号和段内地址两部分组成:
存储管理
多道程序设计与内存管理
是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。这就称为多道程序设计。多道程序技术运行的特征:多道、宏观上并行、微观上串行。
需要内存管理做更多的工作
需要支持地址重定位
o程序中的地址不一定是最终的物理地址
动态分配的好处:具有较大的灵活性;暂不使用的信息可以不进内存,对提高内存 利用率大有好处;反映了程序的动态性,较之静态存储分配更为合理。
(2)内存共享
内存共享是指两个或多个进程共用内存中相同区域,这样不仅能使多道程序动态地共享
内存,提高内存利用率,而且还能共享内存中某个区域的信息。
包括:代码共享和数据共享。代码共享的代码必须是纯代码!
将该空闲区分为两部分,一部分供进程使用,另
一部分形成新的空闲区
回收问题
内存回收算法 ◦
当某一块归还后,前后空闲空间合并,修改内存空闲区表 ◦
四种情况
上相邻、下相邻、上下都相邻、上下都不相邻
伙伴系统
Linux低层内 存管理采用
一种特殊的 “分离适配” 算法
一种经典的内存分配方案
主要思想:将内存按2的幂进行划分,组成若干空闲块链表;查找该链表找到能满足进程需求的最佳匹配块
o在程序运行前无法计算出物理地址
o因为不能确定程序被加载到内存Βιβλιοθήκη Baidu么地方
需要支持地址保护
o进程间地址空间不能互访问
地址重定位
地址重定位:
将用户程序中的逻辑地址转换为运行时可由 机器直接寻址的物理地址的过程
目的:保证CPU执行指令时可正确访问内存单元
逻辑地址(相对地址,虚拟地址)
用户程序经过编译、汇编后形成目标代码,目标代 码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址
算法: ◦ 首先将整个可用空间看作一块:2U ◦ 假设进程申请的空间大小为 s,如果满足 2U-1 < s <= 2U,则分配整个块 否则,将块划分为两个大小相等的伙伴,大小为2U-1 ◦ 一直划分下去直到产生大于或等于 s 的最小块 。
基本内存管理方案
单一连续区,固定分区,可变分区,分页,分段,段页式
1 防止地址越界
2 防止操作越权(对属于自己区域的信息,可读或写;对公共区域中允许共享的信 息或获得授权可以使用的信息,可读而不可修改;对未授权使用的信息,不可读, 不可写)
(4)“扩充”内存容量(内存扩充)
在硬件支持下,软件、议案相互协作,将内存和外存结合起来统一使用。
(5)地址映射(地址转换)
逻辑地址(相对地址,虚地址):
给进程分配内存——地址空间
往内存加载内容——映射进程地址空间到物理内存
管理共享的内存
最小化存储访问时间
内存
由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器
系统区:用于存放操作系统
用户区:用于装入并存放用户程序和数据
不能用逻辑地址在内存中读取信息
物理地址(绝对地址,实地址)
内存中存储单元的地址,可直接寻址
静态地址映射(静态重定位):当用户程序被装入内存时,一次性实现逻辑地址到物 理地址的转换,以后不再转换。(软件完成)
动态地址映射(动态重定位):在程序执行过程中要访问数据时再进行地址映射,即逐条指令执行时完成地址映射。(硬件地址映射机制)
包括:代码共享和数据共享。代码共享的代码必须是纯代码!
目的:
1 通过代码共享节省内存空间
2 通过数据共享 实现进程通信 存储保护为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区 域,避免各道程序间相互干扰。特别是当一道程序发生错误时,不至于影响其他程序的 运行,更要防止破坏系统程序。主要是硬件支持,软件配合实现的。
分。为了满足不同程序的存储要求,各分区的大小可不相等。由于分区的大小固定,就限制 了可容纳程序的大小,因此要求程序运行时必须提供对内存资源的最大申请量。
每个分区装一个且只能装一个进程
管理办法:内存分配表
每个分区按顺序在分区说明表中对应一个表目,表目内容包括分区序号、分区
大小、分区起始地址以及使用状态,程序运行时,根据其最大需求量,按一定的分
1.单一用户(连续区)
特点:一段时间内只有一个进程在内存
简单,内存利用率低
内存分为两个区域:一个供操作系统使用;一个供用户使用 用户程序进内存时,是从内存用户区的固定地址开始连续完整存放;不存在分配、回收问题。
分区管理
2.固定分区
系统先把内存划分成若干个大小固定的分区,一旦划分好,在系统运行期间不再重新划
MMU:Memory Management Unit(存储管理部件)页式存储管理 英国曼彻斯特大学
设计思想
划分是由系 统自动完成 的,对用户 是透明的
用户程序地址空间划分划分为大小相等的部分─页
内存空间按页大小划分为大小相等的区域,称为内存块(物理页面,页框,页帧)
内存分配(规则)
以页为单位进行分配,并按进程需 要的页数来分配;
存储保护内容:
1 防止地址越界
2 防止操作越权
(对属于自己区域的信息,可读或写;对公共区域中允许共享的信 息或获得授权可以使用的信息,可读而不可修改;对未授权使用的信息,不可读, 不可写)
一般由硬件提供一对寄存器:
基址寄存器:存放起始地址
界限寄存器:存放长度
或者是一对上界寄存器和下界寄存器
存储管理的基本目标
用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为 0,其余指令中的地址都相对于首地址而编址,这就是逻辑地址的概念。
物理地址(绝对地址,实地址):
内存中存储单元的地址,可直接寻址
地址映射(地址转换,重定位):为了保证 CPU 执行指令时可以正确访问存储单元,需将用户程序中的逻辑地址 转换为运行时可由机器直接寻址的物理地址,这一过程称为地址映射。
物理地址=内存块号×块长+页内地址
注:由于块长是 2 的整数次幂,故实际上乘的运算在机器中用移位运算代替。因此上式的结 果就是把内存块号作为绝对地址(物理地址)的高位地址,而页内地址作为他的低地址部分。 图示见书上 P188
3快表的引入(书上 P189 详解)
TLB:Translation lookaside buffer,即旁路转换缓冲,或称为页表缓冲;里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。