分段式虚拟存储管理

合集下载

操作系统-存储管理(4)段页式虚拟存储

操作系统-存储管理(4)段页式虚拟存储

操作系统-存储管理(4)段页式虚拟存储物理地址:⼜称绝对地址,即程序执⾏所使⽤的地址空间(处理器执⾏指令时按照物理地址进⾏)逻辑地址:⼜称相对地址,即⽤户编程所使⽤的地址空间,从0开始编号,有两种形式:⼀维逻辑地址(地址)⼆维逻辑地址(段号:段内地址)主存储器空间的分配与去配:分配:进程装⼊主存时,存储管理软件进⾏具体的主存分配操作,并设置⼀个表格记录主存空间的分配情况去配:当某个进程撤离或主动归还主存资源时,存储管理软件要收回它所占⽤的全部或者部分存储空间,调整主存分配表信息主存储器空间的共享:多个进程共享主存储器资源:多道程序设计技术使若⼲个程序同时进⼊主存储器,各⾃占⽤⼀定数量的存储空间,共同使⽤⼀个主存储器多个进程共享主存储器的某些区域:若⼲个协作进程有共同的主存程序块或者主存数据块多道程序设计需要复⽤主存:按照分区复⽤:主存划分为多个固定/可变尺⼨的分区,⼀个程序/程序段占⽤⼀个分区按照页架复⽤:主存划分成多个固定⼤⼩的页架,⼀个程序/程序段占⽤多个页架装载程序/加载器(loader)把可执⾏程序装⼊内存的⽅式有:绝对装载可重定位装载动态运⾏时装载地址转换:⼜称重定位,即把可执⾏程序逻辑地址转换成绝对地址,可分为:静态地址重定位:由装载程序实现装载代码模块的加载和地址转换(⽆需硬件⽀持),把它装⼊分配给进程的内存指定区域,其中所有指令代码和数据的逻辑地址在执⾏前⼀次全部修改为内存物理地址。

早期单任务单⽤户OS使⽤。

动态地址重地位:由装载程序实现装载代码模块的加载,把它装⼊进程的内存在指定区域,但对链接程序处理过的应⽤程序逻辑地址不做修改,程序内存起始地址被置⼊重定位寄存器(基址寄存器)。

程序执⾏过程中每当CPU访问程序和数据引⽤内存地址时,由硬件地址转换机构截取此逻辑地址并加上重定位寄存器的值。

运⾏时链接地址重定位存储保护:为避免主存中的多个进程相互⼲扰,必须对主存中的程序和数据进⾏保护。

分页、分段与段页式存储

分页、分段与段页式存储

分页、分段与段页式存储⼀. 分页存储管理1.基本思想⽤户程序的地址空间被划分成若⼲固定⼤⼩的区域,称为“页”,相应地,内存空间分成若⼲个物理块,页和块的⼤⼩相等。

可将⽤户程序的任⼀页放在内存的任⼀块中,实现了离散分配。

1) 等分内存页式存储管理将内存空间划分成等长的若⼲物理块,成为物理页⾯也成为物理块,每个物理块的⼤⼩⼀般取2的整数幂。

内存的所有物理块从0开始编号,称作物理页号。

2) 逻辑地址系统将程序的逻辑空间按照同样⼤⼩也划分成若⼲页⾯,称为逻辑页⾯也称为页。

程序的各个逻辑页⾯从0开始依次编号,称作逻辑页号或相对页号。

每个页⾯内从0开始编址,称为页内地址。

程序中的逻辑地址由两部分组成:页号P和页内位移量W。

在执⾏⼀个程序之前,内存管理器需要的准备⼯作:1) 确定程序的页数2) 在主存中留出⾜够的空闲页⾯3) 将程序的所有页⾯载⼊主存⾥。

