兰州大学操作系统实验七存储管理题目和答案
- 格式:docx
- 大小:594.20 KB
- 文档页数:12
操作系统原理试题题库含答案(7)1、在I/O子系统中,I/O请求的排队时间为10ms,而请求的服务时间为40ms,则I/O请求的总响应时间为()A、 10msB、 50msC、 30msD、 40ms正确答案: B2、下列哪项不是进行存储管理的目的( )。
A、提高存储利用率B、防止用户破坏操作系统C、防止用户相互干扰D、为了使用Spooling正确答案: D3、进程的基本状态转换中,哪一种是不可能发生。
A、就绪态变为阻塞态B、就绪态变为执行态C、阻塞态变为就绪态D、执行态变为阻塞态正确答案: A4、进程的动态、并发等特征是利用____________表现出来的。
A、程序B、数据C、程序和数据D、进程控制块正确答案: D5、要求进程一次性申请所需的全部资源,是破坏了死锁必要条件中的____条件。
A、不可剥夺B、互斥C、请求与保持D、环路等待正确答案: C6、在下面的I/O控制方式中,需要CPU干预最少的方式是()A、程序I/O控制方式B、中断驱动I/O控制方式C、直接存储器访问(DMA)控制方式D、 I/O通道控制方式正确答案: D7、在操作系统中,只能在系统态下运行的指令是()。
A、读时钟指令B、置时钟指令C、取数指令D、寄存器清零指令正确答案: D8、下列选项中,导致创建新进程的操作是()I.用户登录成功 II.设备分配 III.启动程序执行A、仅I和IIB、仅II和IIIC、仅I和IIID、 I、II和III正确答案: B9、某一作业8:00到达系统,估计运行时间为2小时,若11:00开始执行该作业,其响应比是()。
A、 3.5B、 3C、 2.5D、 2正确答案: C10、在外围设备和内存之间开辟直接的数据通道的是()。
A、程序直接控制B、 DMAC、通道控制D、中断正确答案: B11、在请求分页存储管理中,若采用FIFO页面淘汰算法,则当分配的页面数增加时,缺页中断的次数( )。
A、减少B、增加C、无影响D、可能增加也可能减少正确答案: D12、哪个属于抢占式调度___A、时间片轮转法;B、短作业优先调度;C、先来先服务;D、高响应比优先调度;正确答案: A13、在存储管理中,采用地址变换机构的目的是()A、加快进程空间寻址B、提高CPU效率C、进程空间保护和内存共享D、便于有效分配内存正确答案: A14、MS-DOS中的文件物理结构采用_________。
操作系统习题答案1. 内存管理题目答案:a) 单道批处理系统中,内存分为两个区域:用户区和系统区。
用户区用于存放用户程序,系统区则用于存放操作系统和其他系统数据。
用户程序在运行时,需要从外存中加载到用户区,并在执行完毕后释放内存,以便其他程序使用。
b) 多道批处理系统中,内存被划分为多个分区,每个分区可容纳一个程序。
这样可以同时将多个程序加载到内存中,提高系统的吞吐量。
常见的内存分配算法有:首次适应算法、最佳适应算法和最坏适应算法等。
c) 页式存储管理是将进程的地址空间分为固定大小的页,内存以页为单位进行分配。
外存也被划分为相同大小的页。
优点是简化了内存管理,提高了内存利用率。
缺点是访问内存时需要进行页表查找,增加了额外的开销。
d) 段式存储管理是将进程的地址空间分为多个不同长度的段,每个段包含一类相关的信息。
段的长度是可变的,适应不同的程序需求。
优点是更好地满足了程序的灵活性和可扩展性需求。
缺点是内存碎片问题。
2. 进程调度题目答案:a) 先来先服务(FCFS)调度算法是按照作业提交的先后顺序进行调度的。
优点是简单易实现,避免了饥饿现象。
缺点是平均等待时间较长,不适合长作业的情况。
b) 最短作业优先(SJF)调度算法是按照作业的执行时间进行调度的,执行时间越短的作业优先级越高。
优点是平均等待时间最短,适合短作业的情况。
缺点是对长作业不公平,可能导致饥饿现象。
c) 时间片轮转调度算法是将CPU的执行时间划分为固定大小的时间片,每个进程在一个时间片内运行。
如果一个进程没有执行完,就会被放回就绪队列的尾部,等待下一次调度。
优点是公平性强,适合交互式作业。
缺点是对长作业不公平,可能导致上下文切换开销过大。
d) 多级反馈队列(MFQ)调度算法是将进程划分为多个队列,每个队列有不同的优先级。
每个队列采用不同的调度算法,如FCFS或时间片轮转算法。
优点是兼顾了短作业和交互式作业的需求,比较公平。
缺点是算法复杂度较高。
第5章存储管理⑴存储管理的任务和功能是什么?解:存储管理的主要任务是:1.支持多道程序的并发执行,使多道程序能共享存储资源,在互不干扰的环境中并发执行。
2.方便用户,使用户减少甚至摆脱对存储器的管理,使用户从存储器的分配、保护和共享等繁琐事物中解脱出来。
3.提高存储器的利用率和系统吞吐量。
4.从逻辑上扩充内存空间,支持大程序能在小的内存空间运行或允许更多的进程并发执行。
为了完成上述任务,现代操作系统的存储管理应具有以下功能:1.存储空间的分配和I门I收。
2.地址转换,实现逻辑地址到物理地址的映射。
3.主存空间的共享。
4.主存空间的保护。
5.主存储空间的扩充。
6.对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。
对换的目的主要是为了提高内存利用率,提高系统的吞吐量。
(2)为什么要配置层次式存储器?解:为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存-器,中间为主存,最底层是辅存。
根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)5层。
一个文件的数据可能出现在存储系统的不同层次电例如, 一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。
大容量的辅存常常使用磁盘,磁盘数据经常备份在可移动磁盘:或者光盘上,以防止硬盘故障时丢失数据。
(3)什么是逻辑地址?什么是物理地址?为什么要进行二者的转换工作?解:逻辑地址是应用程序中使用的访存地址,有时也称为相对地址,由逻辑地址构成的地址空间称为逻辑空间。
每个应用程序的逻辑地址空间都是从零号地址码开始的。
物理地址是内存储器的实际存储单元地址,有时也称为绝对地址,由物理地址构成的地址空间称为物理空间。
操作系统习题及参考答案一、选择题1. 操作系统的主要功能是什么?A. 提供用户接口B. 管理和分配计算机的资源C. 控制和管理硬件设备D. 执行用户程序参考答案:B. 管理和分配计算机的资源2. 下列哪项不属于操作系统的资源管理功能?A. 内存管理B. 磁盘管理C. 进程管理D. 数据库管理参考答案:D. 数据库管理3. 在进程调度算法中,哪种调度算法能够保证所有进程公平获得CPU时间片?A. 先来先服务(FCFS)B. 短作业优先(SJF)C. 轮转调度(RR)D. 优先级调度参考答案:C. 轮转调度(RR)4. 下列哪个不是进程状态之一?A. 运行态B. 就绪态C. 阻塞态D. 结束态参考答案:D. 结束态5. 现代操作系统采用的存储管理方式是?A. 分页式存储管理B. 段式存储管理C. 段页式存储管理D. 段和页混合存储管理参考答案:C. 段页式存储管理二、填空题1. 在分页式存储管理中,操作系统将内存和磁盘划分为固定大小的______________。
参考答案:页(page)2. 进程在执行过程中如果发生了某些事件而无法继续执行,则进程会进入阻塞态,也被称为______________。
参考答案:等待态3. 进程管理的主要任务之一是实现进程的______________,即从一个进程的执行转到另一个进程的执行。
参考答案:切换(调度)4. 虚拟内存的实现需要使用到的硬件机制是______________。
参考答案:页表5. 一般而言,操作系统的中断处理程序都是使用______________的方式实现的。
参考答案:中断向量表三、简答题1. 请简要说明操作系统的作用及其主要功能。
操作系统是计算机系统中的一个重要组成部分,起着控制和协调计算机硬件与软件资源,为用户提供接口的作用。
操作系统主要功能包括:- 资源管理:负责管理和分配计算机的各种资源,如 CPU、内存、磁盘等,以满足不同进程的需求。
操作系统存储管理期末习题与答案1、静态重定位的时机是____。
A.程序编译时;B.程序装入时;C.程序链接时;D.程序运行时;正确答案:B2、能够装入内存任何位置的代码程序必须是____。
A.可重入的;B.可定位的;C.可静态链接的;D.可动态链接的;正确答案:D3、在可变式分区管理中,采用内存移动技术的目的是_____。
A.增加主存容量;B.合并分配区;C.便于地址转换;D.合并空闲区;正确答案:D4、在存储管理中,采用覆盖与交换技术的目的是____。
A.减少程序占用的主存空间;B.提高CPU效率;C.物理上扩充主存容量;D.代码在主存中共享;5、在分区存储管理中,下面的____最有可能使得高地址空间变成为大的空闲区。
A.循环首次适应法;B.首次适应法;C.最坏适应法;D.最佳适应法;正确答案:B6、以下哪种_____存储管理能提供虚存。
A.页式;B.覆盖;C.分区方式;D.可重定位分区管理;正确答案:A7、在分页式虚存中,分页由_____实现。
A.编译器;B.程序员;C.系统调用;D.操作系统;正确答案:D8、在虚拟页式存储管理方案中,下面_____完成将页面调入内存的工作。
A.页面淘汰过程;B.工作集模型应用;C.缺页中断处理;D.紧缩技术利用;9、采用_____不会产生内部碎片。
A.分段式存储管理;B.段页式;C.分页式存储管理;D.固定分区式存储管理;正确答案:A10、采用________存储管理不会产生外部碎片。
A.虚拟分段式;B.分段式;C.分页式;D.可变分区;正确答案:C11、一台机器有48位虚地址和32位物理地址,若页长为8KB,如果设计一个反置页表,则有______个页表项。
A.2^16;B.2^32;C.2^19;D.2^35;正确答案:C12、作业在执行中发生了缺页中断,经操作系统处理后,应该让其执行_____指令。
A.被中断的;B.被中断的后一条;C.被中断的前一条;D.启动时的第一条;正确答案:A13、在请求分页存储管理中,当访问的页面不在内存时,便产生缺页中断,缺页中断是属于____。
实验报告实验八实验名称:存储管理模拟实验目的:1.掌握请求分页存储管理系统的基本原理2.实现一个模拟的虚拟分页存储管理系统实验要求:编写一个程序,模拟一个虚拟分页存储管理系统。
其中,由系统随机产生进程;进程大小、进程到达次序、时间、进程执行轨迹(页面访问顺序)也随机生成,但进程之间必须有并发存在,进程执行时间需有限,进程调度采用时间片轮转算法(以页面模拟);rss驻留集大小物理块分配策略采取固定分配局部置换;分配算法采用按比例分配算法;调页采用请求调页方式;置换分别采用FIFO、LRU(一直没用) 访问次数和简单CLOCK算法(循环链表)标志有没有被访问;驻留集大小可调,观察驻留集大小对缺页率的影响。
算法思想:FIFO 先进先出法LRU 最久未使用算法CLOCK 简单时钟算法命中率=1-页面失效次数/页地址流(序列)长度驻留集大小可调,观察驻留集大小对缺页率的影响。
结构体定义包含链表:空闲页面表忙页面表包含数组:进程数组页面号数组流程图:实验结果分析:观察数据可看出:横向:三种替换算法的命中率由高到底排列应该是LRU>CLOCK>FIFO。
纵向:进程的驻留级越大,其缺页率就越低。
实验体会:1.存中进程的多少会影响驻留集大小和缺页中断率。
如果存中进程太多,将导致每个进程的驻留集太小,发生缺页中断的概率很大。
相应地,系统发生抖动的可能性就会很大。
如果在存中保持太少的活动进程,那么所有活动进程同时处于阻塞状态的可能性就会很大,从而降低处理机的利用率。
2.置换算法的好坏将直接影响系统的性能,不适当的置换算法可能导致系统出现“抖动”现象。
常用的页面置换算法:最佳置换算法、最近最少使用算法、先进先出算法和时钟算法等。
最佳置换算法难以实现但可以成为核对其他算法的标准。
3.也应注意负载问题,解决系统应当保持多少个活动进程驻留在存的问题,即控制多道程序系统的度。
当存中的活动进程数太少时,负载控制将增加新进程或激活一些挂起进程进入存;反之,当存中的进程数太多时,负载控制将暂时挂起一些进程,减少存中的活动进程数。
兰州大学智慧树知到“计算机科学与技术”《操作系统》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.进程的互斥和同步总是因相互制约而同时引起。
()A.正确B.错误2.页式存储管理与段式存储管理的共同点是()。
A.逻辑地址都是连续的B.都采用动态重定位C.均要由地址转换机构作支撑D.如何分页和分段都由户确定3.交换可以解决内存不足的问题,因此,交换业实现了虚拟存储。
()A.正确B.错误4.操作系统中有一组常称为特殊系统调用,它们不能被系统中断,在操作系统中称为()。
A.初始化程序B.原语C.子程序D.控制模块5.页表的作用是实现逻辑地址到物理地址的映射。
()A.正确B.错误6.已经获得除CPU以外的所有所需资源的进程处于()状态。
A.运行状态B.就绪状态C.自由状态D.阻塞状态7.()存储管理方式提供一维地址空间。
A.固定分区B.分段C.分页D.分段和段页式8.引入缓冲区能使CPU与I/O设备之间速度不匹配的情况得到改善,但并不能减少设备中断CPU的次数。
()A.正确B.错误9.页式管理中的地址结构分页号和页内地址两部分,它()。
A.仍是线性地B.是个二维地址C.是个三维地址D.是个四维地址10.下面是关于线程的叙述,其中正确的是()。
A.线程自己拥有一点资源,但它可以使用所属进程的资源B.由于同一进程中的多个线程具有相同的地址空间,所以它们间的同步和通信也易于实现C.进程创建与线程创建的时空开销不相同D.进程切换与线程切换的时空开销相同11.如果某一进程获得除CPU以外的所有所需运行资源,经调度,分配CPU给它,该进程将进入()。
A.就绪状态B.运行状态C.阻塞状态D.活动状态12.操作系统对临界区调用的原则之一是()。
A.当无进程处于临界区时B.当有进程处于临界区时C.当进程处于就绪状态时D.当进程开始创建时13.单一处理机上,将执行时间有重叠的几个程序称为()。
A.顺序程序B.多道程序C.并发程序D.并行程序14.在可变分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是()。
兰州大学智慧树知到“计算机科学与技术”《操作系统》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.可实现虚拟存储器的存储管理方式有()。
A.固定分区B.段式C.页式D.段页式2.若中央处理机处于“管态”,可以执行的指令有()。
A.读系统时钟B.写系统时钟C.读用户内存自身数据D.写用户内存自身数据E.清除整个内存3.进程间的互斥是一种特殊的同步关系。
()A.正确B.错误4.程序在运行时需要很多系统资源,如内存、文件、设备等,因此操作系统以程序为单位分配系统资源。
()A.正确B.错误5.在文件系统中,()的逻辑文件中记录顺序与物理文件中占用物理块顺序一致。
A.Hash文件B.顺序文件C.索引文件D.链接文件6.若系统中有五个并发进程涉及某个相同的变量A,则变量A的相关临界区是由()临界区构成。
A.2个B.3个C.4个D.5个7.页表的作用是实现逻辑地址到物理地址的映射。
()A.正确B.错误8.任何两个并发进程之间存在着()的关系。
A.各自完全独立B.拥有共享变量C.必须互斥D.可能相互制约9.设备驱动程序具有哪些特点?10.按文件用途来分,编辑程序是()。
A.系统文件B.文档文件C.用户文件D.库文件11.进程和程序的一个本质区别是()。
A.前者分时使用CPU,后者独占CPUB.前者存储在内存,后者存储在外存C.前者在一个文件中,后者在多个文件中D.前者为动态的,后者为静态的12.某系统有同类资源m个,它们供n个进程共享。
若每个进程最多申请x个资源(1≤x≤m),问:各进程申请资源之和在什么范围内系统不会发生死锁?13.每一个进程都有一个从创建到消亡的生命周期,创建一个进程是指为一个程序分配一个工作区和建立一个进程控制块,因而,一个进程消亡时应删除它的程序、工作区和进程控制块。
()A.正确B.错误14.在进入线程的OS中,线程是资源分配和调度的基本单位。
()A.正确B.错误15.在多道程序系统,进程需要等待某种事件的发生时,进程一定进入阻塞状态。
操作系统习题及答案第一章操作系统概述习题1-1 操作系统的功能有哪些?答案:操作系统的功能主要包括:进程管理、存储管理、文件管理、网络管理和用户接口。
习题1-2 请简述进程和线程的区别。
答案:进程是计算机中程序执行的基本单位,每个进程都有独立的内存空间。
线程是进程内部的一个执行流程,线程共享进程的内存空间和其他资源。
进程和线程的主要区别在于资源占用和调度级别。
第二章处理器管理习题2-1 请解释什么是进程调度。
答案:进程调度是指操作系统根据某种策略,决定哪个进程获得处理器资源进行执行的过程。
习题2-2 常用的进程调度算法有哪些?答案:常用的进程调度算法包括:先来先服务(FCFS)、短作业优先(SJF)、优先级调度、轮转调度(RR)和多级反馈队列调度。
第三章存储管理习题3-1 什么是虚拟存储器?答案:虚拟存储器是操作系统提供给用户的一种抽象的存储资源,它将物理内存和硬盘空间扩展成一个连续的地址空间,使得每个进程都好像拥有全部内存一样。
习题3-2 请解释分页存储管理和分段存储管理的主要区别。
答案:分页存储管理和分段存储管理都是虚拟存储器的实现方式。
主要区别在于地址结构,分页存储管理将逻辑地址分为页号和页内偏移,而分段存储管理将逻辑地址分为段号和段内偏移。
第四章文件管理习题4-1 什么是文件系统?答案:文件系统是操作系统中负责数据持久存储和管理的软件结构。
习题4-2 常用的文件访问控制方式有哪些?答案:常用的文件访问控制方式包括:顺序访问、随机访问和直接访问。
第五章网络管理习题5-1 什么是网络操作系统?答案:网络操作系统是一种特殊类型的操作系统,它支持网络中的计算机资源共享,并提供网络通信和网络管理功能。
习题5-2 请列举出常见的网络协议。
答案:常见的网络协议包括:TCP/IP、HTTP、FTP、SMTP、DNS等。
第六章用户接口习题6-1 什么是命令行接口(CLI)?答案:命令行接口(CLI)是用户与操作系统交互的一种方式,用户通过输入命令来执行操作系统的各种功能。
2022年兰州大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、下面关于文件系统的说法正确的是()。
A.文件系统负责文件存储空间的管理,但不能实现文件名到物理地址的转换B.在多级目录结构中,对文件的访问是通过路径名和用户目录名进行的C.文件可以被划分成大小相等的若干物理块,且物理块大小也可以任意指定D.逻辑记录是对文件进行存取操作的基本单位2、考虑一个文件存放在100个数据块中。
文件控制块、索引块或索引信息都驻留内存。
那么如果().不需要做任何磁盘I/O操作。
A.采用连续分配策略,将最后一个数据块搬到文件头部,B.采用单级索引分配策略,将最后一个数据块插入文件头部C.采用隐式链接分配策略,将最后一个数据块插入文件头部D.采用隐式链接分配策略,将第一个数据块插入文件尾部,3、下面有关选择进程调度算法的准则,错误的是()A.尽量提高处理器利用率B.尽可能提高系统吞吐量C.适当增长进程在就绪队列中的等待时间D.尽快响应交互式用户的要求4、在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。
所谓临界区是指()。
A.一个缓冲区B.一段数据区C.同步机制D.一段程序5、有若干并发进程均将一个共享变量count的值加1 次,那么有关count中的值说法正确的是()。
1)肯定有不止确的结果2)肯定有止确的结果3)若控制这些并发进程互斥执行count加1操作,count中的值正确A.1)和3)B.2)和3)C.3)D.1)、2)、3)的说法均不正确6、假定有个请求分页存储管理系统,测得系统各相关设备的利用率为:CPU为10%,磁盘交换区为99.7%:其他1/O设备为5%。
试问:下面()措施可能改进CPU的利用率?I.增大内存的容量II.增人磁盘交换区的容量III.减少多道程序的度数IV.增加多道程序的度数V.使用更快速的磁盘交换区VI.使用更快速的CPUA.I、II、III、IVB.I、IIC.II、III、VD. II、VI7、下列关于页式存储说法中,正确的是()。
第五章存储管理一、选择题:1.将作业地址空间中的逻辑地址转换为内存中的物理地址的过程称为()。
A.重定位B.逻辑变换C.地址交换D.进程创建2.虚存的基础是()。
A.局部性理论B.程序执行时对内存访问不均匀C.指令局部性D.变量的连续访问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.虚存的可行性的基础是()A.程序执行的离散性B.程序执行的顺序性C.程序执行的局部性D.程序执行的并发性11.在存储管理中,采用覆盖与交换技术的目的是()。
A.减少程序占用的主存空间B.物理上扩充主存容量C.提高CPU效率D.代码在主存中共享12在内存分配的“最佳适应法”中,空闲块是按()。
操作系统存储管理习题在计算机系统中,操作系统的存储管理是一项至关重要的任务。
它负责有效地管理计算机的内存资源,以确保各个程序能够顺利运行,同时提高系统的性能和资源利用率。
首先,我们来了解一下存储管理的基本概念。
内存是计算机用于存储正在运行的程序和数据的地方。
存储管理的主要目标包括:为程序分配内存空间,避免内存碎片的产生,实现内存的保护和共享,以及在必要时进行内存的扩充。
为了实现这些目标,操作系统采用了多种存储管理技术。
其中,分区存储管理是一种较为简单的方式。
它将内存分为若干个固定大小或可变大小的分区,每个程序被分配到一个或多个分区中运行。
固定分区管理虽然简单,但容易造成内存空间的浪费;而可变分区管理则相对灵活,但可能会产生较多的外部碎片。
另一种常见的存储管理技术是页式存储管理。
在这种方式下,内存被划分为固定大小的页框,程序被划分为同样大小的页面。
通过页表将程序的页面与内存的页框进行映射。
页式存储管理有效地解决了外部碎片问题,但可能会产生内部碎片。
还有一种是段式存储管理,它将程序按照逻辑划分为不同的段,如代码段、数据段等。
每个段有自己的起始地址和长度。
段式存储管理便于程序的模块化设计和共享,但段的大小不固定,管理起来相对复杂。
在实际应用中,还常常使用段页式存储管理,它结合了段式和页式存储管理的优点。
先将程序分段,再将每个段分页,从而实现更精细的内存管理。
下面我们通过一些习题来加深对存储管理的理解。
假设一台计算机的内存为 2GB,采用页式存储管理,页面大小为4KB。
那么,页表的大小是多少?要计算页表的大小,首先需要计算内存中页面的数量。
2GB 等于2×1024×1024×1024 字节,页面大小为 4KB 即 4×1024 字节。
所以页面数量为(2×1024×1024×1024)÷(4×1024) = 524288 个。
第4章存储管理补充作业1.在某操作系统中,采用动态分区存储管理技术进行存储管理。
假设其用户区存储空间是512K,分配时截取空闲块的前半部分(即低地址部分),初始时内存全部空闲。
系统执行如下操作序列:1)A作业要求运行,需要申请300K空间2)B作业要求运行,需要申请100K空间3)A作业运行完成4)C作业要求运行,需要申请150K空间5)D作业要求运行,需要申请50K空间6)E作业要求运行,需要申请90K空间(1)若采用最先适应法,空闲块表中有哪些空闲块(写出大小和起始地址)a)起始地址为290K的一块10K空间b)起始地址为400K的一块112K空间(2)若采用最佳适应法,空闲块表中有哪些空闲块(写出大小和起始地址)a)起始地址为240K的一块60K空间b)起始地址为450K的一块62K空间(3)若随后有F作业要求投入运行,需要申请90K空间,针对以上两种分配法,请分别说明操作结果。
并对其操作结果进行评论。
a)对最先适应法:在起始地址为400K的一块112K空间中划分一块分配,分配后空闲区:起始地址为290K的一块10K空间、起始地址为490K的22K空间b)采用最佳适应法则无法分配,必须采用内存紧缩才能分配2.在某操作系统中,采用静态页式存储管理技术进行存储管理,页面大小为2048字节,某进程的逻辑地址空间为6页,且已知该进程的页表如表1所示(表中页号和物理块号都是16进制数据,存取控制位中E表示可执行、R表示可读、W表示可写,指令load 1,[1234]表示把本进程虚拟地址为0x1234中存储内容读入1号寄存器,指令store 2,[4567]表示把2号寄存器中存放的数据存入本进程中虚拟地址为0x4567所对应的存储器单元中,call [5678]表示调用子程序,其逻辑地址为5678。
请说明执行以下每条指令序列时将会发生的情况(正常执行:写出对应的物理地址(16进制),不能正常执行:说明原因)表1 进程页表store 1,[02A8]:存储保护错load 2,[107C]:7FA7Cload 2,[3A2C]:越界load 1,[2700]:118700load 1,[1A00]:存储保护错store 1,[0FA8]:797A8store 1,[72A8]:越界call [512]:D512call [2566]:存储保护错3.在某操作系统中,采用静态页式存储管理技术进行存储管理,页面大小为1024字节,某进程的逻辑地址空间为6页,且已知该进程的页表如表2所示(表中页号和物理块号都是10进制数据,存取控制位中E表示可执行、R表示可读、W表示可写,指令load 1,[1234]表示把本进程虚拟地址为1234中存储内容读入1号寄存器,指令store 2,[4567]表示把2号寄存器中存放的数据存入本进程中虚拟地址为4567所对应的存储器单元中。
(单选题)1: 由于系统无法预先知道一个作业未来访问页面的情况,所以( )在实际上是无法实现的。
A: 先进先出淘汰算法
B: 最近最少使用淘汰算法
C: 最优淘汰算法
D: 最不常用页面淘汰算法
正确答案: C
(单选题)2: 下面关于线程的叙述中,正确的是()。
A: 不论是系统支持线程还是用户级线程,其切换都需要内核的支持
B: 线程是资源的分配单位,进程是调度和分配的单位
C: 不管系统中是否有线程,进程都是拥有资源的独立单位
D: 在引入线程的系统中,进程仍是资源分配和调度分派的基本单位
正确答案: A
(单选题)3: 一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是( )。
A: 2
B: 1
C: 3
D: 0.5
正确答案: C
(单选题)4: 操作系统中采用缓冲技术的目的是为了增强系统( )的能力。
A: 串行操作
B: 控制操作
C: 重执操作
D: 并行操作
正确答案: D
(单选题)5: 在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和( )相同。
A: 先来先服务调度算法
B: 短作业优先调度算法
C: 时间片轮转调度算法
D: 长作业优先调度算法
正确答案: A
(多选题)6: 若把用户要求顺序存取的文件保存到磁盘上,则文件系统可把该文件组织成()结构。
A: 顺序
B: 链接
C: 索引
D: 流式。
计算机操作系统习题及答案(6)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN第6章 内存管理1)选择题(1)采用 __B__ 不会产生内部碎片。
A. 分页存储管理B. 分段存储管理C. 固定分区存储管理D. 段页式存储管理(2)首次适应算法的空白区是 _A__ 。
A. 按地址由小到大排列B. 按地址由大到小排列C. 按大小递减顺序连在一起D. 按大小递增顺序连在一起(3)在分区存储管理中的拼接技术可以 _A__ 。
A. 集中空闲区B. 增加内存容量C. 缩短访问周期D. 加速地址转换(4)在固定分区分配中,每个分区的大小是 _D__ 。
A. 可以不同但根据作业长度固定B. 相同C. 随作业长度变化D. 可以不同但预先固定(5)采用分段存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是 _B__ 。
A. 224B. 216C. 28D. 232(6)设内存分配情况如图6-20所示。
若要申请一块40K 字节的内存空间,采用最佳适应算法,则所得到的分区首址为 _C__ 。
图6-20 内存分配情况A. 100KB. 190KC. 330KD. 410K(7)把作业地址空间使用的逻辑地址变成内存的物理地址称为 __D__ 。
A. 加载B. 物理化0 100K 180K190K280K330K390K410K512K -1C. 逻辑化D. 重定位(8)在以下存储管理方案中,不适用于多道程序设计系统的是 _C_ 。
A. 固定式分区分配B. 页式存储管理C. 单一连续分配D. 可变式分区分配(9)在可变式分区分配方案中,某一作业完成后,系统收回其内存空间并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是 _D__ 。
A. 无上邻空闲区也无下邻空闲区B. 有上邻空闲区但无下邻空闲区C. 有下邻空闲区但无上邻空闲区D. 有上邻空闲区也有下邻空闲区(10)采用两级页表的页式存储管理中,按给定的逻辑地址进行读写时,通常需访问主存的次数是__C__ 。
实验七实验报告实验名称:7存储管理实验目的:1.观察系统存储器使用情况2.观察进程使用存储器的情况3.掌握通过内存映像文件提高性能的方法4.掌握动态内存分配技术实验时间3学时预备知识:1.存储相关的命令free 显示系统使用和未被使用的内存数量(可以实时执行)输出包含的标题有 3 行信息:Mem。
此行包含了有关物理内存的信息。
包括以下详细内容:total。
该项显示可用的物理内存总量,单位为KB。
该数字小于安装的物理内存的容量,是因为内核本身也要使用一小部分的内存。
used。
该项显示了用于应用程序超速缓存数据的内存容量。
free。
该项显示了此时未使用且有效的内存容量。
Shared/buffers 缓冲区/cached。
这些列显示了有关内存如何使用的更为详细的信息。
-/+ buffers/cache。
Linux 系统中的部分内存用来为应用程序或设备高速缓存数据。
这部分内存在需要用于其他目的时可以释放。
free列显示了调整的缓冲区行,显示释放缓冲区或高速缓存时可以使用的内存容量。
Swap。
该行显示有关交换内存利用率的信息。
该信息包含全部、已使用和释放的可用内存容量。
vmstat 报告进程、内存、分页、IO等多类信息(使用手册页)size 列出目标文件段大小和总大小(使用手册页)2./proc文件系统(使用手册页man 5 proc)/proc/meminfo 内存状态信息/proc/stat 包含内存页、内存对换等信息。
/proc/$pid/stat 某个进程的信息(包含内存使用信息)/proc/$pid/maps某个进程的内存映射区信息,包括地址范围、权限、偏移量以及主次设备号和映射文件的索引节点。
/proc/$pid/statm 某个进程的内存使用信息,包括内存总大小、驻留集大小、共享页面数、文本页面数、堆栈页面数和脏页面数。
3.内存映像文件内存映像文件是指把一个磁盘文件映像到内存中,二者存在逐字节的对应关系。
实验七实验报告实验名称:7存储管理实验目的:1.观察系统存储器使用情况2.观察进程使用存储器的情况3.掌握通过内存映像文件提高性能的方法4.掌握动态内存分配技术实验时间3学时预备知识:1.存储相关的命令free 显示系统使用和未被使用的内存数量(可以实时执行)输出包含的标题有 3 行信息:Mem。
此行包含了有关物理内存的信息。
包括以下详细内容:total。
该项显示可用的物理内存总量,单位为KB。
该数字小于安装的物理内存的容量,是因为内核本身也要使用一小部分的内存。
used。
该项显示了用于应用程序超速缓存数据的内存容量。
free。
该项显示了此时未使用且有效的内存容量。
Shared/buffers 缓冲区/cached。
这些列显示了有关内存如何使用的更为详细的信息。
-/+ buffers/cache。
Linux 系统中的部分内存用来为应用程序或设备高速缓存数据。
这部分内存在需要用于其他目的时可以释放。
free列显示了调整的缓冲区行,显示释放缓冲区或高速缓存时可以使用的内存容量。
Swap。
该行显示有关交换内存利用率的信息。
该信息包含全部、已使用和释放的可用内存容量。
vmstat 报告进程、内存、分页、IO等多类信息(使用手册页)size 列出目标文件段大小和总大小(使用手册页)2./proc文件系统(使用手册页man 5 proc)/proc/meminfo 内存状态信息/proc/stat 包含内存页、内存对换等信息。
/proc/$pid/stat 某个进程的信息(包含内存使用信息)/proc/$pid/maps某个进程的内存映射区信息,包括地址范围、权限、偏移量以及主次设备号和映射文件的索引节点。
/proc/$pid/statm 某个进程的内存使用信息,包括内存总大小、驻留集大小、共享页面数、文本页面数、堆栈页面数和脏页面数。
3.内存映像文件内存映像文件是指把一个磁盘文件映像到内存中,二者存在逐字节的对应关系。
这样做可以加速I/O操作,并可以共享数据。
3.1 mmap(建立内存映射)表头文件#include <unistd.h>#include <sys/mman.h>定义函数void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize);函数说明mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。
参数start指向欲对应的内存起始地址,通常设为NULL,代表让系统自动选定地址,对应成功后该地址会返回。
参数length代表将文件中多大的部分对应到内存。
参数prot代表映射区域的保护方式有下列组合PROT_EXEC 映射区域可被执行PROT_READ 映射区域可被读取PROT_WRITE 映射区域可被写入PROT_NONE 映射区域不能存取参数flags会影响映射区域的各种特性MAP_FIXED 如果参数start所指的地址无法成功建立映射时,则放弃映射,不对地址做修正。
通常不鼓励用此旗标。
MAP_SHARED对映射区域的写入数据会复制回文件内,而且允许其他映射该文件的进程共享。
MAP_PRIV A TE 对映射区域的写入操作会产生一个映射文件的复制,即私人的“写入时复制”(copy on write)对此区域作的任何修改都不会写回原来的文件内容。
MAP_ANONYMOUS建立匿名映射。
此时会忽略参数fd,不涉及文件,而且映射区域无法和其他进程共享。
MAP_DENYWRITE只允许对映射区域的写入操作,其他对文件直接写入的操作将会被拒绝。
MAP_LOCKED 将映射区域锁定住,这表示该区域不会被置换(swap)。
在调用mmap()时必须要指定MAP_SHARED 或MAP_PRIV ATE。
参数fd为open()返回的文件描述词,代表欲映射到内存的文件。
参数offset为文件映射的偏移量,通常设置为0,代表从文件最前方开始对应,offset必须是分页大小的整数倍。
返回值若映射成功则返回映射区的内存起始地址,否则返回MAP_FAILED(-1),错误原因存于errno 中。
错误代码EBADF 参数fd 不是有效的文件描述词EACCES 存取权限有误。
如果是MAP_PRIV ATE 情况下文件必须可读,使用MAP_SHARED则要有PROT_WRITE以及该文件要能写入。
EINV AL 参数start、length 或offset有一个不合法。
EAGAIN 文件被锁住,或是有太多内存被锁住。
ENOMEM 内存不足。
3.2 munmap(解除内存映射)表头文件#include<unistd.h>#include<sys/mman.h>定义函数int munmap(void *start,size_t length);函数说明munmap()用来取消参数start所指的映射内存起始地址,参数length则是欲取消的内存大小。
当进程结束或利用exec相关函数来执行其他程序时,映射内存会自动解除,但关闭对应的文件描述词时不会解除映射。
返回值如果解除映射成功则返回0,否则返回-1,错误原因存于errno中错误代码EINV AL参数start或length 不合法。
4.动态内存分配4.1 malloc(配置内存空间)表头文件#include<stdlib.h>定义函数void * malloc(size_t size);函数说明malloc()用来配置内存空间,其大小由指定的size决定。
返回值若配置成功则返回一指针,失败则返回NULL。
4.2 free(释放原先配置的内存)表头文件#include<stdlib.h>定义函数void free(void *ptr);函数说明参数ptr为指向先前由malloc()、calloc()或realloc()所返回的内存指针。
调用free()后ptr所指的内存空间便会被收回。
假若参数ptr所指的内存空间已被收回或是未知的内存地址,则调用free()可能会有无法预期的情况发生。
若参数ptr为NULL,则free()不会有任何作用。
4.3 calloc(配置内存空间)表头文件#include <stdlib.h>定义函数void *calloc(size_t nmemb,size_t size);函数说明calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。
这和使用下列的方式效果相同:malloc(nmemb*size);不过,在利用calloc()配置内存时会将内存内容初始化为0。
返回值若配置成功则返回一指针,失败则返回NULL。
5.其他getpagesize(取得内存分页大小)4096个字节表头文件#include<unistd.h>定义函数size_t getpagesize(void);函数说明返回一分页的大小,单位为字节(byte)。
此为系统的分页大小,不一定会和硬件分页大小相同。
返回值内存分页大小。
附加说明在Intel x86 上其返回值应为4096bytes。
实验要求:1.分别使用命令和/proc文件系统列出系统当前内存的使用情况。
Free2.启动几个耗时较长的后台进程(多个grep),分别使用free和vmstat连续实时观察内存的使用情况。
寻找字符串模式匹配3.用size工具观察三个不同的可执行文件的大小以及它们段的大小。
4.启动一个耗时较长的后台进程,通过/proc文件系统查看该进程所有内存使用相关信息,并列出。
5.编写一个程序,打印系统的页面大小。
6.阅读并编译运行以下程序,总结内存映象文件的使用方法。
范例/* 利用mmap()来读取/etc/passwd 文件内容*/#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<sys/mman.h>main(){int fd;void *start;struct stat sb;fd=open(“/etc/passwd”,O_RDONL Y); /*打开/etc/passwd*/fstat(fd,&sb); /*取得文件大小*/start=mmap(NULL,sb.st_size,PROT_READ,MAP_PRIV ATE,fd,0);if(start= = MAP_FAILED) /*判断是否映射成功*/return;printf(“%s”,start);munmap(start,sb.st_size); /*解除映射*/closed(fd);}7.编写一个程序,利用内存映象文件,实现less工具的功能。
manp到内存中实验要求:8.分别使用命令和/proc文件系统列出系统当前内存的使用情况。
9.启动几个耗时较长的后台进程(多个grep),分别使用free和vmstat连续实时观察内存的使用情况。
寻找字符串模式匹配10.用size工具观察三个不同的可执行文件的大小以及它们段的大小。
Size命令的输出不包括stack和heap的部分。
只包括文本段(text),代码段(data),未初始化数据段(bss)三部分。
11.启动一个耗时较长的后台进程,通过/proc文件系统查看该进程所有内存使用相关信息,并列出。
第一个启动的后台进程是上个实验最后一题的读写程序。
此程序耗时较长第二个启动的是xeyes进程。
12.编写一个程序,打印系统的页面大小。
代码非常简单,只用到了getpagesize()语句的应用13.阅读并编译运行以下程序,总结内存映象文件的使用方法。
范例/* 利用mmap()来读取/etc/passwd 文件内容*/#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<sys/mman.h>main(){int fd;void *start;struct stat sb;fd=open(“/etc/passwd”,O_RDONL Y); /*打开/etc/passwd*/fstat(fd,&sb); /*取得文件大小*/start=mmap(NULL,sb.st_size,PROT_READ,MAP_PRIV ATE,fd,0);if(start= = MAP_FAILED) /*判断是否映射成功*/return;printf(“%s”,start);munmap(start,sb.st_size); /*解除映射*/close(fd);}总结内存映象文件的使用方法:内存映像其实就是在内存中创建一个和外存文件完全相同的映像,用户可以将整个文件映射到内存,也可以部分映射。