【操作系统】一文带你搞定基于连续内存分配的动态分区分配算法!

        基于连续内存分配的动态分区分配算法是操作系统中用于管理内存空间的重要技术。在这种分配方式下,内存空间被划分为若干个连续的分区,每个分区可以独立地分配给不同的进程使用。动态分区分配算法能够在进程运行时根据需要动态地为其分配内存空间,并在进程结束时释放这些空间,以提高内存利用率和灵活性。动态分区分配算法解决的是空间分配的问题,也就是如何为程序找到一个合适的内存空间,当内存中有多个空闲空间时如何进行选择的问题,主要有下面四种类型:

一  首次适应算法(First Fit)

        空闲分区链按地址递增的次序链接;进行内存分配时,从链首开始顺序查找直至找到一个能装下该程序的空闲分区为止。

        但是在实际操作中,空闲分区往往比要装的程序大,此时多余的部分就会留在空闲链表中,导致低址部分不断划分,造成一批较小的空闲区,低址部分产生大量空闲碎片,造成了浪费。磁轭,查找总从低址部分开始,也增大了开销。

二 邻近适应算法(Next Fit)

      进程分配内存空间时,查找不再是每次从链首开始,而是从上次找到的空闲块的下一个空闲区开始,直至找到满足的空闲分区。要想实现本算法,需要设置一个起始查寻指针,以指示下一次起始查寻的空闲分区,并采用循环查找方式。

        该算法能减少查找时的开销,更均匀的分布空闲分区,减少内存碎片的产生,但是仍然无法规避该问题,尤其是在连续分配大进程之后,导致缺乏大的空闲分区。

三 最佳适应算法(Best Fit)

        在内存分配时,总选择满足请求的最小空闲分区分配给作业。将空闲区按由小到大递增的顺序形成空闲区链。

        可以减少内存碎片的产生,但由于需要遍历链表找到合适的分区,所以查找时间可能较长。

四 最坏适应算法(Worst Fit 或 Largest Fit)

        空闲分区以容量递减的次序链接。分配内存时,总是选择当前最大的空闲分区进行分配。

        该算法可以最大限度的利用内存空间,减少大碎片的产生,对中小作业有利。但可能不利于后续的内存分配。

五 快速适应算法(Quick Fit)

        该算法是首次适应算法和最佳适应算法的结合,会维护一个空闲块列表,按照空闲块的大小进行分类,并为每种大小的空闲块维护一个空闲链表,在分配内存时,根据进程的需求大小,选择合适大小的空闲链表进行查找。

六 相关练习

        已知主存320k,OS占用低位32k,现有一作业序列如下:J1要求40k,J2要求100k,J3要求80k,J2完成,J4要求60k,J5要求32k,J3完成,J6要求112k,J1完成,J7要求30k。

①  若系统采用首次适应法进行内存分配,画出所有操作完成后的空闲内存队列;

②  若系统采用最佳适应法进行内存分配,画出所有操作完成后的空闲内存队列;

③  若系统采用最坏适应法进行内存分配,画出所有操作完成后的空闲内存队列。

首次适应算法:

 

最佳适应算法:

最坏适应算法:

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统是计算机系统中的核心组成部分,负责管理和协调计算机硬件和软件资源,提供程序运行环境。在CSDN上有很多关于操作系统的专题文章,以下将从操作系统的基本概念、功能和常见类型等方面简要介绍一下。 首先是操作系统的基本概念。操作系统是一种系统软件,它是计算机硬件和应用软件之间的桥梁,提供给应用程序一系列的服务和资源,同时负责调度和管理系统资源。它为用户屏蔽了底层的硬件差异,提供了一个统一的、易于使用的界面。 操作系统主要有四个基本功能。首先是处理器管理,负责将处理器分配给系统中的各个进程,并进行进程切换,实现多道程序并发执行。其次是内存管理,管理计算机的内存资源,包括分配、回收和保护等操作。再次是文件管理,负责管理文件的存储、命名和保护等操作,提供了文件操作的接口。最后是设备管理,负责管理计算机的各种设备,包括输入输出设备和存储设备等。 常见的操作系统有多种类型。最主流的是Windows、Linux和Mac OS等桌面操作系统。此外还有服务器操作系统,如Windows Server和Linux等,用于管理和部署服务器。还有嵌入式操作系统,如Android和iOS等,用于移动设备和物联网设备。操作系统也有实时操作系统,用于需要实时控制和响应的系统,如工控系统和航空航天系统等。 总之,操作系统是计算机系统中不可或缺的重要组成部分,通过CSDN上的相关文章,我们可以更深入了解操作系统的基本概念、功能和不同类型。这些知识对于理解计算机系统的工作原理和提升编程能力都有着重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值