




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1-3章习题讲解,操作系统的作用,OS的作用可表现在哪几个方面? 解答:1.从一般用户的观点,可把OS看作是用户与计算机硬件系统之间的接口; 2.从资源管理角度看,可把OS视为计算机系统资源的管理者; 3.OS作为系统软件覆盖在裸机之上后,便可获得一台功能显著增强的虚拟机器,因此,OS还有扩充机器的作用。,操作系统的特征,OS有那几大特征?最基本的特征是什么? 解答:基本特征是:并发、共享、虚拟、异步。最基本的特征是:并发和共享,操作系统的发展,操作系统是如何随硬件的发展而发展的? 解答:在真空管时代,对计算机只能进行人工操作,没有操作系统。 在晶体管时代,计算机变得比较可靠,仍然很昂贵,为了提高计算机的利用率,出现了现代操作系统的雏形-单道批处理系统,典型的单道批处理系统有FMS,IBMSYS.,在集成电路时代,计算机速度更快,单道程序不能很好地利用系统资源,因此出现了多道批处理系统,为了满足用户交互使用计算机的需求,又出现了分时系统。多道批处理系统和分时系统的代表分别是IBM System/360 和unix. 随着大规模集成电路发展,个人计算机时代到来,随之出现了CP/M,MS-DOS,Windows等个人计算机系统。,关于进程状态及其转换,有没有这样的状态转换,为什么? 等待运行; 就绪等待 解答:没有。都要经过中间状态: 1.等待状态的进程获得所需的资源后,必须转入就绪状态,直到获得CPU后才能运行。 2.进程在运行过程中才会请求资源,才有可能因请求不到资源而转入等待状态。,一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能。 解答:不一定。可能的情况如下: 1.就绪执行 导致 执行就绪 2.执行阻塞 导致 就绪执行(就绪队列不空) 3.执行就绪 导致 就绪执行(就绪队列不空) 4.阻塞就绪 可能导致 就绪执行 (在抢占方式下,该进程优先级高于当前进程和就绪队列中的所有进程) 作业问题:认为阻塞就绪一定导致就绪执行。,在进行进程切换的时候,所要保存的处理机状态信息有哪些? 解答:通用寄存器 指令计数器 程序状态字 用户栈指针 注意:处理机状态是PCB的一部分,它描述了进程在处理机上执行时的各种信息;当进行进程切换时,处理机中的这些信息统统要被其它进程覆盖,所以必须保存。,关于信号量、P、V操作的基本概念,试从物理概念上说明记录型信号量wait和signal 作业问题: i. 只答出P、V操作的原子性。 ii.只答出P表示申请一个资源,V表示释放一个资源。,解答: 1. P操作意味着请求一个单位的资源; 若减1后S.value0时,表示资源已分配完 毕,故进程调用block原语进行自我阻塞,并被插入到等待队列中。 2. V操作意味着释放一个单位的资源; 若加1后S.value=0,表示等待队列中仍有进程等待该资源,故进程调用wakeup原语唤醒一个等待进程。,关于进程同步,在生产者消费者问题中,如果缺少了signal(full)和signal(empty),对执行结果有何影响? 作业问题: i.认为缓冲区满后会溢出(或缓冲区中原有数据被覆盖)。 ii.认为消费者(或生产者)阻塞就是死锁。 iii.只下结论,缺少分析过程。,Producer: repeat wait(empty) wait(mutex) signal(mutex) until false,Consumer: repeat wait(full) wait(mutex) signal(mutex) signal(empty) until false,(2)Wait(empty) 成功,继续(当缓冲区放满后,生产者进程也阻塞),(3)Wait(mutex)成功,继续,(1)Wait(full)不成功,消费者进程阻塞,考虑若进程按如下顺序推进,则有何结果?,最终出现死锁,在生产者消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果会如何? 作业问题:i.认为signal互换会引起死锁。 ii.缺少分析过程。,交换消费者的两个wait语句,如果进程按如下顺序推进,则出现死锁,Producer: repeat wait(empty) wait(mutex) signal(mutex) signal(full) until false,Consumer: repeat wait(mutex) wait(full) signal(mutex) signal(empty) until false,(1)Wait(empty) 成功,继续,(3)Wait(mutex)失败,生产者进程阻塞,(2)Wait(mutex)成功,继续,(4)Wait(full)失败,消费者进程阻塞,思考:把proceducer中wait(empty)和wait(mutex)交换顺序;把consumer中wait(full)和wait(mutex)也交换顺序,看会发生什么情况。,Producer: repeat wait(mutex) wait(empty) signal(mutex) signal(full) until false,Consumer: repeat wait(mutex) wait(full) signal(mutex) signal(empty) until false,(1)Wait(mutex) 成功,继续,(3)Wait(empty)失败,生产进程阻塞,(2)Wait(mutex)失败,消费进程阻塞,假如缓冲区已满,而且进程按如下顺序推进,也会引起死锁,Producer: repeat wait(empty) wait(mutex) signal(full) signal(mutex) until false,Consumer: repeat wait(full) wait(mutex) signal(mutex) signal(empty) until false,(1)Signal(full)成功,(2)Wait(full)成功,继续,互换signal会不会死锁?,(3)wait(mutex)失败,消费者阻塞,在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。 作业问题: i.只考虑到缓冲区的互斥,忽略了数据采集和数据计算的同步。 ii.照搬生产者-消费者算法。,正确解答: semaphore full=0, empty=1;,Collector: repeat wait(empty); buffer:=data; signal(full); until false;,Computor: repeat wait(full); data:=buffer; signal(empty); until false;,注意:虽然没有采用互斥信号量mutex,却达到了互斥的要求(因为empty和full的变化情况和互斥信号量一致);反过来,只使用互斥信号量mutex却达不到同步的效果。,错误解答: semaphore mutex=1;,Collector: repeat wait(mutex); buffer:=data; signal(mutex); until false;,Computor: repeat wait(mutex); data:=buffer; signal(mutex); until false;,不能满足同步的要求,不好的解答:照搬生产者-消费者算法,Collector: repeat wait(empty); wait(mutex); buffer:=data; signal(mutex); signal(full); until false;,Computor: repeat wait(full); wait(mutex); data:=buffer; signal(mutex); signal(empty); until false;,semaphore mutex=1,full=0,empty=1,试利用记录型信号量写出一个不会死锁的哲学家进餐问题的算法。 作业问题: i.照搬课本上的原算法。,解答一:至多只允许四个人拿起左边的筷子。,Var chopstick:array0,4 of semaphore:=(1,1,1,1,1); Var mutex:semaphore:=1; count:integer:=0; 第i位哲学家的活动可描述为: Repeat if (count4) wait(chopsticki); wait(mutex); count:=count+1; signal(mutex); wait(chopstick(i+1)mod 5); eat; signal(chopsticki); signal(chopstick(i+1)mod 5); Until false;,解答二:奇数号哲学家先拿左筷子,偶数号哲学家先拿右筷子。,Var chopstick:array0,4 of semaphore:=:=(1,1,1,1,1); i为奇数的哲学家: Repeat wait(chopsticki); wait(chopstick(i+1)mod 5); eat; signal(chopsticki); signal(chopstick(i+1)mod 5); Until false;,i为偶数的哲学家: Repeat wait(chopstick(i+1)mod 5); wait(chopsticki); eat; signal(chopstick(i+1)mod 5); signal(chopsticki); Until false;,解答三:仅当左右筷子均可用时,才允许哲学家拿起筷子进餐。,Var chopstick:array0,4 of semaphore:=:=(1,1,1,1,1); 第i位哲学家的活动可描述为: Repeat Swait(chopsticki, chopstick(i+1)mod 5); eat; Ssignal(chopsticki, chopstick(i+1)mod 5); Until false;,选择题,、在计算机系统中配置操作系统的主要目的是(),操作系统的主要功能是管理计算机系统中的(),其中包括()管理和()管理,以及设备管理和文件管理。这里的()管理主要是对进程进行管理。 :()增强计算机系统的功能;()提高系统资源的利用率;()提高系统的运行速度;()合理地组织系统的工作流程,以提高系统吞吐量。 :()程序和数据;()进程;()资源;()作业;()任务。 、:()存储器;()虚拟存储器;()运算器; ()处理机;()控制器。,、操作系统有多种类型: ()允许多个用户以交互方式使用计算机的操作系统,称为(); ()允许多用户将若干个作业提交给计算机系统集中处理的操作系统称为(); ()在()的控制下,计算机系统能及时处理由过程控制反馈的数据,并做出响应。 、:()批处理操作系统; ()分时操作系统; (3)实时操作系统; ()微机操作系统; ()多处理机操作系统。,3、操作系统是一种(),在OS中采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的(), 为实现多道程序设计需要有(),()是事实上的16位微机的单用户单任务OS标准。 :()应用软件; ()系统软件; ()通用软件; ()软件包。 :()灵活性; ()可靠性; ()兼容性; ()利用率。 :()更大的内存; ()更快的CPU; ()更快的外部设备; ()更先进的终端。 :()CP/M; ()MS-DOS; ()OS/2; ()UNIX; ()VMS。,4、从静态角度上看,进程是由 A 、 B 、 C 三部分组成,其中 C 是进程存在的唯一标志。 A,B,C:(1)JCB; (2)PCB; (3)DCB; (4)FCB; (5)程序段; (6)数据段; (7)I/O缓冲区。 5 、进程的三个基本状态是 A 、 B 、 C 。由 A 到 B 是由进程调度所引起;由 B 到 C 是正在执行的进程发生了某事件,使之无法执行而暂停。 A,B,C:(1)挂起; (2)阻塞; (3)就绪; (4)执行。,6、正在执行的进程由于其时间片完而被暂停执行,此时进程应从执行状态变为 A 状态;处于静止阻塞状态的进程,在进程等待的事件出现后,应转变为 B 状态;若进程正处于执行状态时,应终端的请求而暂停下来以便研究其运行情况,这时进程应转变为 C 状态,若进程已处于阻塞状态,则此时应转变为 D 状态。 A,B,C,D: (1)静止阻塞; (2)活动阻塞; (3)静止就绪; (4)活动就绪; (5)执行。,7、从下面对临界区的论述中,选择一条正确的论述。 (1)临界区是指进程中用于实现进程互斥的那段代码。 (2)临界区是指进程中用于实现进程同步的那段代码。 (3)临界区是指进程中用于实现进程通信的那段代码。 (4)临界区是指进程中用于实现共享资源的那段代码。 (5)临界区是指进程中访问临界资源的那段代码。,8、对于记录型信号量,在执行一次P操作时,信号量的值应当 A ;当其值为 B 时,进程应阻塞。在执行V操作时,信号量的值应当 C ;当其值为 D 时,应唤醒阻塞队列中的进程。 A,C:(1)不变; (2)加1; (3)减1; (4)加指定数值; (5)减指定数值。 B,D:(1)大于0; (2)小于0; (3)大于等于0; (4)小于等于0。,9、在生产者消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。它们的初值应分别是 A 、 B 和 C 。 A,B,C:(1)0; (2)1; (3)-1; (4)-n; (5)+n。 10、在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入 send( A , B ); receive( C , B ); A,B,C:(1)sender; (2)receiver; (3)text; (4)message; (5)mailbox。,11.操作系统是一种_ A.系统软件 B.系统硬件C.应用软件D.支援软件 12.多道程序设计是指_ A.在实时系统中并发运行多个程序 B.在分布系统中同一时刻运行多个程序 C.在一台处理机同一时刻运行多个程序 D.在一台处理机上并发运行多个程序,判断题,1.OS的最终目标是管理好软件和硬件资源 2.系统软件指的就是操作系统 3.虚拟机是指硬件外层的软件 4.多道程序设计既在内存中的多个程序并行运行 5. 分时系统中时间片越长越好 6.信号量机构,只能用于进程互斥,不能用于进程同步操作,7.进程的互斥是指两个进程不能同时进入访问同一临界资源的临界区,只能交替执行 8.临界区是指进程中用于实现进程互斥的那段代码 9.进程处于就绪状态,已获得所有运行所需系统资源,只要通过调度原语 调出,即可进入运行状态 10.进程由程序和数据二部分组成 11.并发程序与顺序程序的执行有不同的特性,顺序程序的封闭性和再现 性在并发程序中依然存在,关于死锁,解决死锁的基本方法 预防死锁:事先破坏死锁的必要条件,容易实现,但是资源利用率和系统吞吐量较低。 避免死锁:在资源分配过程中防止系统进入不安全状态,从而避免死锁,实现较难,资源利用率和系统吞吐量最高。 检测死锁与解除死锁:无任何事先限制措施,进程执行过程中也不检测是否安全,允许死锁产生并能清除死锁,实现较难,资源利用率和系统吞吐量高。,(1)该状态是否安全? (2)若P2提出资源请求Request(1,2,2,2)后,系统能否将资源分配给它?,银行家算法(20题),1654,1986,199A,True,True,True,该时刻的状态是否安全?,199A,299A,299A,3CEE,True,True,P2请求(1,2,2,2),尝试分配并判断是否为安全状态,寸步难行呀,不安全,* 红色的数字代表P2进行预分配后的资源状况,作业问题: i.没有正确理解资源向量,认为 1686+0014=1700 ii.认为只要Avail=某个need就是安全的. iii.认为即使Avail=need也能分配并回收资源. 缺少解题过程,关于补充题,3个进程共享4个资源,每个进程至多需要两个资源,问:会不会死锁? 解答一:不会。因为3个进程中必然会有1个进程能够获得2个资源,该进程得以顺利执行完,并释放资源供其余2个进程使用。 作业问题:认为4个资源是不同种类的,故会发生死锁。,解答二:最坏情况下即:每个进程都只获得了一个资源,此时根据银行家算法有:,2,True,3,4,True,True,设三个进程P1, P2, P3, 各按如下顺序执行: 进程P1 进程P2 进程P3 在执行时会不会产生死锁?如果可能,请说明在什么情 况下会产生死锁?并给出一个防止死锁产生的修改办法,P(S1) P(S2) : V(S1) V(S2),P(S3) P(S1) : V(S3) V(S1),P(S2) P(S3) : V(S2) V(S3),让进程按照资源序号递增的顺序请求资源-”破坏环路等待条件“ 进程P1 进程P2 进程P3,P(S1) P(S2) : V(S1) V(S2),P(S1) P(S3) : V(S3) V(S1),P(S2) P(S3) : V(S2) V(S3),补充作业:下表给出作业1,2,3的提交时间和运行时间。采用先来先服务算法、短作业优先以及高响应比调度算法,试问平均周转时间各为多少(小时)?,存储器管理,一、选择题 、存储分配解决多道作业()的划分问题。为了解决静态和动态存储分配,需采用地址重定位,即把()变换成(),静态重定位由()实现,动态重定位由()实现。 : 地址空间 符号名空间 主存空间 虚拟空间 、: 页面地址 段地址 逻辑地址 物理地址 外存地址 设备地址 : 硬件地址变换机构 执行程序 汇编程序 连接装入程序 调试程序 编译程序 解释程序,、提高主存利用率主要是通过()功能实现的。()的基本任务是为每道程序();使每道程序能在不受干扰的环境下运行,主要是通过()功能实现的。 、: 主存分配 主存保护 地址映射 对换 主存扩充 : 逻辑地址到物理地址的变换; 内存与外存间的交换; 允许用户程序的地址空间大于内存空间; 分配内存,、由固定分区方式发展为分页存储管理方式的主要推动力是();由分页系统发展为分段系统,进而又发展为段页式系统的主要动力分别是()和()。 : 提高主存的利用率; 提高系统的吞吐量; 满足用户需要; 更好地满足多道程序运行的需要; 既满足用户要求,又提高主存利用率。 、静态重定位是在作业的()中进行的,动态重定位是在作业的()中进行的。 、: 编译过程; 装入过程; 修改过程; 执行过程,、在首次适应算法中,要求空闲分区按()顺序链接成空闲分区链;在最佳适应算法中按()顺序链接成空闲分区链;在最坏适应算法中按()顺序链接成空闲分区链。 : 空闲区地址递增; 空闲区首址递减; 空闲区大小递增; 空闲区大小递减。 、回收内存时可能出现下述四种情况: 释放区与插入点前一分区F1相邻,此时应(); 释放区与插入点后一分区F2相邻,此时,应(); 释放区不与F1和F2相连,此时应()。 : 为回收区建立一分区表项,填上分区的大小和始址; 以F1为分区的表项作为新表项且不做任何改变; 以F1为分区的表项作为新表项,修改新表项的大小; 以F2为分区的表项作为新表项,同时修改新表项的大小和始址。,、对重定位存储管理方式,应(),当程序执行时,是由()与()中的()相加得到(),用()来访问内存。 : 在整个系统中设置一重定位寄存器; 为每道程序设置一重定位寄存器; 为每个程序设置两个重定位寄存器; 为每个程序段和数据段都设置一重定位寄存器 : 物理地址; 有效地址; 间接地址; 起始地址,、对外存对换区的管理应以()为主要目标,对外存文件区的管理应以()为主要目标。 、: 提高系统吞吐量; 提高存储空间的利用率; 降低存储费用; 提高换入换出速度。 、从下列关于虚拟存储器的论述中,选出一条正确的论述。 要求作业运行前,必须全部装入内存,且在运行中必须常驻内存; 要求作业运行前,不必全部装入内存,且在运行中不必常驻内存; 要求作业运行前,不必全部装入内存,但在运行中必须常驻内存; 要求作业运行前,必须全部装入内存,且在运行中不必常驻内存;,、在请求分页管理页表中增加了若干项,其中状态位供()参考;修改位供()时参考;访问位供()时参考;外存地址供()参考。 : 分配页面; 置换算法; 程序访问; 换出页面; 调入页面。 、在UNIX方式下的请求分页系统中,凡未装入过内存的页都应从()调入;已运行过的页主要是从()调入,有时也可从()获得。 : 系统区; 文件区; 对换区; 页面缓冲池。,、在请求分页系统中有着多种置换算法: 选择最先进入内存的页面予以淘汰的算法称为(); 选择在以后不再使用的页面予以淘汰的算法称为(); 选择自上次访问以来所经历时间最长的页面予淘汰的算法称为(); 选择自某时刻开始以来,访问次数最少的页面予以淘汰的算法称为()。 : FIFO算法; OPT算法; LRU算法; NRN算法; LFU算法。,、静态链接是在()到某段程序时进行的,而动态链接是在()到某段程序时进行的。 、: 编译; 装入; 调用; 紧凑。 、一个计算机系统的虚拟存储器的最大容量是由()确定的,其实际容量是由()确定的。 、: 计算机字长; 内存容量; 硬盘容量; 内存和硬盘容量之和; 计算机的地址结构,、从下列关于虚拟存储器的论述中,选出两条正确的论述。 在段页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间。 在段页式系统中,以段为单位管理用户的虚空间,以页为单位管理内存空间。 为提高请求分页系统中内存利用率,允许用户使用不同大小的页面。 在虚拟存储器中,为了能让更多的作业同时运行,通常只应装入的作业后便启动运行。 实现虚拟存储器的最常用的算法,是最佳适应算法。 由于有了虚拟存储器,于是允许用户使用比内存更大的地址空间。,7、以动态分区式内存管理中,倾向于优先使用低址部分空闲区的算法是();能使内存空间中空闲区分布较均匀的算法是();每次分配时把既能满足要求,又是最小的空闲区分配给进程的算法是()。 : 最佳适应法; 最坏适应法; 首次适应法; 循环适应法。,8、某虚拟存储器的用户编程空间共个页面,每页,主存为。假定某时刻该用户页表中已调入主存的页面的虚页号和物理页号对照表如下: 则下面与虚地址相对应的物理地址为(若主存中找不到,即为页失效) 虚地址 物理地址 0A5CH() 1A5CH() 虚拟存储器的功能 由()完成。在虚拟存储器中,采用()提高()的速度。 、: 页失效; 1E5C(H); 2A5C(H); 165C(H); 125C(H); 1A5C(H)。 : 硬件; 软件; 软硬件结合。 : 高速辅助存储器; 高速光盘存储器; 快速通道; 高速缓冲存储器。 : 连接编译; 虚空间分配; 动态地址翻译; 动态链接,二、填空题 、在连续分配方式中可通过来减少内存零头,但此时必须将有关程序和数据进行;而是一种允许作业在运行中、在内存中进行移动的技术。 、分段保护中的越界检查是通过中存放的和段表中的实现。 、实现进程对换应具备、三方面的功能。 、采用对换方式在将进程换出时,应首先选择处于且的进程换出内存;在进行换入时,应选择处于状态且的进程换入。 、若对换是以为单位,则称为整体对换;若对换是以或为单位,则称为部分对换。,、在分页系统中若页面较小,虽有利于,但会引起;而页面较大,虽有利于,但会引起。 、在分页系统中的地址结构可分为和两部分;在分段系统中的地址结构可分为和两部分。 、在分页系统中,必须设置页表,其主要作用是实现到的映射。 、在分页系统中进行地址变换时,应将页表寄存器中的和进行相加,得到该页的页表项位置,从中可得到。 、在两级页表结构中,第一级是,其中每一项用于存放相应的,通常每个页表的长度为,、在分页系统中为实现地址变换而设置了页表寄存器,其中存放了和;在进程未运行时,它们存放在中。 、在页表中最基本的数据项是;在段表中最基本的数据项是和。 、页是信息的单位,进行分页是出于的需要;段是信息的单位,进行分段是出于的需要。 、虚拟存储器的基本特征是和,因而决定了实现虚拟存储器的关键功能是和功能。 、为实现请求分页管理,应在页表中增加、 、 、几顶。 、在请求分页方式中,内存分配有和两种策略。,、在请求分页系统中的调页策略有,它是以预测为基础;另一种是,由于较易实现,故目前用得较多。 、为实现段的共享,系统中应设置一张共享段表,其中包含、各等数据项。,主要功能 1.创建进程时,为进程分配内存。 2.撤销进程时,回收进程所占用的内存 3.打印某一时刻内存的使用情况。 4.动态改变内存的大小。 /为了使系统更完善,可根据自己的情况补充其它功能。,内存空闲分区的描述 /*描述空闲分区的数据结构*/ struct free_area_type int size; int start_addr; struct free_area_type *next; ; /*指向内存中空闲分区链表的首指针*/ struct free_area_type *free_area;,空闲分区的大小,空闲分区的起始地址,用于形成空闲分区链,描述已分配的内存块 /*分配给进程的分区的描述*/ struct allocated_area int pid; int size; int start_addr; struct allocated_area *next; ; /*进程分配内存块链表的首指针*/ struct allocated_area *allocated_area = NULL;,进程标识符,分区的大小,分区的起始地址,常量定义 #define MIN_SLICE 10 /*最小碎片的大小*/ #define DEFAULT_MEM_SIZE 1024 /*默认内存的大小*/ #define DEFAULT_MEM_START 0 /*默认内存的起始位置*/ /* 内存分配算法 */ #define MA_FF 1 #define MA_BF 2 #define MA_WF 3 int mem_size=DEFAULT_MEM_SIZE; /*内存大小*/ int ma_algorithm = MA_FF; /*当前分配算法*/ static int pid = 0; /*初始pid*/ int flag = 0; /*设置内存大小标志*/,init_free_block(int mem_size),/*初始化空闲块,默认为一块,可以指定大小及起始地址*/ struct free_block_type* init_free_block(int mem_size) struct free_block_type *fb; 利用malloc函数配描述空闲分区所需的结构体空间; if(fb=NULL) printf(“No memn“); return NULL; fb-size = mem_size; fb-start_addr = DEFAULT_MEM_START; fb-next = NULL; return fb; ,set_mem_size();,/*设置内存的大小*/ set_mem_size() int size; 根据标志flag判断是否已经设置过内存大小,如果已经设置,返回; printf(“Total memory size =“); scanf(“%d“, ,set_algorithm(),/* 设置当前的分配算法 */ set_algorithm() int algorithm; printf(“t1 - First Fitn“); printf(“t2 - Best Fit n“); printf(“t3 - Worst Fit n“); scanf(“%d“, ,rearrange_BF(),/*按BF算法重新整理内存空闲块链表*/ rearrange_BF() /请自行补充 ,rearrange_WF(),/*按WF算法重新整理内存空闲块链表*/ rearrange_WF() /请自行补充 ,int allocate_mem (struct allocated_block *ab),/*分配内存模块*/ int allocate_mem(struct allocated_block *ab) struct free_block_type *fbt, *pre; int request_size=ab-size; fbt = pre = free_block; while(fbt!=NULL) if(fbt-size=request_size)/*分配后空闲空间足够大,则分割*/ /自行补充* else/*分割后空闲区成为小碎片,一起分配*/ /自行补充* return 1; pre = fbt; fbt = fbt-next; return -1; ,int free_mem (struct allocated_block *ab),/*将ab所表示的分区归还,并进行可能的合并*/ int free_mem(struct allocated_block *ab) int algorithm = ma_algorithm; struct free_block_type *fbt, *pre, *work; 新生成一个free_block_type节点,根据ab.size和ab.addr的值确定该节点的信息,并让fbt指向这个新节点; /*插入到空闲区链表的头部并将空闲区按地址递增的次序排列*/ fbt-next = free_block; free_block=fbt; rearrange(MA_FF);,int free_mem (struct allocated_block *ab) -cont,fbt=free_block; while(fbt!=NULL) work = fbt-next; if(work!=NULL) 如果当前空闲区与后面的空闲区相连,则合并两个分区; continue; fbt = fbt-next; rearrange(algorithm); /*重新按当前的算法排列空闲区*/ return 1; ,如何判断是否相接: fbt-start_addr+fbt-size = work-start_addr 如何合并?自己完成,display_mem_usage(),/* 显示当前内存的使用情况,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训学校合并方案(3篇)
- 拆迁地块利用方案(3篇)
- 广告投放竞价方案(3篇)
- 楼体加固打桩方案(3篇)
- 车位改建方案(3篇)
- 么重整方案(3篇)
- 砖墙破损补救方案(3篇)
- 沈阳城市学院《牙体病学》2023-2024学年第二学期期末试卷
- 汽车店礼品采购方案(3篇)
- 船舶室内清洁方案(3篇)
- 华南理工综评机测试题(一)
- 浙江省杭州市临平区2023-2024学年五年级下学期期末语文试卷
- 智能仓库与仓储管理自动化
- 2024-2025部编人教版2二年级语文下册全册测试卷【共10套附答案】
- 第一课能源史简介
- 医疗器械仓库管理课件
- 2024年火电电力职业技能鉴定考试-600MW超临界机组运行笔试参考题库含答案
- 2024年全国工会财务知识大赛备赛试题库500(含答案)
- 24春国家开放大学《地域文化(本)》形考任务1-4参考答案
- 茯苓规范化生产技术规程
- 关于深圳的英语作文
评论
0/150
提交评论