主存空间的分配与回收

合集下载

实验报告二主存空间的分配和回收

实验报告二主存空间的分配和回收
temp=freeTab; /*寻找空闲表中对应登记项*/
if(strcmp(PName,"OS")==0)
{ printf("ERROR!");
return;
}
while((strcmp(temp->proID,PName)!=0||temp->flag==1)&&temp)
temp=temp->next;
四、程序中使用的数据结构及符号说明
结构1:
typedef struct freeTable
{
char proID[6];
int startAddr; /*空闲区起始地址*/
int length; /*空闲区长度,单位为字节*/
int flag; /*空闲区表登记栏标志,用"0"表示空表项,用"1"表示未分配*/
freeNode=freeNode->next;
}
getchar();
break;
default:printf("没有该选项\n");
}/*case*/
}/*while*/
}/*main()*/
六、运行调试结果
初始界面:
分配主存,五个作业名:P1、P2、P3、P4、P5
显示主存使用情况:
回收主存P2:
if(front->flag==1&&rear->flag==1)
/* 上邻空闲区,下邻空闲区,三项合并*/
{
front->length=front->length+rear->length+temp->length;

第四章 复习题 计算机操作系统概论复习资料习题答案

第四章 复习题  计算机操作系统概论复习资料习题答案

第四章复习题一、单项选择题1. 在可变分区存储管理中,若采用最先适应分配算法宜将空闲区按(B)次序登记在空闲区表中。

A. 地址递减B. 地址递增C. 长度递减D. 长度递增2. 采用固定分区存储管理的计算机系统中(D)的做法是错误的。

A. 为作业分配的分区不能小于作业长度B. 可同时在多个分区中各装一个作业C. 不允许多个作业同时存放在一个分区中D. 一个分区中可同时装入多个作业3. 不适宜采用虚拟存储管理技术的存储管理方式是(D)。

A. 页式B. 段式C. 段页式D. 可变分区4. 在多道程序设计系统中,采用了页式存储管理。

如果允许并行工作的道数为n(n>1),则系统中同时建立的页表数一定为(C)。

A. 1B. nC. <=nD. n+15. 在单用户连续存储管理中,可供用户使用的主存区域起始地址存放在(B)。

A. 基址寄存器B. 界限寄存器C. 限长寄存器D. 相联寄存器6. 重定位的含义是(C)。

A. 把主存中的一个程序从一个区域重新定位到另一个区域B. 把绝对地址转换成逻辑地址C. 把逻辑地址换砖成绝对地址D. 把辅助存储器中的程序定位到主存的某个区域7. 在分页式存储管理中,逻辑地址由页号和页内地址两部分组成。

因而,分页的工作是在(C)时进行的。

A. 用户编制程序B. 地址转换C. 操作系统装入作业D. 系统初始化8. 采用固定分区存储管理的计算机系统中(D)的做法是错误的。

A. 为作业分配的分区不能小于作业长度B. 可同时在多个分区中各装一个作业C. 不允许多个作业同时存放在一个分区中D. 一个分区中可同时装入多个作业9. 在分页式虚拟存储管理中,若发现所要访问的页面不在主存储器中,则硬件要产生一个(C)中断。

A. I/OB. 缺段C. 缺页D. 访管10. 主存储器的每个存储单元都有一个地址与其对应,假定这些地址用n个二进制位来区分,则主存储器的容量为(D)。

A. 2n个字B. 2n-1个字C. 2n-1个字节D. 2n个字节11. LRU页面调度算法总是选择(C)页面调出。

动态分区存储管理方式的主存分配回收总结

动态分区存储管理方式的主存分配回收总结

动态分区存储管理方式的主存分配回收总结动态分区存储管理是一种常见的主存分配回收技术,它通过动态创建并分配大小不等的存储块来管理主存空间,以满足不同进程的需求。

这种管理方式在操作系统中起着至关重要的作用,因此本文将对动态分区存储管理的主存分配回收进行总结,从原理、特点、优缺点及其在实际应用中的情况进行阐述。

一、原理动态分区存储管理是基于分区的主存管理机制,它将主存空间划分为多个不等大小的分区,每个分区可以被分配给一个进程使用。

当系统收到一个新进程的请求时,它会根据需要的主存大小为进程分配一个合适大小的分区。

当进程执行完毕,系统会回收该进程所占用的分区,使得该空间可以再次被分配给其他进程使用。

在动态分区存储管理中,主要有两种分配方式:首次适应算法和最佳适应算法。

首次适应算法是从第一个满足大小要求的分区开始进行分配;而最佳适应算法是从所有满足大小要求的分区中选择最小的分区进行分配。

这两种分配方式都有自己的优点和局限性,但它们都是基于动态分区存储管理的基本原理。

二、特点1.灵活性动态分区存储管理可以根据进程的需求动态地分配和回收主存空间,提高了主存的利用率和效率。

进程可以根据需要申请和释放主存空间,而无需预先分配固定大小的空间。

2.节省空间动态分区存储管理可以尽可能地利用主存中的碎片空间,减少了外部碎片的浪费。

这种管理方式能够充分利用主存空间,提高了主存的利用率。

3.多样性动态分区存储管理可以适应不同大小的进程需求,能够根据进程的大小灵活地进行分区分配,满足了不同进程的需求。

三、优缺点1.优点(1)提高了主存的利用率和效率。

(2)灵活地分配和回收主存空间,满足不同进程的需求。

(3)节省了主存空间,减少了碎片的浪费。

2.缺点(1)会产生外部碎片,影响了分区空间的利用率。

(2)分配和回收过程中可能产生较大的开销,影响了系统的性能。

四、在实际应用中的情况动态分区存储管理在操作系统中得到了广泛的应用,特别是在多道程序设计和实时系统中。

计算机操作系统作业3(含答案).

计算机操作系统作业3(含答案).

一、单项选择题1.联想存储器在计算机系统中是用于______的。

A.存储文件信息B.与主存交换信息C.内存地址变换D.内存管理信息2.作业在执行中发生了缺页中断,经操作系统处理后,应该执行的指令是______。

A.被中断的前一条B.被中断的后一条C.作业的第一条D.被中断的指令在请求分页存储管理中,当指令的执行所需要的内容不在内存中时,发生缺页中断,当缺页调入内存后,应执行被中断指令。

另:缺页中断作为中断与其它中断一样要经历如保护CPU环境,分析中断原因,转入缺页中断处理程序进行处理,恢复CPU环境等几个步骤,但缺页中断又是一种特殊的中断,它与一般中断相比,有着明显的区别,主要表现在下面两个方面:(1)缺页中断是在指令执行期间产生和处理中断信号的。

(2)一条指令的执行期间,可能产生多次缺页中断。

3.实现虚拟存储器的目的是______。

A.实现存储保护B.实现程序浮动C.扩充外存容量D.扩充内存容量4.在段页式存储系统中,一个作业对应______。

A.多个段表B.一个段表,一个页表C.一个段表,多个页表D.多个段表,多个页表5.在虚拟页式存储管理方案中,完成将页面调入内存的工作的是______。

A.缺页中断处理B.页面淘汰过程C.工作集模型应用D.紧缩技术利用6.采用分页式内存管理时,重定位的工作是由______完成的。

A.操作系统B.用户C.地址转换机构D.内存空间分配程序7.在分页式内存管理系统中可能出现的问题是______。

A.颠簸B.不能共享C.外部碎片D.动态链接8.在下列有关分页式内存管理的叙述中正确的是______。

A.程序和数据是在开始执行前一次性和装入的B.产生缺页中断一定要淘汰一个页面C.一个被淘汰的页面一定要写回外存D.在页面中有“访问位”和“修改位”等消息9. 在可变式分配方案中,最佳适应算法是将空白区在空白区表中按______次序排列。

A.地址递增B.地址递减C.容量递增D.容量递减10. 在可变分区分配方案中,将空白分区按地址递增次序排列是要采用______。

2022年西安外事学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年西安外事学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年西安外事学院计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、现代操作系统中,文件系统都有效地解决了重名(即允许不同用户的文件可以具有相同的文件名)问题。

系统是通过()来实现这一功能的。

A.重名翻译结构B.建立索引表C.树形目录结构D.建立指针2、位示图可用于()A.实现文件的保护和保密B.文件目录的查找C.磁盘空间的管理D.主存空间的共享3、某系统中有11台打印机,N个进程共享打印机资源,每个进程要求3台打印机。

当N的取值不超过()时,系统不会发生死锁。

A.4B.5C.6D.74、使用TSL(TestandSetLock)指令实现进程互斥的伪代码如下所示。

do{while(TSL(&lock));criticalsection;lock=FALSE;}while(TRUE);下列与该实现机制相关的叙述中,正确的是()A.退出临界区的进程负责唤醒阻塞态进程B.等待进入临界区的进程不会主动放弃CPUC.上述伪代码满足“让权等待”的同步准则D.while(TSL(&lock))语句应在关中断状态下执行5、在个交通繁忙的十字路口,每个方向只有一个车道,如果车辆只能向前直行,而不允许转弯和后退,并未采用任何方式进行交通管理。

下列叙述正确的是()。

A.该十字路口不会发生死锁,B.该十字路口定会发生死锁C.该上字路口可能会发生死锁,规定同时最多3个方向的车使用该十字路是最有效的方法D.该十字路口可能会发生死锁,规定南北方向的两个车队和东西方向的两个车队互斥使用十字路口是最有效的方法6、适合多道程序运行的存储管理中,存储保护是为了()A.防止一个作业占用同个分区B.防止非法访问磁盘文件C.防止非法访问磁带文件D.防止各道作业相互干扰7、在下述存储管理方案中,()管理方式要求作业占用连续的存储空间。

A.分区B.分页C.分段D.段页式8、()不是操作系统的功能。

A.CPU管理B.存储管理C.网络管理D.数据管理9、执行系统调用的过程包括如下主要操作:①返回用户态②执行陷入(trap)指令③传递系统调用参数④执行相应的服务程序正确的执行顺序是()A.②->③->①->④B.②->④->③->①C.③->②->④->①D.③->④->②->①10、在采用SPOOLing技术的系统中,用户暂时未能打印的数据首先会被送到()存储起来。

存储管理

存储管理

第五章存储管理1存储管理的主要功能是什么?【解答】①主存的分配和回收存储管理的一个主要功能就是实现主存的分配和回收。

多个进程同时进入主存,怎样合理分配主存空间,哪些区域是已分配的,哪些区域未分配,按什么策略和算法进行分配使得主存空间得到充分利用。

当一个作业撤离或执行完后,系统必须收回它所占用的主存空间②地址变换用户在程序中使用的是逻辑地址,而处理器执行程序时是按物理地址访问主存,要把逻辑地址变换为物理地址,存储管理软件必须配合硬件进行地址转换工作,把逻辑地址转换成物理地址,以保证处理器的正确访问。

③存储共享内存共享的原因有两个:一是为了更有效地使用内存空间;二是为了实现两个协同工作的进程所共享的内存缓冲区。

使多个进程能动态地共享内存,以及多个进程可以共同使用同一软件,如编译程序,存放编译软件的内存即为共享内存区。

④“扩充”主存容量它借助于提供虚拟存贮器或其他自动覆盖技术,来达到“扩充”主存容量的目的。

即为用户提供比主存的存储空间还大的地址空间。

⑤存储保护保证各道作业都在自己所属的存储区内操作,必须保证它们之间不能相互干扰、相互冲突和相互破坏,特别要防止破坏系统程序。

为此,一般由硬件提供保护功能,软件配合实现。

2什么是地址重定位?动态重定位如何实现?【解答】为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放地址进行重定位,即要把逻辑地址转换成绝对地址。

把逻辑地址转换成绝对地址的工作称“重定位”或“地址转换”。

重定位的方式可以有“静态重定位”和“动态重定位”两种。

动态重定位由软件和硬件相互配合来实现。

硬件要有一个地址转换机构,该机构可由一个基址寄存器和一个地址转换线路组成。

存储管理为作业分配主存区域后,装入程序把作业直接装到所分配的区域中并把该主存区域的起始地址存入相应作业进程的进程控制块中。

当作业进程被调度去占用处理器时,随同现场信息的恢复,作业所占的主存区域的起始地址也被存放到“基址寄存器”中。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。

《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。

通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。

对加深理解和掌握操作系统相关原理有重要帮助。

2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。

对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。

·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。

·上机后,分析实验结果并写出实验报告。

3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。

实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。

如果程序未能通过,应分析其原因。

二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。

三、实验内容1.开机后,熟悉Windows的界面(桌面、任务栏、开始按钮<点击后出现“开始”菜单>、我的电脑图标、回收站、我的文档)。

linux主存空间分配与回收

linux主存空间分配与回收

在Linux操作系统中,主存空间(内存)的分配和回收是由内核管理的。

当应用程序或系统需要更多的内存时,它们会向内核请求,内核会根据可用内存的情况来分配内存。

同样,当应用程序或系统不再需要某块内存时,它们会将其释放给内核,内核会将其回收以供将来使用。

1. 内存分配:
在Linux中,当一个进程需要更多的内存时,它会调用`malloc()`或`alloc()`等函数。

这些函数会向内核发送请求,要求分配一块指定的内存大小。

内核会查看当前可用内存的情况,并根据需要分配一块内存。

内核分配内存的过程包括以下几个步骤:
* 找到可用的物理内存页框。

* 将页框标记为已分配状态。

* 更新内存管理数据结构。

* 将页框地址返回给进程。

2. 内存回收:
当一个进程不再需要某块内存时,它会调用`free()`或`release()`等函数来释放该内存。

这些函数会将该内存标记为未分配状态,并通知内核回收该内存。

内核回收内存的过程包括以下几个步骤:
* 标记该页框为未分配状态。

* 更新内存管理数据结构。

* 如果该页框中有数据,则将其写回到磁盘或其他存储设备中。

* 将该页框标记为可用状态,以供将来使用。

需要注意的是,Linux采用了先进的内存管理技术,如分页和段页式管理,以及虚拟内存技术等,使得内存的分配和回收更加高效和灵活。

同时,Linux还具有强大的内存监控和管理工具,如`top`、`htop`、`free`等,可以帮助管理员监控和管理系统的内存使用情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

新建云桂铁路操作系统实验报告实验三:主存空间的分配与回收一、实验题目采用可变式分区管理,使用首次或最佳适应算法实现主存的分配与回收二、实验内容主存是中央处理机能直接存取指令和数据的存储器。

能否合理而有效地使用主存,在很大程度上将影响到整个计算机系统的性能。

本实验采用可变式分区管理,使用首次或最佳适应算法实现主存空间的分配与回收。

要求采用分区说明表进行。

三、实验目的通过本次实验,帮助学生理解在可变式分区管理方式下,如何实现主存空间的分配与回收。

提示:(1)可变式分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数是可以调整的。

当要装入一个作业时,根据作业需要的主存量,查看是否有足够的空闲空间,若有,则按需求量分割一部分给作业;若无,则作业等待。

随着作业的装入、完成,主存空间被分割成许多大大小小的分区。

有的分区被作业占用,有的分区空闲。

例如,某时刻主存空间占用情况如图1所示。

表1 空闲区说明表10K20K45K65K110K256K所示。

其中,起始地址指出各空闲区的主存起始地址,长度指出空闲区大小。

状态栏未分配指该栏目是记录的有效空闲区,空表目指没有登记信息。

由于分区个数不定,所以空闲区说明表中应有足够的空表目项,否则造成溢出,无法登记。

同样,再设一个已分配区表,记录作业或进城的主存占用情况。

(2)当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。

有时找到的空闲区可能大于作业需求量,这时应该将空闲区一分为二。

一个分给作业,另一个仍作为空闲区留在空闲区表中。

为了尽量减少由于分割造成的碎片,尽可能分配低地址部分的空闲区,将较大空闲区留在高地址端,以利于大作业的装入。

为此在空闲区表中,按空闲区首地址从低到高进行登记。

为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。

其分配框图如图2所示。

Array图2 首次适应算法分配框图(3)当一个作业执行完时,作业所占用的分区应归还给系统。

在归还时要考虑相邻空闲区合并的问题。

作业的释放区与空闲区的邻接分一下4种情况考虑:A.释放区下邻(低地址邻接)空闲区;B.释放区上邻(高地址邻接)空闲区;C.释放区上下都与空闲区邻接;D.释放区与空闲区不邻接。

首次适应算法回收框图如图3所示。

图3 首次适应算法回收框图若采用最佳适应算法,则空闲区说明表中的空闲区按其大小排序。

有关最佳适应算法的分配和回收框图由学生自己给出。

(4)请按首次(或最佳)适应算法设计主存分配和回收程序。

以图1作为主存当前使用的基础,初始化空闲区和已分配区说明表的值。

学生自己设计一个作业申请队列以及作业完成后的释放顺序,实现主存的分配与回收。

把空闲区说明表的变化情况以及各作业的申请、释放情况显示或打印出来。

为了说明哪些分区是空闲的,必须要有一张空闲区说明表,格式如下表所示:四、代码及运行结果分析Main.javapackage Exp4;import java.util.ArrayList;import java.util.Scanner;public class Main {static Scanner scanner = new Scanner(System.in);static ArrayList<FreeBlock> blockList = new ArrayList<FreeBlock>();static int application;static int adr;static int size;public static void main(String[] args) {initalize();}public static void initalize() {// 将整个存储区作为freeBlock初始化并显示信息FreeBlock freeBlock = new FreeBlock(0, 32767);blockList.add(freeBlock);printAll();print("Please input the way (1-best,2-first):");int way = scanner.nextInt();if (way == 1) {bestClass(); //最佳适应算法} else if (way == 2) {firstClass(); //首次适应算法} else {print("Error!\n");}}public static void bestClass() {int type = getRequest();if (type == 1) {assign(1, application);} else if (type == 2) {accept(adr, size);} else {print("Error!\n");}bestClass();}public static void firstClass() { int type = getRequest();if (type == 1) {assign(2, application);} else if (type == 2) {accept(adr, size);} else {print("Error!\n");}firstClass();}public static void printAll() {print("adr\tend\tsize\n");print("----------------------------\n");for (FreeBlock block : blockList) {block.printME();}}public static int getRequest() {print("Assign or Accept (1-Assign,2-Accept):");int type = scanner.nextInt();if (type == 1) {print("input Application:");application = scanner.nextInt();} else if (type == 2) {print("input adr and size:");adr = scanner.nextInt();size = scanner.nextInt();} else {print("Error!\n");}return type;}public static boolean assign(int p_way, int p_application) { // 判断是否有空闲区if (blockList.isEmpty()) {print("没有任何空闲区域可供分配!\n");return false;}// 按各自的原则查找空闲区if (p_way == 1) {// bestint minSize = 32767;int minIndex = -1;for (FreeBlock block : blockList) {if (block.getSize() <= minSize&& block.getSize() >= p_application) {minSize = block.getSize();minIndex = blockList.indexOf(block);}}if (minIndex == -1) {print("没有符合要求的空闲区域!\n");return false;} else {FreeBlock tempBlock1 = blockList.get(minIndex);if (tempBlock1.getSize() == p_application) {blockList.remove(tempBlock1);printAll();return true;}FreeBlock tempBlock2 = new FreeBlock(tempBlock1.getAdr(),tempBlock1.getSize() - p_application);blockList.set(minIndex, tempBlock2);printAll();return true;}} else if (p_way == 2) {// firstint minAdr = 32766;int minIndex = -1;for (FreeBlock block : blockList) {if (block.getAdr() <= minAdr&& block.getSize() >= p_application) {minAdr = block.getSize();minIndex = blockList.indexOf(block);}}if (minIndex == -1) {print("没有符合要求的空闲区域!\n");return false;} else {FreeBlock tempBlock1 = blockList.get(minIndex);if (tempBlock1.getSize() == p_application) {blockList.remove(tempBlock1);printAll();return true;}FreeBlock tempBlock2 = new FreeBlock(tempBlock1.getAdr(),tempBlock1.getSize() - p_application);blockList.set(minIndex, tempBlock2);printAll();return true;}} else {print("Error!\n");return false;}}public static boolean accept(int p_adr, int p_size) {int p_end = adr + size - 1;// 检查:首地址小于最小地址(0)if (p_adr < 0) {print("错误:首地址小于最小地址(0)!\n");return false;}// 检查:回收空间大于最大空间(32766)if (p_end > 32766) {print("错误:回收空间大于最大空间(32766)!\n");return false;}// 检查:回收空间和空闲空间重叠for (FreeBlock block : blockList) {if (p_adr >= block.getAdr() && p_adr <= block.getEnd()) {print("错误:回收空间和空闲空间重叠!\n");return false;}if (p_end >= block.getAdr() && p_end <= block.getEnd()) {print("错误:回收空间和空闲空间重叠!\n");return false;}}// 检查:前有接续for (FreeBlock block : blockList) {if (p_adr - 1 == block.getEnd()) {block.setSize(block.getSize() + p_size);// 在前有接续的基础上,检查:后有接续for (FreeBlock block2 : blockList) {if (block.getEnd() + 1 == block2.getAdr()) {block.setSize(block.getSize() + block2.getSize());blockList.remove(block2);printAll();return true;}}printAll();return true;}}// 检查:后有接续(前肯定没有接续)for (FreeBlock block : blockList) {if (p_end + 1 == block.getAdr()) {block.setAdr(p_adr);block.setSize(block.getSize() + p_size);printAll();return true;}}// 前后均无接续FreeBlock freeBlock = new FreeBlock(p_adr, p_size); blockList.add(freeBlock);printAll();return true;}public static void print(String printString) {System.out.print(printString);}}FreeBlock.javapackage Exp4;public class FreeBlock {private int adr;private int size;public FreeBlock(int p_adr, int p_size) {adr = p_adr;size = p_size;}public void printME() {System.out.println(this.getAdr() + "\t" + this.getEnd() + "\t"+ this.getSize());System.out.println("----------------------------"); }public int getEnd() {if (size > 0) {return adr + size - 1;} else {return 0;}}public int getAdr() {return adr;}public void setAdr(int adr) {this.adr = adr;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}}最佳适应算法结果首次适应算法结果五、心得体会经过这次实验,对可变式分区管理方式下,如何实现主存空间的分配与回收,有了很深的了解,使用了两种不同的算法,来实现对主存空间的控制,两种算法使用的数据结构相同,只是在分配的时候有差异。

相关文档
最新文档