操作系统笔记(五)

全目录:

操作系统笔记(一)

操作系统笔记(二)

操作系统笔记(三)

操作系统笔记(四)

目录

第五章 存储器管理

5.1 存储器的层次结构

5.2 程序的装入和链接

5.2.1 程序的链接

5.2.2 程序的装入

5.2.3 程序的装入方式

5.3 对换与覆盖

5.3.1 对换区的管理

5.3.2 覆盖

5.4 连续分配内存管理

5.4.1 单一连续分配

5.4.2 固定分区分配

5.4.3 动态分区分配

5.4.4 动态重定位分区分配

5.5 交换/对接

5.6 基本分页存储管理方式

5.7 分段存储管理方式

5.8 段页式内存管理方式


第五章 存储器管理

5.1 存储器的层次结构

5.2 程序的装入和链接

5.2.1 程序的链接

链接过程:根据外部访问符号名表,将经过编译或汇编得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块

关键问题:修改相对地址,变换外部调用符号

链接方式:

静态链接方式:将各目标模块及库函数,链接成一个装配模块(可执行文件)。

装入时动态链接:边装入边链接的链接方式。

运行时动态链接。

5.2.2 程序的装入

基本目标及相关问题:由装入程序将装入模块载入到内存。

相关问题:装入位置(代码段放在内存中从0开始位置,数据段放在内存中从288开始位置),地址转换(程序的逻辑地址转换为物理地址),程序的装入方式

关键概念:绝对地址,相对地址,重定位及其寄存器

5.2.3 程序的装入方式

1.绝对装入方式:将按照装入模块中的地址,将程序和数据装入内存。绝对装入方式只适用于单道程序环境。

2.可重定位装入方式:根据内存的当前情况,将装入模块装入到内存的适当位置。把在装入时对目标程序中指令和数据的修改过程称为静态重定位。

3.动态运行时装入方式:不允许程序运行时在内存中移动位置。可以采用动态运行时装入方式。支持移动和保护。

5.3 对换与覆盖

对换:把内存中暂时不能运行的进程或者在那时不用的程序和数据,,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需的程序或数据,调入内存。

对换类型:整体对换,以整个进程为单位,也称为进程对换

页面(分段)对换:以“页”或“段”为单位进行

5.3.1 对换区的管理

主要目标:提高进程换入和换出的速度,提高文件存储空间的利用率,采用连续分配方式

盘块管理中的数据结构:用于记录外村对换区中的空闲盘块的使用情况,与动态分区分配方式相似,空闲分区表/空闲分区链:包括对换区首址及大小。

对换区的分配与回收:与动态分区方式的内存分配与回收方法相似

                        

5.3.2 覆盖

解决问题:程序大小超过物理内存总和

程序执行时:只在内存中保留那些在任何时间都需要的指令和数据,程序的不同部分在内存中相互替换。

5.4 连续分配内存管理

5.4.1 单一连续分配

内存划分:系统区,用户区

仅适用于单用户,单任务操作系统中。

5.4.2 固定分区分配

将内存用户空间划分为若干个固定大小的区域(分区),在每个分区中只装入一道作业,当有一空闲分区时,可以从外存的后备作业队列中选择一个适当大小的作业装入该分区,当该作业结束时,再从后背作业队列中找出另一作业调入该分区。

适用于多道程序存储管理。​​​​​​​

5.4.3 动态分区分配

根据进程的实际需要,动态地对内存空间进行分配,回收及划分。

分区分配算法:首次适应法,循环首次适应法,最佳适应法,最坏适应法,快速匹配法。

5.4.4 动态重定位分区分配

内存紧缩:将空闲分区合并在一起。

碎片与内存紧缩:分区不相邻接,也无法把该程序装入内存,这种不能利用的小分区称为碎片。

解决方法:内存紧缩:把内存中的所有作业(进程)进行移动,使它们全部相邻接,从而把原来分散的多个小分区拼接成一个大分区,称为内存紧缩。消耗大量CPU时间。

5.5 交换/对接

把内存中暂时不能运行或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。

交换以整个进程为单位:进程交换/整体交换------中程调度

交换以“页”“段”为单位:页面交换/分段交换/部分交换------虚拟内存

交换可以提高内存的利用率

在具有交换功能的操作系统中,通常把外存分为文件区和交换区。

文件区:用于存放文件,提高文件存储空间的利用率,管理方式采取离散分配方式

交换区:提高进程换入和换出的速度,采取连续分配方式

5.6 基本分页存储管理方式

把物理内存划分为许多个固定大小的内存快:物理页面,或者页框

把虚拟地址空间划分为大小相同的块:虚拟页面,简称页面

页面的大小要求是2的整数次幂

多级页表使得地址翻译效率更低,提高效率:关联存储器TLB:特殊的快速查找硬件,存放最常用的页表项。

反向页表:根据内存中的物理页面号组织页表,用物理页面号来作为访问页表的索引,有多少个物理页面,就在页表中设置多少个页表项,节省大量的物理空间。

分页技术优点:靠近硬件,结构严格,高效使用内存,缺点:不符合程序员思考习惯,存在页内碎片。

5.7 分段存储管理方式

程序由若干部分(段)组成,每个段有各自的特点,用途。

实现机理:将程序按含义分成若干部分,即分段,ID从0开始编址每个段,创建进程时,建立进程段表,内存仍用可变分区进行管理,载入段时需调分配算法,PC及数据地址要通过段表算出物理地址,进程切换时,进程段表也跟着切换。

优点:每段独立编址,编程容易(分治)

缺点:空间低效

分段与分页的主要区别:页是信息的物理单位,段时信息的逻辑单位。分页的目的是提高内存的利用率,分段的目的是为了更好地满足用户的需要。页的大小固定,段的长度不固定。分页的地址空间是一维的,分段的作业地址空间是二维的。

5.8 段页式内存管理方式

既具有分段的便于实现,可共享,易于保护,可动态链接等一系列优点,又能像分页系统那样很好的解决内存的外部碎片问题以及为各个分段离散地分配内存等问题。

实现机制:程序的段划分是线性地址空间(如0-4G)线性地址空间和内存被分开大小相等的片(页面和页框),进程用页表建立页和页框的映射,进程创建申请段,段申请页,逻辑地址通过段表加页表算出物理地址,进程切换时,段表和页表都跟着切换。​​​​​​​

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值