操作系统.存储器管理.简单杂记

某计算机采用二级页表的分页存储管理方式,按字节编址,页面大小为1024B,每个页表项占2B,
逻辑地址结构为:
操作系统.存储器管理.简单杂记
A.64
B.128
C.256
D.512

链接:https://www.nowcoder.com/questionTerminal/057c6a5c160e4b19b63eaa05aaa42a26
来源:牛客网

**FROM:一素的思
在解决这个问题前,我们用类比的方式来举一个例子。

  1. 假设有一本书,这本书每一页固定大小,最多一页有 1000 个字(页面大小);
  2. 每一页对应有一个目录中的条目,这个条目用 2 个字表示(页表项大小);
  3. 那么我 一页纸 就可以写下 1000/2 = 500 个目录条目;
  4. 现在我整本书有 1000 页(逻辑地址空间大小),我们说了每一页对应一个目录条目,所以有 1000 个目录条目;
  5. 所以我需要 1000 个目录条目/ 500 个目录条目 = 2 页(注意前面说到了,一页可写 500 个条目。所以我需要 2 个页面来保存目录条目。
    回到题目本身,对应的含义用黑体在上面标识出来了。
    其计算过程如下:
    页面大小 210B,页表项大小为 2B,所以一页可以写 210B/2B=29B 个页表项。
    逻辑地址空间大小为 216 页,就是说需要 216 个与之对应的页表项,因此需要 216B/29B=27=128 个页面存放页表项。
    PS:关于分页存储管理,你完全可以和现实中的书本结合理解,把一页的大小理解为书本一页固定写多少多少字,页表项就是书本前面的目录。**
    ---------------------------------------------------------------------

在下述存储管理方式中,会产生内部碎片的是___,会产生外部碎片的是___。
A.页式和段式 B.页式和段页式
C.动态分区方式和段式 D.动态分区方式和段页式

ANSWER: B和C,段页式也包含了页式,所以会产生内部碎片.
只要是分页(块)的,碎片都是产生在内部,其他的堆分配则是外部碎片。

---------------------------------------------------------------------------
参考链接:https://blog.csdn.net/weixin_39928544/article/details/90049798

步骤:

如果,虚地址(逻辑地址、程序地址)以十六进制、八进制、二进制的形式给出
第一步,将虚地址转换成二进制的数;
第二步,按页的大小分离出页号和位移量(低位部分是位移量,高位部分是页号);
第三步,根据题意产生页表,将位移量直接复制到内存地址寄存器的低位部分;
第四步,以页号查页表,得到对应页装入内存的块号,并将块号转换成二进制数填入地址寄存器的高位部分,从而形成内存地址。

举例说明:
1.有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、A、5块,试将虚地址0AFEH转换成内存地址。
解:
|页号|块号 |
| 0 | 7 |
| 1 | 9 |
| 2 | A |
| 3 | 5 |
虚地址0AFEH转化为二进制数:0000 1010 1111 1110 (注意虚地址为16进制,最后那个H标志这是一个十六进制数)
已知页大小是2kb(即,有11位,2^11=2kb),所以低位部分是11位,所以,w=010 1111 1110, p=0000 1=1 (低位部分为页内地址,高位部分为页号)

根据页号与块号的排列 p=1时,块号为9,9的二进制数为1001,表首地址为0
所以,MR=(首0)0100 1010 1111 1110(二进制)=4AFEH(16进制)(根据做题步骤,我们要把页号低位部分移动到地址寄存器中,然后1001当作高位部分,不够前面补0)

例题:

某请求页式系统允许用户空间为32个页面(每页1KB),主存为16KB,若一个用户程序有10页长,某时刻该进程的页表如下所示:
虚页号 物理块号 是否在TLB中
0 8 是
1 7 是
2 4 否
3 10 否
4 5 否
5 3 是
6 2 是
其他 无效
问:(1)计算虚地址0AC5H、1AC5H对应的物理地址。
(2)页表存放在主存中,对主存的一次存取需要1.5ns,对TLB表的查找时间忽略为0,试问这两次访问共耗费多少时间

答案:

(1)32个页面需要用5位来区分,页内地址需要10位。虚地址0AC5H的页号为2,页内地址为1011000101。从页表可知,其物理块号为4,因此,其物理地址为1001011000101=12C5H。虚地址1AC5H的页号为6,页内地址为1011000101。根据页表可知,该虚地址对应的物理块号为2,其物理地址为101011000101=0AC5H。
(2)第1次访问TLB没有命中,因此需要查找页表,再访问主存一次,总计时间为3ns。第2个虚地址在TLB中,只需要一次内存访问,总时间为1.5ns。

例题:

在一页式存储管理系统中,页表内容见表3-4。若页的大小为4KB,则地址转换机构将逻辑地址0转换成的物理地址为(A )。

表3-4

页表内容

页号 块号

0 2

1 1

3 3

4 7

A.8192
B.4096
C.2048
D.1024

解释:按页表内容可知,逻辑地址0对应块号2,页大小为4KB,故转换成的物理地址为2×4K=8K=8192。

例题:

设有8页的逻辑空间,每页有1024B,它们被映射到32块的物理存储区中。那么,逻辑地址的有效位是__13____位,物理地址至少是__15____位。

解释:

首先先算逻辑地知址:
逻辑地址:81024=23*210=2^13(所以逻辑地址的后13位为“页内道地址”,又叫“页内偏移量”,或“页内位移”及有效位)
再算物理地址:
物理地址:32
1024=2内5*210=2^15
所以最后的就是逻辑有效位是13;物理有效位是15.
--------------------------------------------------------------------------
多进程在主存中彼此互不干扰的环境下运行,操作系统是通过内存保护实现的
解析:多进程执行通过内存保护实现互不干扰,如页式管理中欧页地址越界保护,段式管理中有段地址越界保护

静态重定位是在程序执行之前进行重定位,它根据装配模块将要装入的内存起始位置,直接修改装配模块中的有关使用地址的指令。
静态重定位有着无需硬件支持的优点,但存在着如下的缺点:一是程序重定位之后就不能在内存中搬动了;二是要求程序的存储空间是连续的,不能把程序放在若干个不连续的区域内。

动态重定位是指,不是在程序执行之前而是在程序执行过程中进行地址重定位。更确切地说,是在CPU每次访问内存单元前才进行地址变换。
动态重定位技术所付出的代价是需要硬件支持。

EG:动态重定位是在作业的中进行的
A 编译过程 B 装入过程 C 链接过程 D 执行过程

操作系统.存储器管理.简单杂记