(静态的分页,页⾯⽆需连续)2. 分页存储管理的地址机构页号x位,每个作业最多2的x次⽅页,页内位移量的位数表⽰页的⼤⼩,若页内位移量y位,则2的y次⽅,即页的⼤⼩,页内地址从000000000000开始到2的y次⽅若给定⼀个逻辑地址为A,页⾯⼤⼩为L,则页号P=INT[A/L],页内地址W=A MOD L3.内存分配相邻的页⾯在内存中不⼀定相邻,即分配给程序的内存块之间不⼀定连续。

对程序地址空间的分页是系统⾃动进⾏的,即对⽤户是透明的。

由于页⾯尺⼨为2的整数次幂,故相对地址中的⾼位部分即为页号,低位部分为页内地址。

4. 页表分页系统中,允许将进程的每⼀页离散地存储在内存的任⼀物理块中,为了能在内存中找到每个页⾯对应的物理块,系统为每个进程建⽴⼀张页表,⽤于记录进程逻辑页⾯与内存物理页⾯之间的对应关系。

页表的作⽤是实现从页号到物理块号的地址映射,地址空间有多少页,该页表⾥就登记多少⾏,且按逻辑页的顺序排列,形如:5. 地址变换页式虚拟存储系统的逻辑地址是由页号和页内地址两部分组成,地址变换过程如图7-3所⽰。

2006级操作系统期末试卷B卷及答案

2006级操作系统期末试卷B卷及答案

漳州师范学院_计算机科学与工程_系_计算机科学与技术_专业_06_级《计算机操作系统》课程期末考试卷(B)(2007—2008学年度第一学期)班级_________学号____________姓名__________考试时间:一、单项选择题(每小题1分,共 20分)1.( c )不是操作系统设计目标。

A. 方便性B.有效性C.及时响应D.可扩充性和开放性2.下列进程状态的转换中,不正确的是(d )A.就绪到运行B.运行到就绪C.阻塞到就绪D.就绪到阻塞3.信号量S的初值为5,在S上执行了9次P操作,6次V操作后,S的值为( d)。

A.10B.8C.6D. 24.在下列那种情况下,可使进程从阻塞状态转换到就绪(b )。

A.时间片用完了B.等待的某事件已经发生C.分配到必要的资源并获得了处理机D.等待某事件5.作业调度的关键是( c)。

A.用户作业充分准备B.有较好的操作环境C. 选择恰当的作业调度算法D. 选择恰当的作业管理程序6.下面不是预防死锁方法的是(a )。

A.把资源的互斥访问改成可共享访问B.使进程运行前申请所需的资源和在等待时不占有资源C.占有一些资源的进程再申请新的资源而不能满足时,释放以前占有的资源D.对系统中的资源必须按照某种顺序申请。

7.把进程从就绪状态队列调出运行,是属于(a )。

A.低级调度B.中级调度C.高级调度D.作业调度8.下面那种调度算法可能引起长作业长期不能调度( b)。

A. FCFSB.SJFC.高响应比优先D.时间片轮转9.在程序的装入方式中,下面那种装入方式是在程序运行过程中把逻辑地址转换成物理地址(c)。

A. 绝对装入方式B.可重定位装入C.动态运行时装入方式D.装入时动态链接10.在请求分页存储管理系统中,凡未装入过的页都应从( B )调入主存。

A. 系统区B.文件区C. 对换区D.页面缓冲区11.在请求分页存储管理方式中,下面关于缺页中断描述不正确的是( d)A.只有进程所访问的页不在内存时才会产生缺页中断。

第4章存储器管理-选择题

第4章存储器管理-选择题

