操作系统课后作业复习汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统课后作业》
一、绪论
1.在计算机系统中配置操作系统的目的和作用是什么?
答:计算机系统中配置操作系统的目的:
(1)、提供用户与计算机硬件系统之间的接口,使计算机系统更易于使用;
(2)、有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用;
(3)、合理地组织计算机系统的工作流程,以改善系统性能。
计算系统中配置操作系统的作用:
(1)、为用户与计算机硬件系统之间提供接口;
(2)、管理计算机系统资源,其中包括处理机管理、存储器管理、I/O设备管理及文件管理;
(3)、对计算机资源的抽象化,隐藏了对硬件操作的细节,使用户能更方便地使用机器,即我们称的虚拟机。
2.什么是内核?微内核通常提供了哪些功能?
答:内核(核心模式、互用模式)是操作系统工作在核心模式下的代码。
内核的功能:(1)这部分程序用来实现计算机管程资源;(2)是工作在内核模式下。
微内核提供的功能:
(1)、进程(线程)管理
(2)、低级存储器管理
(3)、中断和陷入处理
二、进程管理
1.在计算机系统中,程序运行具有哪些特征?多道程序运行环境对程序运行有哪些影响?
答:程序执行有两种:在未配置OS的系统中,程序运行顺序执行,具有顺序性、封闭性和可再现性;在多道程序环境下,程序并发执行,具有间断性、失去封闭性和不可再现性
影响:在该环境下,程序并发执行,即第一个程序的执行操作和第二个程序的输入操作并发执行。
这也导致了程序要间断性地执行,当一个程序执行时,另一个程序必须等待即所谓的失去封闭性,最终也将导致执行结构的可再现性。
2.进程控制块是什么?它在操作系统的作用是什么?
答:进程控制块:是进程实体中的一部分,它记录了OS所需要的,用于描述进城当前情况,以及控制进程运行的全部信息,当OS要调度其进程时,要先分析PCB内的信息,才能合理地执行进行。
创建进程的第一步就是创建PCB。
进程控制块在操作系统的作用:是使一个在多道程序环境下不能独立运行的程序,称为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。
3.进程控制是进程管理最基本的功能,操作系统进程控制的主要内容是什么?(试从原语、进程控制块、进程状态转换和调度程序运行的时机等角度描述)
答:操作系统进程控制的主要内容是创建进程、终止一个以完成的进程或终止一个因出现某事件而使其无法运行下去的进程以及进程的状态转换。
它的各种行为都是以原语的方式存在,并由OS的内核中的原语来实现。
创建进程的实质就是创建一个进程控制块,PCB记录了进程状态机系统所需的相关信息,系统通过分析PCB中的信息,采用恰当的算法调度进程,将一个就绪的进程调度执行,实现内存资源利用率的提高。
进程间的状态转换也是有原语控制完成。
4.何谓临界资源?临界区是什么?设置临界区的作用是什么?
答:临界资源是指:一段时间内只允许一个进程访问的资源,又称独占资源。
临界区是指:背个进程中访问临界资源的那段代码。
设置临界区的作用:保证诸进程互斥地进入自己的临界区,实现诸进程对临济诶资源的互斥访问。
5.同步机构应遵循哪些基本准则?
答:(1)空闲让进(2)忙则等待(3)有限等待(4)让权等待
6.试描述信号量机制P/V原语的语义。
答:P操作:设置信号量的初始值,对初始值进行-1操作,判断-1后的值是否<0,如果<0则将该进程阻
塞在进程队列的阻塞队列中。
V操作:设置信号量的初始值,对初始值进行+1操作,判断这个+1后的值是否<=0,如果<=0,则将进程阻塞队列中的第一个阻塞进程唤醒。
7.操作系统提供哪些用于进程通信的机制,其中哪种不需要在并发进程之间使用共享的存储空间或数据结
构?
答:进程通信机制有:共享存储器系统、信息传递系统、管道通信。
其中共享存储器系统不需要在并发进程之间使用共享的存储空间或数据结构。
8.使用管程实现进程同步控制时,条件变量的作用是什么?
答:条件变量的作用:区分各种不同的阻塞原因,用于记录因该条件变量而阻塞的所有进程。
9 .给出信号量机制处理互斥关系和前趋关系的程序描述。
P54,P55
答:信号量处理互斥关系的程序描述:
V ar mutex:semaphore:=1;
Begin
Parbegin
Process1:begin
Repeat
Wait(mutex);
Critical section
Signal(mutex);
Until false;
End
Process2:begin
Repeat
Wait(mutex);
Critical section
Signal(mutex);
Until false
End
Parend
信号量处理前驱关系的程序描述:
Parbegin
begin S1; singal(a); signal(b); end;
begin wait(a); S2; signal(c); signal(d); end;
begin wait(b); S3; singal(e); end;
begin wait(c); S4 ; signal(f); end;
begin wait(d); S5; signal(g); end;
begin wait(d); S6; signal(h); end;
begin wait(f); wait(g); wait(h); S7; end;
Parend
end
10.试使用书中的伪代码应用信号量机制解决睡觉的理发师问题。
1、理发师的行为:
/* 理发师检查椅子上的人数。
如果椅子上的空座位数(我们用FreeSeat表示)为N,表示无人理发,理发师去睡觉,等待顾客去唤醒;否则,理发师招待一个等待理发的顾客,增加一个空椅子。
*/
2、顾客的行为:
/* 顾客检查椅子上的人数。
如果椅子上的空座位数为0,表示等待的人数已达到极限,顾客选择离开;如果椅子上的空座位数为N ,表
示无人理发,理发师正在睡觉,所以顾客去唤醒理发师 ;如果空座位的个数介于0和N 之间;顾客坐在座位上等,减少一个空座位,等待理发师的招待。
*/
理发师和顾客的行为,使用代码描述如下:
Barber :begin repeat
if ( freeSeat>=5)
<cutting hair> until FALSE; end;
Consumer :begin
repeat
if (freeSeat<=0) then consumer leave; endif;
until FALSE; end;
由上述代码描述可以看出,前趋关系为两个,所以可以定义两个信号量Sleepy-Barber 和Waiting-Consumer 控制前趋关系,所以可以用信号量的P/V 操作取代上述代码中的红色部分。
如下图描述:
Barber :begin repeat if ( freeSeat>=5) then
<go to sleep>
P ( Sleepy-Barber); else
freeSeat:=freeSeat+1; V ( Waiting-Consumer); endif;
<cutting hair> until FALSE; end;
Consumer :begin repeat
if (freeSeat<=0) then consumer leave; else if (freeSeat>=N) then V ( Sleepy-Barber); else
freeSeat:=freat-1; P ( Waiting-Consumer); endif <cut hair> endif;
until FALSE; end;
同时定义一个用于控制访问N 个座位长椅的互斥信号量Chair ,用于控制对freeSeat 变量的互斥访问。
最后的代码如下
Var freeSeat integer:=5;
Var Sleepy-Barber, Waiting-Consumer, Chair semaphore:=0,0,1
Barber:begin
repeat
P (Chair);
if ( freeSeat>=5)
then
V (Chair);
<go to sleep>
P ( Sleepy-Barber); else
freeSeat:=freeSeat+1;
V (Chair);
V ( Waiting-Consumer); endif;
<cutting hair>
until FALSE;
end; Consumer:begin
repeat
P (Chair);
if (freeSeat<=0) then
V (Chair);
consumer leave;
else if (freeSeat>=N) then
V (Chair);
V ( Sleepy-Barber);
else
freeSeat:=freat-1;
V (Chair);
P ( Waiting-Consumer);
endif
<cut hair>
endif;
until FALSE;
end;
5.处理机调度与死锁
1.FCFS、SPN、RR和高响应比优先,哪种调度算法更适用于分时操作系统?为什么?
答:在分时操作系统中,为保证能及时响应用户的请求,必须采用基于时间片的轮转式进程调度算法;FCFS是一种最简单的调度算法,该算法可用于作业调度,也可用于进程调度,此算法比较有利于长进程,而不利于短进程,SPN算法对于长作业不利,它是针对短作业或短进程优先调度的算法,该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业被及时处理,高响应比优先调度算法是一种比较好的算法,但长作业的运行得不到保证。
所以,在分时系统中,应采用RR算法。
2.进程调度主要采用的方式有哪几种?
答:抢占式和非抢占式。
3.设有四个进程P1,P2,P3,P4,它们到达就绪队列的时刻及运行时间如下表所示,试给出采用时间片轮转
时间片取2时,执行轨迹如下图所示:
所以,P1的带权周转时间为5/3
P2的带权周转时间为:(15-2)/6
P3的带权周转时间为:(13-4)/4
P4的带权周转时间为:(12-6)/2
则时间片为2时,算法执行后的平均带权周转时间为(5/3+13/6+9/4+3)/4=2.27
时间片取4时,执行轨迹如下图所示:
P1的带权周转时间为3/3
P2的带权周转时间为:(15-2)/6
P3的带权周转时间为:(12-4)/4
P4的带权周转时间为:(14-6)/2
则时间片为2时,算法执行后的平均带权周转时间为(1+13/6+2+4)/4=2.29
4.教材115页第22题。
6.存储管理
1.地址重定位是指什么?实现地址重定位的方式有哪几种?它们的区别是什么?
答:地址从定位是指:操作系统将目标程序中的指令和数据的地址转化为物理地址的过程。
实现地址重定位的方式有两种,分别是:静态地址重定位和动态地址重定位。
区别是:静态地址重定位是一次性完成,执行时使用的是物理地址;动态地址重定位分多次完成,即执行过程中需要再进行重定位,执行时使用的是逻辑地址。
2.单一连续分配所采用的固定分区和动态分区技术,在内存空间频繁的分配和回收过程中会产生一系列不能被
利用的存储单元,这些存储单元被称为什么?可以采用哪些方法来减少这些存储单元的出现。
答:⑴这些存储单元被称为碎片,分为内部碎片和外部碎片;其中内部碎片是不能再利用的,外部碎片能再利用的但不能再分配。
⑵减少内部碎片的方法有动态分区分配方案及分页管理。
减少外部碎片的方法有动态地址重定位技术支持下的压缩或紧凑。
3.采用分段方案管理内存时,提出内存申请的进程也会被分配到一组连续的内存空间,请问,与同样被分配到
连续内存空间的动态分区方案不同的地方是什么?
答:不同的地方:分段式存储管理系统是将进程分成几段,并为每个分段分配一个连续的分区,各段可以离散地移入内存中不同的分区。
而动态分区则是为整个进程分配一个连续的内存空间。
4.某计算机系统采用请求页虚拟存储方案管理内存,并将页大小设置为1KB,支持最大1M的寻址空间。
如果某
1)若指令访问的数据的逻辑地址分别为0x01C00,0xC700和0x3200 。
则系统将如何处理这些地址?
2)若采用固定分配局部置换策略,存储管理程序分配给该进程4个帧,其页访问流为:
1、3、4、5、
2、
3、
4、8、6、7、
5、
6、
7、6、5、4、2
请给出采用LRU算法和时钟算法时的缺页率。
时钟算法:
(1)、由问题要求得知,该计算机系统中每个进程可获得最多1024个页面,若某进程向操作系统申请20KB的内存空间,则表示该进程需要20个页框的存储空间。
根据页表提供的信息,该进程获得的页框数目只有四个,分别存储进程空间的第0、2、3、4页。
系统支持1M寻址空间,则系统逻辑地址需要20个二进制位表示,页大小为1KB,则表示页内偏移地址需要10个二进制位表示。
因此,页号使用剩余的10位表示。
1)地址0X01C00 对应的二进制值为(0001,1100,0000,0000),低十位表示页内偏移地址,高十位为页号,所以,该地址对应的页号为7,根据题示,7页不在内存,所以,对地址0X01C00的寻址会导致缺页中断的产生。
2)地址0X0C700对应的二进制值为(1100,0111,0000,0000),该地址对应的页号为49,根据题示,进程只有20个页面,所以对地址0X0C700的寻址会导致越界中断的产生。
3)地址0x03200对应的二进制值为(0011,0010,0000,0000),该地址对应的页号为12,根据题示,第12页不在内存,所以,对地址0X03200的寻址也会导致缺页中断的产生。
(2)、LRU算法和时钟算法如下图所示:
访问位与修改位变化情况(红色部分为指针位置):
由上图所得,LRU算法和时钟算法最后保留在页框中的页面分别是:
页框号【LRU】页号【时钟】页号
16 6 4
10 4 6
34 2 7
13 5 2
5.在请求分页存储管理方案中,如果将页面尺寸增加一倍,则在进程执行时,缺页中断的次数的变化趋势是什
么?(增加?减少?不变?还是其它?)
答:减少;
6.在连续分配、分页和分段管理内存的方案中,主要的数据结构是什么?它们的作用是什么?
答:(1)连续分配
数据结构:起始地址和分区大小
作用:空闲分区表记录每个空闲分区的情况;空间分区链将空闲分表链接起来称为双向链。
(2)分页管理内存
数据结构:页面和页表
作用:页面是分页存储器管理将一个进程的逻辑地址空间分成若干个大小相等的片;页表是实现从页号到物理块号的地址映射。
(3)分段管理内存
数据结构:段表
作用:用于实现从逻辑段到物理内存区的映射。
7.设备管理
1.设备管理的主要任务是什么?
答:设备管理的主要任务是:完成用户提出的I/O请求,提高I/O速率以及提高I/O设备的利用率。
2.在设备管理中,有哪些主要的分类?
答:(1)按信息减缓的单位分类:块设备、字符设备
(2)按设备的共享属性分类:独占设备、共享设备、虚拟设备
3.I/O软件的设计目标是什么?
答:I/O软件的设计目标是:高效率和通用性。
前者是要确保I/O设备与CPU的并发性,以提高资源的利用率;
后者是指尽可能地提供简单抽象、清晰而统一的接口,采用统一标准的方法,来管理所有的设备以及所需的I/O操作。
4.中断处理程序的主要任务是什么?
答:中断处理程序的主要任务是:唤醒那些操作该设备时被阻塞的驱动(程序)进程。
5.设备驱动程序的主要工作是什么?
答:设备驱动程序的主要工作是:接受上层软件发来的抽象I/O要求,在把它转换为具体要求后,发送给设备控制器,启动设备去执行;另外,它也将由设备控制器发来的信号传给上层软件。
6.设备独立性指什么?主要包括哪些内容?
答:设备独立性是指:应用程序独立于具体使用的物理设备。
主要包括的内容有:执行所有设备的公有操作;向用户层(或文件层)软件提供统一接口。
7.在磁盘调度策略中,假设磁头有外向内移动,当前访问的为100号柱面,磁道请求队列中的顺序为55,58,
39,18,90,160,150,38,184。
请分别FCFS、SSTF、SCAN和CSCAN调度的平均寻道长度
解:FCFS:
SSTF:
SCAN:
CSCAN:
六、文件管理
1. 从文件的逻辑结构视角,我们把文件看作记录的集合;从文件的物理结构视角,我们把文件看作物理块的集合,请问,它们有什么不同吗?
答:从逻辑结构的视角,文件被描述为“可以存储什么”的单位,它是信息的基本单位,关心的是信息内容及组织结构,以便应用程序访问文件时实现文件的三个逻辑要求:提高检索速度;便于修改;降低文件的存储费用;
从文件的物理结构视角,它不关心信息数据的存储,而重视文件如何存放在磁盘存储空间。
2. 按文件的存取方式,我们把文件分为顺序存取文件和随机存取文件,那么?文件的物理结构和逻辑结构中,支持顺序存取或随机存取的分别有哪些?
答:支持顺序存取的有:顺序文件、索引顺序文件
支持随机存取的有:索引文件、索引顺序文件、直接文件、哈希文件
3. 构建文件的逻辑结构,要满足哪些基本要求?
答:要满足的要求有:提高检索速度;便于修改;降低文件的存储费用
4. FCB是构建目录的主要元素,其中应该包含的主要内容有哪些?
答:主要包括三类:文件名称、文件在磁盘中的物理位置、文件用于其它管理的信息
5. 在文件管理中应用树形目录的主要目的有哪些?
答:主要目的有:实现“按名存取”;提高对目录的检索速度;文件共享;允许文件重名;
7.文件的保护与共享主要包括哪些行为?
答:文件共享的行为有:利用符号链实现文件共享
文件保护的行为有:磁盘容错技术和数据的一致性。