文件系统存储空间管理模拟
- 格式:doc
- 大小:151.50 KB
- 文档页数:8
操作系统复习题1一、判断题1.分时系统中,时间片设置得越小,则平均响应时间越短。
()2.多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。
()3.一个进程的状态发生变化总会引起其他一些进程的状态发生变化。
()4.在引入线程的OS中,线程是资源分配和调度的基本单位。
()5.信号量的初值不能为负数。
()6.最佳适应算法比首次适应算法具有更好的内存利用率。
()7.为提高对换空间的利用率,一般对其使用离散的分配方式。
()8.设备独立性是指系统具有使用不同设备的能力。
()9.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随即存取。
()10.访问控制矩阵比访问控制表更节约空间。
()二、选择题1.在设计分时操作系统时,首先要考虑的是(A);在设计实时操作系统时,首先要考虑的是(B);在设计批处理系统时,首先要考虑的是(C)。
A,B,C :(1)灵活性和适应性;(2)交互性和响应时间;(3)周转时间和系统吞吐量;(4)实时性和可靠性。
2.对一个正在执行的进程:如果因时间片完而被暂停执行,此时它应从执行状态转变为(D)状态;如果由于终端用户的请求而暂停下来,则它的状态应转变为(E)状态;如果由于得不到所申请的资源而暂停时下来,则它的状态应转变为(F)状态。
D,E,F:(1);静止阻塞(2);活动阻塞(3);静止就绪(4);活动就绪(5)执行。
3.我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用(G);为照顾紧急作业用户,应采用(H);为能实现人机交互,应采用(I);而能使短作业、长作业和交互作业用户满意时,应采用(J)。
G,H,I,J:(1);FCFS调度算法(2);短作业优先调度算法;(3)时间片轮转算法;(4)多级反馈队列调度算法;(5)基于优先权的剥夺调度算法。
4.由固定分区发展为分页存储管理方式的主要推动力是(K);由分页系统发展为分段系统,进而发展为段页式系统的主要动力分别是(L)和(M)。
山东专升本计算机科学与技术(综合一)模拟试卷5(题后含答案及解析)题型有:1. 操作系统 2. 微机原理与接口技术操作系统填空题1.从资源管理和用户接口的观点来看,操作系统的五大基本功能是:处理机管理、存储管理、设备管理、文件系统管理、_______。
正确答案:用户接口2.从系统的角度看,作业则是一个比程序更广的概念。
它由程序、数据和_______组成。
正确答案:作业说明书3.所谓的多道程序的_______是指在宏观上是同时进行的,但在微观上仍是顺序执行的过程。
正确答案:并发执行解析:并发性是指若干个进程在同一个时间间隔内都能得到执行,但是也不一定执行完,从宏观上看这些进程是在一起执行,但实际上从微观上看他们又不能在同一时刻运行。
4.引入中级调度的目的是为了起到提高_______的利用率和系统吞吐量的作用。
正确答案:内存解析:使那些暂时不能运行的进程不再占用宝贵的内存资源,而将他们调至外存去等待。
把此时的进程状态传给就绪驻存或者挂起状态。
5.如果系统中有N个进程,等待进程最多_______个,最少_______个。
正确答案:n 06._______是指把逻辑地址转换为物理地址。
正确答案:地址重定位7.文件目录主要是为了解决文件重命名和_______而被广泛使用的。
正确答案:提高文件检索速度8.内中断主要指在处理机和内存内部产生的中断。
内中断一般称为_______,它包括程序运算引起的各种错误,如地址非法、校验错误等。
正确答案:陷阱9.可变分区方式管理主存时,往往采用_______重定位方式来实现地址转换,正确答案:动态解析:将原来多个分散的小分区拼接成一个大分区的方法,,每次拼凑后,都必须对移动了的程序或数据进行重定位。
名词解释10.操作系统正确答案:用以控制和管理系统资源,方便用户使用计算机的程序的集合。
11.进程控制块(pcb)正确答案:系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。
操作系统文件管理系统模拟实验在计算机科学中,操作系统是一种系统软件,负责管理计算机硬件和软件资源,并为用户和应用程序提供接口。
文件管理系统是操作系统的一个重要组成部分,它负责管理计算机系统中的文件和目录,以及提供对它们的访问和操作。
本次实验旨在模拟操作系统中文件管理系统的基本功能和操作。
我们将使用一个虚拟的文件系统,通过命令行界面来模拟用户与文件系统的交互。
以下是实验的具体内容和步骤:1. 创建虚拟文件系统首先,我们需要创建一个虚拟的文件系统。
文件系统由文件和目录组成,可以通过树状结构来表示。
我们可以使用一个数据结构来模拟文件系统的存储和管理。
2. 初始化文件系统在开始操作文件系统之前,我们需要初始化文件系统。
这包括创建根目录和设置当前目录为根目录。
3. 文件和目录的创建与删除文件和目录是文件系统的基本单位。
我们可以通过命令来创建和删除文件和目录。
例如,使用"mkdir"命令创建一个目录,使用"touch"命令创建一个空文件,使用"rm"命令删除文件或目录。
4. 文件和目录的访问权限文件和目录可以设置不同的访问权限,以保护文件系统的安全性。
我们可以使用"chmod"命令来修改文件或目录的权限。
权限通常包括读、写和执行权限。
5. 文件和目录的重命名和移动我们可以使用"mv"命令来重命名文件或目录,使用"cp"命令来复制文件或目录,使用"mv"命令来移动文件或目录。
6. 文件和目录的查找和显示我们可以使用"ls"命令来显示当前目录下的文件和目录,使用"cd"命令来切换当前目录,使用"pwd"命令来显示当前目录的路径。
此外,我们还可以使用"find"命令来查找文件或目录。
7. 文件和目录的读写操作文件可以被读取和写入。
存储HCIP模拟考试题+参考答案一、单选题(共40题,每题1分,共40分)1、华为 Oceanstor 9000 存储系统采用分层安全维护,不属于应用层安全内容的是哪一项?A、使用 SSH/SFTP 方法来规避不安全的网络通信B、活动记录C、密码系统D、授权和鉴权机制正确答案:A2、Oceanstor 9000 通过 InfoTier 水位阀值来限制文件的存放和重条带化,配置 InfoTier 时选中溢出标识(Spill over),其他参数默认,以下说法正确的是哪一项?A、当已用空间占节点池存储空间总量的 90%时,系统上报容量不足告警B、当已用空间占节点池存储空间总量的 85%时,数据依然可以写入该节点池C、当已用空间占节点池存储空间总量的 85%时,系统上报只读告警D、当已用空间占节点池存储空间总量的 90%时,数据依然可以写入该节点池正确答案:B3、运维工程师 A 查询华为全闪存存储手册关于硬件可信安全启动的过程,下列顺序正确的是()①验证 Grub 的签名公钥②验证软件签名证书状态③验证并加载Grub④验证并加载 OSA、①④②③B、①②③④C、④①③②D、①③②④正确答案:B4、NAS 系统专注对于以下哪种类型的数据存储和管理?A、连接数据块B、小块数据C、文件数据D、大块数据正确答案:C5、备份策略管理不包括:A、备份时间B、备份网络C、备份目标D、备份内容正确答案:B6、使用华为 OceanStor Toolkit V100R001 执行巡检操作,在巡检向导中不包括以下哪一项?()A、选择设备B、选择检查项C、设置检查策略D、导出检查策略正确答案:D7、某企业为提高其重要业务的可靠性,在某数据中心机房 A 和机房 B 部署了本地双活方案,关于此方案,以下哪项说法是正确的:A、机房 A 和机房 B 需要处于同一个故障域中B、两机房间的双活复制网络同时承载存储系统间的数据同步以及心跳信息同步等多种数据C、同一个业务主机到两台双活存储设备的网络类型可以不同D、仲裁服务器必须选用机房 A 或机房 B 中的主机正确答案:B8、对于华为 Oceanstor 9000 系统的数据保护功能的描述,以下哪个选项是不正确的?A、启用物理分域后,单个域内的硬盘或节点故障,将会导致其他域的数据可靠性降级或失效B、Oceanstor 9000 通过 ErasureCode 实现数据的 N+M 冗余存储C、保护级别为 N+ 1 时,集群所需要最少节点数目为 3D、Oceanstor 9000 通过镜像方式实现元数据的冗余存储正确答案:A9、华为 OceanStor 9000 InfoEqualizer 默认支持的自动负载均衡方式是那个?A、轮循B、按节点连接数C、按节点综合负载D、按节点吞吐量正确答案:A10、华为容灾方案中,关于同步远程复制顺序的描述正确的是:1 主存储阵列写 I/O 数据到主 LUN,并发送 IO 到从 LUN2 主机发送 IO 到主存储阵列。
简单文件系统模拟实验实验目的通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统功能和实现过程的理解。
实验内容▪在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件系统。
在退出这个简单文件系统时,应将该虚拟文件系统保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘上。
▪文件存储空间的分配可以采用显式链接分配或其它方法。
▪空闲空间的管理可以选择位示图或其它方法。
如果采用位示图来管理文件存储空间,并采用显式链接分配方式,可以将位示图合并到FAT中。
▪文件目录结构采用多级目录结构。
为简单起见,可以不使用索引结点,其中的每个目录项包含文件名、物理地址、文件长度等信息,还可以通过目录项实现对文件读和写的保护。
▪要求提供以下有关的文件操作:✧Format:对文件存储器进行格式化,即按照文件系统的结构对虚拟磁盘空间进行布局,并在其上创建根目录以及用于管理文件存储空间等的数据结构。
✧Mkdir:用于创建子目录。
✧Rmdir:用于删除子目录。
✧Ls:用于显示目录。
✧Cd:用于更改当前目录。
✧Create:用于创建文件。
✧Open:用于打开文件。
✧Close:用于关闭文件。
✧Write:用于写文件。
✧Read:用于读文件。
✧Rm:用于删除文件。
数据结构设计磁盘:整个磁盘为一个char数组,数组中的每一个元素当做是一个扇区,每个扇区可以存储1个字节的信息,簇大小为8字节。
FAT表:存储的是指定编号的簇的下一个簇的编号是什么,因为文件是有可能分散在很多的簇里。
文件和文件夹链表:设计为静态链表,每个文件夹都会有一个子目录列表,存在链表中。
文件和目录表:文件和目录相同对待,信息存放在文件目录表中,为一个数组类型。
以上所有的信息存放在一个fs结构体中,所有的结构都为静态实现,所以需要将文件系统存放到磁盘中的时候只需要将整个结构体以二进制性质存放到文件中或者是将从文件中以二进制形式读取。
《操作系统》模拟试题及答案第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.为了启动读卡机、磁带机、打印机等设备进行工作,必须配置控制设备工作的程序,这种例行子程序被称为()。
A.汇编程序B.管理程序C.设备驱动程序D.操作系统2.能使计算机系统接收到信号后及时进行处理,并且在严格的规定时间内处理结束,再给出反馈信号的操作系统称为()。
A.批处理操作系统B.网络操作系统C.分布式操作系统D.实时操作系统3.操作系统结构设计中,层次结构法的最大特点是()。
A.便于调试B.把整体问题局部化C.结构清晰D.利于功能的增加、删减和修改4.“访管指令”是一条()。
A.在目态下执行的指令B.在管态下执行的指令C.在目态和管态下都可执行的指令D.不可单独执行的指令5.在UNIX系统中,cat命令的功能是()。
A.用来切换当前工作目录B.删除一个空目录C.用来显示ASCII码编写的文本文件D.用来实现分屏显示6.进程状态变化不包括()。
A.运行态→等待态B.等待态→就绪态C.运行态→就绪态D.等待态→运行态7.常用的进程调度算法不包括()。
A.先来先服务调度算法B.最高优先级调度算法C.时间片轮转调度算法D.均衡调度算法8.UNIX系统采用的进程调度算法是()。
A.时间片轮转法B.动态优先数调度算法C.分级调度算法D.响应比高者优先法9.操作系统的存储管理对象是()。
A.寄存器B.辅助存储器C.高速缓冲存储器D.主存储器10.静态重定位的相对地址转换成绝对地址发生在()。
A.程序入主存储器时B.程序入CPU时C.程序回存磁盘空间时D.程序编译时11.在单用户连续存储管理方案中,用来存放用户区起始地址的寄存器是()。
A.下限寄存器B.界限寄存器C.基址寄存器D.限长寄存器12.因页面调度算法选用不合适,出现页面频繁被调入调出的现象被称为()。
计算机专业基础综合(文件管理)模拟试卷3(题后含答案及解析) 题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.UNIX系统中,文件存储器的管理采用的是( )。
A.位图法B.空闲块表法C.成组链接法D.单块连接法正确答案:C 涉及知识点:文件管理2.只适合顺序存取,不提供随机存取功能的存储介质是( )。
A.磁盘B.磁鼓C.磁带D.光盘正确答案:C 涉及知识点:文件管理3.对磁盘请求重新排队的目的是( )。
A.重置移臂时间B.让优先级高的进程先I/OC.减少传输时间D.减少旋转时间正确答案:D 涉及知识点:文件管理4.下列不便于文件扩充的物理文件结构是( )。
A.连续文件B.串联文件C.索引文件D.多重索引文件正确答案:A 涉及知识点:文件管理5.在文件系统中,文件的不同物理结构有不同的优缺点。
在下列文件的物理组织结构中,不具有直接读写文件任意一个记录的能力的结构是( )。
A.连续文件B.串联文件D.逻辑文件正确答案:B 涉及知识点:文件管理6.文件系统为每个文件另建立一张指示逻辑记录和物理记录之间的对应关系表,由此表和文件本身构成的文件是( )。
A.连续文件B.串联文件C.索引文件D.逻辑文件正确答案:C 涉及知识点:文件管理7.在磁盘上,最容易导致存储碎片发生的物理文件结构是( )。
A.隐式链接B.顺序存放C.索引存放D.显式链接正确答案:B解析:本题考查物理文件结构的特点。
顺序文件的优点是在顺序存取时速度较快,因为这类文件往往从头至尾依次顺序存取。
但是也存在缺点,首先要求在存储文件时确定文件的长度,依此来分配相应的存储空间,这样会造成在寻找存储空间时耗时较多,一旦没有足够的存储空间来存放该文件时会造成文件存储的失败。
其次,顺序文件不便于文件的扩充,在实际工作中,文件的长度往往会改变,可能会变长,也有可能变短。
<<计算机操作系统原理>>作业练习一一, 填空题(54’)1. 人们可以从不同的角度对操作系统加以理解:操作系统可看作一台“( )”;操作系统又可看作( )管理器;操作系统还是用户与计算之间的( )。
它为用户提供了两种使用操作系统的方式:( )方式和( )方式。
2. 在分时系统中使用了( )技术来处理多个交互的进程。
在分时系统中( )的时间被多个用户分享。
多个用户通过终端(Terminal)同时访问系统。
3. 系统调用指运行在用户态的应用程序请求( )的一种手段,是一种特殊的过程调用。
4. 进程是一个( )的程序。
进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。
5. 所谓原语,是操作系统内核中,由若干条指令构成、用于完成一个特定的功能的一个过程,该过程在执行时是不可( )的。
6. 产生死锁的四个必要条件: ( ),( ),( ),( ).7. 用于决定哪些作业有执行资格的调度称为( )调度。
8. 计算机存储器层次结构中, 若干千字节(KB)非常快速、昂贵、易变的称为( ); 若干兆字节(MB)的中等速度、中等价格、易变的主存储器,简称为( ); 若干千兆字节(GB)的低速、价廉、不易变的磁盘组成,简称为( )。
9. 确I/O操作的四种控制方式是: 1.( )控制方式, 2.( )控制方式, 3.( )控制方式, 4.( )控制方式。
10. 文件是被命名的相关联的( )集合体,它通常在外存(如磁盘)上,可以作为一个独立单位被存放并实施相关操作(如:打开、关闭、读、写等)。
二, 问答题(30’)1. 怎样考虑死锁预防?2. 选择调度算法时应考虑什么因素?3. 实现虚拟存储器的基本原理是什么?三, 程序题(16’)仔阅读下列程序, 在[ ]括号内填入程序行:下面是利用信号量机制(P,V操作)解决生产者-消费者问题的程序struct semaphore s,empty,full=1,n,0; message buffer[n]; int in,out=0,0;Cobegin /* 用s对临界区实行互斥*/void produce_i(void) void consume_j(void){ message x; { message y;while(TRUE) { while(TRUE) {produce a new message into x; [ ]; [ ]; [ ];[ ]; y=buffer[out]; out=(out+1) mod n;buffer[in]=x; in=(in+1) mod n; [ ];[ ]; [ ]; [ ]; consume message y; } }} }Coend<<计算机操作系统原理>>作业练习二一, 填空题(54’)1. 在批处理方式中,一个用户程序及其所需要的数据和操作命令的总和称为一个( ).2. 所谓( ),实质上是一个功能单一、结构简单的I/O处理器,它独立于CPU并直接控制外设与内存进行数据传输。
了解电脑的文件系统与磁盘管理电脑文件系统是操作系统中负责管理和组织文件的一部分,而磁盘管理则是操作系统对于磁盘存储空间的分配和控制。
本文将详细介绍电脑文件系统与磁盘管理的基本概念、功能以及常见的文件系统和磁盘管理方式。
一、文件系统的概念与功能1. 文件系统的概念电脑文件系统是指操作系统通过管理和组织文件来提供数据存储和访问的一种机制。
它将磁盘上的数据分成文件,并为用户提供了对于这些文件的操作和管理方式。
2. 文件系统的功能文件系统的功能主要包括数据存储、数据组织和数据访问等方面。
它可以实现数据的存储和读写、文件的创建和删除、文件夹的创建和管理等操作。
二、常见的文件系统1. FAT文件系统FAT(File Allocation Table)文件系统是一种最早被广泛应用的文件系统。
它通过记录文件的分配情况来管理磁盘空间,具有兼容性好、存储效率高等特点。
然而,FAT文件系统不支持大容量磁盘和文件,逐渐被新一代文件系统所取代。
2. NTFS文件系统NTFS(New Technology File System)文件系统是被Windows操作系统广泛采用的一种文件系统。
它支持大容量磁盘和文件,具有更好的安全性和稳定性,支持文件和文件夹的权限控制,能够有效防止数据丢失和损坏。
3. EXT文件系统EXT(Extended File System)是Linux操作系统中常用的文件系统类型,目前已经发展到第四个版本(EXT4)。
EXT文件系统具有较好的性能和稳定性,支持大容量磁盘和文件,同时也支持文件和文件夹的权限控制。
三、磁盘管理的概念与方式1. 磁盘管理的概念磁盘管理是指操作系统对于磁盘存储空间的分配和控制。
它负责将磁盘分成若干个逻辑分区,并为每个分区分配一个文件系统,以方便用户对磁盘上的数据进行存储和读写。
2. 基本磁盘管理方式(1)磁盘分区:将磁盘划分为几个逻辑分区,每个分区相当于一个独立的磁盘,可以独立进行格式化和管理。
实验报告课程名称操作系统实验名称文件系统存储空间管理模拟专业班级计1001 姓名郭军涛学号201007010108 实验日期2013.06.20 成绩指导教师王潇潇一、实验内容1. 模拟文件空间分配、释放过程,可选择连续分配、链式分配、索引分配方法;2. 文件空闲空间管理,可采用空白块链、空白目录、位示图方法;二、实验要求及原理根据提出的文件分配和释放请求,动态显示磁盘空闲空间的状态以及文件目录的变化,以位示图和索引分配为例:每次执行请求后要求显示或打印位示图的修改位置、分配和回收磁盘的物理块地址、更新的位示图、目录。
地址过程;用数组表示位示图,其中的每一位对应磁盘一个物理块的状态,0表示、空闲,1表示分配;当请求分配一个磁盘块时,寻找到数组中为0的位,计算相对磁盘块号,并计算其在磁盘中的物理地址(柱面号、磁道号、物理块号),并将其状态由0变到1。
当释放某一物理块时,已知其在磁盘中的物理地址,计算其相对磁盘块号,再找到位示图数组中的相应位,将其状态由1变为0。
三、实验步骤1. 输入磁盘基本信息参数,计算位示图大小,并随机初始化位示图;(1)磁盘基本信息:磁盘柱面数m, 每柱面磁道数p, 每磁道物理块数q;(2)假设采用整数数组存放位示图,则数组大小为:Size= ceil((柱面数*每柱面磁道数*每磁道物理块数)/ (sizeof(int)*8))(3)申请大小为size的整数数组map,并对其进行随机初始化。
例如:假设m=2, p=4, q=8, 共有64个磁盘块,若sizeof(int)=2, 则位示图大小为4,map[4]如下:位示图中每一位对应的相对磁盘块号如下图,磁盘块号由小到大对应于数组的低地址到高地址位上。
即map[0]的第0位到第15位分别对应0号磁盘块到15号磁盘块的状态,map[1]的第0位到第15位对应16号磁盘块到31号磁盘块的状态,以此类推。
如上表所示, 29号磁盘的状态存在map[1]中,对应于第13位;2. 输出初始位示图信息;3. 输入文件分配或释放请求,(1)格式:“+ 文件名申请块数”或“ - 文件名”“+”表示申请文件分配,“-”表示删除文件如: + F1 54. 根据请求完成相应操作。
(1)若为分配申请x个盘块,则在位示图中找到x个为0的位,将其修改为“1”,计算相应具体物理设备的柱面号C、磁道号H和物理块号R,并将CHR地址或相对磁盘块号记录在文件目录中。
输出位示图修改位置、分配的磁盘块CHR地址、修改后的目录和位示图信息。
否则,空间不够,退出执行下一条请求;计算公式如下:a. 已知位示图中的下标i , j, 计算相对块号Block= i*sizeof( int )*8+jb. 已知相对块号计算柱面、磁道、物理块号如下:柱面号 C= 相对块号/(每柱面磁道数*每磁道物理块数)磁道号 H= 相对块号%(每柱面磁道数*每磁道物理块数)/ 每磁道物理块数物理块号 R= 相对块号%每磁道物理块数文件目录如下(以索引表分配为例):(2)若为删除申请,则从目录中找到要删除的文件所在的目录项,读取索引表,依次读取文件相应的盘块CHR地址, 计算该盘块的相对磁盘块号,再计算其相应信息在位示图中的位置( i,j),将位示图中的相应位有“1”改为“0”,并从目录中删除该目录项。
输出删除的磁盘块CHR地址、相应位示图修改位置、修改过的位示图和目录。
计算过程如下:相对磁盘块号 = 柱面号*每柱面磁道数*每磁道物理块数+磁道号*每磁道物理块数+ 物理块号i = 相对磁盘块号/ (sizeof(int)*8)j = 相对磁盘块号% (sizeof(int)*8)四、源程序代码#include <iostream>#include <stdlib.h>using namespace std;struct AllocatedSpace //已分配内存空间结构体{int start_address;int length;char job;struct AllocatedSpace *next;};struct FreeSpace //未分配内存空间结构体{int start_address;int length;struct FreeSpace *next;};struct AllocatedSpace *allocated_header;struct FreeSpace *free_header;struct FreeSpace *freenext;void allocatememory() //分配内存函数{char jobname;int joblength;int min,l=0;cout<<"请输入作业名(一个字母):\n";cin>>jobname;cout<<"请输入作业长度(整数):\n";cin>>joblength;struct FreeSpace *w=free_header;struct FreeSpace *p=free_header; //指向第一个可以分配的空闲结点p=p->next;struct FreeSpace *s=free_header; //指向p的前一个结点struct AllocatedSpace *t=allocated_header;while(p->length<joblength) //p指向第一个可以分配的空结点{p=p->next;if(p==NULL)break;}if(p==NULL)cout<<"无法分配!\n";else{w=p;min=p->length-joblength;while(p!=NULL) //现在p指向当前要被切割的结点{if(p->length>joblength)l=p->length-joblength;if(l<min){w=p;min=l;}p=p->next;}struct AllocatedSpace *q=new AllocatedSpace;q->job=jobname;q->length=joblength;q->start_address=w->start_address;while(t->next!=NULL)t=t->next;q->next=t->next;t->next=q;while(s->next!=w)s=s->next;if(w->length==q->length){s->next=w->next;delete w;}else{w->start_address=w->start_address+q->length;w->length=w->length-q->length;}}}void reclaimmemory(){char jobname;cout<<"请输入要回收的作业名:\n";cin>>jobname;struct FreeSpace *p=new struct FreeSpace;//指向当前被创建的空闲结点struct FreeSpace *s=free_header;//指p的前一个结点struct FreeSpace *m=free_header;//指向s的前一个结点struct AllocatedSpace *q=allocated_header;//指向被回收的结点struct AllocatedSpace *t=allocated_header;//指向被回收的结点的前一个结点while(q->job!=jobname)//找到被回收的结点q=q->next;if(q==NULL)cout<<"回收错误,要回收的结点不存在!\n";else{p->length=q->length;p->start_address=q->start_address;while(s->start_address<p->start_address)s=s->next;while(m->next!=s)m=m->next;p->next=s;m->next=p;cout<<"回收成功!\n";}while(t->next!=q)t=t->next;t->next=q->next;delete q;s=free_header;m=free_header;s=s->next;m=m->next;while(m!=NULL){m=m->next;if(m==NULL)break;if(s->start_address+s->length==m->start_address){s->length=s->length+m->length;s->next=m->next;continue;}s=s->next;}}void showmemory(){struct FreeSpace *s=free_header;//指向FreeSpace的头结点,开始往后遍历s=s->next;struct AllocatedSpace *q=allocated_header;//指向AllocatedSpace的头结点,开始往后遍历q=q->next;cout<<"已分配区的情况如下:\n";while(q!=NULL){cout<<"作业名:"<<q->job<<"开始地址:"<<q->start_address<<"长度:"<<q->length<<endl;q=q->next;}cout<<"空闲结点的情况如下:\n";while(s!=NULL){cout<<"开始地址:"<<s->start_address<<"长度:"<<s->length<<endl;s=s->next;}}int main(){int n;allocated_header=new struct AllocatedSpace;free_header=new struct FreeSpace;freenext=new struct FreeSpace;freenext->length=100000;freenext->start_address=0;freenext->next=NULL;free_header->next=freenext;allocated_header->next=NULL;while(1){cout<<"**********************************************************************\n";cout<<" 请输入您要进行的操作:0退出1分配内存2 回收内存3 显示内存状态\n";cout<<"**********************************************************************\n";cin>>n;switch(n){case 0:exit(0);case 1:allocatememory();break;case 2:reclaimmemory();break;case 3:showmemory();break;}}}五、实验结果(截图)。