1. 为什么要进行内存管理?
在单道批处理系统中,一个系统一个时间段只执行一个程序,而引入多道程序并发执行之后,进程间共享的不仅是处理机还有存储器。如果不对存储器有效管理会导致混乱。
2. 程序运行的流程?
编译:由编译程序将用户源代码编译成若干个目标模块
链接:由链接程序将编译后形成一组目标模块,以及所需要的库函数链接在一起,形成一个完整的装入模块。
装入:由装入程序将装入模块装入内存运行。
3. 多道程序环境下扩充内存的两种方法?
对换:把处于等待状态的程序从内存移到外存,把准备好的程序从辅存中移到内存。
覆盖
4. 连续分配方式的种类?优缺点
单一连续分配:只能用于单用户、单任务的os中
固定分区分配:产生外部碎片
动态分区分配:产生内部碎片
5. 动态分区分配策略?
首次适应算法:空闲分区以地址递增次序链接。
最佳适应算法:空闲分区以容量递增次序链接。
最坏适应算法:空闲分区以容量递减次序链接。
邻近适应算法:接上次接着来
6. 非连续分配(离散分配)的方式?逻辑地址结构?表项结构?寻址过程。
(1)页式管理方式
逻辑地址结构:页号 页内偏移量
表项结构:页号 块号
寻址过程:根据页号+页表起始地址从页表中查询得到块号,块号+页内偏移量=》物理地址
(2)段式管理方式
逻辑地址结构:段号 段内偏移量
表项结构:段号 段长 本段在主存中的起始地址
寻址过程:
(3)段页式管理方式
7. 多级页表解决了什么问题?又带来什么问题?
多级页表解决了当逻辑地址空间过大时,页表的长度会增加的问题。而采用一次访盘需要多次访问内存甚至磁盘,会大大增加一次访存的时间。