A.分页式存储管理 B.分段式存储管理 C.固定分区式存储管理 D.段页式存储管理
18.多进程在主存中彼此互不干扰的环境下运行,操作系统是通过()来实现的。
A.内存分配 B.内存保护 C.内存扩充 D.地址映射
19.分区管理中采用最佳适应分配算法时,把空闲区按()次序叠记在空闲区表中
A.长度递增 C.地址递增 B.长度递减
B.每个进程拥有一张页表,但只有执行进程的页表驻留在内存中
C.所有进程共享一张页表,以节约有限的内存空间,但页表必须驻留在内存中
D.所有进程共享一张页表,只有页表中当前使用的页面必须駐留在内存中,以最度地节省有服的内存空间
46.【2009 统考真题】一个分段存储管理系统中,地址长度为 32 位,其中段号占 8 位,则最大段长是()
34、在页式存管理中选择页面的大小,需要考下列()因素
Ⅰ.页面大的好处是页表比较少 Ⅱ.页面小的好处是可以减少由内碎片引起的内存浪费
Ⅲ.影响磁盘访问时间的主要因素通常不是顶面大小,所以使用时优先考虑较
A.Ⅰ和Ⅲ B.Ⅱ和Ⅲ
C.Ⅰ和Ⅱ
D.Ⅰ、Ⅱ和Ⅲ
35.某个操作系统对内存的管理采用页式存储管理方法,所划分的页面大小()。
54.【2016 统考真题】某进程的段表内容如下所示。
段号 段长
内存起始地址 权限
状态
0
100
6000
只读
在内存
1
200
-
读写
不在内存
2
300
4000
读写
在内存
访问段号为 2、段内地址为 400 的逻辑地址时,进行地址转换的结果是()
A.段缺失异常 B.得到内存地址 4400 C.越权异常 D.越界异常

简述实现虚拟存储器的基本原理

简述实现虚拟存储器的基本原理

简述实现虚拟存储器的基本原理虚拟存储器是计算机系统中一种技术,可以将物理内存和磁盘空间组合使用,使得计算机系统可以处理大型程序和数据集。

它的基本原理是将物理内存中未使用或频繁不用的部分换出到磁盘中,以增加可用物理内存空间。

当程序需要这些数据时,虚拟存储器会将其换入物理内存。

下面将介绍实现虚拟存储器的基本原理。

一、分段和分页实现虚拟存储器的首要任务是对物理内存和磁盘空间进行分割,以便于管理。

分段和分页是两种基本的内存管理技术。

分页将物理内存空间划分为固定大小的块,称为页面,而分段则将内存空间分为不同段,每个段具有不同的长度和属性。

虚拟存储器的实现通常采用分页技术,因为它可以更好地利用内存空间。

二、页面交换在虚拟存储器中,磁盘空间被称为页面文件,操作系统会将物理内存中的页面换出到页面文件中,以空出空间。

当程序需要访问这些页面时,操作系统会将页面从磁盘中换入到物理内存中。

这个过程被称为页面交换。

页面交换的首要目的是增加可用的物理内存空间。

每个程序使用的内存不能超过物理内存的大小,因此,操作系统必须决定哪些页面需要换出,以便于后续的访问。

三、页面置换算法在虚拟存储器中,操作系统必须确定哪些页面需要换出,并决定哪些页面需要换入,这个过程是页面置换算法。

页面置换算法的目的是将频繁不用或未使用的页面换出到磁盘中,以便于释放物理内存空间。

常见的页面置换算法有FIFO、LRU和钟表算法,它们各自有不同的实现细节和效率。

FIFO算法通过维护一个页面队列来确定需要换出的页面,LRU算法则使用页面访问时间来确定页面的访问频率。

钟表算法可以更好地处理循环访问问题。

四、页面保护机制虚拟存储器还需要有页面保护机制,以确保程序之间的内存不受到互相干扰。

页面保护机制需要暴露页面是否可以被访问的信息,以及访问权限是否正确。

当程序访问一个页面时,操作系统会检查该页面是否被保护,以及访问权限是否正确。

如果访问权限不正确,操作系统会产生一个异常,以防止程序继续访问这个页面。

基本分段存储管理方式

基本分段存储管理方式

基本分段存储管理方式基本分段存储管理方式是计算机操作系统用来管理内存的一种方法。

通常将内存分成固定大小的若干段,每个段都有一个起始地址和一个长度,随着程序的运行,可以动态地将不同大小的进程加载到这些段中,从而优化内存使用,提高系统性能。

