一、分页式存储管理(属于一维地址)
1、分页存储管理系统中,逻辑地址由页号和页内位移组成。
若A为逻辑地址,L为页面大小,则:页号:P=int(A/L);页内位移:W=A%L
页号P | 页内位移W |
2、页面:分页存储管理是将作业的逻辑地址划分成一系列同等大小的部分,称为页。
多级页表:即对页表进行再分页。
3、页表:
(1)定义:为了在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页面映象表,简称页表。
(2)作用:记录页面在内存中对应物理块的数据结构。
(3) 页表通常存放在内存中,为了实现方便,系统中设置了一个页表寄存器存放页表在内存的起始地址和页表的长度。 进程未执行时,页表的起始地址和长度存放在PCB中。当进程执行时,才将页表始址和长度存入页表寄存器中。
4、基本地址变换机构
(1) 地址变换机构的任务是实现逻辑地址到物理地址的变换,即将逻辑地址中的页号转换为内存中的物理块号。
(2)地址变换过程:
1.分页地址变换机构自动地将逻辑地址分为页号和页内位移。
2.将页号与页表长度进行比较,如果页号超过了页表长度,则表示本次所访问的地址已超越进程的地址空间,系统产生地址越界中断。
3.若未出现越界,则由页表始址和页号计算出相应页表项的位置,从中得到该页的物理块号。
4.将物理块号与逻辑地址中的页内位移拼接在一起,就形成了访问主存的物理地址。
(3)具有快表的地址变换机构:
因页表放在主存中,故存取数据时CPU至少要访问两次主存,降低了内存访问速度。
为了提高地址变换速度,可在地址变换机构中增设一个具有并行查找能力的高速缓冲存储器(又称联想存储器或快表),用以存放当前访问的那些页表项。
TLB(translation look-aside buffer):转换后备缓冲区,即快表。
5、分页存储管理的特点:
(1)优点:它打破了一个作业必须占据连续存储空间的限制,作业在不连续的存储区里,也能够得到正确的运行。主要解决的是程序和数据无需连续存储空间的问题。
(2)缺点:平均每一个作业都要浪费半页大小的存储块。
要求整个作业都要装入内存运行,即并没有解决大作业小内存问题。另外,z这种管理方法纯粹从存储的角度去考虑,没有考虑到程序本身的逻辑关系。
(3)用户作业的相对地址空间按照块的尺寸划分成页。这种划分是在系统内部进行的。
二、分段式存储管理(属于二维地址)
1、含义:所谓“分段式”存储管理,即要求用户将自己的作业程序以多个相互独立的称为“段”的地址空间提交给系统,每个段都是一个从“0”开始的一维地址空间,长度不一。操作系统按照段长为作业分配内存空间。
2、段表:
(1)包含段号,段长,段在内存的起始地址,其他信息。
(2)段表一般存放在内存。(段表也可以放在一组寄存器中,有利于提高地址转换速度)
(3)允许一个作业最长有64K个段,每个段的最大长度为64KB。
段号 | 段内地址(段内位移) |
3、地址变换机构
(1)段表地址变换过程:
1.进行地扯变换时,系统将逻辑地址中的段号S与段表长度进行比较,若段号超过了段表长度则产生越界中断。否则根据段表始址和段号计算出该段对应段表项的位置,从中读出该段在内存的起始地址。
2.然后再检查段内地址是否超过该段的段长,若超过则同样发出越界中断信号。
3.若未越界,则将该段的起始地址与段内位移相加,从而得到了要访问的物理地址。
(2)段表至少也要访问两次内存,降低了计算机的速率。因此也可以通过增设一个联想存储器用于保存最近常用的段表项。
4、分段分配方式实现段长度的扩充、段的动态链接以及段的保护和共享都比页式存储容易实现。
三、分页式存储管理和分段式存储管理的区别:
1、页是信息的物理单位,分页的主要目的是减少内存的外碎片,提高内存的利用率。分页是由于系统管理的需求,而不是用户的需求。
段是信息的逻辑单位,分段的目的是为了程序的完整性,是为了满足用户的需求。
2、页的大小是固定的,取决于系统,由系统自动把地址分成页号和块号。
段的长度是不固定的,并且可以不断变化,取决于用户。
3、分页的地址空间是一维的,分段的地址空间是二维的。(本质上的区别)
四、段页式存储管理
1、在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,然后再将每一段分成若干个大小固定的页面。 将主存空间分成若干个和页面大小相同的物理块,对主存的分配以物理块为单位。
2、逻辑地址结构:
段号S | 段内页号P | 页内位移D |
3、段页式存储管理地址变换过程
(1)在进行地址变换时,首先将段号S与段表寄存器中的段表长度进行比较,若小于段表长度则表示未越界。
(2)利用段表始址和段号求出该段对应段表项的位置,从中得到该段的页表始址。
(3)再利用逻辑地址中的段内页号P获得对应页表项的位置,从中读出该页所在的物理块号,再与页内地址拼接成物理地址。