操作系统第五章存储器

本文详细介绍了操作系统的存储器管理,包括存储器层次结构、程序的装入与链接、内存保护、各种装入方式、内存管理方式如连续分配、分页、分段等,并涉及动态重定位、快表、地址变换机构等概念。此外,还讨论了动态分区分配算法,如首次适应、最佳适应等,并探讨了分页存储管理方式及其地址结构。
分页存储管理

知识

1存储器的层次结构(目的:方便用户和提高主存利用率):寄存器、高速缓存、内存、磁盘缓存(内存部分空间)、磁盘

2程序的装入与链接:编译,链接(确定相对地址),装入(可以确定物理地址

3在多道程序环境下,要使程序运行必须为之先创建进程,创建进程的第一件事是将程序和数据装入内存

4逻辑地址/相对地址:CPU生成的地址,所有程序的逻辑地址都是从0开始。;物理地址/绝对地址:内存单元看到的地址

5内存保护(硬件):界限寄存器指定了(合法范围的大小) ;基地址<=物理地址<(基地址+界限地址)

6程序的装入:绝对装入方式(适用于单道程序),可重定位装入方式(静态重定位,多道程序,装入时重定位所有的逻辑地址都转换为物理地址,以后不再改变,物理地址=逻辑地址+内存起始位置。),动态运行时装入方式(动态重定位,多道程序,执行时才进行重定位

7重定位:把逻辑地址转换为物理地址

8程序的链接(这些模块就会是一块连续的地址的完整模块):静态链接(运行前就链接完成;修改相对地址,变换外部调用符号),装入时动态链接(装入内存时,采用边装入边链接;便于修改和更新),运行时动态链接(执行时才进行调用链接装入到内存,)

9对换与覆盖:###

10存储管理方式:连续分配存储管理方式,分页存储管理方式,分段存储管理方式,段页存储管理方式

11连续分配存储管理方式:单一连续分配(单道程序),固定分区分配(多道程序,把用户区划分为若干个大小一样的区域,分区的起始地址、大小、状态),动态分区分配(空闲分区表,空闲分区链),动态重定位分区分配()

12动态分区分配算法:使用分配算法选择一个合适的分区分配给作业;顺序分配算法,索引分配算法

13顺序分配算法:首次适应算法(FF,首址递增排序,从空闲分区的链首开始找按照作业的大小把该分区分割,留下小部分空间仍在空闲链),循环首次适应算法(NF,不再从链首开始找,而是从上一次查找过的位置开始),最佳适应算法(BF,空闲区按大小递增排序,),最坏适应算法(WF,空闲区按大小递减排序

14索引分配算法(使用于大系统):快速适应算法(QF),伙伴系统,哈希算法

15动态重定位分区分配:紧凑(小碎片的连接效果),动态重定位(相对地址变换为物理地址),动态重定位分区分配算法(增加一个硬件地址变换结构,名字叫重定位寄存器,把新的起始地址替换原来旧的起始地址)

分页存储管理方式(逻辑空间分成页,内存分成页框):页面--》将程序分割成若干个大小相同的区域(常见的有1KB、2KB…,页面大小(L),

16分页的地址结构:长度32位,前20位是页号(地址空间为1M页),后12位是页内地址(每页的大小为4KB,一个页里面自己的地址),两者结合就是页的地址。

17页号P和页内地址d的计算:P=INT【A/L】,d=[A] MOD L (A为逻辑空间中的地址,L为页面大小)

18页表(内存):各个页离散地存储在内存地任一物理块

19地址变换机构 (将逻辑地址变换为物理地址):页内地址与块内地址相同,只需要实现将逻辑地址中的页号变换为内存中的物理地址块号

20在这个机制中,每一次的数据/指令存入需要两次内存访问,一次是访问页表,一次访问数据/指令

有效存取时间的计算:

EAT=t+t=2t

3个因素决定:内存访问时间t(地址变换后到内存取到数据的这段时间)、快表的命中率a、快表的访问时间m

有效访问时间=a * m + (1-a) * (t+m) + t=a*(m+t)+(1-a)*(m+t+t)=命中*(块表+内存)+未命中*(快表+内存+内存)

做题常用式子:

逻辑地址=页号*页面大小+页内地址

页号=逻辑地址/页面大小

页内地址=逻辑地址%页面大小

物理地址=块号*块大小+页内地址

段:

段号,段长,基址,状态位(0为辅存,1为主存),在辅存为缺页中断

段内地址和段长比较----》越界中断

物理地址=段内地址+基址

21两级页表:在对页表划分;外层页号(10位),外层页内地址(10位=页内地址/页表项,页表项占4B),页内地址(12位)

,逻辑空间地址256K,一级页表项个数为 64 ,256K / 64 = 4K 所以说,二级页表页表项的个数为 4 K , 又因为页面大小是 8K , 8K / 4K = 2 ,所以 2 就是二级页表中单个页表项的大小。

二级页表页表项的个数=逻辑空间地址/一级页表项个数

二级页表中单个页表项=二级页表页表项的个数/页表大小

22分段存储管理方式:将程序分割成若干个大小不同的区域,叫作“段”,段是连续的空间,每一个段可以离散存放在内存中任何位置。,每个段长度并不相同

23段的逻辑地址:段号+段内地址,段号号16位、段内地址16位。

24段页式存储管理方式:分段和分页相结合,把用户程序分成若干段,再把每段分成若干页

25段页的逻辑地址:段号S,段内页号P,页内地址W

(1)逻辑地址3064H=0011 0000 0110 0100B,则p=0011B=3D,页内地址w=0000 0110 0100B=100D,查页表得知3号页存在7号块,因此物理地址为:

0111 0000 0110 0100B = 7064H=28772D 或者

7×4KB+100=28KB+100=28772

(2)在请求分页存储管理中,系统是通过页表进行地址转换。先将逻辑地址分解成页号P和页内地址W两部分,然后查页表,可得页号P对应的物理块号为B,拼接B和W,从而得到物理地址。也可用公式换出对应的物理地址为:物理地址=块号×页面大小+页内地址

页号合法,但该页未装入内存,故产生缺页中断。(2分)

非法页号,故产生越界中断

例题

一. 单选题(共10题,50分)

1. (单选题)(考研真题,单项选择题)在可变分区分配方案中,当某一作业完成、系统回收其主存空间时,回收分区可能存在与相邻空闲区合并的情况,为此须修改空闲分区表。其中,造成空闲分区数减1的情况是( )。

A. 既无上邻空闲分区,也无下邻空闲分区

B. 虽无上邻空闲分区,但有下邻空闲分区

C. 虽有上邻空闲分区,但无下邻空闲分区

D. 既有上邻空闲分区,也有下邻空闲分区

正确答案: D

答案解析:

【解析】A中,既没有上邻空闲分区,也没有下邻空闲分区。那么系统回收的时候要增加1个空闭分区。B中,回收的分区无上邻空闲分区,但是有下邻空闲分区,将回收区合并到下邻分区中,因此要修改空闲分区的首地址为回收区地址,大小为合并空闲分区之和,空闲区块数目不变。C中,回收区有上邻空闲分区,但无下邻空闲分区,那么上邻空闲区的首地址不变,新的分区大小是上邻分区和回收区大小之和,空闲区块数目没有发生变化。D中,回收区上下邻空闲区,回收该分区时,将上下邻空闲分区和回收区合并在一起,首地址为上邻空闲分区的首地址,空闲区块数目大小为3个分区之和

无上邻,无下邻

增加1个空闭分区

无上邻,有下邻

空闲区块数目不变

有上邻,无下邻

空闲区块数目不变

有上邻,有下邻

空闲区为块数目大小3个分区之和

2. (单选题)采用动态分区算法回收内存时,如果回收区仅与空闲区链插入点前一个分区相邻接,那么需要在空闲区链表中( )。

A. 增加一个新表项

B. 修改前一个分区表项的大小

C. 修改前一个分区表项的首地址

D. 修改前一个分区表项的大小和首地址

正确答案: B

答案解析:

【解析】当进程运行完毕释放内存时,系统根据回收区的首址, 从空闲区链中找到相应的插入点,此时可能出现以下4种情况之一:

(1)回收区与插入点的前一个分区F1相邻接,这就是B选项,只须要修改前一个分区表项的大小把回收区的大小加进去即可;

(2)回收分区与插入点的后一分区F2相邻接,此种方案我们认为,也须要修改分区表项的首地址(如果回收区处于低地址的话),并修改表项的大小;

(3)回收区同时与插入点的前、后两个分区邻接修改前一个分区表项的大小和首地址对应D答案;

(4)回收区既不与F1邻接,也不与F2邻接。这需要新建表项,对应于A答案。

3. (单选题)(考研真题,单项选择题)动态重定位分区分配目的是为( )。

A. 解决碎片问题

B. 便于多作业共享内存

C. 便于用户干预

D. 回收空白区方便

正确答案: A

答案解析:

为了解决碎片问题,采用紧凑技术移动内存中的所有作业,使它们相邻,用动态重定位方法解决移动后地址的重定位,因此动态重定位是为了解决碎片问题。

4. (单选题)(考研真题,单项选择题)所谓“存储保护”的基本含义,最恰当的描述是( )。

A. 防止存储器硬件受损

B. 防止程序在内存丢失

C. 防止程序间相互越界访问

D. 防止程序被人偷看

正确答案: C

答案解析:

存储保护主要防止程序之间的越界访问。

5. (单选题)(考研真题,单项选择题)采用( )不会产生内部碎片。

A. 分页式存储管理

B. 分段式存储管理

C. 随机存储管理

D. 段页式存储管理

正确答案: B

答案解析:

在页式存储管理的方式中,最后1个页面往往会出现不足1页大小的情况,产生页内碎片。

6. (单选题)(考研真题,单项选择题)采用分页存储管理方式进行存储分配时产生的存储碎片,被称为( )

A. 外零头

B. 内零头

C. 外零头或内零头

D. A、B、C都正确

正确答案: B

答案解析:

分页存储管理方式将内存分成大小相等的若干块,可能最后一个页面大小不足1页,但也要分配一个物理块,此时出现的零头为内零头

7. (单选题)(考研真题,单项选择题)某计算机主存按字节编址,采用二级分页存储管理,地址结构如下所示。虚拟地址2050 1225H对应的页目录号、页号分别是( )

页目录号(10位)

页号(10位)

页内偏移(12位)

A. 081H、101H

B. 081H、401H

C. 201H、101H

D. 201H、401H

正确答案: A

答案解析:

根据地址结构转化给出的虚地址的二进制为:

0010 0000 0101 0000 0001 0010 0010 0101

其中,低址开始的0~11位为页内偏移,即0010 0010 0101;12~21位为页号,即01 0000 0001=101H;其余高址部分为页目录号,即00 1000 0001=081H。

8. (单选题)(考研真题,单项选择题)在页式存储管理系统中,页表内容如表所示(均从0开始编号)。若页面大小为4KB,则地址变换机构将逻辑地址0转换成物理地址为( )。

页号

块号

0

2

1

1

2

6

3

3

4

7

A. 8192

B. 4096

C. 2048

D. 1024

正确答案: A

答案解析:

逻辑地址0,对应页号为0,查页表可知块号为2,物理地址为2*4K+0mod(4*1024)=8K=8192。

9. (单选题)(考研真题,单项选择题)某进程的段表内容如表所示。当访问段号为2,段内地址为400的逻辑地址时,地址转换的结果是( )。

段号

段长

内存起始地址

权限

状态

0

100

6000

只读

在内存

1

200

读写

不在内存

2

300

4000

读写

在内存

A. 段缺失异常

B. 得到内存地址4400

C. 越权异常

D. 越界异常

正确答案: D

答案解析:

段号为2的段,其段长为300,所给逻辑地址的段内地址400超过了本段的段长300,会发生越界。

10. (单选题)(考研真题,单项选择题)分页存储管理系统中,虚拟地址转换成物理地址的工作是由( )完成的。

A. 地址转换程序

B. .用户程序

C. .硬件

D. 装入程序

正确答案: A

答案解析:

把虚拟地址转换成物理地址,是硬件自动完成的。计算机硬件自动把地址空间的地址分为页号和页内相对地址,通过页号在页表找到内存中的对应块号,内存的物理地址用下面的公式计算得出:内存的物理地址=块号×页面大小+页内偏移地址。

1. (单选题)(考研真题,单项选择题)在请求页式存储管理中,若所需页面不在内存中,则会引起( )。

A. A.输入输出中断

B. B.缺段中断

C. C.越界中断

D. D.页故障

正确答案: D

2. (单选题)(考研真题,单项选择题)计算机系统中判断是否有中断发生,应是在( )。

A. 进程切换时

B. 执行完一条指令时

C. 执行P操作后

D. 由用户态转入核心态时

正确答案: B

答案解析:

缺页中断是在程序的执行过程中发现页面不在内存中,所以去调页。它发生在指令执行期间。系统中断是发生在系统执行完一条指令之后。

二. 填空题(共4题,20分)

11. (填空题)分页存储管理系统具有快表内存访问时间为2μs,检索快表时间为0.5μs。若快表的命中率为80%,且忽略快表更新时间,则有效访问时间是( )μs。

正确答案:

(1)

2.9

答案解析:

在引入快表的分页存储管理系统中,有效访问时间的计算公式为:

EAT=a×λ+(t+λ) ×(1-a)+t=2t+λ-t×a=a*(t+λ)+(1-a)*(t+t+λ)

其中,t为内存访问时间,t=2μs;λ为检索快表的时间,λ=0.5μs;a为快表的命中率,a=80%。代入数据,得有效访问时间EAT=2.9μs。

12. (填空题)在具有两级页表的分页存储管理系统中,CPU每次要存取一个数据时,必须访问( )次内存。

正确答案:

(1) 3

答案解析:

两级页表中,CPU存取一个数据要访问3次内存。第1次访问一级页表,第2次获得二级页表,第3次存取数据

13. (填空题)某段式存储管理系统中,地址长度为32位,若允许的最大段长为64KB,则段号占( )位。

正确答案:

(1)

16

答案解析:

分段地址结构由段号和段内地址组成,由于允许的最大段长是64KB=2^16B,那么段内地址占16位,则段号占32-16=16位。

14. (填空题)在请求分页存储管理中,逻辑地址长度为16位,每页为2KB,部分页表如表所示。则逻辑地址0EC5H所对应的物理地址为( )H。

页号

物理块号

0

4

1

10

2

6

3

2

正确答案:

(1) 56C5

答案解析:

请求分页存储管理方式中分页地址结构,由页号和偏移量(页内地址)构成。由每页2KB的页面大小可以得出,页内地址占分页地址的低地址开始11位。由0EC5(H)得其二进制地址为0000 1110 1100 0101,则页内地址为110 1100 0101,高地址部分表示页号为00001,得页号为1,查表可得对应的物理块号为10(十进制)。10转化为二进制为1010,由物理地址=块号×页面大小+偏移量(页内地址)得:1010×2^11+110 1100 0101=0101 0110 1100 0101=56C5 H。

13. (填空题)分页存储管理系统具有快表,内存访问时间为2μs,检索快表时间为0.5μs。若快表的命中率为80%,且忽略快表更新时间,则有效访问时间是( )μs。

正确答案:

(1) 2.9

答案解析:

【解析】在引入快表的分页存储管理系统中,有效访问时间的计算公式为:

EAT=a×λ+(t+λ) ×(1-a)+t=2t+λ-t×a

其中,t为内存访问时间,t=2μs;λ为检索快表的时间,λ=0.5μs;a为快表的命中率,a=80%。代入数据,得有效访问时间EAT=2.9μs。

14. (填空题)在一个分页存储管理系统中,页面大小为4KB,系统中的地址占24位,给定页面变换表如下表所示。计算逻辑地址(页号为3,页内地址为100)的物理地址______。

页号P

块号B

0

3

1

4

2

9

3

7

正确答案:

(1) 28772

答案解析:

【参考答案】(1)逻辑地址(页号3,页内地址100)的物理地址为:

7×4KB+100=28KB+100=28772

在请求分页存储管理中,系统是通过页表进行地址转换。先将逻辑地址分解成页号P和页内地址W两部分,然后查页表,可得页号P对应的物理块号为B,从而变换出对应的物理地址为:物理地址=块号×页面大小+页内地址

三. 判断题(共6题,30分)

15. (判断题)(考研真题)页表的作用是实现逻辑地址到物理地址的映射。( )

A. 对

B. 错

正确答案: 错

16. (判断题)在分页式存储管理系统中,为了提高内存利用率,允许用户使用不同大小的页面(相同)。( )

A. 对

B. 错

正确答案: 错

17. (判断题)页式存储管理中,一个作业可以占用不连续的内存空间,而段式存储管理中,一个作业则是占用连续的内存空间。( )

A. 对

B. 错

正确答案: 错

18. (判断题)页是信息的物理单位,段是信息的逻辑单位。( )

A. 对

B. 错

正确答案: 对

19. (判断题)在段式存储管理系统中,段的大小受内存空间的限制。( )

A. 对

B. 错

正确答案: 对

20. (判断题)动态重定位需要重定位寄存器的支持。( )

A. 对

B. 错

正确答案: 对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值