其中M和N是正整数,试用P、V操作描述产品A与B的入库过程。
提示:
设两个信号量Sa、Sb,Sa表示允许A比B产品多入库的数量,Sb表示B比A产品多入库的数量。
SeamphoreMutex=1,Sa=M-1,Sb=____________
A产品入库进程:
While
(1){
生产产品A;
P(Sa);
P(Mutex);
A产品入库;
V(Mutex);
V();
}
B产品入库进程:
While
(1){
P(Sb);
P(Mutex)
B产品入库;
V(Mutex);
V();
消费产品;
}
5、一个快餐厅有4类职员:
(1)领班:
接受顾客点菜;
(2)厨师:
准备顾客的饭菜;(3)打包工:
将饭菜打包;(4)出纳员:
收款并提交食物。
每位职员可被看做一个进程,试用一种同步机制写出能让4类职员正确并发工作的程序。
(8分)
解:
可设4个信号量S1,S2,S3,S4来协调进程工作。
SemophoreS1,S2,S3,S4;
S1=1;S2=S3=S4=0;
processP1(){
while(true)
{
有顾客到来;
P();
接受顾客点菜;V(S2);
}}
processP2(){
while(true)
{P();
准备顾客的饭菜;
V(S3);
}}
processP3(){
while(true){
P(S3);
将饭菜打包;
V(S4);
}
}
processP4(){
while(true){
P();
收款并提交食品;
V(S1);
}
}
6、有一笼子,当笼子为空时,猎人或农民可将一只动物放入笼子。
如果放入笼子的是老虎,则允许动物园抓走老虎,饭店必须等待;如果放入笼子的是猪,动物园必须等待。
请用P、V操作描述该同步关系。
本题设置三人信号量:
Scage表示笼子是否为空,初值为1,即笼子为空;Spig表示笼子是否有猪,初值为0,Stiger表示笼子中是否有老虎,初值为0;
Hunter()//猎人
{
While(true){
P();
将老虎走赶入笼中;
V(Stiger);
}
}
Peasant()//农民
{
While(true){
P(Scage);
将猪赶入笼中;
V();}
}
Hotel()//饭店
{
While(true){
P();
从笼中抓走猪;
V(Scage);
}
}
Zoo()//动物园
{
While(true){
P(Stiger);
从笼中抓走老虎;
V();
}}
四、简答及编程
1、画出进程状态转换图,注明不同状态转换之间的事件:
2、用信号量实现下列前趋图(用类C语言实现)。
第三章进程调度与死锁
一.选择
1、一种既有利于短小作业又兼顾到长作业的作业调度算法是________________。
A、先来先服务B、轮转法C、最高响应比优先D、均衡调度
2、下列选项中,降低进程优先级的合理时机是_________。
A、进程的时间片用完B、进程刚完成I/O,进入就绪队列
C、进程长期处于就绪队列D、进程从就绪转为运行状态
3、除了进程竞争资源,因为资源不足可能出现死锁外,不适当的_________也可能产生死锁。
A、进程优先权B、资源的线性分配C、进程推进顺序D、分配队列优先权
4、在下列调度算法中,对所有进程和作业都是公平合理的调度算法是__________。
A、FCFS方法B、高响应比优先方法C、多级反馈队列方法论D、时间片轮转方法
5、操作系统中的作业管理是一种_________。
A、宏观调度B、微观调度C、初始化引导完成D、系统开始加电
6、分区管理要求对每一个作业都分配分区中的一个____的内存单元
A、地址连续B、若干地址不连续C、若干连续的帧(块)D、若干不连续的帧(块)
7、下列选项中,降低进程优先级的合理时机是_________。
A、进程的时间片用完B、进程刚完成I/O,进入就绪队列
C、进程长期处于就绪队列D、进程从就绪转为运行状态
8、银行家算法通过破坏__________来避免死锁。
A、互斥条件B、部分分配条件C、不可抢占条件D、循环等待条件
9、在最先适应算法中,要求空闲分区按________顺序链接成空闲分区链。
A、空闲区地址递增B、空闲区首址递减C、空闲区大小递增D、空闲区大小递减
10、为了对紧急进程或重要进程进行调度,调度算法应采用________。
A、先来先服务法B、优先级法C、短作业优先法D、时间片轮转法
11、在一个可变式分区管理中,最坏适应分配算法宜将空闲区表中的空闲区按__________的次序排列。
A、地址递增B、地址递减C、长度递增D、长度递减
12、系统出现死锁时一定同时保持了四个必要条件,对资源采用按有序分配策略后可破坏其中的_________。
A、互斥条件B、占有且等待条件C、不可抢占资源条件D、循环等待条件
13、进程的调度算法中,________是FCFS方法与SJF方法的折衷办法。
A、多级反馈队列轮转算法B、轮转法C、最高响应比优先D、先来先服务
14、在一个可变式分区管理中,以下动态分区算法最易产生碎片的是___________。
A、首次适应算法B、循环首次适应算法C、最佳适应算法D、最坏适应算法
二、填空
1、死锁的四个必要条件中,___________________条件不可破坏。
2、进程的调度算法有FCFS、SJF、HRN、RR等方法,其中易产生饥饿现象的算法是_______________。
3、为了解决死锁问题,有死锁预防、死锁避免、死锁检测与解除死锁,这些方法中属于动态解决办法的是____________。
4、设有三个作业J1,J2,J3,它们同时到达,运行时间分别为T1,T2,T3,且T1≤T2≤T3,若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为___________。
5.死锁的四个必要条件中,___________________条件不可破坏。
三、解答题
1、假定在一处理上执行以下5个作业:
分别画出采用FCFS、SJF、HRN调度算法的填写如下调度图。
并找出最优算法。
作业情况
调度算法
作业名
12345
平均
到达时间
01234
服务时间
46532
FCFS
完成时间
周转时间
带权周转时间
SJF
完成时间
周转时间
带权周转时间
HRN
完成时间
周转时间
带权周转时间
2、 有一组作业,其提交时间及运行时间如下表所示,在单道程序管理系统中,采用响应比高者优先高度算法及短作业优先方法,分别给出调度顺序,各作业的周转时间,并算出平均周转时间和平均带权周转时间。
(按十进制计算)
作业号
提交时间
运行时间
1
10.00
0.30
2
10.20
0.50
3
10.40
0.10
4
10.50
0.40
3、当前系统出现下述资源分配情况:
Allocation
Need
Avaliable
P0
0
0
3
2
0
0
1
2
1
6
2
2
P1
1
0
0
1
1
7
5
0
P2
1
3
5
4
2
3
5
6
P3
0
3
3
2
0
6
5
2
P4
0
0
1
4
0
6
5
6
(1)系统是否处于安全状态?
如果是,则给出所有进程的安全序列?
(2)如果进程P2提出资源请示Request(1,2,2,2)后,系统能否将资源分配给它,若不能请说明原因?
(10分)
4、设系统有五个进程和四类资源(A,B,C,D),各种资源的数量分别为(6,15,14,16),当前系统出现下述资源分配情况:
(1)系统是否处于安全状态?
如果是,则给出所有进程的安全序列?
(2)如果进程P2提出资源请示Request(1,0,0,0)后,系统能否将资源分配给它,若不能请说明原因?
5、以下为各作业的到达时间及所需执行时间,若各作业均HRN方法进行调度,试将内容填写完整,并求出平均周转时间?
作业到达时间需计算时间开始时间完成时间周转时间
18.0时0.5小时
28.2时0.4小时
38.3时0.3小时
48.5时0.2小时
6、设有三道作业,它们的提交时间及执行时间由下表给出:
作业号 提交时间 执行时间开始时间 完成时间 周转时间
1 8.5 2.0
2 9.2 1.6
3 9.4 0.5
采用非抢占式SJF方法完成上表中的相应内容,并计算平均周转时间?
7、某系统有A、B、C、D四类资源可供五个进程P1.P2.P3.P4.P5共享。
系统对这四类资源的拥有量为:
A类3个、B类14个、C类12个、D类12个。
进程对资源的需求和分配情况如下:
进程
已占有资源
最大需求数
A B C D
A B C D
P1
0 0 1 2
0 0 1 2
P2
1 0 0 0
1 7 5 0
P3
1 3 5 4
2 3 5 6
P4
0 6 3 2
0 6 5 2
P5
0 0 1 4
0 6 5 6
按银行家算法回答下列问题:
(1)现在系统中的各类资源还剩余多少?
(4分)
(2)现在系统是否处于安全状态?
为什么?
(6分)
8、有5个过程P1、P2、P3、P4、P5依次紧接着进入就绪队列,它们的优先级和需要处理器的时间如下表所示(优先级数越大优先权越高):
进程
需处理器的时间
(分钟)
优先级
开始运行时间
(相对)
结束运行时间
(相对)
等待时间
(分钟)
P1
9
3
P2
1
1
P3
2
3
P4
1
4
P5
4
2
写出采用“非抢占式的优先级”调度算法选中进程运行的次序及进程平均周转时间?
第四章存储器管理
一、选择
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、在请求分页系统中,LRU算法是指_________。
A、最早进入内存的页先淘汰B、近期最长时间以来没被访问的页先淘汰
C、近期被访问次数最少的页先淘汰D、以后再也不用的页先淘汰
9、在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能与相邻空闲区合并,修改空闲区表,使空闲区数变小的情况是_____。
A、无上邻空闲区也无下邻空闲区B、有上邻空闲区但无下邻空闲区
C、有下邻空闲区但无上邻空闲区D、有上邻空闲区但有下邻空闲区
10、能够使很多碎片变成一个较大可利用的空间的技术称为_________。
A、覆盖技术B、对换技术C、拼接技术D、虚存技术
11、页面的置换算法中,只能作为其他算法衡量标准而现实中无法实现的算法是_______。
A、最近最少使用算法B、先来先服务算法
C、最佳置换算法D、Clock算法
二、填空
1、M级页表至少需__________次访问内存,方可访问到具体的指令或数据。
2、段页式存储管理系统中,要读取指令或数据,至少要____次访问内存。
3、页面置换算法OPT、FIFO、LRU、Clock中最易出现抖动现象的是_______。
4、在分页存储管理和分段存储管理方式中,_______________不会产生外部碎片。
5、段页式存储管理系统中,要读取指令或数据,至少要____次访问内存。
6、如果逻辑地址空间由256页构成,每一页的长度为2048字节,则二进制逻辑地址有__________位。
7、在分页存储管理系统中,逻辑地址的长度为16位,页面大小为4096字节,现有一逻辑地址为1FBAH,且第0、1、2页依次放在物理块11、10、3,则相应的物理地址是___________________。
8、在分页存储管理中每个页的大小“相等”,页间地址是____________(填“连续”或“不连续”)。
9、段页式存储管理系统中,要读取指令或数据,至少要____次访问内存。
10、如果逻辑地址空间由256页构成,每一页的长度为2048字节,则二进制逻辑地址有__________位。
11、在分页存储管理系统中,逻辑地址的长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0、1、2页依次放在物理块5、10、11,则相应的物理地址是___________________。
12、在分页存储管理中每个页的大小_________(