操作系统解答题

操作系统

    • **1.平均等待时间问题**
    • **2.同步互斥问题**
    • **3.分页系统地址转换**
    • **4.LRU(最近最久未使用)置换算法**
    • 5.银行家算法

1.平均等待时间问题

有5个进程P1,P2,P3,P4,P5,它们同时依次进入就绪队列,它们的优先数和需要的处理机时间如下表进程情况表所示。
操作系统解答题_第1张图片
忽略进程调度等所花费的时间,规定优先数数值越大,优先级越高,请回答下列问题:
①写出分别采用“先来先服务”和“非抢占式的优先数”调度算法时选中进程执行的次序。
②分别计算出在两种算法下各进程在就绪队列中的等待时间以及平均等待时间。
解答:
①先来先服务执行次序:P1-P2-P3-P4-P5(顾名思义,按进程的到达时间依次执行)
非抢占式的优先级:P4-P1-P3-P5-P2(优先级一致的情况下,按先来先服务处理)
操作系统解答题_第2张图片

2.同步互斥问题

在公共汽车上,司机和售票员的工作流程如下图所示。为保证乘客的安全,司机和售票员应密切配合协调工作。请用PV操作来实现司机与售票员之间的同步。
操作系统解答题_第3张图片
解答:
通过对题分析存在两种同步关系:售票员关门与司机启动汽车;司机到站停车与售票员开车门,针对这两种同步关系我们分别使用s1和s2信号量表示,s1表示是否允许司机启动汽车,s2表示是否允许售票员开车门。
主函数:
Semaphore S1,S2;
S1=0;
S2=0;
Cobegin
{
Driver();
Busman();
}
司机:
void Driver()
{ while(1)
{
P(S1);
启动车辆;
正常行车;
到站停车;
V(S2);
}
}
售票员:
void busman()
{ while(1)
{
关车门;
V(S1)
售票;
P(S2);
开车门;
}
}
只有一种互斥关系:
某车站售票厅有30个窗口,任何时刻最多可容纳30名购票者进入,当售票厅中少于30名购票者时,则厅外的购票者可立即进入,否则需在厅外等待。若把一个购票者看作一个进程,请用P、V操作管理这些并发进程,要求如下:
⑴.在主函数中给出信号量的定义和初值。
⑵.给出一个购票者进程的算法。
⑶.给出当购票者最多不超过n (设n>30)个时,信号量可能的变化范围。
解答:
通过对题分析存在一种互斥关系,购票者互斥使用30个购票窗口,我们可以使用一个互斥信号量mutex来表示,依据题意可知mutex初值为30。
⑴.主函数算法:
void main()
{
int mutex=30;
cobegin
P1(); …Pi();…Pn();
coend
}
⑵.购票者i的算法:
Pi()
{
P(mutex);
购票;
V(mutex);
}
⑶信号量mutex的取值范围:
-(n-30) ≤ mutex ≤ 30

当mutex=30时,表示售票厅内没有购票者进入,30个窗口都是空闲的,表示可用资源个数;
当mutex=0时,表示售票厅内已经进入了30个购票者,每个窗口都被分配,没有等待的购票者,可用资源为0;
当mutex=-(n-30)时,表示一共有n个购票者,其中30个购票者已经进入厅内,分别占有一个窗口,还有n-30个购票者在厅外等待,绝对值表示等待进程个数。

3.分页系统地址转换

在一个分页式存储管理系统中,某作业的页表如下表所示。已知页面大小为1024B,试将逻辑地址1041,2548,3328,4750,5012转化为相应的物理地址。
操作系统解答题_第4张图片
1041:页号=1041/1024=1
偏移量=1041%1024=17
查页表知第 0页在第 2块,所以物理地址为:3×1024+17=3089
2548:1×1024+100=1124
3328:6×1024+256=6400
4750、5012超出页号,无
操作系统解答题_第5张图片
解答:
(1)0AC5H转化成二进制为:0000 1010 1100 0101(四位四位写便于计算)
因为每页大小为1KB=2^10B
所以0000 10|10 1100 0101(从右往左查十位)前六位即为页号0010转换成十进制为2 ,所对应的物理块号为4 转化成二进制为:0100
所以0AC5H所对应的物理地址的二进制为:0001 0010 1100 0101 转化成16进制为:12C5H
同理
1AC5H对应的物理地址是0AC5H

