基本分页存储管理
分页存储管理的基本原理

分页存储管理的基本原理分页存储管理是一种计算机内存管理技术,用于将主存(RAM)划分为固定大小的页框(Page Frame)和相同大小的逻辑页面(Page)。
它的基本原理是将进程的逻辑地址空间划分为固定大小的逻辑页面,然后将这些逻辑页面映射到物理内存中的页框。
下面是分页存储管理的基本原理:1. 逻辑页面划分:进程的逻辑地址空间被划分为固定大小的逻辑页面,每个页面具有相同的大小。
逻辑页面的大小通常是2的幂次,如4KB、8KB等。
2. 物理页面划分:物理内存也被划分为固定大小的页框,与逻辑页面大小相同。
页框的数量和大小取决于系统的物理内存容量。
3. 地址映射:当进程访问一个逻辑地址时,操作系统将逻辑地址分为页号和页内偏移量。
页号用于在页表中查找对应的页表项,页表项记录了逻辑页面与物理页框之间的映射关系。
通过页表项,操作系统可以确定逻辑页面对应的物理页框。
4. 页表管理:操作系统维护每个进程的页表,用于记录逻辑页面与物理页框的映射关系。
页表可以存储在主存中的一个特定位置,也可以使用硬件支持的高速缓存(例如,TLB)进行快速查找。
5. 缺页处理:当进程访问一个逻辑页面,但该页面尚未被加载到物理内存时,发生了缺页(Page Fault)。
操作系统会将缺失的页面从辅助存储设备(如硬盘)加载到物理内存的一个空闲页框中,并更新页表,建立逻辑页面与物理页框之间的映射。
6. 页面置换:如果物理内存中的页框已满,无法容纳新的页面,操作系统需要进行页面置换(Page Replacement)。
页面置换算法用于选择要被替换出的页面,并将新页面加载到被释放的页框中。
通过分页存储管理,操作系统可以将进程的逻辑地址空间分割为固定大小的页面,以提供更高效的内存管理和地址空间隔离。
它使得进程可以访问超出物理内存容量的逻辑地址空间,而不需要连续的物理内存空间。
同时,它也引入了缺页和页面置换的开销,这是由于页面的延迟加载和可能的页面置换操作。
分页存储管理

非连续分配方式1.基本内容:页式存储管理基本思想、数据结构、地址转换过程。
段式存储管理以及段页式存储管理。
2.学习要求:;掌握页式存储管理、段式存储管理以及段页式存储管理的实现原理、数据结构、地址转换机构等内容。
3.教学要求:本单元共安排4学时。
采用教员课堂讲授方法实施教学。
该部分内容抽象,是本章学习重点与难点。
课后可通过课程设计使学员加深对于抽象理论的理解和掌握。
4.重点:各种管理实现原理、数据结构、地址转换机构。
5.难点:段式存储管理。
分页存储管理可重定位分区分配虽然可以解决碎片和共享问题,但由于信息的大量移动而损失了许多宝贵的CPU时间,且存储用户的作业受到实际存储容量的限制。
多重分区分配虽在一定程度上解决了这些问题,但由于要求各分区设置分段的重定位寄存器,存储分配策略较复杂,且需较多的硬件支持。
分页式管理技术通过地址转换机制,能明显消除内、外存之间的差别,将外存看作内存的扩充和延伸。
并能很好解决“外零头”的问题。
一、分页在储管理实现的基本思想:在分页存储管理中,将每个作业的逻辑地址空间分为大小相同的块,称为虚页面或页(page),通常页面大小为2的整数次幂(512K~4K)。
同样地,将物理空间也划分为与页面大小相等的块,称之为存储块或页框(page frame),为作业分配存储空间时,总是以页框为单位。
例如:一个作业的地址空间有M页,那么只要分配给它M个页框,每一页分别装入一个页框即可。
纯分页系统的定义:指在调度一个作业时,必须把它的所有页一次装入到主存的矾框。
若当时页框数不足,则该作业必须等待,系统再调度其他作业。
这里,并不要求这些页框是相邻的。
即连续逻辑地址空间的页面,通过页面地址转换机构可以映射到不连续的内存块中。
对地址空间的分页是由系统自动进行的,其逻辑地址由相对页号和页内位移量(页内地址)两部分组成(下面a)。
图中设逻辑地址长度为16位,可表示64K的逻辑地址空间。
物理地址也由块号及块内移量(块内地址)两部分组成(下图b)。
说明基本分页存储管理方式