基本分段存储管理方式的实现过程大致分为三个步骤:操作系统将物理内存划分成若干固定大小的段,这些段称为物理段或实际段。

接着,操作系统为每个进程分配虚拟地址空间,并用一组相同的大小将其划分为若干虚拟段。

每个虚拟段的起始地址和长度都与实际段相对应,但它们不一定在物理空间上是连续的。

操作系统将进程的虚拟地址映射到实际的物理地址,以便进程能够访问内存。

基本分段存储管理方式有以下几个优点:1. 灵活性:基本分段存储管理方式可以用相对较少的内存空间来持久存储多个进程,这增加了系统的灵活性,使得操作系统能够同时运行多个进程,而不会导致内存溢出。

2. 内存利用率:基本分段存储管理方式允许操作系统根据每个进程的需求动态分配内存,从而提高内存利用率。

如果一个进程只需要几百KB的内存,而系统中的物理内存大大小于这个需求,那么只需要分配给它一个相应的虚拟段就可以了,这样就避免了浪费内存的情况。

3. 保护:基本分段存储管理方式可以通过在每个虚拟段中设置访问权限进行内存保护。

只允许进程访问它被授权访问的虚拟地址范围,而禁止它访问其他虚拟地址空间,从而增强系统的安全性。

基本分段存储管理方式也有以下几个缺点:1. 内部碎片:由于每个分段的大小是固定的,使得当进程只需要使用部分段时,其中未使用的部分会变成内部碎片。

这会浪费一些内存,降低内存利用率。

2. 外部碎片:当系统中有大量的小进程时,这些小进程可能会被分配到不同的分段中。

当一些分段中的进程被撤销时,这些空闲的小空间难以合并在一起,从而导致外部碎片的产生。

3. 上下文切换:由于每个进程的虚拟空间不一定是连续的,因此在进程切换时需要进行频繁的虚拟地址到物理地址的映射操作,这会增加系统的开销。

第4章存储器管理-题库及参考答案

第4章存储器管理-选择题参考答案一、选择题1.【2011统考】在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是()A.编辑B.编译C.链接D.装载2.下面关于存储管理的叙述中,正确的是()A.存储保护的目的是限制内存的分配B.在内存为M、有N个用户的分时系统中,每个用户占M/N的内存空间C.在虚拟内存系统中,只要磁盘空间无限大,作业就能拥有任意大的编址空间D.实现虚拟内存管理必须有相应硬件的支持3.在使用交换技术时,若一个进程正在(),则不能交换出主存。

A.创建B.I/O操作C.处于临界段D.死锁4.在存储管理中,采用覆盖与交换技术的目的是()A.节省主存空间B.物理上扩充主存容量C.提高CPU效率D.实现主存共享5.【2009统考】分区分配内存管理方式的主要保护措施是()A.界地址保护B.程序代码保护C.数据保护D.保护6.【2010统考】某基于动态分区存储管理的计算机,其主存容量为.55MB(初始为空),采用最佳适配算法,分配和释放的顺序为;分配15MB,分配30MB,释放15MB,分配8MB,分配6MB,此时主存中最大空闲分区的大小是()A.7MBB.9MBC.10MBD.15MB7.段页式存储管理中,地址映射表是()A.每个进程一张段表,两张页表B.每个进程的每个段一张段表,一张页表C.每个进程一张段表,每个段一张页表D.每个进程一张页表,每个段一张段表8.内存保护需要由()完成,以保证进程空间不被非法访问A.操作系统B.硬件机构C.操作系统和硬件机构合作D.操作系统或者硬件机构独立完成9.存储管理方案中,()可采用覆盖技术A.单一连续存储管理B.可变分区存储管理C.段式存储管理D.段页式存储管理10.在可变分区分配方案中,某一进程完成后,系统回收其主存空间并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是()A.无上邻空闲区也无下邻空闲区B.有上邻空闲区但无下邻空闲区C.有下邻空闲区但无上邻空闲区D.有上邻空闲区也有下邻空闲区 11.设内存的分配情况如图所示。

