操作系统——内存管理(一)

内存管理在多程序环境中至关重要,基址寄存器和界限寄存器用于确保程序正确加载。通过位图和链表方法,可以有效地分配和管理内存,例如首次适配、下次适配和最佳适配策略。然而,最佳适配可能导致更多的内存碎片。这些技术帮助解决地址冲突并优化内存利用率。
摘要由CSDN通过智能技术生成

在不使用存储器抽象的情况下运行多个程序,内存会同时装载多个程序,但是,在编写程序时每个程序都有自身的相对地址,如果装载多个程序在内存中,地址不变,就会导致,程序地址错误。

基址寄存器与界限寄存器

我们可以使用一张表来记录程序的起始地址和程序的长度装载到界限寄存器中。
通过程序段的原始地址,加上基地址得到实际内存地址。

内存管理

使用位图进行内存管理

内存被划分为多个存储单元,每一个存储单元都是链表中一个元素,如果需要内存,就会查找位图,碰到能装下进程的位置,就会占有该位置。

使用链表的存储管理

管理方法是维护一个已分配内存段和空闲区内存段的链表,这样,如果新的进程需要分配内存,可以在空闲区内存段的链表中找到能够容纳进程的位置。

有几种方法对新的进程进行分配内存。

首次适配

如果找到空闲区的位置并且能够容纳该进程,就会装载到该位置。

下次适配

与首次适配相似,不同的是,每次找到合适的空闲区就会记录到此位置,下次寻找空闲位置时,就会从该节点进行查找。

最佳适配

这种方法是搜索整个链表,找到与进程所需内存大小最接近的空闲区的位置。
需要注意的是,此算法,比前两个算法会浪费更多的内存,因为会产生更多的小空闲区。

最差适配

每次分配的内存空间都是最大的可用空闲区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值