说明基本分页存储管理方式在计算机系统中,存储管理是一个重要的部分,其功能是对计算机系统中的数据进行合理的管理与分配。
分页存储管理方式是其中的一种常用方式。
分页存储管理方式指的是将物理存储空间划分为大小相等的页框,将逻辑存储空间按照页的大小来划分,将逻辑地址空间中的每个页面映射到物理地址空间中的一个页框上。
这样就可以实现逻辑地址与物理地址的映射。
在分页存储管理方式中,每个进程都有自己的页表,用于记录该进程的逻辑地址空间与物理地址空间之间的映射关系。
当进程需要访问某个逻辑地址时,通过查找页表,找到对应的物理地址。
如果该页不在内存中,则需要从磁盘中读取该页,并将其放置到空闲的页框中。
分页存储管理方式的优点在于可以充分利用内存空间,提高内存利用率。
同时,由于每个进程有自己的页表,各个进程之间的地址空间是独立的,可以有效地防止进程间的地址冲突。
此外,由于采用了分页的方式,可以实现对内存中的数据进行快速查找和访问。
然而,分页存储管理方式也存在一些缺点。
首先,由于需要维护每个进程的页表,对于系统的管理与维护带来了一定的复杂度。
其次,由于每个页都需要记录页表信息,因此会占用一定的空间。
此外,由于每次访问都需要进行地址映射,会带来一定的时间开销。
为了克服分页存储管理方式的缺点,还可以采用其他的存储管理方式,如分段存储管理方式、虚拟存储管理方式等。
分段存储管理方式将逻辑地址空间划分为若干个段,每个段可以有不同的长度,不同的段可以放置在不同的物理地址空间中。
虚拟存储管理方式则将整个逻辑地址空间划分为若干个页面,每个页面可以在内存中或者磁盘中进行存储,当进程需要访问某个页面时,会先判断该页面是否在内存中,如果在则直接访问,否则从磁盘中调入并放置在内存中。
分页存储管理方式是一种常用的存储管理方式,可以充分利用内存空间,提高内存利用率。
但是,由于需要维护每个进程的页表,会带来一定的管理与维护复杂度。
因此,在实际应用中,需要根据具体情况选择合适的存储管理方式。
基本分页存储管理方式和虚拟存储方式

基本分页存储管理方式和虚拟存储方式
基本分页存储管理方式是一种将主存储器划分为固定大小的页框和相同大小的页的方法。
程序在执行时被划分为固定大小的页,而主存储器划分为相同大小的页框。
当程序执行需要的某个页时,该页从辅助存储器加载到一个空闲的页框中,程序就可以继续执行。
虚拟存储方式是一种将程序按逻辑地址划分为多个大小固定的逻辑块,而主存储器被划分为固定大小的块。
逻辑块的大小可以不同于物理块的大小。
当程序执行需要的某个逻辑块时,该块可以从辅助存储器加载到主存储器中的任意一个空闲块中。
区别:
1.分页方式划分的是主存储器中的页框和程序的页,而虚拟存储方式划分的是主存储器中的块和程序的逻辑块。
2.分页方式中,页的大小是固定的,而虚拟存储方式中,逻辑块的大小可以不同于物理块的大小。
3.分页方式中,程序执行时需要的页会被加载到主存储器中的任意一个空闲页框中,而虚拟存储方式中,逻辑块会被加载到主存储器中的任意一个空闲块中。
综上所述,基本分页存储管理方式和虚拟存储方式都是一种将程序按组块管理的方法,但在具体的实现细节和块的大小上有所不同。
基本分页存储管理方式