14存储管理3分段段页式管理


段号 状态 页表大小 页表始址 0 1 1 1 2 1 3 0 4 1 段表
页表 主存
图4-22 利用段表和页表实现地址映射
2.地址变换过程


在段页式系统中,为了便于实现地址变换,须配 置一个段表寄存器,其中存放段表始址和段表长TL。 进行地址变换时,首先利用段号S,将它与段表长TL进 行比较。若S<TL,表示未越界,于是利用段表始址和 段号来求出该段所对应的段表项在段表中的位置,从 中得到该段的页表始址,并利用逻辑地址中的段内页 号P来获得对应页的页表项位置,从中读出该页所在的 物理块号b,再利用块号b和页内地址来构成物理地址。 图4-23示出了段页式系统中的地址变换机构。
2.页表




列出了作业的逻辑地址与其在主存中的 物理地址间的对应关系。 一个页表中包含若干个表目,表目的自 然序号对应于用户程序中的页号,表目 中的块号是该页对应的物理块号。 页表的每一个表目除了包含指向页框的 指针外,还包括一个存取控制字段。 表目也称为页描述子。
分页管理中页与页框的对应 关系示意图
段表寄存器 段表始址 + 段表 0 1 2 3 页表长度 + 0 1 2 3 b 块号 b 块内地址 页表 段表长度 > 段超长 段号S 页号P 页内地址
页表始址
图4-23
段页式系统中的地址变换机构


在段页式系统中,为了获得一条指令或数据,须 三次访问内存。第一次访问是访问内存中的段表,从 中取得页表始址;第二次访问是访问内存中的页表, 从中取出该页所在的物理块号,并将该块号与页内地 址一起形成指令或数据的物理地址;第三次访问才是 真正从第二次访问所得的地址中,取出指令或数据。 显然,这使访问内存的次数增加了近两倍。为了 提高执行速度,在地址变换机构中增设一个高速缓冲 寄存器。每次访问它时,都须同时利用段号和页号去 检索高速缓存,若找到匹配的表项,便可从中得到相 应页的物理块号,用来与页内地址一起形成物理地址; 若未找到匹配表项,则仍须再三次访问内存。

虚拟存储器

虚拟存储器源出于英国ATLAS计算机的一级存储器概念。这种系统的主存为16千字的磁芯存储器,但中央处 理器可用20位逻辑地址对主存寻址。到1970年,美国RCA公司研究成功虚拟存储器系统。IBM公司于1972年在 IBM370系统上全面采用了虚拟存储技术。虚拟存储器已成为计算机系统中非常重要的部分。
虚拟存储器
虚拟出一个容量极大的内存储器
01 作用
目录
02 设置
03 调整分页位置
04 使用技巧
05 相关
பைடு நூலகம்
06 替换方法
07 虚实地址
09 页式调度 011 段页式调度
目录
08 异构体系 010 段式调度 012 变换算法
虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能, 能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小 无关,而受限于计算机的地址结构和可用磁盘容量。根据所用的存储器映像算法,虚拟存储器管理方式主要有段 式、页式、和段页式三种。
虚拟存储器(2)单独建立一个空白分区,在该分区设置虚拟内存,其最小值设置为物理内存的1.5倍,最大值 设置为物理内存的3倍,该分区专门用来存储页面文件,不要再存放其它任何文件。
相关
虚拟存储器
virtual memory
为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极 大的内存储器,工作速度接近于主存,每位成本又与辅存相近,在整机形成多层次存储系统。
如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择 第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小 为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚 拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分布在一个连续的、 无碎片文件的空间上,可以更好的发挥作用。

8存储器管理之请求分段存储管理方式

第十八讲存储器管理之请求分段存储管理方式1引言概述:请求分段存储管理系统也与请求分页存储管理系统一样,为用户提供了一个比内存空间大得多的虚拟存储器。

虚拟存储器的实际容量由运算机的地址结构肯定。

