【中国海洋大学】操作系统随堂测试3整理
1. 避免死锁的著名算法是() A.先入先出法 B.优先级算法 C.高响应比优先调度算法 D.银行家算法
答:D.银行家算法
2. 资源的有序分配在解决死锁中属于哪种方法() A.预防死锁 B.避免死锁 C.检测死锁 D.解除死锁
答:A.预防死锁
资源的有序分配能够破坏循环等待,进而预防死锁。
3. 产生死锁的四个必要条件是:互斥、()、不可抢占和循环等待。 A.请求与阻塞 B.请求与保持 C.请求与释放 D.释放与阻塞
答:B.请求与保持
4. 当进程数大于资源数时,进程竞争资源()会产生死锁。 A.一定 B.不一定 C.不可能
答:B.不一定
有可能可以通过调配资源,向各个进程分配资源,以避免死锁的发生。
5. 同时考虑等待时间和服务时间的作业调度算法是() A.先进先出算法 B.短作业优先算法 C.高响应比优先调度算法 D.轮询调度
答:C.高响应比优先调度算法
- 先进先出算法考虑等待时间
- 短作业优先算法考虑服务时间
- 高响应比优先调度算法同时考虑等待时间和服务时间
- 轮询调度:每个人轮流获得相等的份额,因此既不考虑等待时间,也不考虑服务时间
6. 作业运行的三个阶段分别是:收容阶段、()和完成阶段,与此对应的三种状态为()、运行状态和完成状态,其中作业被选中建立进程进入就绪队列时,处于()状态/阶段。
答:运行阶段 后备状态 运行
7. 带权周转时间=()时间+要求服务时间/(),带权周转时间()1(不大于/不小于)。
答:等待 要求服务时间 不小于
8. 轮转调度算法时间片大小主要取()。
答:略大于一次典型交互所需时间
e.g.
进程名 | A | B | C | D | |
---|---|---|---|---|---|
到达时间 | 0 | 1 | 2 | 3 | |
服务时间 | 30 | 5 | 25 | 10 | |
RR Q=5 | 完成时间 | 70 | 10 | 65 | 35 |
RR Q=5 | 周转时间 | 70 | 9 | 63 | 32 |
RR Q=5 | 带权周转时间 | 2.3 | 1.8 | 2.55 | 3.2 |
RR Q=10 | 完成时间 | 65 | 15 | 70 | 35 |
RR Q=10 | 周转时间 | 65 | 14 | 68 | 32 |
RR Q=10 | 带权周转时间 | 2.2 | 2.8 | 2.75 | 3.2 |
周转时间=完成时间-到达时间
带权周转时间=周转时间/服务时间
对于时间片Q=10可以算出各进程的完成时间:
0 | 10 | 15 | 25 | 35 | 45 | 55 | 65 | 70 |
---|---|---|---|---|---|---|---|---|
A | B | C | D | A | C | A | C |
9. 某进程的到达时间是2,服务时间是5,完成时间是17,其周转时间为(),带权周转时间为()。
答:15;3
周转时间
=
完成时间
−
到达时间
周转时间=完成时间-到达时间
周转时间=完成时间−到达时间
带权周转时间
=
周转时间
服务时间
+
1
=
15
5
=
3
带权周转时间=\frac{周转时间}{服务时间}+1=\frac{15}{5}=3
带权周转时间=服务时间周转时间+1=515=3
10. 在分时系统中,用户1有4个进程A,B,C,D,而用户2有一个进程E,用户1支付的服务费是用户2的2倍,根据公平分享调度算法,处理机执行的调度序列应该是:A,B,(),C,(),E,…
答:E; D
根据支付的服务费用,用户1每执行2个进程,用户2执行1个进程。
11.简答题:已知以下进程状态,请根据保证调度算法,给出最优先的调度进程。
答:
∑ 服务时间 = 50 \sum{服务时间}=50 ∑服务时间=50(整个系统的运行时间)
对于A-E:前10s 每人分得2s 后40s 每人分得4s 2+4=6s
对于F-J:后40s 每人分得4s
(相当于算出来每个进程平均应该分得多少运行时间)
计算每个进程的权重:(看看哪个进程用的占平均时间的比例低)
- A: 3 6 = 0.5 \frac{3}{6}=0.5 63=0.5
- B: 5 6 = 0.83 \frac{5}{6}=0.83 65=0.83
- C: 7 6 = 1.17 \frac{7}{6}=1.17 67=1.17
- D: 4 6 = 0.66 \frac{4}{6}=0.66 64=0.66
- E: 8 6 = 1.33 \frac{8}{6}=1.33 68=1.33
- F: 2 4 = 0.5 \frac{2}{4}=0.5 42=0.5
- G: 6 4 = 1.5 \frac{6}{4}=1.5 46=1.5
- H: 3 4 = 0.75 \frac{3}{4}=0.75 43=0.75
- I: 5 4 = 1.25 \frac{5}{4}=1.25 45=1.25
- J: 7 4 = 1.75 \frac{7}{4}=1.75 47=1.75
所以最优先的应当是A或F。
12. 简答题:检测下面两张资源分配图是否存在死锁,若有标注死锁进程,若不存在,请给出安全序列。
答:第一张图为死锁进程
第二张图存在安全序列:P1->P3->P2
对于第二张图:首先P1拿到了所有需要的资源,则可以执行并释放资源,这时R2中空出来的资源可以给P3,P3拿到了所有的资源并释放,则R3中的资源可以给P2,R1中的资源由于P1执行完毕也可以分配给P2,故P2可以执行。
【注意】不能以是否存在环形结构作为判断死锁的依据。
13. 简答题:(1)请问,O1,O2和O3应该属于1,2,3,4哪个区域?(2)请问,O1O3和O2O3区间的点应该属于1,2,3,4哪个区域?
答:
(1)O1: ① O2: ③ O3: ②
(2)O1O3: ① O2O3:③
各区域代表的含义:
- 两块空白的三角形:资源已经能够满足P或Q其中一个的要求,此时执行完一个进程后,释放资源后可以满足另一个进程的需要。因此两块区域代表可以正常执行进程的情况。
- ④:此时为死锁。既不能向上满足Q的资源需求,也不能向右满足P的资源需求。
- ②:此时无论P还是Q申请资源,均可以向其分配资源。向Q分配资源后进入①,向P分配资源后进入③。
- ①③:对于①,只有通过向Q分配足够多的资源,满足Q的执行,才能不造成死锁。③与其相反。
14. 计算题:系统状态S如下表,A,B,C,D四类资源还剩1,5,2,0,目前该状态是否安全?
答:该状态安全。安全序列为:P0->P3->P2->P1->P4(假设永远从最上方开始遍历)
P | Allocation | Max | Need |
---|---|---|---|
P0 | 0,0,1,2 | 0,0,1,2 | 0,0,0,0 |
P1 | 1,0,0,0 | 1,7,5,0 | 0,7,5,0 |
P2 | 1,1,5,4 | 2,3,5,6 | 1,2,0,2 |
P3 | 0,6,3,2 | 0,6,5,2 | 0,0,2,0 |
P4 | 0,0,1,1 | 0,6,5,6 | 0,6,4,5 |
假设此处的遍历顺序为:永远从最上方开始遍历
P | Work | Allocation | Need | Work + Allocation | F |
---|---|---|---|---|---|
P0 | 1,5,2,0 | 0,0,1,2 | 0,0,0,0 | 1,5,3,2 | True |
P3 | 1,5,3,2 | 0,6,3,2 | 0,0,2,0 | 1,11,6,4 | True |
P2 | 1,11,6,4 | 1,1,5,4 | 1,2,0,2 | 2,12,11,8 | True |
P1 | 2,12,11,8 | 1,0,0,0 | 0,7,5,0 | 3,12,11,8 | True |
P4 | 3,12,11,8 | 0,0,1,1 | 0,6,4,5 | 3,12,12,9 | True |
【答题模板】先说是否安全 如果安全的话给出执行顺序。
再列表分析
表格模板:
P | Work | Allocation | Need | Work+Allocation | F |
---|---|---|---|---|---|
进程序号 | 当前可供使用的资源数 | 已经分配给该进程的资源数 | 仍需的资源数 | 下一个进程可用的资源数 | 是否为安全状态 |