分段式虚拟存储管理

合集下载

操作系统-存储管理(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章存储器管理-题库及参考答案

第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分段段页式管理

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存储器管理之请求分段存储管理方式

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操作,以表明有两个进程共享该段。

计算机学科专业基础综合模拟25

计算机学科专业基础综合模拟25

[模拟] 计算机学科专业基础综合模拟25单项选择题第1题:对于一个满二叉树,共有n个结点和m个叶子结点,深度为h,则( )。

A.n=h+mB.h+m=2nC.m=h-1D.n=2<sub>h</sub>-1参考答案:D第2题:Cache常用的写回策略有写直达法和写回法。

当采用写回法时,一个Cahe数据块在( )时写回主存。

A.任何一次写操作数时B.第一次写操作数时C.数据块被换出时D.以上都有可能参考答案:C写直达法指写操作数时既写入Cache又写入主存;写回法指写操作数时写入Cache而不写入主存,仅当数据被替换出Cache时才写回主存。

第3题:对任意7个关键字进行排序,至少要进行( )次关键字之间的两两比较。

A.13B.14C.15D.16参考答案:C任何一个借助于“比较”进行排序的算法,在最坏情况下所需进行的比较次数至少为:ceil(log(n!))。

第4题:下列关于PCI总线的说法中错误的是( )。

A.PCI总线采用集中式总线判优控制方式B.PCI总线是一种16位的并行总线C.PCI总线具有自动配置能力D.PCI总线在PC机中得到了广泛的使用参考答案:BPCI总线是一种32位或64位的并行总线。

第5题:半导体随机存储器的访问速度与( )有关。

A.存储芯片的存取周期B.存储芯片的容量大小C.所访问存储单元的位置D.以上都包括参考答案:A半导体随机存储器的访问速度与存储芯片的容量和存储单元的位置无关,只取决于存储芯片的存取周期,选A。

第6题:在一个HDLC帧的数据中,如果出现了0001 1111 1011这样的流,请问发送到信道上它将会变成( )。

A.0001 1111 1011 0B.0001 1111 1101 1C.0001 1111 0101 1D.0000 1111 1101 1参考答案:CHDLC采用了比特填充法来实现链路层的透明传输,如果在数据流中发现了连续的5个‘1’就在其后面加一个‘0’,所以C是正确答案。

第5章 存储管理3-分段+段页+局部原理

第5章 存储管理3-分段+段页+局部原理
4.段的共享与保护 (1)段的共享 在多窗口系统中,被共享的程序和数据的个数和体积 往往超过用户程序长度的许多倍,若每个用户进程或 作业都在内存保留一个副本,就会极大地浪费内存空 间,故内存只保留一个副本供多个用户使用,称为共 享。
假定一个多用户系统可容纳40个用户,某应用 程序包括160KB的TextEditor代码区和40KB 的数据区(共200K),则需8M内存支持;若代 码是可重入的(Reentrant),则代码 区 可 共 享 , 因 而 其 所 需 内 存 空 间 为 1760KB (=160+40x40)。
程序链接方式: 链接程序的功能是将经过编译或汇编后所得到的一组 目标模块以及它们所需要的库函数,装配成一个完整 的装入模块。实现连接的方法有三种: 1.静态链接方式(Static Linking) 2.装入时动态链接(Load time Dynamic Linking) 3.运行时动态链接(Run-time Dynamic Linking)
在进行地址转换时,系统将逻辑地址中的段号与段表长度进行 比较,若段号超过段表长度,表示超界,产生越界中断;若未 越界,根据段表起始地址和段号计算出该段对应段表项的位置 ,读出该段在内存的起始地址,然后再检查段内地址是否超过 该段的段长,若超过则同样发出越界中断信号;若未越界,则 将该段在内存的起始地址与段内位移相加,从而得到要访问的 物理地址。
段号 0 1 2 3 4
段的长度 660 14 100 580 96
内存起始地址 219 3330 90 1237 1952
5.5.2 段式管理的实现原理
4.段的共享与保护 段式存在管理可以方便地实现内存信息共享和进行有 效的内存保护,因为段是按逻辑意义划分,且可按段 名访问。

OS第4章 习题-答案

OS第4章 习题-答案

第四章存储器管理一、判断题1.在固定分区分配中,每个分区的大小是()。

A.相同B.随作业长度变化C.可以不同但预先固定D.可以不同但根据作业长度固定2.在可变分区分配中,首次适应算法的空闲区是()。

A.按地址递增顺序连在一起B.始端指针表指向最大空闲区C.按大小递增顺序连在一起D.寻找从最大空闲区开始3.在可变分区分配中,最佳适应算法的空白区是()。

A.按大小递减顺序连在一起B.按大小递增顺序连在一起C.按地址由小到大排列D.按地址由大到小排列4.设内存的分配情况如下图所示。

若要申请一块40K的内存空间,采用最佳适应算法,则所申请到的分区首址为()。

A.100K B.190K C.330K D.410K5. 有作业序列:作业A要求18K;作业B要求25K,作业C要求30K。

系统中空闲区按三种算法组成的空闲区队列如下图所示。

其中,()对该作业序列合适。

A.首次适应法 B. 最佳适应法 C. 最坏适应法 D. 无算法6.在可变式分区存储管理中的拼接技术可以()。

A.集中空闲区B.增加主存容量C.缩短访问周期D.加速地址转换7.支持程序浮动的地址转换机制是( ) 。

A、动态重定位B、静态重定位C、页式地址转换D、段式地址转换8. 采用页式存储管理的系统中,若地址用32位表示,其中20位表示页号,,则每页的大小为()。

A. 212B. 220C. 224D. 2329. 在一个页式存储管理系统中, 页表内容如下所示:若页的大小为4K, 则地址转换机构将逻辑地址0转换成的物理地址为()。

A. 8192B. 4096C. 2048D. 102410. 无快表的基本页式存储管理中,每次从主存中取指令或取操作数,至少要()次访问主存。

A 0次B 1次C 2次D 3次11. 某段表的内容表示如下:逻辑地址(2,154)对应的物理地址为()。

A. 120K+2B. 480K+154C. 30K+154D. 发生越界中断12.在段页式存储管理系统中,内存等分成(),程序按逻辑模块划分成若干()。

段式存储管理

段式存储管理

. . .
12345 数组[A]
子程序段[X]
0 F L 0
K
. . . CALL [A] 116 . . .
主程序段[M]
CALL [Y] [F]
. . .
S
子程序段[Y]
工作区段[B]
分段式存储管理的基本思想概念

分段存储管理中的逻辑地址空间


用户程序的划分:按程序自身的逻辑关系划分为若 干个程序段,例如主程序段(MAIN)、子程序段、 数据段、堆栈段等,每个程序段都有一个段名,且 有一个段号。段号从0开始,每一段也从0开始编址, 段内地址是连续的 逻辑地址
段式存储管理存储保护与共享

在段式存储管理中很容易实现段的共享,只需在作 业的段表中都增加一个表项,让该段的基址指向共 享段在内存中的起始地址即可。
进程A的逻辑地址空间 文本 段 0 编辑程序 段1 段2 程序段 数据段 进程A的段表 段号 段长 基址 43062 内 存 操作系统 进程A的数据段 文本编辑程序
段页式存储管理中的逻辑地址
0 第0页 4KB 第1页 段MAIN 8KB 第2页 12KB 14KB 16KB 第3页 段号s 段内页号p 段内位移d 页内位移w 第2页 段SUBP 第1页 第0页 段DATA 第1页 第0页
用户逻辑地址空间中的地址结构将由上图所示的三个部分组成: 段号s,段内页号p,页内位移w。 (其中,段内页号p和页内位移w是由段内位移d分解而成。) 如: (0,1,100)
段表
段号 0 1 2 段首址 100K 50K 120K 段长度 10K 15K 25K
段表记录了段号,段的首(地)址和长度之 间的关系 每一个程序设置一个段表,放在内存

虚拟存储器

虚拟存储器
主存页数增加,LRU命中率提高,至少不会 下降,而FIFO不一定。(P115,图4.17)
举例
一个循环程序,依次使用P1,P2,P3, P4四个页面,分配给这个程序的主存页 面数为3个。FIFO、LRU和OPT三种页面 替换算法对主存页面的调度情况如下图 所示。在FIFO和LRU算法中,总是发生 下次就要使用的页面本次被替换出去的 情况,这就是“颠簸”现象。
页表法 地址
相联目录表法 内容
2uNv *(nv1) 2nv*(u(Nv)nv)


2uNv nv 1
2 nv nv Nv 1
替换算法
页面替换发生时间: 当发生页面失效时,要从磁盘中调入一页到主 存。如果主存所有页面都已经被占用,必须从 主存储器中淘汰掉一个不常使用的页面,以便 腾出主存空间来存放新调入的页面。
需要时调入主存。
段表结构: 段名、地址、装入位、段长、访问方式。 段表基址寄存器:指明段表的启始地址。
能使大程序分模块编制,并行编程,缩短时间 便于几道程序共用已在内存内的程序和数据; 各段是按其逻辑特点组合的,容易以段为单位
实现存储保护。人工建立。
A道程序的 程序空间
1k
0段
2k
1段
3k
由用户号找到基址寄存器
从基址寄存器中读出段表的起始地址
把起始地址与多用户虚地址中段号相加得到段表地址
把段表中给出的起始地址与段内偏移D相加就能得到 主存实地址
多用户 虚地址
用户号U
段号S
段内偏移D
主存实地址
As
0
0
1
6 As
2
1
3
n-1
4
段表 段表 长度 基址
段名

内存采用段式存储管理有许多优点

内存采用段式存储管理有许多优点

● 内存采用段式存储管理有许多优点,但(1)不是其优点。

(1)A.分段是信息逻辑单位,用户不可见 B.各段程序的修改互不影响C.地址变换速度快、内存碎片少 D.便于多道程序共享主存的某些段试题解析:虚拟存储器可以分为两类:页式和段式。

页式虚拟存储器把空间划分为大小相同的块,称为页面。

而段式虚拟存储器则把空间划分为可变长的块,称为段。

页面是对空间的机械划分,而段则往往是按程序的逻辑意义进行划分。

页式存储管理的优点是页表对程序员来说是透明的,地址变换快,调入操作简单;缺点是各页不是程序的独立模块,不便于实现程序和数据的保护。

段式存储管理的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂,地址变换速度慢于页式存储管理。

答案:C● 现有四级指令流水线,分别完成取指、取数、运算、传送结果四步操作。

若完成上述操作的时间依次为9ns、10ns、6ns、8ns。

则流水线的操作周期应设计为(2)ns。

(2)A.6 B.8 C.9 D.10试题解析:取最大的那个微指令时间作为流水线操作周期。

答案:D● 内存按字节编址,地址从90000H到CFFFFH,若用存储容量为16K×8bit器芯片构成该内存,至少需要的存储(3)片。

(3)A.2 B.4 C.8 D.16试题解析:(CFFFFH-90000H+1)/ 16k = 40000H / 4000H = 10H = 16。

答案:D●(4)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。

(4)A.结构化开发方法 B.Jackson系统开发方法C.Booch方法 D.UML(统一建模语言)试题解析:结构化开发方法是一种面向数据流的开发方法。

Jackson开发方法是一种面向数据结构的开发方法。

Booch和UML方法是面向对象的开发方法。

答案:A● 采用UML进行软件设计时,可用(5)关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体一部分关系。

存储管理实验报告

存储管理实验报告

一、实验目的1. 理解操作系统存储管理的概念和作用。

2. 掌握存储管理的基本算法和策略。

3. 通过实验,加深对存储管理原理的理解,提高实际操作能力。

二、实验环境1. 操作系统:Windows 102. 软件环境:虚拟机软件VMware Workstation 153. 实验平台:Linux系统三、实验内容1. 存储管理概述2. 页式存储管理3. 段式存储管理4. 分段分页存储管理5. 存储管理算法四、实验步骤1. 页式存储管理实验(1)设置虚拟内存:在Linux系统中,使用`cat /proc/meminfo`命令查看内存信息,然后使用`vmstat`命令查看虚拟内存的使用情况。

(2)编写实验程序:使用C语言编写一个简单的程序,模拟页式存储管理过程。

(3)运行实验程序:编译并运行实验程序,观察程序运行过程中页面的分配、置换和回收过程。

2. 段式存储管理实验(1)设置虚拟内存:同页式存储管理实验。

(2)编写实验程序:使用C语言编写一个简单的程序,模拟段式存储管理过程。

(3)运行实验程序:编译并运行实验程序,观察程序运行过程中段页的分配、置换和回收过程。

3. 分段分页存储管理实验(1)设置虚拟内存:同页式存储管理实验。

(2)编写实验程序:使用C语言编写一个简单的程序,模拟分段分页存储管理过程。

(3)运行实验程序:编译并运行实验程序,观察程序运行过程中段页的分配、置换和回收过程。

4. 存储管理算法实验(1)编写实验程序:使用C语言编写一个简单的程序,模拟不同的存储管理算法(如FIFO、LRU、LFU等)。

(2)运行实验程序:编译并运行实验程序,观察不同算法在页面分配、置换和回收过程中的表现。

五、实验结果与分析1. 页式存储管理实验实验结果表明,页式存储管理可以将大程序离散地存储在内存中,提高内存利用率。

但页式存储管理也存在页面碎片问题,导致内存碎片化。

2. 段式存储管理实验实验结果表明,段式存储管理可以将程序按照逻辑结构划分为多个段,提高了内存的利用率。

分段式存储管理的实现原理

分段式存储管理的实现原理

分段式存储管理的实现原理分段式存储管理是一种计算机系统中的存储管理技术,它将一个程序分成若干个逻辑段,每个逻辑段可以有不同的长度,并分别放置在物理内存中的不同位置。

在分段式存储管理中,每个段都有一个段表,用于记录该段在内存中的起始地址和长度等信息。

当程序需要访问某个段时,通过段表可以找到该段在内存中的位置,从而完成对该段的访问。

分段式存储管理的实现原理如下:1. 段的划分:在程序运行之前,系统将程序根据逻辑结构划分为若干个段。

每个段代表程序中的一个逻辑单元,例如主程序段、子程序段、数据段等。

划分段时需要考虑到段的大小、访问频率和共享性等因素,尽可能使得段的大小合适,以提高存储利用率和访问效率。

2. 段表的建立:对于每个段,系统需要建立一个对应的段表,用于记录该段在内存中的起始地址和长度等信息。

段表一般由操作系统维护,每个段表项对应一个段,并包含段的起始地址、长度、读写权限等信息。

3. 逻辑地址到物理地址的转换:当程序需要访问某个段时,它会给出段的逻辑地址。

操作系统根据该逻辑地址查找对应的段表项,从而得到该段在内存中的起始地址和长度。

然后,系统将逻辑地址转换为物理地址,即加上该段的起始地址,得到真正的物理地址。

程序通过该物理地址可以访问内存中的数据。

4. 段的加载和换出:在程序运行过程中,由于内存空间有限,不可能将所有段都加载到内存中。

因此,系统需要根据需要,将一部分段加载到内存中,而将另一部分段换出到外存中。

当程序要访问一个还未加载到内存的段时,系统会触发缺段中断,将该段从外存加载到内存中,然后再次执行访问操作。

5. 段的保护:在分段式存储管理中,每个段都可以独立设置读写权限,以实现对程序的保护。

例如,某个段只能读取,不能写入,或者某个段只能由特定的进程访问,其他进程无法访问。

这样可以有效地防止程序非法访问其他段的数据,提高系统的安全性。

6. 段的共享:在某些情况下,多个程序可能需要访问同一个段,为了提高存储利用率,系统可以将该段设为共享段。

  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使用了一种两级页表 以在段较小的情况下减少页表的尺寸。
处理;如果段已经被换出,就会发生一次陷入 (缺段中断)处理;如果段在主存,则随后检查
相关文档
最新文档