思想:在请求分段存储管理系统中,作业运行之前,只要求将当前需要的若干个分段装入内存,即可启动作业运行。

在作业运行进程中,若是要访问的分段不在内存中,则通过调段功能将其调入,同时还能够通过置换功能将暂时不用的分段换出到外存,以便腾出内存空间。

2请求分段中的硬件支持请求分段需要的硬件支持有:段表机制、缺页中断机构、地址变换机构。

2.1段名段长段的基址存取方式访问字段A修改位M存在位P增补位外存始址说明:存取方式:存取属性(执行、只读、允许读/写)访问字段A:记录该段被访问的频繁程度修改位M:表示该段在进入内存后,是不是被修悔改。

存在位P:表示该段是不是在内存中。

增补位:表示在运行进程中,该段是不是做过动态增加。

外存地址:表示该段在外存中的起始地址。

2.2缺段中断机构当被访问的段不在内存中时,将产生一缺段中断信号。

其缺段中断的处置进程如图:2.3地址变换机构3 分段的共享和保护为了实现分段共享,设置一个数据结构——共享段表,和对共享段进行操作的进程。

3.1 共享段表说明:所有的共享段都在共享段表中对应一个表项。

其中:共享进程计数器count :记录有多少个进程需要共享该分段,设置一个整型变量count 。

存取控制字段:设定存取权限。

段号:对于一个共享段,不同的进程能够各用不同的段号去共享该段。

