操作系统习题+答案Word文档下载推荐.docx
- 文档编号:16898145
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:32
- 大小:1.19MB
操作系统习题+答案Word文档下载推荐.docx
《操作系统习题+答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统习题+答案Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
L2:
P(plate);
放桔子;
V(orange);
gotoL2;
processson
L3:
P(orange);
取桔子;
V(plate);
吃桔子;
gotoL3;
processdaughter
L4:
P(apple);
取苹果;
吃苹果;
gotoL4;
parend
2.和尚取水问题
寺庙里有老小和尚若干和一水缸,小和尚打水,老和尚饮水。
水缸容积为10桶水,水取自同一水井,每次只容一个桶打水,桶的总数为3个,每次往水缸倒水和从水缸取水仅为一桶。
Varmutex1,mutex2,empty,full,count:
semaphore;
mutex1:
=1;
代表可以用水井
mutex2:
代表可以用水缸
empty:
=10;
水缸的容量
full:
=0;
水缸中的水量
count:
=3;
水桶的个数
process小和尚:
repeat
wait(empty);
wait(count);
wait(mutex1);
从井中打水;
signal(mutex1);
wait(mutex2);
送水入水缸;
signal(mutex2);
signal(count);
signal(full);
untilfalse;
end
process老和尚:
wait(full);
从缸中取水;
signal(empty);
3.有一座东西方向的独木桥,用P,V操作实现:
(1)每次只允许一个人过桥;
(2)当独木桥上有行人时,同方向的行人可以连续过桥,相反方向的人必须等待。
(3)当某一方向无人过桥时,另一方向的行人可以过桥。
(1)
设信号量
MUTEX=1
P
(MUTEX)
过桥
V
(2)
设信号量:
(东西方互斥)
MD=1
(东向西使用计数变量互斥)
MX=1
(西向东使用计数变量互斥)
设整型变量:
CD=0
(东向西的已上桥人数)
CX=0
(西向东的已上桥人数)
从东向西:
(MD)
IF
(CD=0)
{P
}
CD=CD+1
(MD)
CD=CD-1
{V
}
从西向东:
(MX)
(CX=0)
CX=CX+1
CX=CX-1
(3)
:
从东向西的,和
(2)相同;
从西向东的和
(1)相同。
4.
上图描述的生产者-消费者问题中,如果其缓冲区部分为n个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。
试重新描述生产过程和消费过程。
设第i块缓冲区的公用信号量为buf[i],初值为1;
生产者进程的私用信号量为produce,初值为n;
消费者进程的私用信号量为consume,初值为0。
生产过程和消费过程描述如下:
生产过程:
Begin
P(produce)
选择一个空缓冲区i
P(buf[i])
送数据入缓冲区i
V(consume)
V(buf[i])
End
消费过程:
P(consume)
选择一个满缓冲区i
取缓冲区i中的数据
V(produce)
5.若信号量的初值为2,当前值为-3,则表示有()等待进程。
A1个B2个C3个D5个
6.在操作系统中,(B)是竞争和分配计算机系统资源的基本单位。
A程序B进程C作业D用户
7.下面哪一个不会引起进程创建(C)
A用户登录B作业调度C设备分配D应用请求
8.进程和程序的本质区别是(B)
A内存和外存B动态和静态特征
C共享和独占使用计算机资源D顺序和非顺序执行机器指令
9.在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。
所谓临界区是(B)
A一个缓冲区B一个数据区C一种同步机构D一段程序
10.在一辆公共汽车上,司机和售票员各行其职,司机负责开车和到站停车,售票员负责售票和开、关门,当售票员关好车门后,驾驶员才能继续开车行驶。
用P、V操作实现司机与售票员之间的同步。
问题分析:
是一个进程同步互斥问题,两个主要点是
1)司机开车的时候,售票员不能开门,(这里体现的是进程的互斥问题)车停之后,由司机通知售票员开门(这里体现的是进程的同步问题);
2)车门开着的时候,司机不能开车,等售票员把车门关上之后,由售票员通知司机开车。
同步信号量:
driver:
司机私有信号量,初为1;
conductor:
售票员私有信号量,初值为0;
初值的含义是售票员具有优先车门控制权。
semaphore
sem_driver=0,
sem_conductor=1;
void
driver()
{
while
(true)
p(sem_driver);
start_bus();
normal_driving();
station_stop();
v(sem_conductor)
conductor()
p(sem_conductor);
open_door();
shut_door();
sell_ticket();
v(sem_driver)
main()
parbegin
(driver,
conductor);
第三章
1.在一个有N个进程的单处理机系统中,有可能出现N个进程都被阻塞的情况。
(√)
2.系统处于不安全状态必然导致系统死锁。
(×
)
3.当一进程运行时,系统可基于某种原则,强行将其撇下,把处理机分配给其他进程,这种调度方式是(B)
A非剥夺方式B剥夺方式C中断方式D查询方式
4.在为多道程序所提供的可共享的系统资源不足时可能出现死锁。
但是,不适当的(C)也可能产生死锁。
A进程优先权B资源的线性分配
C进程推进顺序D分配队列优先权
5.发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏(A)条件是不太实际的。
A互斥B不可抢占C部分分配D循环等待
6.在分时操作系统中,进程调度经常采用(C)算法。
A先来先服务B最高优先权C时间片轮转D随机
7.(B)优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。
A先来先服务B静态C动态D短作业
8.某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是(B)[选临界值,即发生死锁时刻,m个进程,每个进程需要n台机器,(n-1,n-1,n-1……n-1)先给m个进程依次分配n-1台机器,之后这m台机器都去抢夺最后一台机器,进入死锁状态,则总得机器资源数目为:
(n-1)*m+1
上面m=3,n=4代入得10
]
A9B10C11D12
9.在下列解决死锁的方法中,属于死锁预防策略的是:
(B)
A银行家算法B资源有序分配法C死锁检测法D资源分配图化简法
10.资源的按序分配策略可以破坏(D)条件。
[这样的话,所有进程资源的请求必须严格按照资源序号递增的次序提出,在所形成的资源分配图中不可能再出现环路,因而破坏了循环等待条件。
A互斥使用资源B占有且等待资源C非抢占资源D循环等待资源
11.进程的调度方式有两种,一种是剥夺方式,另一种是非剥夺方式
在先来先服务调度算法中,按照进程进入就绪队列的先后次序来分配处理机。
12.死锁产生的必要条件有四个,即互斥条件、请求和保持条件、不可剥夺条件、环路等待条件。
13.银行家算法中,当一个进程提出的资源请求将导致系统从安全状态进入不安全状态时,系统就拒绝它的资源请求。
14.对待死锁,一般应考虑死锁的预防、避免、检测和解除四个问题。
典型的银行家算法是属于避免死锁,破坏环路等待条件是属于预防死锁,而剥夺资源是解除死锁的基本方法。
15.为什么说多级反馈队列能较好的满足各类用户的需要?
(1)
所有类型的作业都会在很短的时间内启动,用户会获得响应;
(2)
终端型用户作业、短批处理作业用户,能在较短的时间内完成;
系统吞吐率高;
(4)
长批处理作业,能够最终得到处理。
16.为什么说采用有序资源分配法不会产生死锁?
为了便于说明,不妨设系统中有m类资源,n个进程,分别用R1,R2,…,Rm(1,2,…,m可看作资源编号)和P1,P2,…
Pn表示。
根据有序资源分配法可知,进程申请资源时必须按照资源编号的升序进行,即任何进程在占有了Ri类资源后,再申请的资源Rj的编号j一定大于i。
因此在任一时刻,系统中至少存在一个进程Pk,它占有了较高编号的资源Rh,且它继续请求的资源必然是空闲的,因而Pk可以一直向前推进直至完成,当Pk运行完成后即会释放它占有的所有资源;
在Pk完成之后,剩下的进程集合中同样会存在一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以一直向前推进直至完成;
以此类推,所有进程均可运行完成,故不会发生死锁。
17.某分时系统中的进程可能出现如下图所示的状态变化,回答下列问题:
(1)根据图示,该系统采用的是什么进程调度策略?
(2)指出图示中的每一个状态变化的原因。
18.在银行家算法中,若出现下述资源分配情况,试问:
Process
Allocation
Need
Available
P0
0032
0012
1622
P1
1000
1750
P2
1354
2356
P3
0332
0652
P4
0014
0656
(1)该状态是否安全?
(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给他?
该状态是安全的,这时可以找到一个安全序列:
P0、P3、P4、P1、P2
设置两个向量①工作向量work,它表示系统可提供给进程继续运行所需的各类资源数目,在执行算法开始时,work:
=
Available,②finish,它表示系统是否有足够的资源分配给进程,使其运行完成。
所以对上述分配资源情况进行分析如下:
Need
work
work+Allocation
finish
1654
true
1986
199(10)
299(10)
3(12)(14)(14)
若进程P2提出上述请求,系统不能将资源分配给它,因为分配之后系统将进入不安全状态。
P2请求资源:
P2发出请求向量Request2(1,2,2,2),系统按银行家算法进行检查:
3Request2(1,2,2,2)≤Need2(2,3,5,6);
②Request2(1,2,2,2)≤Available(1,6,2,2);
③系统暂时先假定可为P2分配资源,并修改P2的有关数据,如下表:
Process
0400
2576
1134
再进行安全性检查:
可用资源Available(0,4,0,0)已不能满足任何进程的需要。
系统进入不安全状态,此时系统不分配资源。
19.n个进程共享某种资源R,该资源共有m个可分配单位,每个进程一次一个的申请或释放资源单位。
假设每个进程对该资源的最大需求量均小于m,且各进程最大需求量之和小于m+n,试证明在这个系统中不可能发生死锁。
设max(i)表示第i个进程的最大资源需求量,need(i)表示第i个进程还需要的资源量,alloc(i)表示第i个进程已分配的资源量。
由题中所给条件可知:
max
(1)+…+max(n)=(need
(1)+…+need(n))+(alloc
(1)+…+alloc(n))<
m+n
如果在这个系统中发生了死锁,那么一方面m个资源应该全部分配出去,即
alloc
(1)+…+alloc(n)=
m
另一方面所有进程将陷入无限等待状态。
由上述两式可得:
need
(1)+…+need(n)<
n
上式表示死锁发生后,n个进程还需要的资源量之和小于n,这意味着此刻至少存在一个进程i,need(i)=0,即它已获得了所需要的全部资源。
既然该进程已获得了它所需要的全部资源,那么它就能执行完成并释放它占有的资源,这与前面的假设矛盾,从而证明在这个系统中不可能发生死锁。
20.有一个内存中只能装入两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法。
有如下表所示的作业序列,表中所列的优先数是指进程调度的优先数,且优先数越小优先级越高。
(1)列出所有作业进入内存的时刻以及结束的时刻。
(2)计算作业的平均周转时间。
分析
10:
00,A进入内存,并开始执行;
20,B进入内存,抢占A,B开始执行;
50,B完成,调D进内存,A再次执行;
11:
10,A完成,调C进内存,C开始执行;
12:
00,C完成,D开始执行;
20,D完成。
两道批处理作业,作业调度采用最短作业优先,进程调度采用基于优先级的抢占式调度同时允许两个程序存在于主存中
进入内存
运行时间段
周转时间
A
00
10:
00-10:
20
50-11:
10
70
B
20-10:
50
30
C
10-12:
90
D
00-12:
平均周转时间:
(70+30+90+90)/4=70
带权平均周转时间:
(70/40+30/30+90/50+90/20)/4=2.26
第四章
1.采用(B)不会产生内部碎片
A、分页式B、分段式C、固定分区式D、段页式
2.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并于相邻空闲区合并,为此需修改空闲区表,造成空闲区表数减1的情况是(D)
A无上邻空闲区,也无下邻空闲区;
B有上邻空闲区,但无下邻空闲区;
C有下邻空闲区,但无上邻空闲区;
D有上邻空闲区,也有下邻空闲区;
3.段页式存储管理中,地址映像表是(C)
A每个作业或进程的一张段表,两张页表
B每个作业或进程的每个段一张段表,一张页表
C每个作业或进程一张段表,每个段一张页表
D每个作业或进程的一张页表,每个段一张段表
4.在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0,1,2页依次存放在物理块5,10,11中,问相应的物理地址为多少?
第一种解法:
第2种解法
4096B=2^12B
16位寻址一共2^16B
分页存储.共分的页:
2^16/2^12=2^4=16共分16页.
第0页的地址范围0-FFFH
第1页的地址范围1000H-1FFFH
第2页得地址范围2000H-2FFFH
.
第11页B000H-BFFFH
第15页F000H-FFFFH
2F6AH=10111101101010在2页的范围对应物理块11
所以物理地址为:
2F6AH-2000H+B000H=F6AH+B000H=BF6AH
5.设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块,试问逻辑地址至少应为多少位?
内存空间有多大?
每页2048字节,所以页内位移部分地址需要占据11个二进制位;
逻辑地址空间最大为16页,所以页号部分地址需要占据4个二进制位。
故逻辑地址至少应为15位。
由于内存共有8个存储块,在页式存储管理系统中,存储块大小与页面的大小相等,因此内存空间为16K(2048×
8/1024=16K)
6.已知某分页系统,主存容量为64KB,页面大小为1KB。
对于一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。
(1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址;
(2)以十进制的逻辑地址1023为例画出地址变换过程图。
(1)对于上述逻辑地址,可先计算出它们的页号和页内地址(逻辑地址除以页面大小得到的商为页号,余数为页内地址),然后通过页表转换成对应的物理地址:
逻辑地址1023。
1023/1K,得到页号为0,页内地址为1023,查页表找到对应的物理块号为2。
故物理地址为2*1K+1023=3071。
逻辑地址2500。
2500/1K,得到页号为2,页内地址为452,查页表找到对应的物理块号为6。
故物理地址为6*1K+452=6596。
逻辑地址3500。
3500/1K,得到页号为3,页内地址为428,查页表找到对应的物理块号为7。
故物理地址为7*1K+428=7596。
逻辑地址4500。
4500/1K,得到页号为4,页内地址为404,因页号大于页表长度,故产生越界中断。
(2)逻辑地址1023的地址变换过程如下图所示,其中的页表项中没考虑每页的访问
权限。
7.对于下表所示的段表,请将逻辑地址(0,137),(1,4000),(5,230)转换成物理地址。
(1)段号0小于段表长5,故段号合法;
由段表的第0项可获得段的内存始址为
50K,段长为10K;
由于段内地址137,小于段长10K,故段内地址也是合法的,因此可得
出对应的物理地址为50K+137=5l337。
(2)段号l小于段表长,故段号合法;
由段表的第l项可获得段的内存始址为60K,段长为3K:
经检查,段内地址4000超过段长3K,因此产生越界中断
(3)段号5等于段表长,故段号不合法,产生越界中断。
第五章
1.在一个采用页式虚拟存储管理的系统中,某进程依次要访问的字地址序列是:
115,228,120,88,446,102,321,432,260,167,若作业的第0页已经装入内存,现分配给该作业的主存共300字,页的大小为100字,则:
(1)按FIFO算法将产生5次缺页中断,依次淘汰页号为0,1,2
(2)按LRU算法将产生6次缺页中断,依次淘汰页号为2,0,1,3
2.有一矩阵“inta[100][100]”以行为先进行存储。
有一个虚拟存储系统,物理内存共有3页,其中1页用来存放程序,其余2页用于存放数据。
假设程序已在内存中占1页,其余2页空闲。
程序A:
for(i=0;
i<
=99;
i++)
for(j=0;
j<
j++)
a[i][j]=0;
程序B:
for(j=0;
for(i=0;
若每页可存放200个整数,程序A和程序B的执行过程各会发生多少次缺页?
若每页只能存放100个整数呢?
程序A由于是外层是行索引
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 习题 答案