操作系统期末复习
第一章 操作系统引论
一、Os具有哪几大特征?它们之间有何关系?
【参考答案】OS具有并发、共享、虚拟和异步这4个基本特征。它们之间的关系包含以下几个方面。
- 并发和共享是OS最基本的特征。为了提高计算机资源的利用率,OS必然要采用多道程序设计技术 ,使多个程序共享系统的资源、并发地执行。
- 并发性和共享性互为存在的条件。一方面,资源的共享是以程序(进程)的并发执行为条件的。若系统不允许程序并发执行,就不会存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好各进程对共享资源的访问,则必将影响程序的并发执行,甚至会使程序无法并发执行。
- 虚拟性以并发性和共享性为前提。为了使并发进程能更方便、更有效地共享资源,OS常采用多种虚拟技术在逻辑上增加CPU和设备的数量以及存储器的容量,从而解决并发进程对有限系统资源的共享问题。
- 异步性是并发性和共享性的必然结果。OS允许多个并发进程共享资源、相互合作,使得每个进程的运行过程受到了其他进程的制约,不再“一气呵成”,这必然会导致异步这一特征的产生。
二、设有3道程序A、B、 C,它们按照优先次序(A→B→C)顺序执行,它们的计算时间和I/O操作时间如下表所示,假设3道程序以串行方式使用相同的设备进行 I/O操作,试画出单道程序运行和多道程序运行的时间关系图,并计算完成这3道程序所须花费的时间。
【参考答案】计算时间是CPU处理时间;I/O操作时间是输人与输出时间。
3个程序共享I/O设备,即串行使用I/O设备。
(1)单道程序运行时,3道程序串行执行,即先执行A、再执行B、最后执行C,
时间关系图如下图所示。
单道程序运行时,3道程序使用的时间为:(30+40+10)+(60+30+10)+(20+40+20)=260ms
(2)多道程序运行时,3道程序的计算与L/O操作可部分并行,
分为非立即抢占式和立即抢占式两种。时间关系图如下图所示。
多道程序运行时,3道程序非立即抢占式的总时间为180ms,
立即抢占式的总时间为190ms.
非立即抢占式:
立即抢占式:
第2章 进程的描述与控制
三、进程最基本的状态有哪些?哪些事件可能会引起不同状态间的转换?
【参考答案】进程最基本的状态有3种。
①运行态:进程占有处理机,正在运行。
②就绪态:进程具备运行条件,等待系统分配处理机以便运行。
③等待态(又称为阻塞态或睡眠态):进程不具备运行条件,正在等待某个事件的完成。
进程不同状态间的转换及引发原因介绍如下。
①运行态→等待态:等待使用资源或某事件发生;
②等待态→就绪态:资源得到满足或某事件已经发生;
③运行态→就绪态:运行时间片到达或出现有更高优先级的进程;
④就绪态→运行态:CPU空闲时调度选中一个就绪进程需要其运行。
四、 叙述组成进程的基本要素,并说明它们的作用。
【参考答案】每个进程均由PCB、程序块、数据块和堆栈这4个基本要素组成。它们的作用分别描述如下。
(1)PCB存进信息、现场信息和控制信息。进程创建时建立PCB,进程撤销时回收PCB,其与进程一一对应;
(2)程序块:即被执行的程序。它规定了进程一次运行应实现的功能,通常是纯代码,其作为一种系统资源可被多个进程共享;
(3)数据块:即程序运行时须加工处理的对象,包括全局变量、局部变量和常量等的存放区以及开辟的工作区,常常为一个进程专用;
(4)堆栈:每个进程都将捆绑一个堆栈,用来存储进程的标志信息、现场信息和控制信息。
第3章 处理机调度与死锁
五、(考研真题)有5个进程(见下表)需要调度执行,若采用非抢占式优先级(短进程优先)调度算法,问这5个进程的平均周转时间是多少?
【参考答案】本题分步解答如下
(1)采用非抢占式优先级(短进程优先)调度算法、各进程执行次序如下图所示。
在0时刻,进程P1到达,P1获得处理机。由于不可抢占,因此P1会一直运行到9时刻结束;在9时刻,所有进程到达,根据短进程优先调度,P3获得处理机,然后是P5;P2和P4的预计运行时间一样,按照FCFS原则,P2优先获得处理机,最后是P4。
(2)周转时间=完成时间-作业到达时间。因此
P1的周转时间是9-0=9
P2的周转时间是16-0.4=15.6
P3的周转时间是10-1-9
P4的周转时间是20-5.5=14.5
P5的周转时间是12-7-5。
这5个进程的平均周转时间为(9+15.6+9+14.5+5)/5=10.62
第4章 进程同步
六、如下图所示,有1个计算进程和1个打印进程,它们共享一个单缓冲区,计算进程不断计算出一个整型结果,并将它放入单缓冲区中;打印进程则负责从单缓冲区中取出每个结果并进行打印。请用信号量机制来实现它们的同步关系。
【参考答案】由题意可知,本题中计算进程和打印进程为合作的同步关系。
计算进程需要向空闲缓冲区中放入计算好的数据,因此要设置它所需要的empty信号量,由于开始时缓冲区为空,因此empty初值为1;
打印进程需要输出已放入缓冲区中的打印结果,因此需要设置它所需要的信号量full,初始状态下缓冲区中无结果可供打印,故full的初值为0。
七、有3个进程P1、P2、P3协作解决文件打印问题。P1将文件记录从磁盘读入内存 缓冲区1,每执行一次读一个记录;P₂将缓冲区1中的内容复制到缓冲区2中,每执公一次复制一个记录;P3将缓冲区2中的内容打印出来,每执行一次打印一个记录。缓冲区的大小与记录大小一样。请用信号量机制来保证文件的正确打印。
【参考答案】对缓冲区1来说,P1,是生产者,P2是消费者; 对缓冲区2来说,P2是生产者,P3是消费者。
缓冲区1和缓冲区2都只能存放一个记录,它们都是临界资源,但无须使用信号量实现互斥。
P2对于缓冲区1是消费者,对于缓冲区2是生产者,因此要对P₂设置两个信号量来分控制其对不同缓冲区的不同操作。该文件打印过程的同步算法可描述为:
第5章 存储器管理
八、 存储器管理的基本任务,是为多道程序的并发执行提供良好的存储器环境。请问:“良好的存储器环境”应包含哪几个方面?
【参考答案】“良好的存储器环境”应包含:
①让每道程序“各得其所”,在不受干扰的环境中运行,还可以使用户从存储空间的分配、保护等烦琐事务中解脱出来;
②向用户提供更大的存储空间,使更多的作业能同时运行,或使更大的作业能在较小的内存空间中运行;
③为用户在信息的访问、保护、共享以及动态链接等方面提供方便;
④使存储器有较高的利用率。
九、某系统采用分页存储管理方式,拥有逻辑空间32页,每页2KB;拥有物理空间1MB。
(1)写出逻辑地址的格式。
(2)若不考虑访问权限等,则进程的页表有多少项?每项至少有多少位?
(3)如果物理空间减少一半,则页表结构应相应地做怎样的改变?
【参考答案】
(1)该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述。而每页为2KB,因此,页内地址必须用11位来描述,这样即可得到它的逻辑地址格式如下。
(2)每个进程最多有32个页面,因此,进程的页表项最多为32项。若不考虑访问权限等,则页表项中只须给出页所对应的物理块块号,1MB的物理空间可分成29个内存块,故每个页表项至少有9位。
(3)如果物理空间减少一半,则页表中的页表项数仍不变,但每项的长度可减少1位。
十、已知某分页系统,内存容量为64KB,页面大小为1KB,对一个4页大的作业,其0、1、2、3页分别被分配到内存的2、4、6、7块中。
(1)将十进制的逻辑地址1023、2500、3500、4500转换为物理地址。
(2)以十进制的逻辑地址1023为例,画出地址转换过程图。
【参考答案】
(1)对上述逻辑地址,可首先计算出它们的页号和页内地址(逻辑地址除以页面大小,得到的商为页号,余数为页内地址),然后通过页表将其转换成对应的物理地址。
①逻辑地址1023。[1023/1K]=0,1023%1K=1023,
因此页号为0,页内地址为1023,查页表找到对应的物理块号为2,故物理地址为2x1K+1023=3071。
②逻辑地址2500。[2500/1K]=2,2500%1K=452,因此页号为2,页内地址为452,查页表找到对应的物理块号为6,故物理地址为6x1K+452=6596。
③逻辑地址3500。[3500/1K]=3,3500%1K=428,因此页号为3,页内地址为428,查页表找到对应的物理块号为7,故物理地址为7x1K+428=7596。
④逻辑地址4500。[4500/1K]=4,4500%1K=404,因此页号为4,页内地址为404,因页号大于页表长度,故产生越界中断。
(2)逻辑地址1023的地址转换过程如下图所示。
第6章 虚拟存储器
十一、假定某OS存储器采用页式存储管理,一个进程在快表中的页表项和在内存中的页表项如下表所示。
假定该进程长度为 320B,每页 32B。现有逻辑地址 101、204、576(八进制),若这些逻辑地址能转换成物理地址,则说明转换的过程,并指出具体的物理地址;若不能转换则说明原因。
【参考答案】1页的大小为32B,逻辑地址结构为:低5位为页内位移,其余高位为页号。
101(八进制)-001 000001(二进制),因此页号为2,在联想寄存器中,对应的块号 f3,即物理地址为(f3,1)。
204(八进制)=010000100(二进制),因此页号为4,不在联想寄存器中,查找内存的面表得块号为f5,即物理地址为(f5,4),用其更新联想寄存器。
576(八进制)=101111110(二进制),因此页号为11,已超出页表范围,即产生越界中断。
十二、(考研真题)有一个请求分页式虚拟存储器系统,分配给某进程3个物理块,开始时内存中预装入第 1、2、3个页面,该进程的页面访问序列为1,2,4,2,6,2,1,5,6,1。
(1)若采用OPT(optimal,最佳)页面置换算法,则访问过程发生的缺页率为多少?
(2)若采用LRU页面置换算法,则访问过程中的缺页率为多少?
【参考答案】
(1)采用OPT页面置换算法时,因为内存中预装入了前3个页面,所以前3个页面不发生缺页。访问过程中发生了2次缺页,缺页率f=2/10x100%=20%。页面置换走向如下图所示。
(2)采用LRU页面置换算法时,访问过程中发生了4次缺页,缺页率f=4/10x100%=40%。页面置换走向如下图所示。
第7章 输入/输出系统
十三、I/O软件一般分为用户层软件、设备独立性软件、设备驱动程序和中断处理程序4个层次,它们的基本功能分别是什么?请说明下列工作分别是在哪一层完成的?
(1)向设备寄存器写命令。
(2)检查用户是否有权使用设备。
(3)将二进制整数转换成ASCⅡ的格式打印。(4)缓冲管理。
【参考答案】
I/O软件每层功能略(见教材)
(1)向设备寄存器写命令是在设备驱动程序中完成的。
(2)检查用户是否有权使用设备,属于设备保护,因此其在设备独立性软件中完成。
(3)将二进制整数转换成ASCII格式打印是通过I/O库函数完成的,如C语言的库函数中就有打印格式的控制字符串,因此其在用户层软件中完成。
(4)缓冲管理属于I/O的公有操作,因此是在设备独立性软件中完成的。
十四、(考研真题)假设有11个进程先后提出磁盘I/O请求,当前磁头正在110号磁道处,并预向磁道序号增加的方向移动。请求队列的顺序为30、145、120、78、82、140、2042、165、65,分别用FCFS 调度算法和 SCAN调度算法完成上述请求,写出磁道访问顺序和每次磁头移动的距离,并计算平均移动磁道数。
【参考答案】
本题分步解答如下
(1)FCFS调度算法:访问顺序为30、145、120、78、82、140、20、42、165、55、65;
移动距离为80、115、25、42、4、58、120、22、123、110、10;
平均移动磁道数为:(80+115+25+42+4+58+120+22+123+110+10)/11=64.45
(2)SCAN调度算法:访问顺序为120、140、145、165、82、78、65、55、42、30、20;
移动距离为10、20、5、20、83、4、13、10、13、12、10;
平均移动磁道数为:(10+20+5+20+83+4+13+10+13+10+10)/11=18.18
十五、(考研真题)磁盘请求服务队列中要访问的磁道分别为38、6、37、100、14、124、65、67,磁头上次访问了20磁道,当前处于30磁道上,试采用FCFS、SSTF(shortest seek time first,最短寻道时间优先)和SCAN调度算法,分别计算磁头移动的磁道数。
**【参考答案】**本题分步解答如下。
(1)FCFS调度算法:磁头移动顺序为30、38、6、37、100、14、124、65、67; 移动磁道数为8+32+31+63+86+10+59+2=391
(2)SSTF调度算法:磁头移动顺序为30、37、38、14、6、65、67、100、124;
移动磁道数为7+1+24+8+59+2+33+24=158。
(3)SCAN调度算法:磁头移动顺序为30、37、38、65、67、100、124、14、6;
移动磁道数为7+1+27+2+33+24+110+8=212
第8章 文件管理
十六、什么是文件的逻辑结构?逻辑文件有哪几种组织形式?
【参考答案】
①文件的逻辑结构是指从用户的角度出发所观察到的文件组织形式,也就是用户可以直接处理的数据及其结构。
②逻辑文件根据其结构可分为两种:一种是无结构的流式文件,是指文件信息由一串字符流构成;另一种是有结构的记录式文件,是指将文件信息按照在逻辑上独立的含义划分为信息单位,每个信息单位称为一个逻辑记录(简称记录)。
十七、什么是“按名存取”?文件系统如何实现文件的按名存取?
【参考答案】
①“按名存取”指用户只要给出文件名就能存取外存空间中的文件信息,而不必给出文件的具体物理地址。
②文件系统实现文件按名存取的步骤为:首先利用用户提供的文件名,检索文件目录中该文件的FCB(file control
block,文件控制块)或索引节点;然后根据FCB中的文件物理地址,将文件读人内存。
第9章 磁盘存储器管理
十八、有一计算机系统利用下图所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。如果盘块从1开始编号,每个盘块的大小为1KB,则请回答下列问题:
(1)现要为文件分配两个盘块,试具体说明分配过程;
(2)若要释放磁盘的第300块,则应如何处理:
【参考答案】
(1)为某文件分配两个盘块的过程如下:
①顺序检索位示图,从中找到第一个值为0的二进制位,得到其行号i=2,列号j=3;
②计算出该位所对应的盘块号 b=i×16+j+1=2×16+3+1=36
③修改位示图,令map[2,3]=1,并将对应的盘块36分配给文件。按照同样的方式,可找到第3行、第6列的值为0的位,将其转换为盘块号55;将位的值修改为1,并将55号盘块分配给文件。
(2)释放磁盘的第300块时,应进行如下处理:
①计算出磁盘第300块所对应的二进制位的行号i和列号j,即i=(300-1)DIV16=18,j=(300-1)MOD16=11;
②修改位示图,令map[18,11]=0,表示对应的盘块为空闲块。
十九、(考研真题)某文件系统采用索引物理结构存储文件,磁盘空间为1000GB。一个自录项可以存储10个盘块的地址,前9个为直接地址,最后一个为一级间址。若盘块的大小为512B,则该文件系统最大能支持的文件大小是多少?
【参考答案】
9个直接地址支持的文件长度是9x512B=4.5KB。
由于一个目录项可以存放10个盘块的地址,因此一级间址可以存放10个目录项的地址,1个一级间址可以存放的文件大小为10x512B=5KB。该系统能支持的最大文件长度为:9x512B+10x512B=9.5KB
二十、(考研真题)某文件系统采用混合索引分配方式,如下图所示,有10个直接块(每个直接块指向1个数据块) 、1个一级间接块、1个二级间接块和1个三级间接块,间接块指向的是1个索引块,每个索引块和数据块的大小均为512B,索引块编号的大小为4B。
(1)若只使用直接块,则文件最大为多少字节?
(2)在该系统中能存储的文件最大是多少?
(3)若读取某文件第 10MB的内容,则需要访问磁盘几次?
【参考答案】
(1)直接块指向数据块的块数为10,因此若只使用直接块,则文件最大为10x512B=5120B
(2) 一级间接块指向的索引块指针数为512B/4B=128个,因此一级间接块指向数据块的块数是128块。
二级间接块指向的索引块指针数也是128个,每个索引块里还有128个指针数据块,因此二级间接块指向的最大数据块数为128x128个。
同理,三级间接块指向数据块的块数128x128x128块。
因此该系统能存储的最大文件为(10+128+1282+1283)x512B=1082201088B=1056837KB
(3)10MB的文件需要的数据块个数为10MB/512B=2048块。直接块和一级间接块指向的数据块个数为10+128=138块<2048块。直接块、一级间接块和二级间接块指向的数据块个数为10+128+128²=16552块>2048块,因此第10MB的数据应该存放在二级间接块下的某个数据块中,共需要访问磁盘3次。