3.2 共享段的分派和回收 3.2.1 共享段的分派大体进程:在为共享段分派内存时,对第一个请求利用该共享段的进程,由系统为该共享段分派一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把count 置为1;以后,当又有其它进程需段名段长内存始址状态外存始址共享进程计数count 状态进程名进程号段号存取控制………………要挪用该共享段时,由于该共享段已被调入内存,故现在不必再为该段分派内存,而只需在挪用进程的段表中,增加一表项,填写该共享段的物理地址;在共享段的段表中,填上挪用进程的进程名、存取控制等,再执行count∶=count+1操作,以表明有两个进程共享该段。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构
段页式存储管理的数据结构包括作业表、 段表和页表三级结构。
作业表中登记了进入系统中的所有作业及 该作业段表的起始地址,
段表中至少包含这个段是否在内存,以及 该段页表的起始地址,
页表中包含了该页是否在主存(中断位)、 对应主存块号。
动态地址转换
从逻辑地址出发,先以段号s和页号p作索 引去查快表,如果找到,那么立即获得页p的 页框号p’,并与位移d一起拼装得到访问主 存的实地址,从而完成了地址转换。若查快 表失败,就要通过段表和页表来作地址转换 了,用段号s作索引,找到相应表目,由此得 到s段的页表的起始地址s’,再以p作索引得 到s段p页对应的表目,由此得到页框号p’;这 时一方面把s段p页和页框号p’置换进快表, 另一方面用p’和d生成主存的实地址,从而 完成地址转换。
长度0-15
l基地址共32位(分三处合并),生成内存段的首址,加上32
位偏移形成内存地址。对于286程序,基地址的24—31位不用, 恒为0;所以,286只能处理24位基址。
l长度位共20位,限定段描述符寻址的内存段的长度,注意段长 度的计量单位可以是字节或页。
lG位用于描述颗粒大小,即段长度的计量单位。G=0表示长度 以字节为单位;G=1表示长度以页为单位,在Pentium中页的长 度 是 固 定 的 , 为 4KB 。 于 是 段 的 长 度 分 别 为 220 字 节 或 2204KB=232字节。
l2级为共享库过程级。它可以被很多正在运行 的程序共享,用户程序可以调用这些过程,都 去它们的数据,但是不能修改它们。
l3级为用户程序级。它受到的保护最少。
调用不同级别的过程是允许的,但是要通 过一种被严格控制着的方法。为了执行越 级调用,CALL指令必须包含一个选择符 而不是地址,选择符指向一个称为调用门 (call gate)的描述符,由它给出被调用 过程的地址。因此要跳转到任何一个不同 级别的代码段的中间都是不可能的,必须 正式地指定入口点。
陷入和中断采用了一种和调用门类似的机 构,它们引用的也是描述符而不是地址, 这些描述符指向将被执行的特定过程。描 述符的类型域可以区分是代码段、数据段、 还是各种门。
4.7 实例研究:Linux存储管理
4.7.1 Linux的分页管理机制 在Linux中,每一个用户进程都可以访问4GB的
线性地址空间。其中从0从3GB的虚拟内存地 址是用户空间,用户进程都可以直接对其进 行访问。从3GB到4 GB的虚拟内存地址是内 核态空间,存放仅供内核态访问的代码和数 据,用户进程处于用户态时不能访问。当中 断或系统调用发生,用户进程进行模式切换 (处理器特权级别从3转为0)。
所有进程从3GB到4 GB的虚拟内存地址 都是一样的,又相同的页目录项和页表, 对应到同样的物理内存段。Linux以此方 式让内核态进程共享代码段和数据段。 另 外 , 虚 拟 内 存 地 址 从 3GB 到 3 GB+4MB 的 一 段 和 0 到 4MB 的 一 段 是 对 应的。
Linux请求页式技术管理虚拟 内存
段表控制寄存器
段表始址 段表长度
段超长?
段号s 页号p 位移d
段表
页表
页框号 位移
4.6实例研究:Intel Pentium
Intel的Pentium和Pentium Pro既 可以作为分段系统,又可以作 为分页系统,也可以作为一个 段页式存储管理系统来运行
4.6.1Pentium虚拟存储器的核 心数据结构——描述符表
局部描述符表LDT(local descriptor table) 和 全 局 描 述 符 表 GDT(global descriptor table)。
每个进程都有一个自己的LDT,它描述 局部于每个进程的段,包括代码段、数 据段、堆栈段的基地、大小和有关控制 信息等;
系统的所有进程共享一个GDT, 它描述 系统段,包括操作系统自己的基地、大 小和有关控制信息等。
当设置G控制位1,系统运行于段页模式,此 时每个进程可有8192个段,每个段220个页, 每个页4KB,也就是说段可有232字节大小。
当设置G控制位1,把系统六个段寄存器设 置为同一个段选择符,段描述符基地址设 置为”0”,段大小设置为最大;这时系统运 行于分页模式,单段、分页,32位地址空 间模式运行。
页目录项和页表项的结构
lD位:修改位,当该页程序修改后,应先纪 录为淘汰做准备。
lA位:(读/写)引用位,凡对程序读写均置 为已访问(accessed),淘汰时先找A=0的页面 (Windows用LRU法)。
lP位:存在位,页面在内存时,P=1。
lU/S位:用户/管理员(User/Supervisor)位, 若U/S=0,该页为一个管理员页面(OS页面), 用户不能访问。
2、实地址划分成位置固定、大小相等的页框(块) , 这是段页式存储管理的页式特征
3、将每一段的线性地址空间划分成与页框大小相 等的页面,于是形成了段页式存储管理的特征
段 号 (s) 段 内 页 号 (p) 4、逻辑地址形式为:
页 内 位 移 (d)
段号(s) 段内页号 (p) 页内位移(d)
对于用户来说,段式虚拟地址应该由段号s和段内 位移d’组成,操作系统内部再自动把d’解释成两 部分:段内页号p和页内位移d,也就是说,d’=p× 块长+d。
4.5.3 分段式虚拟存储系统
分段式虚拟存储系统把作业的所有分段 的副本都存放在辅助存储器中,当作业 被调度投入运行时,首先把当前需要的 一段或几段装入主存,在执行过程中访 问到不在主存的段时再把它们装入。
段式虚拟存储管理的段表扩展
段号
特征
存取权限
扩充位
标志
主存始址
限长
辅存始址
l 特征位: 00(不在内存);01(在内存); 11(共享段);
lR/W位:读/写(Read/Write)位,R/W=1时 允许页修改;R/W=0时,不允许页修改;通常 程序区的R/W=0。
4.6.6 Pentium的保护机制
l0级为操作系统内核级。处理I/O、存储管理、 和其他关键操作。该级可使用特权指令,可访问 所有段和所有页。
l1级为系统调用处理程序级。用户程序可以通 过调用这里的过程执行系统调用,但是只有一 些特定的和受保护的过程可以被调用。
页表分为三层: 页目录PGD、中间页目录PMD和页表PTE。
在 Pentium 计 算 机 上 它 被 简 化 成 两 层 , PGD和PMD合二为一。
当设置G控制位0, 系统运行于分段模式,每 个进程可有213=8K(8192)个段,每个段可有 220字节大小,这种模式是为了与286兼容。
4.6.4地址转换
Pentium采用分段模式时,每一个虚地址 包括一个16位段选择符和一个32位偏移 量,不分段时,用户的虚拟内存是232=4GB;
而分段时,虚拟地址空间为2(32+14)=64TB; 物理地址空间使用32个地址位,最大有 4GB。
地址转换过程如下:
l
首先根据段选择符第二位T选择是查找
LDT或GDT;
l
以段选择符索引域的值为索引,把它拷
贝进一个内部寄存器中并且它的低三位被清零,
然后LDT或GDT表的起始地址被加到它上面,
找到所要访问的段描述符。
l 检查段描述符中的P控制位,如果段不在主 存(选择符为0),就会发生一次陷入(中断)
空间的任何位置。至此段转换己经完成。
选择符
描述符 基地址 长度
其他的域
偏移量
线性地址
是否要分页依据G控制位,若为0,说明目前运行 于分段模式,那么段转换得到的线性地址就 是物理地址并被送往存储器用于读写;因此在 分页被禁止时,就得到了一个纯的分段解决
方案,各个段的基址在它的描述符中。注意,
段允许互相覆盖,这是因为用硬件来检查所
4.6.5 二级页表和页式地址转换
每个运行进程都有一个由1024个32位表项组成 的页目录(page directory),它的地址由一个 全局寄存器指出。目录中的每一个表项都指向 一个也包含1024个32位表项的页表,页表项指 向页框(块),这个方案如图4-35和图4-36所 示。线性地址被分成3个域:Dir、Page和Offset。 Dir域被作为索引在页目录找到指向正确页表 的指针;随后,Page域被作为索引在页表找到 页框的物理地址;最后,Offset被加到页框的 地址上得到需要的字节或字的物理地址。
允许分页时线性地址的组成
10
线性地址
Dir
10 Page
12 Offset
线性地址转换为物理地址的 过程
1024 表项
页目录 Dir
页表 Page
页架 Offset
页目录项和页表项的结构是类 似的,均为32位,其中20位是 页表位置/页架号,其余的未包
括了由硬件设置的供操作系统
使用的引用位、修改位、保护 位、和其他一些有用的位。
4.6.2段选择符和段描述符
选择符是一个16位数,如图4-32所示。 选择符中的一位指出这个段是局部的还 是全局的,其他13位是LDT和GDT的入 口号。
13 索引
12
0=GDT / 1=LDT
特权级(0-3)
基址24-31
GD0
长度16-19 P DPL S
type A
基址16-23
基址0-15
有的段都互不重叠代价太大,完全可以通过 操作系统的软件机制加以解决。
若G控制位为1,这时以分页模式运行,那么 段转换得到的线性地址将被解释成分页模式 的虚地址,需要通过页表找到页框后才映射成 物理地址。这里真正复杂的是在32位虚地址 和4K页面的情况下,一个段可能包括多达一 百万个页。因此Pentium使用了一种两级页表 以在段较小的情况下减少页表的尺寸。
处理;如果段已经被换出,就会发生一次陷入 (缺段中断)处理;如果段在主存,则随后检查
相关文档
最新文档