操作系统思考题Word下载.docx
《操作系统思考题Word下载.docx》由会员分享,可在线阅读,更多相关《操作系统思考题Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
15、用图形表示进程与线程的区别。
16、从实现角度看,有哪两类基本线程?
17、从下面四个方面阐述用户级别线程和核心级别线程的差别、优缺点:
(1)创建速度
(2)切换速度(3)并行性(4)TCB存储位置
18、用户级别线程在处理机什么状态实现的?
核心级别线程在处理机什么状态下实现的?
19、什么叫做作业?
20、分析作业、进程、线程三者的关系。
21、请解析命令“ls-il”给出的信息。
22、在Linux系统中,如何区分普通文件、目录文件、块设备文件、字符设备文件?
23、在Linux系统中,如何区分硬链接文件和符号链接文件?
24、熟练掌握用命令“chmod”修改各组用户对文件的操作权限。
25、掌握命令“ps-ax”查看Linux进程,解析该命令给出的信息,以及终止进程的操作。
26、掌握用命令“gcc”编译链接一个程序。
27、请说明管道操作“|”、输入重定向“<
”、输出重定向“>
”和“>
>
”的区别和用法。
28、请说明在shell中使用单引号、双引号、反撇号的用法。
第三章中断与处理机调度
1、什么叫做中断?
2、中断装置发现并响应中断有哪些基本步骤?
3、中断可以分为哪两大类?
请举例说明。
4、什么叫做中断向量?
5、为什么说中断向量的位置是由硬件决定的、其内容是系统初始化时确定的?
6、什么叫做中断续元?
用户栈和系统栈各自有什么用途?
7、根据程序错误中断的性质,有哪两种处理策略?
可以哪些类型的程序性错误中断,中断续元会起作用?
8、处理机调度需要解决哪三个问题?
9、什么叫做CPU阵发期?
10、什么叫做周转时间?
什么叫做(平均)带权周转时间?
11、什么叫做响应时间?
12、掌握FCFS、SJF、SRTN、HRN、HPF、RR调度算法,以及调度指标的计算。
13、什么叫做剥夺式调度?
什么叫做非剥夺式调度?
14、反馈排队调度算法有哪些特点?
15、什么叫做“交换”?
交换的目标是什么?
16、为什么要实施中级调度?
17、什么是低级调度、中级调度、高级调度?
各自的职能是什么?
18、什么是实时调度?
按发生的规律分,有哪两类实时任务?
19、掌握EDF和RMS两个实时调度算法?
20、完成P79-80题31、32、35。
第四章互斥、同步与通信
1、程序顺序执行有哪些特性?
2、程序并发执行有哪些特性?
3、什么是Bernstein(伯恩斯坦)条件?
并加以说明。
4、什么叫做与时间有关的错误?
有时间有关的错误产生的原因是什么?
5、什么叫做临界区?
什么叫做临界资源?
6、什么叫做进程互斥?
请写出进程互斥的基本框架。
7、实现进程互斥,临界区管理应该满足哪三个正确性原则?
8、请分析Dekker互斥算法、Peterson互斥算法、Lamport面包店算法各自的互斥性、进展性和有限等待性。
9、什么叫做忙式等待?
其与阻塞式等待有哪些区别?
10、什么叫做原子指令?
11、请写出“测试与设置”原子指令?
并给出利用“测试与设置”指令实现互斥的算法。
12、请写出“交换”的原子指令?
给出利用“交换”指令实现互斥的算法。
13、什么叫做合作进程?
14、什么叫做进程同步?
15、请给出信号量类型的定义。
16、信号量变量的初值有什么要求?
17、什么叫做原语?
18、分别写出对信号量进行P操作和V操作的操作原语。
19、请给出信号量元素s.value与s.queue之间的关系。
20、说出初值分别是0、1、n(>
1的值)时信号量的作用。
21、某图书馆阅览室有50个座位。
进入阅览室的读者需要在登记簿上登记,登记后,如果有空座位,安排到对应位置上;
如果没有空座位,要求在入口等待。
当读者离开阅览室时,进行注销登记。
此时,如果有读者等待,唤醒等待读者进行阅览室。
使用信号量、PV操作实现对阅览室进行管理。
【参考答案】
公共变量:
enumseat[50];
(free,used)
semaphoreS;
(50)
semaphoremutex;
(1)
进入登记控制:
intEnter(){
inti;
P(S);
P(mutex);
for(i=0;
i<
50;
i++)
if(seat[i]==free)break;
seat[i]=used;
V(mutex);
returni;
离开注销登记控制:
voidLeave(intj){
seat[j]=free;
V(S);
}
每个读者的活动:
voidReader(){
intk;
k=enter();
阅读;
Leave(k);
22、某公共汽车上司机、售票员、乘客的活动如下:
为安全起见,要求:
(1)必须乘客全部上车,才能关闭车门;
假设车门只允许一个乘客通过,且有自动判别第一个下车乘客和最后一个上车乘客的装置,且遵守先下、后上原则;
(2)关闭车门,才能启动汽车;
(3)车辆到站停稳,才能打开车门。
初始时,车辆停靠在站点上,车门是打开着。
请用信号量与PV操作实现对司机、售票员和乘客之间的同步。
semaphoredc1,dc2;
(0,0)
semaphorecc1,cc2;
(1,0)
semaphoremetux;
(1);
23、在Linux操作系统中,sem_wait(sem_t*s)和sem_post(sem_t*s)分别表示对信号量的什么操作?
24、假设有两个进程,P1和P2,其中P1有一个活动act1、P2有一个活动act2;
要求act1执行完成后才能执行act2,用信号量“semaphoreS;
”实现对两个活动进行控制。
请给出其实现的一般规则。
25、P1和P2为两个同步进程.要求P2完成动作B后P1才能执行动作A.请根据要求填写S的初值、P操作和V操作。
(initialvalue_
(1)_)
26、请完成下面生产者-消费者程序。
itemtypeB[n];
//sharedvariables(n个空箱子)
semaphoreS1,S2,mutex;
(初值:
S1.value=_n_;
S2.value=__0__;
mutex.value=__1_)
intin,out;
//sharedvariables
voidproducer(){
while
(1){
produceitem(&
item);
_P(S1)__
B[in]:
=item;
in:
=(in+1)%k;
_V(mutex)________
V(S2);
}
voidconsumer(){
P(s2);
x:
=B[out];
out:
=(out+1)%k;
__V(S1)__
consumex;
27、请完成如下R-W问题的改进算法。
semaphorer_w_w=1,mutex=1,s=1;
intcount=0;
voidReader()
{
do{
P(S);
P(mutex);
count++;
if(count==1)P(r_w_w);
V(mutex)
V(s);
{读操作}
count--;
If(count==0)V(r_w_w);
V(mutex)
}while
(1);
voidWriter()
P(s);
P(r_w_w);
{写操作};
V(r_w_w);
参考P144题25)
28、什么叫管程(Monitor,Hansen管程)?
一个管程由哪几部分组成?
29、请用管程写出Scan和C-scan的磁头调度算法。
30、请给出在Linux系统中采用共享内存进行进程间通信的一般步骤。
(实验二)
第五章死锁与饥饿
1、什么叫死锁?
在操作系统中,发生死锁有哪些特征?
2、有哪些类型的死锁?
3、从资源分配过程的角度,说明死锁与饥饿的区别?
4、参与死锁进程的个数至少几个?
如果产生饥饿,发生饥饿的进程至少饥饿?
5、请给出发生死锁的必要条件(Coffman条件)并加以解析。
6、有三种死锁的处理方式?
7、熟悉资源分配图的绘制,以及资源分配图的约简。
8、死锁预防有哪两种基本策略?
9、请阐述预先分配法。
它破坏发生死锁什么条件?
10、请阐述有序分配法。
11、如图所示,请给出采用有序分配法、用信号量和PV操作控制各个方向(W、E、S方向)车辆进行临界区。
12、死锁避免中,什么叫做安全序列?
13、银行家算法:
掌握p154例5-4、p170习题五第9题,及本章的作业。
14、某系统有资源R={A,B,C}={10,5,7}和进程P={p0,p1,p2,p3,p4}。
下面是该系统某进程提出资源请求预分配后的两个状态,请分别用银行家算法检验是否为安全状态?
(状态a)
(状态b)
15、在上述(13题)系统处于状态a下,进程P0提出Request(0)={3,2,0},请用银行家死锁避免算法进行检测,是否可以分配?
为什么?
16、在上述(13题)系统处于状态a下,进程P0提出Request(0)={3,3,0},请用银行家死锁避免算法进行检测,是否可以分配?
17、死锁检测算法:
p156例5-6,习题五第10题。
18、有一系统拥有资源R={A,B,C}={7,3,6},现有进行P={p0,p1,p2,p3,p4}。
当前的状态如下所示。
请用死锁检测算法检测系统当前是否发生死锁,如果发生死锁,有哪些进程参与死锁?
AllocationRequestAvailableWorkFinish
ABCABCABCABC
p0:
010000010
p1:
200202
p2:
303000
p3:
211100
p4:
002002
19、同类组合资源死锁的必要条件:
p165例5-8。
20、死锁与饥饿有何相同点和不同点?
第六章存储管理
1、静态等长分区是在什么时候划分的?
大小有什么要求?
空闲内存有哪些管理方式?
2、动态异长分区是什么时候划分的?
其空闲区域表有什么特点?
3、掌握动态异长分区分配的四种算法:
最先适应算法、循环首次适应算法、最佳适应算法和最坏适应算法。
4、动态异长分区去配是应该考虑哪四种情况?
5、在动态异长分区管理中,为什么要进行“紧凑”操作?
6、在界地址管理方式中,覆盖技术和交换技术要解决什么问题?
它们有什么不同?
7、页表有什么作用?
页表是什么时候创建的?
应该包括哪些内容?
8、操作系统采用分页式存储管理方式,每个进程一个页表还是整个系统共享一个页表?
9、请分别给出页式存储管理、段式存储管理、段页式存储管理其进程的逻辑地址形式。
它们的进程地址空间分别是几维的?
10、假设操作采用页式存储管理方式,某进程的页表如下:
页面号
页架号
15
1
22
2
16
3
32
假设内存物理地址和进程逻辑地址均为16位的地址空间,每页的大小为1KB。
请把逻辑地址为0A22H、0D75H、1E56H映射成对应的物理地址。
11、如果没有快表,采用分别页式存储管理、段式存储管理、段页式存储管理三种方式,其分别需要访问几次内存?
12、操作系统采用分页式存储管理方式,要求___。
A)每个进程拥有一张页表,且进程的页表驻留在内存中;
B)每个进程拥有一张页表,但只要执行进程的页表驻留在内存中,其他进程的页表不必驻留在内存中;
C)所有进程共享一张页表,以节约有限的内存空间,但页表必须驻留在内存中;
D)所有进程共享一张页表,只有页表中当前使用的页面必须驻留在内存中,以最大限度节约有限的内存空间;
13、为何段式管理有段内越界,而页式管理无页内越界问题?
14、为什么分段技术比分页技术更容易实现程序或数据的共享和保护?
15、在段页式存储管理系统中,每个进程页表的个数有什么决定的?
16、试比较段式存储管理和页式存储管理的优缺点。
17、设有一个段表如下:
段首址
段长
90
100
219
600
1327
580
1952
96
2300
80
分别给出逻辑地址(2,88)和(4,100)对应的物理地址。
18、在内存管理模式中,内存利用率最高的是_______模式;
动态扩充实现得最好的是_______模式;
内存利用率最高和共享容易的是_____模式。
A)分区管理B)分页管理
C)分段管理D)段页式管理
19、熟悉如下页面淘汰算法:
最佳淘汰算法、FIFO淘汰算法、LRU淘汰算法、NUR淘汰算法。
20、什么是Belady异常?
采用什么页面淘汰算法会产生Belady异常现象?
21、考虑如下一个页面处理顺序,当内存的页面数为3时,分别计算各页面淘汰算法的缺页次数。
设内存初始时为空,每页装入都是请求式。
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
LRU算法,缺页次数为_______OPT算法,缺页次数为_______
22、某虚存系统有3页初始为空的页架,若采用FIFO页面淘汰算法,则下列的页面需求提出时,会产生()次缺页中断?
设页面走向为:
4,3,2,1,4,3,5,4,3,2,1,5。
A)7B)8C)9D)10
23、p225习题六第25题、26题。
24、p224习题六第17、18题。
25、什么叫做颠簸?
颠簸是由什么引起的?
如何消除?
26、P209例6-1。
第七章文件系统
1、什么是文件的逻辑组织?
什么是文件的物理组织?
2、文件的逻辑组织形式主要有哪两种?
(按逻辑结构分,文件有______和_______两类。
)
3、在UNIX中,把输入输出设备看作是()。
A.普通文件B.目录文件C.索引文件D.特殊文件
4、请阐述顺序结构、链接结构、索引结构和Hash结构文件的优缺点?
5、FAT32磁盘文件的物理结构属于哪一种类型?
6、文件的物理组织有哪些形式?
7、什么是文件目录?
什么是目录文件?
8、把文件目录划分成主部和次部有哪些优点?
主部包括哪些内容?
次部包括哪些内容?
9、在UNIX系统中,文件采用混合索引方式实现,在FCB中共有13个索引地址,其中第0~9个地址为直接索引地址,第10个为一级间接索引地址,第11个为二级间接索引地址,第12个为三级间接索引地址。
假设每个磁盘块的地址为4字节,每个磁盘快为512字节。
请问:
(1)这样的方式有什么好处?
(2)它能够保存文件最大为多少字节?
10、在UNIX中,什么是I-node(I节点)?
它保存那些内容?
11、一个磁盘通常划分成引导区、超级块、i-节点区和数据区四部分。
请问各个部分有哪些作用?
12、文件目录中的文件号指的是什么?
13、请阐述Unix文件硬链接的实质?
14、文件目录中的文件号指的是什么?
15、超级块有什么作用?
它包括那些信息?
它什么时候读入内容?
16、在UNIX系统中,空闲磁盘块采用成组管理,如图所示。
请详细描述空闲磁盘块的分配和去配过程(考虑各种可能的情况)。
17、“..”和“.”表示什么?
什么叫绝对路径?
什么叫相对路径?
18、在Linux/Unix系统中,要使用目前不在系统中的盘(如U盘),必须把该盘mount在系统中的某个目录下,并登记相应的mount表,结构如下:
Structmount{
intm_dev;
//devicemounted
int*m_bufp;
//pointertosuperblock
int*m_inodep;
//pointertomountedoninode
}mount[NMOUNT];
请详细阐述mount过程系统完成操作。
19、请详细阐述Linux/Unix系统中,进程
(1)创建文件:
creat(pathname,mode)
(2)打开文件:
open(pathname,mode)
的基本过程。
20、什么叫做转储?
实现转储有哪三种策略?
第八章设备与I/O管理
1、按I/O基本单位分,设备可以划分成哪两类设备?
2、有哪四种数据传输方式?
请分别阐述四种数据传输方式的基本原理。
3、在I/O设备控制方式的发展过程中,最主要的推动因素是A。
提高I/O速度和设备利用率,在操作系统中主要依靠B功能。
使用户编制的程序与所使用设备无关是由C功能实现的。
A:
(1)提高资源利用率;
(2)提高系统的吞吐率;
(3)减少主机对I/O控制的干预;
(4)提高CPU与I/O设备的并发操作程度;
B,C:
(1)设备分配;
(2)缓冲技术;
(3)设备管理;
(4)设备独立性;
(5)虚拟设备;
4、通道有哪些自己的专用运控部件?
它们各自有什么作用?
5、什么是DMA方式?
它与中断I/O控制方式的主要差异是什么?
6、通道与DMA有什么共同点?
主要存在什么差异?
7、通道是一种特殊的A,具有B能力。
A:
(1)I/O设备;
(2)设备控制器;
(3)处理机;
(4)I/O控制器。
B:
(1)执行I/O指令集;
(2)执行CPU指令集;
(3)传输I/O命令;
(4)运行I/O进程。
8、请阐述通道程序的执行过程。
9、常见有哪几类通道?
各类通道适合连接哪些设备?
10、什么叫做设备无关性?
引入设备无关性分配方案有什么优点?
11、下面关于设备独立性的论述中,第条是正确的论述。
(1)设备独立性是I/O设备具有独立执行I/O功能的一种特性。
(2)设备独立性是指用户程序独立于具体使用的物理设备的一种特性。
(3)设备独立性是指能独立实现设备共享的一种特性。
(4)设备独立性是指设备驱动独立于具体使用的物理设备的一种特性。
12、请说明通道设备的驱动过程。
13、假设当前磁头的位置是53号磁道且磁头向下(小磁道号)移动,接下来要访问的磁道序列是:
130,42,180,15,108,68,97。
请分别用FCFS、SSTF、SCAN、LOOK、C-SCAN、C-LOOK调度方式,给出磁头移动过程访问的磁道序列,并分别计算其磁头移动量。
14、假设当前磁头处在45号磁道且向0号磁道移动,磁盘总磁道数为200,当其完成当前磁道的I/O请求后,已经到达要求访问的磁道序列是:
179,134,32,41,160,122,184,151
请分别用FCFS、SSTF、SCAN、LOOK、C-SCAN、C-LOOK、N-SCAN、N-LOOK磁头调度算法,请分别给出磁头访问磁道的序列和总移动的磁道数。
15、下面是采用Hansen管程实现SCAN算法,请把它修改成C-SCAN调度算法。
Typediskhead=MONITOR
Varbusy:
boolean;
headpos:
0..199;
direction:
(up,down);
cylinder:
Array[0..199]Ofcondition;
count:
Array[0..199]Ofinteger;
Definerequire,release;
Procedurerequire(dest:
0..199);
Begin
IfbusyThen
Begin
count[dest]:
=count[dest]+1;
wait(cylinder[dest])
End
busy:
=true;
Ifdest<
headposThen
=down
ElseIfdest>
=up;
=dest
End;
Procedureupscan;
VarI:
0..200;
I:
=headpos;
While(I<
=199)and(count[I]=0)Do
=I+1;
IfI<
=199Then
count[I]:
=count[I]-1;
signal(cylinder[I])
Proceduredownscan;
-1..199;
While(I>
=0)and(count[I]=0)Do
=I-1;
IfI>
=0Then
C-LOOK算法:
K:
integer;
I=headpos;
While(I>
=0)Do
Begin
Ifcount[I]>
0then
K=I;
I=I-1;
IfK<
h