14 68
…
…
10 23
内存 空间
图 4-14 两级页表结构
具有两级页表的地址变换机构
逻辑地址
外部页号 外部页内地址 页内地址
P1
P2
d
外部页表寄存器 +
+
… …
外部页表
页表
图 4-15 具有两级页表的地址变换机构
b
d
物理地址
2. 多级页表
对于32位的机器,采用两级页表结构是合适的;但对于64位的机器,如果 页面大小仍采用4 KB即212 B,那么还剩下52位, 假定仍按物理块的大小 (212位)来划分页表,则将余下的42位用于外层页号。此时在外层页表中可 能有4096 G个页表项, 要占用16384 GB的连续内存空间。 必须采用多级 页表,将外层页表再进行分页,也是将各分页离散地装入到不相邻接的物 理块中,再利用第2级的外层页表来映射它们之间的关系。
2. 地址结构
分页地址中的地址结构如下:
页号P
位移量W
对某特定机器,其地址结构是一定的。若给定一个逻辑地址空 间中的地址为A,页面的大小为L,则页号P和页内地址d可按下 式求得:
P
INT
A L
d [ A]MODL
3. 页表
用户 程序 0页 1页 2页 3页 4页 5页
n页
… …
…
页表 页号 块号
2) 页面大小
在分页系统中的页面其大小应适中。页面若太小,一方面虽然可使内 存碎片减小,从而减少了内存碎片的总空间, 有利于提高内存利用率, 但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长, 占用大量内存; 此外,还会降低页面换进换出的效率。然而,如果选择 的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但却 又会使页内碎片增大。因此,页面的大小应选择得适中,且页面大小应是 2的幂,通常为512 B~8 KB。
操作系统分页存储管理例题

操作系统分页存储管理例题
操作系统中常用的分页存储管理方式是通过地址空间映射到物理存储介质来实现的。
分页存储管理的主要目的是使得程序能够更有效地访问存储介质,提高程序的性能。
下面是一个简单的分页存储管理例题,以供参考: 假设有一个程序需要对磁盘上的一段数据进行读取和写入操作,假设这段数据的大小为1MB。
为了解决这个问题,我们可以使用分页存储管理方式。
首先,我们需要定义一个页的大小,通常为4KB。
然后,我们需要在程序中设置一个页地址,用于表示需要访问的页面。
假设我们使用的是4KB的页面大小,那么页地址应该为4个字节(即4KB/4=1024字节)。
接下来,我们需要将程序的地址空间划分为多个页面,使得程序能够访问不同大小的页面。
假设程序的地址空间为2MB,我们可以将地址空间划分为4个页面,每个页面大小为1MB。
这样,每个页面的地址就是4个字节(即4KB/4=1024字节)。
最后,我们需要将程序的地址空间映射到物理存储介质上,使得程序能够实际访问到存储介质上的页面。
这个过程通常需要通过操作系统中的页表来实现。
页表将程序的地址空间映射到物理存储介质上的页面地址空间中,从而实现地址空间的访问。
在实际使用中,我们可以根据程序的需要来动态地划分地址空间,以满足不同的需求。
例如,如果程序需要访问的文件很大,我们可以将地址空间划分为多个页面,每个页面的大小为1MB,以便更好地利用存储介质。
如果程序需要访问的文件很小,我们可以将地址空间划分为单个页面,即使用较小的页面大小,以节省存储空间。
分页存储管理