(2)0AC5H:对应的页号为2,不在快表中,访问页表(即访问一次内存)找到页号对应的物理块号,接着更新快表,然后再访问内存找到
因此访问时间:0+15+0+15=30us
1AC5H对应的页号为6,在快表中,则只用访问一次内存
因此访问时间:0+15=15us

4.LRU(最近最久未使用)置换算法

设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页数据存储空间,页的大小为1KB。操作系统采用固定分配局部置换策略为此进程分配4个物理块。
操作系统解答题_第6张图片
当该进程执行到时刻240时,要访问逻辑地址为16CAH的数据,请问答下列问题:
(1)该逻辑地址对应的页号是多少?
(2)若采用最近最久未使用(LRU)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。
(3)若采用时钟(CLOCK)置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。(设搜索下一页的指针沿顺时针方向移动,且当前指向7号物理块,示意图如下。)
操作系统解答题_第7张图片

解答:
(1)16CAH转化成二进制为:0001 0110 1100 1010(四位四位写便于计算)
因为每页大小为1KB=2^10B
所以0001 01|10 1100 1010(从右往左查十位)前六位即为页号0101转换成十进制为5 ,即页号为5

(2)若采用最近最久未使用(LRU)置换算法,则置换页号0
所对应的物理块号为7 转化成二进制为:0111
所以0AC5H所对应的物理地址的二进制为:0001 1110 1100 0101 转化成16进制为:1ECAH

(3)根据clock算法,增加一个访问位,在选择要换出的页面时,先看访问位是不是为1,如果为1,不换出这个页面,但是要把它的访问位改成0,然后检查下一个页面,直到检查到一个访问位为0的页面,才将它换出。
这里题目中给出的所有页面访问位都是1,所以,第一轮检查,每个页面都不会被换出,但是大家的访问位都会变成0。检查指针顺时针旋转一圈后,又指向0号页框,此时它的访问位已经是0了,所以将0号页框换出。
因为在第二问置换的也是0号页,因此地址转换过程同(2)。

5.银行家算法

现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按银行家算法回答:

  1. 现在系统是否处于安全状态?
  2. 如果现在进程P1提出需要(0、4、2、0)个资源的请求,系统能否满足它的请求?
    操作系统解答题_第8张图片
    解答:
    1)
    MAX:最大需求数
    Allocation:已占资源数
    Need:还需要资源数
    Available:系统剩余资源数
    操作系统解答题_第9张图片

可找到安全序列:P0-P2-P3-P1-P4
(安全序列不唯一,随便找到一个就行)
解析:Available与Need比较后,先执行P0,P0结束后剩余资源数为 1 5 3 2 (进程执行完毕后所占资源即可释放,即剩余资源=Available(原本的剩余资源)+Allocation(已占资源数));接着执行P2,P2结束后剩余资源数为 2 8 8 6 ;接着执行P3,P3结束后剩余资源数为 2 14 11 8;接着执行P1,P1结束后剩余资源数为 3 14 11 8;最后执行P4,P4执行结束后剩余资源数为 3 14 12 12。进程可以全部执行,即找到一条安全序列。
2)提出请求为Request = 0 4 2 0
①Request(0 4 2 0)<=Need(0 7 5 0)
②Request(0 4 2 0)<=Available(1 5 2 0)
③进行预分配,即满足P1的请求。因此需要修改表格,即P1的Allocation(已分配资源)+(0 4 2 0),Need(需要的资源)-(0 4 2 0),Available(系统剩余资源)-(0 4 2 0)。修改后的表格如下:
操作系统解答题_第10张图片
④找到一条安全序列:P0-P2-P3-P1-P4.则可以满足它的请求。

也不清楚考研的具体题目,这是学习的那本操作系统的重点大题。

谨以此文送给正奋战在考研路上的某人,也送给未来即将考研的我,一起加油!

你可能感兴趣的:(操作系统)