1. 内存管理的主要作用是什么?

  • 内存的分配与回收
  • 地址转换,即将逻辑地址转换成相应的物理地址

2. 操作系统的内存管理机制了解吗?内存管理有哪几种方式?

  • 连续分配管理方法
    a. 块式管理:
    比较古老的一种内存管理方式,将内存分成几个大块,一个块只能包含一个进程。如果程序运行需要内存的话,操作系统就分配给它一个块,如果这个程序需要的空间很小的话,很大一部分块中的空间被浪费。这些每个块中未被利用的空间我们称之为碎片。
  • 离散分配管理方法
    b. 分页存储管理方式:
    将主存分为大小相等且固定的一页一页的形式,相比块式管理划分力度更大,减少了碎片的产生。
    页式管理通过页表将逻辑地址映射为物理地址。
    c. 分段存储管理方式:
    页式管理虽然提高了内存利用率,但是每个页是没有实际意义的。段式管理每个段定义一个逻辑,如主程序段MAIN等,是有实际意义的。可以更好地满足用户多方面需要。
    段式管理通过段表将逻辑地址映射为物理地址。
    d. 段页式存储管理方式:
    段页式管理结合了段式管理和页式管理的优点。主存先分成若干个段,段又分成若干个页,段与段及段的内部都是离散的。

3. 分页机制和分段机制有哪些共同点和区别呢?

  • 共同点
    a. 都提高了内存利用率,减少了内存碎片;
    b. 都是离散的存储,两者都是离散分配内存的方式,但段内和页内内存是连续的。
  • 区别
    a. 分页机制中页的大小是固定的,由操作系统决定;分段机制中段的大小是不固定的,由当前运行的程序决定。
    b. 分页仅仅是为了满足操作系统内存管理的需求,页是没有实际意义的;段是逻辑信息的单位,在程序中可以体现为代码段、数据段等,能更好的满足用户需要。

4. 逻辑地址和物理地址

  • 逻辑地址由操作系统决定,我们编程一般只有可能和逻辑地址打交道;
  • 物理地址是内存地址寄存器中的地址,物理地址是内存单元真正的地址。

5. 快表和多级页表

  • 快表
    a. 解决的是分页机制中虚拟地址转换为物理地址时读取两次内存带来的时间消耗问题。
    b. 可以理解成一种特殊的高速缓冲存储器。
    c. 其中可以存储部分页表项或全部页表项。
    d. 使用过程:根据虚拟地址中的页号查快表->快表中有,使用这个物理地址查主存->如果快表中没有->去内存页表中得到物理地址,同时将该映射表项添加到快表中->快表满时,根据淘汰策略淘汰快表中一个页,登记新页。
  • 多级页表
    a. 解决的是虚拟地址空间大,页表很大的问题。
    b. 避免全部页表一直放在内存中占用过多空间,对于根本不需要的页表不需要保留在内存中。

6. CPU寻址了解吗?为什么需要虚拟地址空间?

  • CPU寻址
    现代处理器采用的都是虚拟地址寻址 的寻址方式
    使用虚拟地址,CPU要将虚拟地址翻译为物理地址才能访问真正的物理内存。
    需要CPU中的一个硬件:内存管理单元(MMU)
  • 为什么需要虚拟地址
    如果不使用虚拟地址的话,会给操作系统带来损坏,或无法同时运行多个程序。
    虚拟地址寻址的优点:
    a. 程序可以通过访问相邻的虚拟地址来访问实际物理内存中不相邻的大内存缓冲区(相邻->不相邻)
    b. 程序可以用一系列虚拟地址访问大于可用物理内存的内存缓冲区(小->大)
    c. 不同进程操作的虚拟地址分隔开(不会操作同一个物理地址)



步履不停