5(内存块号)
100(页内地址)
内存地址寄存器
图 页式地址变换过程
写出下图中逻辑地址2500所对应的物理地址
5k 第5页
6k
第6页
作业1的地址空间
5 7 9 15 13 10 16
页表
作业图1的地址页空式间 管理的示页表意图
0
5k
6k
7k
8k
9k
10k
11k
12k
13k
14k
15k
16k
...
17k
31k
主存空间
▪ 例:作业地址空间共有7个页, 每 页 的 相 对 地 址 为 0~1023 , 1024~2047 , 2048~3071 , … , 6144~6150 。 其 对 应 的 主 存 块 在 页表中已列出。分别为5,7,9, 15,13,10,16共7块。假定页 表在主存始址为500。若该程序 从第0页开始运行,且现程序计 数器内容为:
4.3.2地址变换(映射)机构
1 .基本的地址变换机构 地址变换机构的基本任务是利用页表把用户程序中的逻辑地 址变换成内存中的物理地址,实际上就要将用户程序中的页 号变换成内存中的物理块号。为了实现地址变换功能,在系 统中设置页表寄存器,用来存放页表的始址和页表的长度。 在进程未执行时,每个进程对应的页表的始址和长度存放在 进程的PCB中,当该进程被调度时,就将它们装入页表寄存 器。在进行地址变换时,系统将页号与页表长度进行比较, 如果页号大于页表寄存器中的页表长度,则访问越界,产生 越界中断。如未出现越界,则根据页表寄存器中的页表始址 和页号计算出该页在页表项中的位置,得到该页的物理块号, 将此物理块号装入物理地址寄存器中。与此同时,将有效地 址(逻辑地址)寄存器中页内地址直接装入物理地址寄存器 的块内地址字段中,这样便完成了从逻辑地址到物理地址的 变换。
分页式存储管理

