分页存储的管理方式
Ⅰ 基本分页存储管理方式的两级和多级页表
现代的大多数计算机系统,都支持非常大的逻辑地址空间(2^32~2^64)。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。例如,对于一个具有32位逻辑地址空间的分页系统,规定页面大小为4 KB即2^12 B,则在每个进程页表中的页表项可达1兆个之多。又因为每个页表项占用四个字节,故每个进程仅仅其页表就要占用4 MB的内存空间,而且还要求是连续的。显然这是不现实的,我们可以采用下述两个方法来解决这一问题:
(1) 采用离散分配方式来解决难以找到一块连续的大内存空间的问题;
(2) 只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入。
两级页表(Two-Level Page Table)
对于要求连续的内存空间来存放页表的问题,可利用将页表进行分页,并离散地将各个页面分别存放在不同的物理块中的办法来加以解决,同样也要为离散分配的页表再建立一张页表,称为外层页表(Outer Page Table),在每个页表项中记录了页表页面的物理块号。下面我们仍以前面的32位逻辑地址空间为例来说明。当页面大小为 4 KB时(12位),若采用一级页表结构,应具有20位的页号,即页表项应有1兆个;在采用两级页表结构时,再对页表进行分页,使每页中包含2^10 (即1024)个页表项,最多允许有2^10个页表分页;或者说,外层页表中的外层页内地址P2为10位,外层页号P1也为10位。此时的逻辑地址结构可描述如下:
由右图可以看出,在页表的每个表项中存放的是进程的某页在内存中的物理块号,如第0#页存放在1#物理块中;1#页存放在4#物理块中。而在外层页表的每个页表项中,所存放的是某页表分页的首址,如第0#页表是存放在第1011#物理块中。我们可以利用外层页表和页表这两级页表,来实现从进程的逻辑地址到内存中物理地址间的变换。
为了地址变换实现上的方便起见,在地址变换机构中同样需要增设一个外层页表寄存器,用于存放外层页表的始址,并利用逻辑地址中的外层页号,作为外层页表的索引,从中找到指定页表分页的始址,再利用P2作为指定页表分页的索引,找到指定的页表项,其中即含有该页在内存的物理块号,用该块号和页内地址d即可构成访问的内存物理地址。右图示出了两级页表时的地址变换机构。 对于32位的机器,采用两级页表结构是合适的;但对于64位的机器,采用两级页表是否仍可适用的问题,须做以下简单分析。如果页面大小仍采用4 KB即2^12 B,那么还剩下52位,假定仍按物理块的大小(2^12位)来划分页表,则将余下的42位用于外层页号。此时在外层页表中可能有4096 G个页表项,要占用16 384 GB的连续内存空间。这样的结果显然是不能令人接受的,因此必须采用多级页表,将外层页表再进行分页,也就是将各分页离散地装入到不相邻接的物理块中,再利用第2级的外层页表来映射它们之间的关系。
对于64位的计算机,如果要求它能支持2^64 B(= 1 844 744 TB)规模的物理存储空间,则即使是采用三级页表结构也是难以办到的;而在当前的实际应用中也无此必要。故在近两年推出的64位OS中,把可直接寻址的存储器空间减少为45位长度(即2^45)左右,这样便可利用三级页表结构来实现分页存储管理。
Ⅱ 为实现分页存储管理 需要哪些硬件支持
为实现分页存储管理,需要的硬件支持包括:存储器管理模块、地址转换机制、页面缓存或高速缓存。
1. 存储器管理模块: 该模块负责识别和管理物理内存中的各个页面,以及页面的状态信息。 它支持操作系统进行页面的分配和回收操作,是分页存储管理的基础。
2. 地址转换机制: 主要是页表机制,能够将虚拟地址转换为物理地址。 通常由内存管理单元完成这一转换工作,使得程序可以通过虚拟地址空间来访问实际存在于物理内存中的数据。
3. 页面缓存或高速缓存: 这些缓存用于存储最近访问过的页面数据,以提高数据访问速度。 当需要再次访问相同页面时,可以直接从缓存中获取数据,避免了从较慢的存储设备中读取,从而提升了分页存储管理的整体效率。
Ⅲ 请问段页式和分页式存储管理有什么区别
段式和页式存储管理的地址结构很类似,但是它们之间有实质上的不同,表现为页式的逻辑地址是连续的,段式的逻辑地址可以不连续、页式的地址是一维的,段式的地址是二维的、分页是操作系统进行,分段是用户确定、各页可以分散存放在主存,每段必须占用连续的主存空间
拓展:
各页可以分散存放在主存,每段必须占用连续的主存空间。分页和分段者是操作系统确定和进行的。页式和段式都是采用动态重定位方式。
进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址。
内存分配规则:以段为单位进行分配,每个段在内存中占连续空间,但各段之间可以不相邻。
优点:保留了分段和请求分页存储管理的全部优点、提供了虚存空间,能更有效利用主存
缺点:增加了硬件成本、系统复杂度较大
Ⅳ 在分页存储管理方式下应怎样实现主存空间的分配和回收
2.1 模拟包括3部分:
1)实现特定的内存分配算法
2)实现内存回收模拟
3)每种内存分配策略对应的碎片数统计
2.2 固定分区存储管理
假设内存容量为120KB,并且分别划分成8,16,32,64KB大小的块各一块。
一个进程所需要的内存为0到100个KB。同时假设一个进程在运行过程中所需内存的大小不变。
模拟五个进程到达请求分配与运行完回收情况,输出主存分配表.
2.3 动态分区分配存储管理
采用连续分配方式之动态分区分配存储管理,使用首次适应算法、下次适应算法、最佳适应算法和最坏适应算法4种算法完成设计(任选两种算法)。
Ⅳ 基本分页存储管理方式页面与页表
分页存储管理是一种常见的内存管理方式,它将进程的逻辑地址空间划分为固定大小的片,即页面,每个页面都有唯一的编号。内存空间则被划分为同样大小的物理块,称为页框,它们也有各自的编号。在分配内存时,进程的页面被分散存储到多个物理块,可能导致页内碎片。
选择合适的页面大小至关重要。如果页面过小,虽然能减少内存碎片,但会增加页表长度和内存消耗,降低页面交换效率。相反,大型页面可以减少页表长度,提高交换速度,但会导致页内碎片增多。通常,页面大小设为2的幂,比如512B至8KB之间,以平衡各种因素。
分页地址结构包含页号和页内地址,通过特定机器的地址结构和页面大小计算得出。以系统页面大小1KB为例,逻辑地址A为2170B,可以通过整除和取余运算得到页号P和页内地址d。例如,P=2,d=122。
为了确保进程的正确运行,即使页面分布在内存的不同位置,系统需要维护一个页表,也称为页面映像表。每个进程都有一个页表,其中包含所有页面(编号从0到n)的映射,记录了每个页面在内存中的对应物理块号。通过查找页表,进程可以准确找到每个页面的物理块位置,实现页号到物理块号的地址映射。
(5)分页存储的管理方式扩展阅读
在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式。在分页存储管理方式中,如果不具备页面对换功能,则称为基本分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储器的功能,它要求把每个作业全部装入内存后方能运行。