分页管理的缺页调度—LRU算法
- 格式:doc
- 大小:102.00 KB
- 文档页数:5
1. LRU 页面调度算法总是选择在主存驻留时间最长的页面被淘汰。
()2. 磁盘是共享设备,所以每一时刻可有若干个进程同时与它交换信息。
()3. 分时系统中,时间片设置得越小,则平均响应时间越短。
()4. 多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。
()5. 设备独立性是指系统具有使用不同设备的能力。
()6. 进程A、B共享变量x,需要互斥执行;进程B C共享变量y, B、C也需要互斥执行,因此,进程A、C必须互斥执行。
()7. 为了提高系统资源的利用率,在作业调度的优先级算法中应该规定,计算型作业的优先级较高,I/O 型作业的优先级较低。
()8.I/0 交通管理程序的主要功能是管理主存控制器和通道。
()9. 引入缓冲区能使CPU和I/O设备之间速度不匹配的情况得到改善,但并不能减少设备中断CPU的次数。
()10. 由于设备驱动程序与硬件紧密相关,因此,系统中配备多少个设备就必须配置同样数量的设备驱动程序。
()11. 可以将操作系统看作是一个资源分配器,用来控制I/O 设备和用户的程序。
()12. 死锁的形成只与资源分配策略有关,而与并发进程的执行速度无关。
()13. 在引入线程的操作系统中,线程是资源分配和调度的基本单位。
()14. 分页存储管理方案易于实现用户使用内存空间的动态扩充。
()15. 对临界资源应采取互斥访问方式来实现共享。
()1. 错,原因: 是选择最长时间没有被用的页面被淘汰。
2. 错,原因: 每一时刻只有一个进程与它交换信息。
3. 错,原因:平均响应时间不但与时间片的大小有关,还与其他因素有关。
4. 对5. 错,原因:设备独立性,可使应用程序独立于具体的物理设备和独立于设备的类型6. 错,原因:不传递。
7. 错,原因:I/O 型作业的优先级高。
8. 错,原因:I/O 交通管理程序的主要功能是管理设备、控制器和通道。
9. 错,减少设备中断CPU的次数。
10. 错,一类一种。
操作系统面试题及答案1. 简述操作系统的定义和功能。
操作系统是一种系统软件,是计算机系统的核心组成部分。
它主要有以下功能:- 进程管理:负责创建、调度和终止进程,以及进程间的通信和同步。
- 内存管理:控制内存的分配和回收,并提供虚拟内存机制。
- 文件系统管理:负责文件的组织、存储和访问控制。
- 设备管理:管理和控制系统中的各种硬件设备,如磁盘、打印机等。
- 用户界面:提供与用户交互的接口,如命令行界面或图形界面。
2. 解释进程和线程的区别。
进程是程序的执行实例,拥有独立的地址空间和资源。
一个进程可以包含多个线程,各个线程共享相同的地址空间和资源。
区别:- 线程是进程的一部分,进程是资源分配的最小单位,而线程是CPU调度的最小单位。
- 进程之间相互独立,一个进程的崩溃不会影响其他进程;线程共享进程的资源和上下文,一个线程的错误可能导致整个进程崩溃。
- 进程切换开销较大,包括上下文切换和资源分配;线程切换开销较小,因为线程共享资源。
- 进程间通信需要特殊的机制,如管道、信号量等;线程间通信更简单,可以直接读写共享变量。
3. 什么是死锁?死锁的条件是什么?死锁是指两个或多个进程在执行过程中,由于竞争资源而造成的相互等待的状态,导致无法继续执行。
死锁的条件包括以下四个因素:- 互斥条件:资源不能被共享,只能由一个进程使用。
- 请求与保持条件:进程在申请新的资源的同时,保持已占有的资源。
- 不剥夺条件:进程已获得的资源在未使用完之前不能被强行剥夺。
- 循环等待条件:存在一个进程的资源请求序列,使每个进程都占有下一个进程所需的资源。
4. 解释虚拟内存的概念及其优势。
虚拟内存是一种存储管理技术,它将磁盘空间作为扩展的主存储器,允许程序使用比实际物理内存更大的地址空间。
虚拟内存的优势包括:- 能够运行比实际物理内存更大的程序,提高系统的可用性。
- 允许多个程序同时运行,减少了对物理内存的竞争。
- 实现了内存的共享,不同的进程可以共享同一块内存区域,提高了系统的效率。
一、单项选择题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. 在可变分区分配方案中,将空白分区按地址递增次序排列是要采用______。
操作系统页⾯置换算法(opt,lru,fifo,clock )实现选择调出页⾯的算法就称为页⾯置换算法。
好的页⾯置换算法应有较低的页⾯更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页⾯先调出。
常见的置换算法有以下四种(以下来⾃操作系统课本)。
1. 最佳置换算法(OPT)最佳(Optimal, OPT)置换算法所选择的被淘汰页⾯将是以后永不使⽤的,或者是在最长时间内不再被访问的页⾯,这样可以保证获得最低的缺页率。
但由于⼈们⽬前⽆法预知进程在内存下的若千页⾯中哪个是未来最长时间内不再被访问的,因⽽该算法⽆法实现。
最佳置换算法可以⽤来评价其他算法。
假定系统为某进程分配了三个物理块,并考虑有以下页⾯号引⽤串: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1进程运⾏时,先将7, 0, 1三个页⾯依次装⼊内存。
进程要访问页⾯2时,产⽣缺页中断,根据最佳置换算法,选择第18次访问才需调⼊的页⾯7予以淘汰。
然后,访问页⾯0时,因为已在内存中所以不必产⽣缺页中断。
访问页⾯3时⼜会根据最佳置换算法将页⾯1淘汰……依此类推,如图3-26所⽰。
从图中可以看出⾤⽤最佳置换算法时的情况。
可以看到,发⽣缺页中断的次数为9,页⾯置换的次数为6。
图3-26 利⽤最佳置换算法时的置换图2. 先进先出(FIFO)页⾯置换算法优先淘汰最早进⼊内存的页⾯,亦即在内存中驻留时间最久的页⾯。
该算法实现简单,只需把调⼊内存的页⾯根据先后次序链接成队列,设置⼀个指针总指向最早的页⾯。
但该算法与进程实际运⾏时的规律不适应,因为在进程中,有的页⾯经常被访问。
图3-27 利⽤FIFO 置换算法时的置换图这⾥仍⽤上⾯的实例,⾤⽤FIFO 算法进⾏页⾯置换。
进程访问页⾯2时,把最早进⼊内存的页⾯7换出。
然后访问页⾯3时,再把2, 0, 1中最先进⼊内存的页换出。
目录1 需求分析 (2)1.1 目的和要求 (2)1.2 研究内容 (2)2 概要设计 (2)2.1 FIFO算法 (3)2.2 LRU算法 (3)2.3 OPT算法 (3)2.4 输入新的页面引用串 (3)3 详细设计 (4)3.1 FIFO(先进先出)页面置换算法: (4)3.2 LRU(最近最久未使用)置换算法: (4)3.3 OPT(最优页)置换算法 (4)4 测试 (5)5 运行结果 (5)6 课程设计总结 (9)7 参考文献 (10)8 附录:源程序清单 (10)1 需求分析1.1 目的和要求在熟练掌握计算机虚拟存储技术的原理的基础上,利用一种程序设计语言模拟实现几种置换算法,一方面加深对原理的理解,另一方面提高学生通过编程根据已有原理解决实际问题的能力,为学生将来进行系统软件开发和针对实际问题提出高效的软件解决方案打下基础。
1.2 研究内容模拟实现页式虚拟存储管理的三种页面置换算法(FIFO(先进先出)、LRU (最近最久未使用)和OPT(最长时间不使用)),并通过比较性能得出结论。
前提:(1)页面分配采用固定分配局部置换。
(2)作业的页面走向和分得的物理块数预先指定。
可以从键盘输入也可以从文件读入。
(3)置换算法的置换过程输出可以在显示器上也可以存放在文件中,但必须清晰可读,便于检验。
2 概要设计本程序主要划分为4个功能模块,分别是应用FIFO算法、应用LRU算法、应用OPT算法和页面引用串的插入。
1.1各模块之间的结构图2.1 FIFO 算法该模块的主要功能是对相应页面引用串进行处理,输出经过FIFO 算法处理之后的结果。
2.2 LRU 算法该模块的主要功功能是对相应的页面引用串进行处理,输出经过LRU 算法处理之后的结果。
2.3 OPT 算法该模块的主要功功能是对相应的页面引用串进行处理,输出经过OPT 算法处理之后的结果。
2.4 输入新的页面引用串该模块的主要功能是用户自己输入新的页面引用串,系统默认的字符串是0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,用户可以自定义全新的20个数字页面引用串。
四、计算题1、某虚拟存储器的用户编程空间共32个页面,每页为1KB ,内存为16KB 。
假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:那么逻辑地址0A5C(H)所对应的物理地址是什么?要求:写出主要计算过程。
1.解:页式存储管理的逻辑地址分为两部分:页号和页内地址。
由条件“用户编程空间共32个页面〞,可知页号部分占5位;由“每页为1KB 〞,1K=210,可知内页地址占10位。
由“内存为16KB 〞,可知有16块,块号为4位。
逻辑地址0A5C 〔H 〕所对应的二进制表示形式是:000 1010 0101 1100,根据上面的分析,下划线部分为页内地址,编码 “000 10〞 为页号,表示该逻辑地址对应的页号为2。
查页表,得到物理块号是11〔十进制〕,即物理块地址为:10 11,拼接块内地址10 0101 1100,得10 1110 0101 1100,即2E5C 〔H 〕。
2、对于如下的页面访问序列:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5当内存块数量为3时,试问:使用FIFO 、LRU 置换算法产生的缺页中断是多少?写出依次产生缺页中断后应淘汰的页。
〔所有内存开场时都是空的,凡第一次用到的页面都产生一次缺页中断。
要求写出计算步骤。
〕2.解:采用先进先出〔FIFO 〕调度算法,页面调度过程如下:页面次序 1 2 3 4 1 2 5 1 2 3 4 5主存 页面 情况共产生缺页中断9次。
依次淘汰的页是1、2、3、4、1、2。
采用最近最少使用〔LRU 〕调度算法,页面调度过程如下:3、下表给出了某系统中的空闲分区表,系统采用可变式分区存储管理策略。
现有以下作业序列:96K 、20K 、200K 。
假设用首次适应算法和最正确适应算法来处理这些作业序列,试问哪一种算法可以满足该作业序列的恳求,为什么?空闲分区表页面次序 1 2 3 4 1 2 5 1 2 3 4 5 主存 页面 情况3.解:假设采用最正确适应算法,在申请96K 存储区时,选中的是5号分区,5号分区大小与申请空间大d,-致,应从空闲分区表中删去该表项;接着申请20K 时,选中1号分区,分配后1号分区还剩下12K ;最后申请200K ,选中4号分区,分配后剩下18K 。
计算题:(很多重复的,看看同类型的怎么做就行了)(一)有一计算机系统采用如下图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。
如果盘块从0开始编号,每个盘块的大小为1KB。
(12分)⑴现要为文件分配两个盘块,试具体说明分配过程。
⑵若要释放磁盘的第300块,应如何处理?0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15123456(二)在分页存储管理方式中,地址空间共32位。
问:可访问的内存空间的大小是多少?如果用12位表示页内地址,则系统的一个物理块有多大?一个进程最多能分多少个页?(8分)1、假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘的空闲状态(14分)(1)、请说明在上述条件如何进行磁盘块空闲状态的管理。
(2)、设某单面磁盘的旋转速度为每分钟6000转,每个磁道有100个扇区,相临磁道间的平均移动的时间为1ms。
若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号的请求队列为50,90,30,120对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这个扇区点共需要多少时间?需要给出计算过程。
(二)在请求分页式存储管理方式中,假定系统为某进程分配了四个物理块,页的引用顺序为:7,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1,且采用固定分配局部算法,则若采用最佳置换算法、先进先出页面置换算法、LRU置换算法时分别产生多少次缺页中断?(6分)(一)假定有一个进程A,它的工作流程图如下所示,如果系统中进程只有三种状态(就绪、执行、阻塞),且进程被进程调度选中后就可投入运行,时间片q=200ms,请顺序列出其从开始到结束所经历的状态转化过程,并注明原因。
(6分)开始磁盘I/O请求磁带I/O请求打印请求结束计算250ms 计算50ms 计算200ms 计算150ms(二)设有一分页存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间多大?(6分)(三)有一计算机系统采用如下图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。
概述fifo,opt,lru算法一、算法简介FIFO(FirstInFirstOut,先进先出)、OPT(OptimalPageReplacement)和LRU(LeastRecentlyUsed)算法是三种常见的页面替换算法,用于计算机中的虚拟内存管理。
这些算法在处理内存中数据块的替换时,需要考虑内存的容量、程序的需求以及数据的历史访问情况等因素。
二、算法原理1.FIFO算法:此算法将页面按照进入的顺序依次存放在内存中。
当有新的页面需要被加载时,如果内存中没有该页面,就需要从磁盘上加载。
当所有的页面都按照进入的顺序被加载完毕后,再按照同样的顺序将页面从内存中逐出,以腾出空间存放新的页面。
这种算法简单易行,但过于依赖页面的进入顺序,如果页面进入的顺序不合理,可能会导致频繁的页面替换。
2.OPT算法:此算法在每次需要加载新页面时,会根据一些准则(如最大错误率、最小错误率、最坏情况等)选择一个最优的页面进行替换。
相比于FIFO算法,OPT算法能更好地适应不同的页面访问情况,从而减少页面的替换频率。
然而,由于需要考虑到各种复杂的因素,OPT算法的实现难度相对较高。
3.LRU算法:此算法将最近最少使用的页面替换出内存,以腾出空间存放新的页面。
当有新的页面需要被加载时,如果内存中没有该页面,就需要从磁盘上加载。
而在加载完成后,会将该页面标记为最近最少使用的状态。
这种算法能够有效地提高内存的使用效率,减少页面的替换次数。
三、应用场景这三种算法在许多实际应用场景中都有应用,如操作系统中的虚拟内存管理、缓存系统等。
不同的应用场景可能需要不同的算法来满足特定的需求,如对于需要频繁访问的页面,可能更适合使用LRU算法;而对于访问模式较为固定的场景,可能更适合使用OPT算法。
四、总结FIFO、OPT和LRU算法是虚拟内存管理中常用的页面替换算法,它们各自具有不同的原理和应用场景。
在实际应用中,需要根据具体的需求和场景选择合适的算法,以实现最优的内存管理效果。
操作系统练习题+参考答案一、单选题(共100题,每题1分,共100分)1、若系统中有5个并发进程涉及某个相同的变量A,则变量A的相关临界区由()个临界区构成。
A、1B、3C、5D、6正确答案:C2、在分页虚拟存储管理系统中,采用某些页面置换算法,会出现Belady 异常现象,即进程的缺页次数会随着分配给该进程的页面数量的增加而增加。
下列算法中,可能出现Belady现象的是()。
①LRU算法②FIFO 算法③OPT算法A、仅2B、仅1、2C、仅1、3D、仅2、3正确答案:A3、下列关于管道通信的叙述中,正确的是()。
A、一个管道可以实现双向数据传输B、管道的容量仅受磁盘容量大小的限制C、进程对管道进行读操作和写操作都可能被阻塞D、一个管道只能有一个读进程或一个写进程对其操作正确答案:C4、不属于基本操作系统的是()。
A、网络操作系统B、实时操作系统C、分时操作系统D、批处理操作系统正确答案:A5、采用SPOOLing技术的目的是()。
A、提高独占设备的利用率B、提高程序的运行速度C、提高主机的效率D、减轻用户的编程负担正确答案:A6、在()的控制下,计算机系统能及时处理由过程控制反馈的数据,并作出响应。
A、分时操作系统B、实时操作系统C、批处理操作系统D、多处理机操作系统正确答案:B7、在分页虚拟存储管理中,当发现要访问的页面不在主存时,则由硬件发出()。
A、输入输出中断B、时钟中断C、缺页中断D、越界中断正确答案:C8、()可以用来解决临界区问题。
A、时间片轮转算法B、银行家算法C、LRU算法D、Test正确答案:D9、可变分区存储管理系统中,若采用最佳适应分配算法,“空闲分区表”中的空闲区应该按()顺序排列。
A、地址从大到小B、大小从大到小C、地址从小到大D、大小从小到大正确答案:D10、进程从运行状态转换到阻塞状态可能是由于()。
A、现运行进程执行了signal操作B、现运行进程时间片用完C、现运行进程执行了wait操作D、进程调度程序的调度正确答案:C11、()不是进程的特征。
实验五存储管理(二)学号:姓名:班级:实验目的:1. 了解虚拟存储器。
2. 掌握分页存储管理的原理,熟悉段式存储和段页式存储管理。
3. 掌握常用的页面置换算法。
实验内容:一、选择:1.可变分区方式常用的主存分配算法中,(C)总是找到能满足作业要求的最大空闲区分配A、最佳适应算法B、首次适应算法C、最坏适应算法D、循环首次适应算法2.下列(A )存储方式不能实现虚拟存储器A、分区B、页式C、段式D、段页式3.操作系统处理缺页中断时,选择一种好的调度算法对主存和辅存中的信息进行高效调度尽可能地避免(D)A、碎片B、CPU空闲C、多重中断D、抖动4.分页式存储管理的主要特点是(C)A、要求处理缺页中断B、要求扩充主存容量C、不要求作业装入到主存的连续区域D、不要求作业全部同时装人主存5.LRU页面调度算法淘汰(B)的页A、最近最少使用B、最近最久未使用C、最先进入主存D、将来最久使用6.分区管理要求对每一个作业都分配(A)的主存单元A、地址连续B、若干地址不连续的C、若干连续的页D、若干不连续的帧7.在存储管理中,采用覆盖与交换技术的目的是(A)A、节省主存空间B、物理上扩充主存容量C、提高CPU的效率D、实现主存共享8.分页虚拟存储管理中,缺页中断时,欲调度一页进入主存中,内存己无空闲块,如何决定淘汰已在主存的块时,(B)的选择是很重要的A、地址变换B、页面调度算法C、对换方式D、覆盖技术9.(D)存储管理兼顾了段式在逻辑上清晰和页式在存储管理上方便的优点A、分段B、分页C、可变分区方式D、段页式10.在固定分区分配中,每个分区的大小是(C)A、随作业长度变化B、相同C、可以不同但预先固定D、可以不同但根据作业长度固定11.下述(B)页面置换算法会产生Belady现象A、最佳置换算法B、先进先出算法C、LRU算法D、Clock算法12.在一个分页式存储管理系统中,页表的内容为:若页的大小为4KB,则地址转换机构将相对地址0转换成的物理地址是(A)。
存储器管理一、单项选择题1.下列(A )存储方式不能实现虚拟存储器。
A、分区B、页式C、段式D、段页式2.操作系统处理缺页中断时,选择一种好的调度算法对主存和辅存中的信息进行高效调度尽可能地避免(D )。
A、碎片B、CPU空闲C、多重中断D、抖动3.分页式存储管理的主要特点是(C )。
A、要求处理缺页中断B、要求扩充主存容量C、不要求作业装入到主存的连续区域D、不要求作业全部同时装人主存4.LRU页面调度算法淘汰(B )的页。
A、最近最少使用B、最近最久未使用C、最先进入主存D、将来最久使用5.分区管理要求对每一个作业都分配(A )的主存单元。
A、地址连续B、若干地址不连续的C、若干连续的页D、若干不连续的帧6.页面置换算法中(A )不是基于程序执行的局部性理论。
A、先进先出调度算法B、LRUC、LFUD、最近最不常用调度算法7.在存储管理中,采用覆盖与交换技术的目的是(A )。
A、节省主存空间B、物理上扩充主存容量C、提高CPU的效率D、实现主存共享8.分页虚拟存储管理中,缺页中断时,欲调度一页进入主存中,内存己无空闲块,如何决定淘汰已在主存的块时,(B)的选择是很重要的。
A、地址变换B、页面调度算法C、对换方式D、覆盖技术9.动态重定位技术依赖于(A )。
A、重定位装入程序B、重定位寄存器C、地址结构D、目标程序10.(D )存储管理兼顾了段式在逻辑上清晰和页式在存储管理上方便的优点。
A、分段B、分页C、可变分区方式D、段页式11.在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能与相邻空闲区合并,修改空闲区表使空闲区始址改变但空闲区数不变的是(A)情况。
A、有上邻空闲区也有下邻空闲区B、有上邻空闲区但无下邻空闲区C、无上邻空闲区但有下邻空闲区D、无上邻空闲区且也无下邻空闲区12.可变分区管理中,首次适应分配算法可将空闲区表中的空闲区栏目按(A )顺序排列。
A、地址递增B、长度递增C、地址递减D、长度递减13.在固定分区分配中,每个分区的大小是(C )。
对⽤LRU和FIFO算法计算“缺页中断”的理解输⼊缺页次数页⾯流:0 1 2 3 2 1 3 2 5 2 3 6 2 1 4 2 FIFO分析:012發別調⼊內存,則內存:012(3次缺⾴)調⼊3逃汰最先進⼊的0,則內存:123(4次缺⾴)調⼊2來命中,則內存:123(內存中有2不缺⾴)調⼊1來命中,則內存:123(內存中有1不缺⾴)調⼊3來命中,則內存:123(內存中有3不缺⾴)調⼊5逃汰最先進⼊的1,則內存:235(5次缺⾴)2,3別別命中,則內存:235調⼊6逃汰最先進⼊的,則內存:356(6次缺⾴)調⼊2逃汰最先進⼊的,則內存:562(7次缺⾴)調⼊1逃汰最先進⼊的,則內存:621(8次缺⾴)最后2命中,所以缺页8次=============================在LRU算法中,最近最少使⽤的页⾯被先换出输⼊:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0写出LRU算法实现页⾯更换,并给出缺页次数.(设在内存中占四个页架)分析:1题⽬给了访问串7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 02题⽬给了内存中占四个页架3题⽬给了⽤LRU算法来实现。
要求:画出算法实现。
LRU给出⾏ 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0头-----> 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 01 2 0 3 0 4 2 3 0 3 2 1 2 0 1 70 1 2 2 3 0 4 2 2 0 3 3 1 2 0 1底-----> 7 7 1 1 2 3 0 4 4 4 0 0 3 3 2 2淘汰出内存的页⾯: 7 1 4 3整个的表格是怎么来的呢?请注意:题⽬给了7, 写7;题⽬给了0,写0, 7下⼀格;题⽬给了1, 写1,0下⼀格;题⽬给了2, 写2,1下⼀格;注意:已经四个了从上到下是:2107达到了2的要求:内存中占四个页架。
缺页中断及页⾯置换算法1. 缺页中断 在请求分页系统中,可以通过查询页表中的状态位来确定所要访问的页⾯是否存在于内存中。
每当所要访问的页⾯不在内存时,会产⽣⼀次缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的⼀页,将其调⼊内存。
缺页本⾝是⼀种中断,与⼀般的中断⼀样,需要经过4个处理步骤: 1. 保护CPU现场 2. 分析中断原因 3. 转⼊缺页中断处理程序进⾏处理 4. 恢复CPU现场,继续执⾏ 但是缺页中断时由于所要访问的页⾯不存在与内存时,有硬件所产⽣的⼀种特殊的中断,因此,与⼀般的中断存在区别: 1. 在指令执⾏期间产⽣和处理缺页中断信号 2. ⼀条指令在执⾏期间,可能产⽣多次缺页中断 3. 缺页中断返回时,执⾏产⽣中断的那⼀条指令,⽽⼀般的中断返回时,执⾏下⼀条指令2. 页⾯置换算法 进程运⾏过程中,如果发⽣缺页中断,⽽此时内存中有没有空闲的物理块是,为了能够把所缺的页⾯装⼊内存,系统必须从内存中选择⼀页调出到磁盘的对换区。
但此时应该把那个页⾯换出,则需要根据⼀定的页⾯置换算法(Page Replacement Algorithm)来确定。
2.1 最佳置换(Optimal, OPT)2.1.1 基本思想 置换以后不再被访问,或者在将来最迟才回被访问的页⾯,缺页中断率最低。
但是该算法需要依据以后各业的使⽤情况,⽽当⼀个进程还未运⾏完成是,很难估计哪⼀个页⾯是以后不再使⽤或在最长时间以后才会⽤到的页⾯。
所以该算法是不能实现的。
但该算法仍然有意义,作为很亮其他算法优劣的⼀个标准。
2.1.2 算例 采⽤固定分配局部置换的策略,嘉定系统为某进程在内存中分配了3个物理块,页⾯访问顺序为2、3、2、1、5、2、4、5、3、2、5、2。
假定系统未采⽤预调页策略,即未事先调⼊任何页⾯。
进程运⾏时,⼀次将2、3、1三个页⾯调⼊内存,发⽣3次缺页中断。
当第⼀次访问页⾯5时,产⽣第4次缺页中断,根据OPT算法,淘汰页⾯1,因为它在以后不会在使⽤了;第5次缺页中断时,淘汰页⾯2,因为它在5、3、2三个页⾯中,是在将来最迟才会被页⾯访问的页⾯。
存储管理作业(二)1、已知某系统页面长4KB,页表项4B,采用多级页表映射64位虚地址空间。
若限定最高层页表占1页,问它可以采用几级页表?2、设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048B,内存总共有8个存储块。
试问逻辑地址至少应为多少位?内存空间有多大?3、在一分页存储管理系统中,逻辑地址长度为24位,页面大小为4096B,现有一逻辑地址为2FA6H,且第0、1、2页依次存放在物理块10、12、14中,问相应的物理地址为多少4、有一个页式虚存系统,某进程占用3个内存块,开始时内存为空,执行如下访问页号序列:0,1,2,3,4,1,2,0,5,1,0,1,2,3,2,4,5(1) 采用先进先出(FIFO)置换算法,缺页次数是多少?(2) 采用LRU置换算法,缺页次数是多少?(3) 若用最优(OPT)算法呢?5、(8分)设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。
若某进程最多需要6页(Page)数据存储空间,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个页框(Page Frame)。
在时刻260前的该进程访问情况如下表所示(访问位即(1)该逻辑地址的对应的页号是多少?(2)若采用先进先出(FIFO)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。
46题)10ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。
假设①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断后,返回到产生缺页中断的指令处重新执行。
设有虚地址访问序列2362H、1565H、25A5H,请问:(1) 依次访问上述三个虚地址,各需多少时间?给出计算过程。
操作系统部分习题参考答案(孙钟秀版)操作系统部分习题参考答案第⼀章2. ⼀个计算机系统,有⼀台输⼊机和⼀台打印机,现有两道程序投⼊运⾏,且程序A先开始做,程序B后开始运⾏。
程序A的运⾏轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。
程序B的运⾏轨迹为:计算50ms、输⼊80ms、再计算100ms,结束。
试说明(1)两道程序运⾏时,CPU有⽆空闲等待?若有,在哪段时间内等待?为什么会等待?(2)程序A、B有⽆等待CPU的情况?若有,指出发⽣等待的时刻。
答:画出两道程序并发执⾏图如下:(1) 两道程序运⾏期间,CPU存在空闲等待,时间为100⾄150ms之间(见图中有⾊部分)。
(2) 程序A⽆等待现象,但程序B有等待。
程序B有等待时间段为180ms⾄200ms间(见图中有⾊部分)。
5. 在单CPU和两台I/O(I1,I2)设备的多道程序设计环境下,同时投⼊三个作业运⾏。
它们的执⾏轨迹如下:Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)Job2:I1(20ms)、CPU(20ms)、I2(40ms)Job3:CPU(30ms)、I1(20ms)如果CPU、I1和I2都能并⾏⼯作,优先级从⾼到低为Job1、Job2和Job3,优先级⾼的作业可以抢占优先级低的作业的CPU。
试求:(1)每个作业从投⼊到完成分别所需的时间。
(2) 从作业的投⼊到完成CPU的利⽤率。
(3)I/O设备利⽤率。
答:画出三个作业并⾏⼯作图如下(图中着⾊部分为作业等待时间):(1) Job1从投⼊到运⾏完成需80ms,Job2从投⼊到运⾏完成需90ms,Job3从投⼊到运⾏完成需90ms。
(2) CPU空闲时间段为:60ms⾄70ms,80ms⾄90ms。
所以CPU利⽤率为(90-20)/80=77.78%。
(3) 设备I1空闲时间段为:20ms⾄40ms,故I1的利⽤率为(90-20)/90=77.78%。
1.LRU页面调度算法总是选择在主存驻留时间最长的页面被淘汰。
()2.磁盘是共享设备,所以每一时刻可有若干个进程同时与它交换信息。
()3.分时系统中,时间片设置得越小,则平均响应时间越短。
()4.多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。
()5.设备独立性是指系统具有使用不同设备的能力。
()6.进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此,进程A、C必须互斥执行。
()7.为了提高系统资源的利用率,在作业调度的优先级算法中应该规定,计算型作业的优先级较高,I/O型作业的优先级较低。
()8.I/0交通管理程序的主要功能是管理主存控制器和通道。
()9.引入缓冲区能使CPU和I/O设备之间速度不匹配的情况得到改善,但并不能减少设备中断CPU的次数。
()10.由于设备驱动程序与硬件紧密相关,因此,系统中配备多少个设备就必须配置同样数量的设备驱动程序。
()11.可以将操作系统看作是一个资源分配器,用来控制I/O设备和用户的程序。
()12.死锁的形成只与资源分配策略有关,而与并发进程的执行速度无关。
()13.在引入线程的操作系统中,线程是资源分配和调度的基本单位。
()14.分页存储管理方案易于实现用户使用内存空间的动态扩充。
()15.对临界资源应采取互斥访问方式来实现共享。
()1.错,原因:是选择最长时间没有被用的页面被淘汰。
2.错,原因:每一时刻只有一个进程与它交换信息。
3.错,原因:平均响应时间不但与时间片的大小有关,还与其他因素有关。
4.对5.错,原因:设备独立性,可使应用程序独立于具体的物理设备和独立于设备的类型6.错,原因:不传递。
7.错,原因:I/O型作业的优先级高。
8.错,原因:I/O交通管理程序的主要功能是管理设备、控制器和通道。
9.错,减少设备中断CPU的次数。
10.错,一类一种。
11.对12.错,原因:与进程执行速度有关。
13.错,线程是调度的基本单位,进程是资源分配的基本单位14.错,原因:分段存储管理易于实现用户使用内存空间的动态扩充。
计算机科学与技术系实验报告专业名称网络工程课程名称操作系统原理项目名称FIFO页面调度算法处理缺页中断班级 12网络工程(1)班学号 1204031030姓名方彬同组人员朱佳宝、王卫、凌含涛、胡星瑞实验日期 2014.12.02一、实验目的与要求:(1)熟悉、掌握先进先出FIFO算法,并实现用先进先出FIFO算法页面调度算法处理缺页中断.(2)理解基于先进先出FIFO的内存管理调度算法,更好的掌握算法的思想,结合实验理解算法更直观,深刻具体。
通过对先进先出FIFO的调度算法的模拟实验可以清楚的了解内存管理是如何调度的,以及加深对内存管理的了解。
二、实验内容1)任务分析:以无歧义的陈述说明实验任务,并明确规定:(a)输入的形式和输入值的范围;在输入文本框中输入,输入值的范围在0~6之间(b) 输出的形式;输出为缺页序列的表格(c) 程序所能达到的功能;输入页号,输出缺页序列,实现先进先出算法的模拟(d) 测试数据:包括正确的输入及其输出结果和错误的输入及其输出结果。
①输入值为空:②输入值越界:③正确的输入值:2)概要设计:说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
本程序中定义了一个数组int[] mainstore = {3,2,1,0 };用于模拟主存存放页;此外还定义了一个数组int[] flag = {0,0,0,0,0,0,0 };用于表明页号的修改标志位,便于之后的操作。
该程序的只要流程如下:3)详细设计:实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);画出函数和过程的调用关系图。
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using lru;using change;namespace 操作系统{public partial class Form1 : Form{public Form1(){InitializeComponent();}//定义一个窗口类,在类里面定义一个窗口int[] mainstore = {3,2,1,0 };//定义数组用于存放页int[] flag = {0,0,0,0,0,0,0 };//定义修改标志位的数组int blo = 0;//用来控制在表格的哪一列输出页号序列private void button1_Click(object sender, EventArgs e)//定义一个事件响应,即对输入进行操作{if (string.IsNullOrEmpty(txt.Text))MessageBox.Show("请输入页号!");else if (int.Parse(txt.Text) > 6 || int.Parse(txt.Text) < 0)MessageBox.Show("输入页号不合法,请重新输入!");//判断输入是否合法else{int page = int.Parse(txt.Text);int i=0;if (page != mainstore[0] && page != mainstore[1] && page != mainstore[2] && page != mainstore[3])//插入页内存中不存在,进行FIFO算法{int lll;lll = mainstore[0];if (flag[mainstore[0]] == 0)//修改标志位为0,直接覆盖{mainstore[0] = page;flag[lll] = 1;}Else//修改标志位为1,数组执行FIFO{for (i = 0; i < 3; i++)mainstore[i] = mainstore[i + 1];mainstore[3] = page;}MessageBox.Show("当前调走页号"+lll.ToString ()+"\n存入页号为"+page.ToString ());l0.Text = "0";l1.Text = "0";l2.Text = "0";l3.Text = "0";l4.Text = "0";l5.Text = "0";l6.Text = "0";//标志位初始化;for (int j = 0; j < 4; j++){if (mainstore[j] == 0)l0.Text = "1";if (mainstore[j] == 1)l1.Text = "1";if (mainstore[j] == 2)l2.Text = "1";if (mainstore[j] == 3)l3.Text = "1";if (mainstore[j] == 4)l4.Text = "1";if (mainstore[j] == 5)l5.Text = "1";if (mainstore[j] == 6)l6.Text = "1";}//根据插入页号,将标志位置1for (int k = 0;k < 7; k++){if (lll == 0)ll0.Text = "1";if (lll == 1)ll1.Text = "1";if (lll == 2)ll2.Text = "1";if (lll == 3)ll3.Text = "1";if (lll == 4)ll4.Text = "1";if (lll == 5)ll5.Text = "1";if (lll == 6)ll6.Text = "1";}//根据情况,将修改标志位置1}else{MessageBox.Show("该页已在主存中!" );}blo++;if(blo==1){txt10.Text = mainstore[0].ToString();txt11.Text = mainstore[1].ToString();txt12.Text = mainstore[2].ToString();txt13.Text = mainstore[3].ToString();}else if(blo==2){txt20.Text = mainstore[0].ToString();txt21.Text = mainstore[1].ToString();txt22.Text = mainstore[2].ToString();txt23.Text = mainstore[3].ToString();}else if(blo==3){txt30.Text = mainstore[0].ToString();txt31.Text = mainstore[1].ToString();txt32.Text = mainstore[2].ToString();txt33.Text = mainstore[3].ToString();}else if(blo==4){txt40.Text = mainstore[0].ToString();txt41.Text = mainstore[1].ToString();txt42.Text = mainstore[2].ToString();txt43.Text = mainstore[3].ToString();}else if(blo==5){txt50.Text = mainstore[0].ToString();txt51.Text = mainstore[1].ToString();txt52.Text = mainstore[2].ToString();txt53.Text = mainstore[3].ToString();}else if(blo==6){txt60.Text = mainstore[0].ToString();txt61.Text = mainstore[1].ToString();txt62.Text = mainstore[2].ToString();txt63.Text = mainstore[3].ToString();}else if(blo==7){txt70.Text = mainstore[0].ToString();txt71.Text = mainstore[1].ToString();txt72.Text = mainstore[2].ToString();txt73.Text = mainstore[3].ToString();}else if(blo==8){txt80.Text = mainstore[0].ToString();txt81.Text = mainstore[1].ToString();txt82.Text = mainstore[2].ToString();txt83.Text = mainstore[3].ToString();}//根据插入数量,决定在输出表的指定列输出}}private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e){Form1 the_new = new Form1();the_new.Show();}private void 退出ToolStripMenuItem_Click(object sender, EventArgs e){this.Close();}4)调试分析:(a)调试过程中遇到哪些问题,是如何解决的;Q1:一开始的程序只能输入9个页号序列,超过之后就不能够再显示新的页号序列;(定义了一个变量BLO,用于记录输入页号数量,做求模运算mod 9,这样当超过九个之后又会从第一列开始覆盖)Q2:考虑到程序的用户友好性,增加了序列刷新功能,刷新输出区域;(定义了一个button,点击后将输出区域初始化)Q3:开始没有理解修改标志位的作用,所以功能没有实现;(经过与同学的讨论,定义了一个数组flag[],将页号作为flag[]的下标选择置1或置0)(b) 算法的时空分析:算法的时间复杂度和空间复杂度分析;5)测试结果:包括输入和输出,测试数据应该完整和严格。
操作系统原理试题题库含答案(3)1、下述解决死锁的方法中,属于死锁避免策略的是( )。
A、银行家算法B、资源有序分配法C、资源分配图化简法D、撤消进程法正确答案: A2、进程有三种基本状态,可能的状态转换是( )。
A、就绪态到运行态、等待态到就绪态、运行态到等待态B、就绪态到运行态、就绪态到等待态、等待态到运行态C、就绪态到运行态、等待态到就绪态、等待态到运行态D、运行态到就绪态、就绪态到等待态、等待态到运行态正确答案: A3、在存储管理中,采用地址变换机构的目的是()A、加快进程空间寻址B、提高CPU效率C、进程空间保护和内存共享D、便于有效分配内存正确答案: A4、关于碎片的说法以下哪个是正确的()。
A、静态页式存储管理中不存在碎片B、段页式存储管理中存在外碎片,但是不存在内碎片C、段式存储管理不存在内碎片D、页式存储管理既存在内碎片,也存在外碎片正确答案: C5、在面向用户的调度准则中,( )是选择分时系统中进程调度算法的重要准则。
A、响应时间快B、平均周转时间短C、截止时间的保证D、优先权高的作业能获得优先服务正确答案: A6、C语言编程中的printf函数属于()。
A、系统调用B、原语C、自定义函数D、库函数正确答案: A7、关于进程的运行、就绪和阻塞三个状态,下列观点正确的是()。
A、每个进程从创建到撤消都要经历这三个状态B、每个进程从创建到撤消,各个状态只能经历一次C、某些进程可以从阻塞状态转化为运行状态D、某些进程可以从运行状态转化为就绪状态正确答案: D8、在操作系统中引入线程的目的是____。
A、使多个程序能并发执行B、提高资源的利用率C、提高系统的吞叶量D、减少程序并发执行时的时空开销正确答案: D9、位示图方法可用于_____。
A、盘空间的管理B、盘的驱动调度C、文件目录的查找D、页式虚拟存贮管理中的页面调度正确答案: A10、一个进程是( )。
A、协处理器执行的程序B、一个独立的程序+数据集C、 PCB结构与程序和数据的集合D、一个独立的程序正确答案: C11、与计算机硬件关系最密切的软件是( )A、编译程序B、数据库管理程序C、游戏程序D、操作系统正确答案: D12、为了兼顾短作业和长时间等待的作业,应采用( )。
1. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?a. 首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存;b. 装入模块的方式有:绝对装入方式,可重定位方式和动态运行时装入方式;c. 绝对装入方式适用于单道程序环境下;d. 可重定位方式适用于多道程序环境下;e. 动态运行时装入方式也适用于多道程序环境下.2. 何谓静态链接及装入时动态链接和运行时的动态链接?a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方---式;b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式;c. 运行时的动态链接是将某些目标模块的链接推迟到执行时才进行.3. 在进行程序链接时,应完成哪些工作? a. 对相对地址进行修改;b. 变换外部调用符号.4. 在动态分区分配方式中,可利用哪些分区分配算法?a. 首次适应算法;b. 循环首次适应算法;c. 最佳适应算法.5. 在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?应在每个分区的起始地址部分设置一些用于控制分区分配的信息,以及用于链接各分区的前向指针;在分区尾部则设置一后向指针,通过前,后向指针将所有的分区链接成一个双向链.6. 为什么要引入动态重定位?如何实现?a. 为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位.b. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位.8. 在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不再为回收分区分配新表项,而只修改前邻接分区的大小;b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空闲区的首址,大小为两者之和;c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的首址,大小为三区之和,取消后邻接分区的表项;d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和大小,并根据其首址,插入到空闲链中的适当位置.9. 在系统中引入对换后带有哪些好处?能将内存中暂时不运行的进程或暂时不用的程序和数据,换到外存上,以腾出足够的内存空间,把已具备运行条件的进程或进程所需的程序和数据换入内存,从而大大地提高了内存的利用率.10 为实现对换,系统应具备哪几方面功能? 对对换空间的管理;进程的换出;进程的换入.11 在以进程为单位进行对换时,每次是否都将整个进程换出?为什么?a. 以进程为单位进行对换时,每次都将整个进程换出;b. 目的为了解决内存紧张的问题,提高内存的利用率. 13 请较详细地说明,引入分页存储管理(估计印错了,是分段存储管理)是为了满足用户哪几方面的需要? a. 方便了编程;b. 实现了分段共享;c. 实现了分段保护;d. 实现了动态链接;e. 实现了动态增长.14 在具有快表的段页式存储管理方式中,如何实现地址变换?首先,必须配置一段表寄存器,在其中存放段表始址和段长TL. 进行地址变换时,先利用段号S,与段长TL进行比较,若S<TL,表示未越界,(若S>=TL,表示段号太大,访问越界,产生越界中断信号)于是利用段表始址和段号来求出该段对应的段表项在段表中的位置,从中求出该段的页表始址,并利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再用块号b和页内地址构成物理地址.15 为什么说分段系统较之分页系统更易于实现信息共享和保护?a. 对于分页系统,每个页面是分散存储的,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量的页表项;b. 而对于分段系统,每个段都从0开始编址,并采用一段连续的地址空间,这样在实现共享和保护时,只需为所要共享和保护的程序设置一个段表项,将其中的基址与内存地址一一对应起来即可.16 分页和分段有何区别?a. 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换,这是它们的共同点;b. 对于它们的不同点有三,第一,从功能上看,页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率,即满足系统管理的需要,而不是用户的需要;而段是信息的逻辑单位,它含有一组其意义相对完整的信息,目的是为了能更好地满足用户的需要;c. 页的大小固定且由系统确定,而段的长度却不固定,决定于用户所编写的程序;d. 分页的作业地址空间是一维的,而分段的作业地址空间是二维的.17 试全面比较连续分配和离散分配方式.a. 连续分配是指为一个用户程序分配一个连续的地址空间,包括单一连续分配方式和分区式分配方式,前者内存分为系统区和用户区,系统区供操作系统使用,用户区供用户使用,是最简单的一种存储方式,但只能用于单用户单任务的操作系统中;分区式分配方式分为固定分区和动态分区,固定分区是最简单的多道程序的存储管理方式,由于每个分区的大小固定,必然会造成存储空间的浪费;动态分区是根据进程的实际需要,动态地为之分配连续的内存空间,常用三种分配算法: 首次适应算法FF,该法容易留下许多难以利用的小空闲分区,加大查找开销;循环首次适应算法,该算法能使内存中的空闲分区分布均匀,但会致使缺少大的空闲分区;最佳适应算法,该算法也易留下许多难以利用的小空闲区;b. 离散分配方式基于将一个进程直接分散地分配到许多不相邻的分区中的思想,分为分页式存储管理,分段存储管理和段页式存储管理. 分页式存储管理旨在提高内存利用率,满足系统管理的需要,分段式存储管理则旨在满足用户(程序员)的需要,在实现共享和保护方面优于分页式存储管理,而段页式存储管理则是将两者结合起来,取长补短,即具有分段系统便于实现,可共享,易于保护,可动态链接等优点,又能像分页系统那样很好的解决外部碎片的问题,以及为各个分段可离散分配内存等问题,显然是一种比较有效的存储管理方式;综上可见,连续分配方式和离散分配方式各有各自的特点,应根据实际情况加以改进和利用. 主题:汤子瀛计算机操作系统(西电)答案--第六章1. 在请求分页系统中,其页表项中包含那些数据项? 它们的作用是什么?a. 在请求分页系统中,其页表项中包含的数据项有页号,物理块号,状态位P,访问字段A,修改位M和外存地址;b. 其中状态位P指示该页是否调入内存,供程序访问时参考;c. 访问字段A用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法选择换出页面时参考;d. 修改位M表示该页在调入内存后是否被修改过;e. 外存地址用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用.2. 一个计算机系统的虚拟存储器,其最大容量和实际容量分别由什么决定?a. 最大容量由内存和外存之和决定;b. 实际容量由内存决定.3. 虚拟存贮器有那些特征? 其中最本质的特征是什么?a. 虚拟存储器具有离散性,多次性,对换性和虚拟性的特征;b. 其中最本质的特征是离散性,在此基础上又形成了多次性和对换性,所表现出来的最重要的特征是虚拟性.4. 实现虚拟存储器要那些硬件支持?a. 对于为实现请求分页存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还需要有页表机制,缺页中断机构以及地址变换机构;b. 对于为实现请求分段存储管理方式的系统,除了需要一台具有一定容量的内存及外存的计算机外,还需要有段表机制,缺段中断机构以及地址变换机构;7. 在请求分页系统中,应从何处将所需页面调入内存?a. 在进行地址变换时,首先去检索快表,试图从中找出所要访问的页,若找到,便修改页表项中的访问位,对于写指令,还须将修改位置1,然后利用页表项中给出的物理块号和页内地址,形成物理地址;b. 如果在快表中未找到该页的页表项,则应再到内存中去查找页表,再从找到的页表项中的状态位来了解该页是否已调入内存,如果该页已调入内存,应将此页的页表项写入快表,当快表已满时,应先调出按某种算法所确定的页的页表项,然后再写入该页的页表项;c. 如果该页尚未调入内存,这时便应产生缺页中断,请求OS从外存中把该页调入内存;d. 外存分为文件区和对换区,若系统有足够的对换区空间,可在进程运行前,将与该进程有关的文件拷贝到对换区,需要时从对换区调入;e. 若系统缺少足够的对换区空间,则凡是不会被修改的文件,可直接从文件区调入,需换出时可不必写入外存,但对于可能被修改的部分,在将它们换出时,便须调到对换区,以后需要时再从对换区调入.8. 在请求分页系统中,常采用哪几种页面置换算法?a. 最佳置换算法;b. 先进先出算法;c. 最近最久未使用LRU置换算法;d. Clock置换算法;e. 此外,还有最少使用置换算法和页面缓冲算法.9. 某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB. 假定某时刻为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚拟地址0A5C和093C变换为物理地址.a. 将0A5C变换为2进制为: 0000,1010,0101,1100,由于页面大小为1KB约为2的10次方,所以0A5C的页号为2,对应的物理块号为:4,所以虚拟地址0A5C的物理地址为125C;b. 将093C变换为2进制为: 0000,1001,0011,1100,页号也为2,对应的物理块号也为4,此时虚拟地址093C的物理地址为113C.10 在请求分页系统中,通常采用那种页面分配方式?为什么?a. 在请求分页系统中,有固定和可变分配两种分配方式;b. 采用固定分配方式是基于进程的类型(交互型)或根据程序员,系统管理员的建议,为每个进程分配一固定页数的内存空间,在整个运行期间不再改变;c. 采用可变分配方式有全局置换和局部置换两种,前者易于实现,后者效率高.11 在一个请求分页系统中,采用LRU页面置换算法时,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,当分配给该作业的物理块数M分别为3和4时,试计算访问过程中所发生的缺页次数和缺页率?比较所得结果?a. 当分配给该作业的物理块数M为3时,所发生的缺页率为7,缺页率为: 7/12=0.583;b. 当分配给该作业的物理块数M为4时,所发生的缺页率为4,缺页率为: 4/12=0.333.12 在置换算法中,LRU和LFU哪个更常用?为什么?a. LRU与LFU置换算法的页面的访问图完全相同,即使用的硬件是相同的;b. 但是LFU并不能真正访问反映出页面的使用情况.13 实现LRU算法所需的硬件支持是什么?a. 寄存器,用于记录某进程在内存中各页的使用情况;b. 栈,用于保存当前使用的各个页面的页面号.14 试说明改进型Clock置换算法的基本原理.a. 因为对于修改过的页面在换出时所付出的开销将比未被修改过的页面的开销大,所以在改进型Clock算法中,出了须考虑到页面的使用情况外,还须再增加一个置换代价这一因素;b. 在选择页面作为淘汰页面时,把同时满足未使用过和未被修改作为首选淘汰页面.15 什么是抖动? 产生抖动的原因是什么?a. 抖动(Thrashing)就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,以致花费大量的时间,我们称这种现象为"抖动";b. 产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于"抖动"状态.17 如何实现分段共享?a. 可在每个进程的段表中,用相应的表项来指向共享段在内存中起始地址;b. 配置相应的数据结构作为共享段表,可在段表项中设置共享进程计数Count,每调用一次该共享段,Count指增1,每当一个进程释放一个共享段时,Count执行减1操作,若减为0,则由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项;c. 对于一个共享段,应给不同的进程以不同的存取权限;d. 不同的进程可以使用不同的段号去共享该段.18 Intel 80386芯片可支持哪几种方式的存储管理?a. 不分段也不分页的存储管理方式;b. 分页不分段的存储管理方式;c. 分段不分页的存储管理方式;d. 分段分页存储管理方式.19 试说明80386的分段地址变换机构的工作原理.a. 采用段寄存器和虚地址结构;b. 在分段部件中,地址变换是将逻辑地址变换为线性地址,然后送分页部件中.(具体见P191)21 可通过哪些途径来提高内存利用率?汤子瀛计算机操作系统(西电)答案--第十三章1. UNIX系统有哪些基本特征?a. 开放性;b. 多用户,多任务环境;c. 功能强大,实现高效;d. 提供了丰富的网络功能.2. UNIX系统核心分成哪两大部分?各包含哪些功能?a. UNIX系统核心分为进程控制子系统部分和文件子系统部分;b. 进程控制子系统包含进程控制,进程通信,存贮器管理和进程调度功能;文件子系统包含文件管理,高速缓冲机制和设备驱动程序的功能.3. UNIX系统中的PCB含哪几部分?并用图来说明它们之间的关系.a. UNIX系统中的PCB含四部分:进程表项,U区,进程区表和系统区表项;b. 图见P396.4. 进程映象含哪几部分?其中系统级上下文的动态部分的作用是什么?a. 进程映象(Process Image)包含三部分:用户级上下文,寄存器上下文和系统级上下文;b. 系统级上下文的动态部分包含核心栈和若干层寄存器上下文,它的作用是当因中断或系统调用而进入核心态时,核心把一个寄存器上下文压入核心栈,退出系统调用时,核心又将弹出一个寄存器上下文,在进行上下文切换时,核心将压入老进程的上下文层,而弹出新进程的上下文层.5. 在UNIX系统中,用于进程控制的系统调用有哪些(主要的)?它们的主要功能是什么?a. fork,用于创建一个新进程;b. exec,改变进程的原有代码;c. exit,实现进程的自我终止;d. wait,将调用进程挂起,等待子进程终止;e. getpid,获取进程标志符;f. nice,改变进程的优先级.6. 为创建一个新进程,需做哪些工作?a. 为新进程分配一进程表项和进程标志符;b. 检查同时运行的进程数目;c. 拷贝进程表项中的数据;d. 子进程继承父进程的所有文件;e. 为子进程创建进程上下文;f. 子进程执行.7. 为何要采取进程自我终止方式?如何实现exit?a. 为了及时回收进程所占用的资源,并减少父进程的干预,UNIX系统利用exit来实现进程的自我终止;b. 实现exit,核心应该做的工作是:关闭软中断;回收资源;写记帐信息;置进程为"僵死状态".8. UNIX系统采用什么样的进程调度算法?其优先级是如何计算的?a. UNIX系统采用的是多级反馈队列轮转调度算法;b. 每隔1秒,核心按如下公式重新计算用户优先数:优先数=(最近使用CPU的时间/2)+基本用户优先数.9. 试说明信号与中断两种机制间的异同处? a. 相似处:信号和中断都采用了相同的异步通信方式;当检测出有信号或中断请求时,都是暂停正在执行的程序而转去执行相应的处理程序;两者都是在处理完毕后返回到原来的断点;对信号或中断都可进行屏蔽; b. 差异处:中断有优先级,而信号没有优先级,即所有信号都是平等的;信号处理程序是在用户态下运行的,而中断处理程序则是在核心态下运行的;中断响应是及时的,而信号响应通常都有较大的时间延迟.10 扼要说明信号机制中信号的发送和对信号的处理功能?a. 信号的发送是指由发送进程把信号送到指定进程的信号域的某一位上;b. 对于对信号的处理功能:首先,利用系统调用signal(sig,func)预置对信号的处理方式,func=1时,该类信号被屏蔽;func=0时,进程收到信号后终止自己;func为非0,非1类整数时,func的值即作为信号处理程序的指针.然后,如果进程收到的软中断是一个已决定要忽略的信号(func=1),进程不作任何处理返回;进程收到软中断后便退出(func=0);执行用于设置的软中断处理程序.11 什么是管道?无名管道和有名管道的主要差别是什么?a. 管道是指能够连接一个写进程和一个读进程的,并允许它们以生产者-消费者方式进行通信的一个共享文件,又称为pipe文件;b. 无名管道是一个临时文件,是利用系统调用pipe()建立起来的无名文件,没有路径名,只有调用pipe的进程及其子孙进程才能识别此文件描述符而利用该文件(管道)进行通信;有名管道是利用mknod系统调用建立的,是可以在文件系统中长期存在的,既有路径名的文件,其它进程可以知道其存在,并利用该路径名来访问该文件.12 读,写管道时应遵循哪些规则? a. 对pipe文件大小的限制;b. 进程互斥;c. 进程写管道时,检查是否有足够的空间存放要写的数据,若有,则写入,若无,则由核心对该索引结点做出标志,然后让写进程睡眠等待,直到读进程读走数据后,再将写等待进程唤醒;d. 进程读管道时,检查是否有足够的要读的数据,若有,则进程从读指针的初始值处去读数据,每读出一块后,便增加地址项的大小,读结束后由核心修改索引结点中的读指针,并唤醒所有等待的写进程,若无,则在读完后,进程暂时进入睡眠等待,直到写进程又将数据写入管道后,再将读进程唤醒.13 在消息机制中,有哪些系统调用?并说明它们的用途.在UNIX中,消息机制向用户提供了四个系统调用:a. msgget(),用来建立一消息队列,或者获取一消息队列的描述符;b. msgsnd(),用于向指定的消息队列发送一个消息,并将该消息链接到该消息队列的尾部;c. msgrcv(),用于从指定的消息队列中接收指定类型的消息;d. msgctl(),用来读取消息队列的状态信息并进行修改.14 在共享存储区机制中,有哪些系统调用?并扼要说明它们的用途.a. shmget(),建立一共享存储区;b. shmat(),将共享存储区附接到进程的虚地址空间上;c. shmdt(),把共享存储区与新进程断开;d. shmct(),对共享存储区的状态信息进行读取和修改,也可以断开进程与共享存储区的连接.15 核心在执行shmget系统调用时,需完成哪些工作?a. 首先检查共享存储区表,若找到指定key的表项,表明该共享区已经建立,此时返回该表项的描述符shmid;b. 若未找到指定的key表项,而flag标志又为IPC_CREA T,且参数size值在系统限制值内,则分配一系统空闲区作为共享区的页表区,分配响应的内存块,再将这些块号填入页表中;c. 核心在共享存储区和系统区表中,为新建立的共享区分配一空表项,并在共享存储区表填上存储区的关键字及其大小,共享区页表的始址,指向系统区表项的指针等,最后返回共享存储区的描述符---shmid.16 在信号量集机制中,有哪些系统调用?并说明它们的用途.a. semget(),建立信号量集;b. semop(),对信号量进行操作.17 核心是如何对信号量进行操纵的?a. 核心根据sem_op来改变信号量的值,可分为3种情况;b. sem_op的值为正,则将其值加到信号量的值上,它相当于通常的V操作;c. sem_op的值为负,相当于P操作,若信号量的值大于操作值的绝对值,则核心将一个负整数加到信号量值上,否则,核心将已经操作了的信号量,恢复到系统调用开始时的值;d. 若(sem_flg&IPC_NOWAIT)为真,便立即返回,否则,让进程睡眠等待.18 为实现请求调页管理,在UNIX系统中,配置了哪些数据结构?a. 页表;b. 磁盘块描述表;c. 页框数据表;d. 对换使用表.19 在UNIX系统中,如何改变有效页的年龄?并用实例说明之.a. 一个页可计数的最大年龄,取决于它的硬件设施;b. 对于只设置两位作为年龄域时,其有效页的年龄只能取值为0,1,2,3,当该页的年龄为0,1,2时,该页处于不可换出状态,而当其年龄达到3时,则可为换出状态,每当内存中的空闲页面数低于某规定的低限时,核心便唤醒换页进程,又换页进程取检查内存中的每一个活动的,非上锁的区,对所有有效区的年龄字段加1,对于那些年龄已增至3的页便不再加1,而是将它们换出,如果这种页已被进程访问过,便将年龄域中的年龄降为0. 20 当需访问的缺页是在可执行文件上或在对换设备上时,应如何将它调入内存?核心先为缺页分配一内存页,修改该页表项,使之指向内存页,并将页面数据表项放入相应的散列队列中,然后把该页从对换设备上调入内存,当I/O操作完成时,核心把请求调入该页的进程唤醒.21 在将一页换出时,可分为哪几种情况?应如何处理这些情况?a. 若在对换设备上已有被换出页的拷贝,且被换出页的内容未被修改,则此时核心不必将该页重写回对换设备上,而只需将该页的页表项中的有效位清零,并将页框数据表项中的引用计数减1,最后将该页表项放入空闲页链表中;b. 若在对换设备上没有被换出的拷贝,则换出进程应将该页写到对换设备上,可采用页面链集中写入;c. 在对换设备上已有换出页的副本,但该页内容已被修改过,此时核心将该页在对换设备上的原有空间释放,再重新将该页拷贝到对换设备上,使在对换设备上的拷贝内容总是最新的.。
南通大学操作系统实验课
实验报告
学生姓名
所在院系
专业
学号
指导教师
南通大学
2014年 5 月 30 日
虚拟存储器管理
采用LRU算法实现分页管理的缺页调度
一、实验目的
为了使大的进程(其地址空间超过主存可用空间)或多个进程的地址空间之和超过实际主存空间时,仍能运行,引入了虚拟存储器的概念。
使进程的一部分地址空间在主存,另一部分在辅存,由操作系统实现多级存储器的自动管理,实现主存空间的自动覆盖。
模拟请求分页虚拟存储器管理技术中的硬件地址变换、缺页中断以及页式淘汰算法,处理缺页中断。
通过本实验,使学生对请求分页管理的概念有一个清楚的理解。
二、实验要求
书写实验报告,应该包括以下几项内容:
(1)实验题目;
(2)程序中使用的数据结构及主要符号说明;
(3)程序流程图和带有详细注释的源程序;
(4)执行程序名,并打印程序运行时的系统状态的初值、每次调入调出的页号和运行结果;(5)通过实验后的收获与体会及对实验的改进意见和见解。
三、简要概述
当采用LRU算法时,用一个数组P构成堆栈,堆栈中各个元素为进程已在主存的页号,为了进行页面置换,可设置一个栈指针HEAD,初始化为0。
假定分配给每个进程的内存块数固定不变,为M。
当队列满需要淘汰时,操作系统选择栈底的元素淘汰,其他元素向下移一个位置,将新调入页放HEAD指示的栈顶。
当访问的页在栈中时,还应调整页从当前位置到栈顶。
采用LRU淘汰算法的流程如下所示。
四、流程图
五、结果
六、总结与感悟
经过了这学期的操作系统实验,我对操作系统实验有了全新的认识。
尤其是当拿到一个任务时,如何去分析,先干什么,接着干什么,最后干什么,有了比较明确的思路。
拿到一个题目后,我们应该先对这个题目进行概要的分析、设计,分析出这个程序是干什么用的,应该实现什么功能,这些功能应该包含哪些函数。
概要设计做好后,我们就要开始做详细设计,将做好的概要设计进行完善,把每个函数要实现的功能用伪代码写出来,或者是用流程图画出来,这样我们就能基本上知道每个程序应该如何实现它自身的功能,写源代码时也就不会那么盲目。
写源代码是将详细设计转化为C++代码的过程,详细设计做好后,我们只需在其基础上将一些简单的或者是用汉语代替的语句用C++语句写出来,再将一些语法错误改过来,并将概要设计和详细设计时未考虑到的东西在语句中完善,最终形成一个可执行的C++文件。
刚开始的时候,我根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。
通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。
通过实验,我觉得熟练掌握所学的算法对于编程解决问题非常有效。
我们应该在平时多用我们所学的知识编写程序,尝试解决更多问题。
最后衷心感谢丁红老师对我的悉心指导!。