1.程序的链接和装入:用户源程序放入内存需要三步编译->链接->装入。
2.链接的三种方式:
(1)静态链接:在程序运行之前将各种函数链接成一个完整的模块不再拆开。
(2)装入时动态链接:边装入边链接
(3)运行时动态链接:只在执行时用到该段时才链接并装入到模块上。
3.装入的三种方式:
(1)绝对装入:只适用于单道模式,逻辑地址和实际内存地址完全相同。
(2)可重定位装入:目标模块的起始地址为0,程序的其他地址都是相对于起始地址的。装入时对目标程序中指令和数据地址的修改称为重定位。
(3)动态运行时装入:在程序执行时用到该块时才对其进行地址转换,所以在程序运行时要动态的申请空间。
4.进程的内存映像
数据段:存放全局变量和静态变量
堆:存放动态分配的变量
5.内存保护
1)上下界寄存器限界法
2)基地址和界地址寄存器
6.连续分配管理方式
1)单一连续分配:内存分为低地址的系统区和用户区,用户区只分配给一个用户程序,有内部碎片利用率最低。
2)固定分区分配:将用户区分为若干固定大小的块,可化为全相等大小的块也可不一样。需要建立一张分配表,记录所有分区的大小和始址以及是否分配。可能存在若程序太大以至于没有任何一个分区能放下它,若程序太小则会产生碎片。块内的碎片称为内部碎片。
3)动态分区分配
在进程进入内存时,根据进程实际需要动态分配内存。使用时间长后会产生外部碎片。
7.动态分区的分配策略
1)首次适应算法:从分区链开始找到第一个能适合其加入的分区。最好最快,但会使最开头部分碎片增多。
2)邻近适应算法:分配内存时从上次查找结束的位置开始查找找到第一个适合自己大小的分区。会导致尾部产生碎片。
3)最佳适应算法:空闲分区按照分区大小递增串成一链,找到能满足其大小最小的一个分区分配他。每次都会产生很小的碎片。
4)最坏适应算法:空闲分区按照分区大小递减串成一链,找到最大的分配给作业。会导致大块都被使用,大程序可能不能存入。
8.基本分页存储管理(详见计组)
9.
操作系统第七次笔记(内存管理)
最新推荐文章于 2025-05-26 16:38:55 发布