”缺小页表”中断信号
SUN微系统公司的计算机采用的 三级分页结构。
• 为了避免进程切换时重新装入页表,硬件 可以支持多达4096个上下文,每个进程一 个;当一个新进程装入主存时,操作系统 分给一个上下文号,进程保持这个上下 文号直到终止。
物理地址形成
• 当CPU访问内存时,上下文号和逻辑地址一起送 入称作MMU(memory management unit)的地址转换 机构(现代计算机中的MMU完成逻辑地址到物理 地址的转换功能,通常它是由一个或一组芯片 组成,接受虚拟地址作为输入,物理地址作为 输出,直接送到总线上),
• 具体做法是:把整个页表进行分页,分成一张张小 页表,每个小页表的大小与页框相同,例如每个 小页表形成的页面可以有1K(210)个页表表目。我 们可对小页表顺序编号,允许小页表分散存放在 不连续的页框中,为了进行索引查找,应该为这些 小页表建一张页目录表,其表项指出小页表所在 页框号及相关信息。
•
页内地址
4.3.2 相联存储器和快表
• 相联存储器 • 快表的格式 • 采用相联存储器后地址转换
采用相联存储器的方法后,地 址转换时间大大下降
假定访问主存的时间为100毫微秒,访问相联存 储器的时间为20毫微秒,相联存储器为32个单 元时查快表的命中率可达90%,于是按逻辑地 址进行存取的平均时间为:
• 解决后一个问题的方法如下,对于进程运行涉及 页面的小页表应放在主存,而其它小页表使用时再 行调入。为了实现这一点,需要在页目录表中增加 一个特征位,用来指示对应的小页表是否已调入内 存,地址转换机构根据逻辑地址中的dir,去查页目 录表对应表项,如未调入内存,应产生一个”缺小 页表”中断信号,请求操作系统将这张小页表调 入主存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要求考虑:(1)内存空间不足的情况,要有相应的显示;
(2)作业不能同名,但是删除后可以再用这个名字;
(3)作业空间回收是输入作业名,回收相应的空间,如果这个作业名不存在,也要有相应的提示。
三、实验代码
<>
<>
N 100共有100个内存块
在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。
如果允许将一个进程直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式。在分页存储管理方式中,如果不具备页面对换功能,则称为基本分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储器的功能,它要求把每个作业全部装入内存后方能运行。
(10; j<[i][0]; )
{
("%2d ", [i][j], );
( 15)
{
('\n');
(" ");
= 0;
}
}
('\n');
}
}
}
("当前内存无进程!\n");
/*输出空闲内存块
( > 0)
{
("空闲内存块():\n", );
(00; k<N; )
{
([k] 0)
("%2d ", k, );
( 15)
{
('\n');
= 0;
}
}
('\n');
}*/
('\n');
}
()
{
, , k = 0;
("请输入进程号(小于)和所需页面数:", N);
("", , );
( > 99)
{
("错误!进程号过大!\n");
;
}
( > )
;
;
[][0] = ;
(1; i<; )
{
([k]1 k<100)
;
[][i] = k;
(00; k<N; )
{
([k] 1)
("%2d ", k, );
( 15)
{
('\n');
= 0;
}
}
('\n');
}
输出各进程占用内存详细情况
( > 0)
{
("内存详细使用情况如下:\n");
(0; i<N; )
{
([i][0] > 0)
{
("进程号:\n占用内存块(%2d):", i, [i][0]);
[N][1];存放每个进程的页表
[N];内存块状态标志数组,0:空闲,1:使用
;记录当前内存剩余空间
;记录当前进程数
= ;
();
();
();
();
()
{
i, j;
初始化内存状态标志数组
(0; i<N; )
[i] = 0;
(0; i<20; )
[()%(1)] = 1;
= 0;
(0; i<N; )
([i] 0)
()
{
1:
(())
("创建新进程成功!\n\n");
("抱歉!内存空间不足,创建新进程失败!\n\n");
;
2:
(())
("进程已结束!\n\n");
("进程结束失败!\n\n");
;
3:
();
;
0:
;
:
("对不起!您的选择有误!请重新选择!\n\n");
}
}
}
()
{
();
();
}
四、实验结果
五、实验总结
2、基本分页的分配过程:由用户输入作业号和作业的大小(这里的大小是逻辑页面数),实现分配过程:空间充足,分配,修改状态矩阵的相应位置的值(值由0转变为1),并用专门的数据记录下该作业占用的物理块的块号,以备删除作业时回收空间。
3、作业空间的的回收:用户输入作业号,实现分区回收(通过相应的数据结构找到该作业占有的物理块号,将块号转变成对应的行标、列标,将对应位置的值由1转变成0就完成了回收)
[k] = 1;
;
}
;
;
}
()
{
, ;
( < 1)
{
("当前内存没有进程!\n\n");
;
}
("当前内存中的进程有个,进程号为:", );
(0; i<N; )
([i][0] > 0)
("%2d ", i);
('\n');
("请输入您要结束的进程号(小于):", N);
("", );
= [][0];
( 0)
{
("对不起!该进程不存在!\n");
;
}
(1; j<; )
{Hale Waihona Puke [[][j]] = 0;[][j] = -1;
}
[][0] = 0;
;
;
;
}
()
{
;
()
{
("操作菜单:\n");
(" 1 >创建进程\n 2 >结束进程\n 3 >查看内存\n 0 >退出程序\n");
("请输入您要进行的操作:");
("", );
;
初始化存放进程的数组
(0; i<N; ){
[i][0] = 0;
(1; j<N; )
[i][j] = -1;
}
= 0;
("初始化结果如下:");
();
= ;
}
()
{
("\n内存总量:块,已用空间:块,剩余空间:块,进程总数:个\n", N, , , );
( < N)
{
("已使用的内存块():\n", );
《操作系统》课程实验报告
实验名称:基本分页储存管理
实验五基本分页存储管理
实验目的:熟悉并掌握基本分页存储管理的思想。
熟悉并掌握基本分页存储管理的分配和回收方式,并能够模拟实现。
实验内容:用高级语言模拟实现基本分页存储管理,要求:
1、内存空间的初始化——可以由用户输入初始内存空间各个物理块情况。(用二维矩阵的方式按物理块号,逐行给出每个物理块的状态,1——表示已分配,0——表示未分配,并能够将行标、列标转换为对应的物理块号,以查看或修改每一个块的状态,要求:初始时部分物理块已分配)