OS计算题练习
一、进程同步
1、设有两个进程P、Q,P的优先级高于Q,同时进入就绪队列。各自运行的程序段如下所示:
|
进程P |
进程Q |
|
P1 Y=12 |
Q1 X=18 |
|
P2 Y=A+Y |
Q2 A=X+A |
|
P3 P(S1) |
Q3 V(S1) |
|
P4 A=Y+X |
Q4 X=A+Y |
|
P5 V(S2) |
Q5 P(S2) |
|
P6 X=Y+A |
Q6 A=X-Y |
其中S1、S2为信号量,初值为0;已知X、Y、A为共享变量,X的初值为83,Y的初值为35,A的初值为38;若调度程序执行的策略为抢占式优先权原则,试问:
(1) 执行序列?
(2) 变量X、Y、A的运行结果依次是?
解析:
(1) 执行序列:
P1 P2 P3 Q1 Q2 Q3 P4 P5 P6 Q4 Q5 Q6
(2) 运行结果:X=118,Y=50,A=68
|
执行序列 |
运行过程 |
|
P1 |
Y=12 |
|
P2 |
Y=A+Y=38+12=50 |
|
P3 |
P(S1),所以S1=-1<0,block |
|
Q1 |
X=18 |
|
Q2 |
A=X+A=18+38=56 |
|
Q3 |
V(S1),所以S1=0≤0,wake up,P>Q |
|
P4 |
A=Y+X=50+18=68 |
|
P5 |
V(S2),S2=1,go on |
|
P6 |
X=Y+A=50+68=118 |
|
Q4 |
X=A+Y=68+50=118同上 |
|
Q5 |
P(S2),S2=0,go on |
|
Q6 |
A=X-Y=118-50=68 |
2、若调度程序执行的策略为非抢占式优先权原则
(1) 执行序列
(2) 变量X、Y、A的运行结果依次是
解析:
(1) 执行序列:
P1 P2 P3 Q1 Q2 Q3 Q4 Q5 P4 P5 P6 Q6
(2) 运行结果:X=206 Y=50 A=156
|
执行序列 |
运行过程 |
|
P1 |
Y=12 |
|
P2 |
Y=A+Y=38+12=50 |
|
P3 |
P(S1),所以S1=-1<0,block |
|
Q1 |
X=18 |
|
Q2 |
A=X+A=18+38=56 |
|
Q3 |
V(S1),所以S1=0≤0,wake up,go on |
|
Q4 |
X=A+Y=56+50=106 |
|
Q5 |
P(S2),S2=-1<0,block |
|
P4 |
A=Y+X=50+106=156 |
|
P5 |
V(S2),S2=0<=0,wake up,go on |
|
P6 |
X=Y+156=50+156=206 |
|
Q6 |
A=X-Y=206-50=156 |
二、时间片轮转
1、设有5个进程P1、P2、P3、P4、P5,它们到达时间和要求服务时间如下表(单位为ms),请按时间片轮转调度算法完成,时间片大小为3。
|
Process |
P1 |
P2 |
P3 |
P4 |
P5 |
|
到达相对时刻 |
0 |
3 |
5 |
9 |
13 |
|
执行或服务时间 |
7 |
6 |
10 |
8 |
2 |
(1) 写出进程的实际调度序列:
(2) 计算平均带权周转时间(结果保留两位小数):
解析:
(1) 进程的调度序列:
P1 P2 P1 P3 P2 P4 P1 P3 P5 P4 P3 P4 P3
(2) 平均带权周转时间:
(2.7+2+2.8+2.9+5.5)÷5 = 15.9÷5 = 3.18
|
就绪队列 |
P1 |
P2 |
P1 |
P3 |
P2 |
P4 |
P1 |
P3 |
P5 |
P4 |
P3 |
P4 |
P3 |
|
执行队列 |
P1 3 |
P2 6 |
P1 9 |
P3 12 |
P2 15 |
P4 18 |
P1 19 |
P3 22 |
P5 24 |
P4 27 |
P3 30 |
P4 32 |
P3 33 |
|
Process |
P1 |
P2 |
P3 |
P4 |
P5 |
|
到达相对时刻 |
0 |
3 |
5 |
9 |
13 |
|
执行或服务时间 |
7 |
6 |
10 |
8 |
2 |
|
完成时间 |
19 |
15 |
33 |
32 |
24 |
|
周转时间 |
19 |
12 |
28 |
23 |
11 |
|
带权周转时间 |
19/7 |
12/6=2 |
28/10=2.8 |
23/8 |
11/2=5.5 |
三、银行家算法
1、假定系统中有5个进程(P0,P1,P2,P3,P4)和4种类型的资源(A,B,C,D),全部资源的数量(Vector)为(3,12,14,14);在T0时刻的资源分配情况如下表:
|
Process |
Max |
Allocation |
||||||
|
A |
B |
C |
D |
A |
B |
C |
D |
|
|
P0 |
0 |
0 |
4 |
4 |
0 |
0 |
3 |
2 |
|
P1 |
2 |
7 |
5 |
0 |
1 |
0 |
0 |
0 |
|
P2 |
3 |
5 |
9 |
8 |
1 |
3 |
4 |
4 |
|
P3 |
0 |
8 |
8 |
4 |
0 |
3 |
3 |
2 |
|
P4 |
0 |
6 |
6 |
11 |
0 |
0 |
1 |
4 |
(1) 此时系统中的可利用资源向量ABCD为?
(2) 用银行家算法判断T0时刻系统状态是否安全?如为安全状态,请写出按照P0-P4循环的安全序列。
(3) 若进程P2提出请求 Request(0,1,1,0),系统能否将资源分配给它?
解析:
|
Process |
Max |
Allocation |
Need |
Available |
||||||||||||
|
A |
B |
C |
D |
A |
B |
C |
D |
A |
B |
C |
D |
A |
B |
C |
D |
|
|
P0 |
0 |
0 |
4 |
4 |
0 |
0 |
3 |
2 |
0 |
0 |
1 |
2 |
1 |
6 |
3 |
2 |
|
P1 |
2 |
7 |
5 |
0 |
1 |
0 |
0 |
0 |
1 |
7 |
5 |
0 |
|
|
|
|
|
P2 |
3 |
5 |
9 |
8 |
1 |
3 |
4 |
4 |
2 |
2 |
5 |
4 |
|
|
|
|
|
P3 |
0 |
8 |
8 |
4 |
0 |
3 |
3 |
2 |
0 |
5 |
5 |
2 |
|
|
|
|
|
P4 |
0 |
6 |
6 |
11 |
0 |
0 |
1 |
4 |
0 |
6 |
5 |
7 |
|
|
|
|
Need(Pi) = Max(Pi)-Allocation(Pi)
(1) 系统中可利用资源向量ABCD:
Vector(3,12,14,14)-Allocation(2,6,11,12)=Available(1,6,3,2)
(2) T0时刻系统的安全性:
|
Process |
Allocation |
Need |
Work+Allocation |
Finish |
|||||||||
|
A |
B |
C |
D |
A |
B |
C |
D |
A |
B |
C |
D |
||
|
P0 |
0 |
0 |
3 |
2 |
0 |
0 |
1 |
2 |
1 |
6 |
6 |
4 |
true |
|
P3 |
0 |
3 |
3 |
2 |
0 |
5 |
5 |
2 |
1 |
9 |
9 |
6 |
true |
|
P1 |
1 |
0 |
0 |
0 |
1 |
7 |
5 |
0 |
2 |
9 |
9 |
6 |
true |
|
P2 |
1 |
3 |
4 |
4 |
2 |
2 |
5 |
4 |
3 |
12 |
13 |
10 |
true |
|
P4 |
0 |
0 |
1 |
4 |
0 |
6 |
5 |
7 |
3 |
12 |
14 |
14 |
true |
令Work=Available(1,6,3,2)
用安全性算法对T0时刻的资源分配进行分析,存在一个安全序列:P0 P3 P1 P2 P4。所以此刻系统是安全的。
(3) 进程P2提出请求 Request(0,1,1,0),系统按银行家算法进行检查:
① Request1(0,1,1,0)≤Need2(2,2,5,4)
② Request1(0,1,1,0)≤Work(1,6,3,2)
③ 系统假定为进程P2分配资源,并修改Allocation2、Need2、Available2的值
|
Process |
Max |
Allocation |
Need |
Available |
||||||||||||
|
A |
B |
C |
D |
A |
B |
C |
D |
A |
B |
C |
D |
A |
B |
C |
D |
|
|
P0 |
0 |
0 |
4 |
4 |
0 |
0 |
3 |
2 |
0 |
0 |
1 |
2 |
1 |
5 |
2 |
2 |
|
P1 |
2 |
7 |
5 |
0 |
1 |
0 |
0 |
0 |
1 |
7 |
5 |
0 |
|
|
|
|
|
P2 |
3 |
5 |
9 |
8 |
1 |
4 |
5 |
4 |
2 |
1 |
4 |
4 |
|
|
|
|
|
P3 |
0 |
8 |
8 |
4 |
0 |
3 |
3 |
2 |
0 |
5 |
5 |
2 |
|
|
|
|
|
P4 |
0 |
6 |
6 |
11 |
0 |
0 |
1 |
4 |
0 |
6 |
5 |
7 |
|
|
|
|
④ 再用安全性算法检查此时系统是否安全
|
Process |
Allocation |
Need |
Work+Allocation |
Finish |
|||||||||
|
A |
B |
C |
D |
A |
B |
C |
D |
A |
B |
C |
D |
||
|
P0 |
0 |
0 |
3 |
2 |
0 |
0 |
1 |
2 |
1 |
5 |
5 |
4 |
true |
|
P3 |
0 |
3 |
3 |
2 |
0 |
5 |
5 |
2 |
1 |
8 |
8 |
6 |
true |
|
P1 |
1 |
0 |
0 |
0 |
1 |
7 |
5 |
0 |
2 |
8 |
8 |
6 |
true |
|
P2 |
1 |
4 |
5 |
4 |
2 |
1 |
4 |
4 |
3 |
12 |
13 |
10 |
true |
|
P4 |
0 |
0 |
1 |
4 |
0 |
6 |
5 |
7 |
3 |
12 |
14 |
14 |
true |
此时存在一个安全序列:P0 P3 P1 P2 P4。所以系统可以将资源分配给进程P2。
四、Clock 页面置换算法
1、在请求分页系统中,假设系统为进程P分配4个物理块,并将页面5,7,3预先装入主存且访问位A为1,0,0;页面访问串如下,采用Clock页面置换算法。(说明:地物理地址优先,替换指针开始指向最低地址的物理块。)
6,5,2,5,6,3,0,5,6,1,0,7,6,5,2
(1) 缺页中断次数____次。
(2) 页面置换次数____次,依次被置换的页面为___(页号之间不留空格),最后主存中的页面P及对应的访问位A的值(用PA形式表示,如51)_____。
解析:
|
|
6 |
5 |
2 |
5 |
6 |
3 |
0 |
5 |
6 |
1 |
0 |
7 |
6 |
5 |
2 |
|
5 1 * |
5 |
5 1 |
5 1 |
5 1 |
5 1 |
5 1 * |
0 1 |
0 1 |
0 1 |
0 1* |
0 1* |
7 1 |
7 1 |
7 1 |
7 1 * |
|
7 |
6 1 |
6 1 |
6 1 |
6 1 |
6 1 |
6 1 |
6 * |
5 1 |
5 1 |
5 1 |
5 1 |
5 * |
5 * |
5 1 * |
5 |
|
3 |
3 * |
3 * |
2 1 |
2 1 |
2 1 |
2 1 |
2 |
2 * |
6 1 |
6 1 |
6 1 |
6 |
6 1 |
6 1 |
6 |
|
* |
* |
* |
** |
** |
** |
3 1 |
3 |
3 |
3 * |
1 1 |
1 1 |
1 |
1 |
1 |
2 1 |
|
缺页 |
√ |
|
√ |
|
|
√ |
√ |
√ |
√ |
√ |
|
√ |
|
|
√ |
|
置换 |
7 |
|
3 |
|
|
无 |
5 |
6 |
2 |
3 |
|
0 |
|
|
1 |
(1) 缺页中断次数:9
(2) 页面置换次数:8
依次被置换的页面:73562301
最后主存中的页面P及对应的访问位A的值:
71 50 60 21
五、磁盘调度算法
1、设系统已完成某进程对103#磁道的访问请求,正在为访问107#磁道的请求者服务,还有若干进程在等待服务,它们依次请求访问的磁道号队列(FIFO)为:
117,133,217,161,206,223,101,187,136,24,80,15,81,82,284,143,95,77,235,50,184
(1) 采用N-Step-SCAN(N=9)磁盘调度算法时,写出磁道访问序列
(2) 计算平均寻道长度ASL(保留两位小数)
解析:
(1) 磁道访问序列: -> 101-> 95 -> 82 -> 81 -> 80 -> 77 -> 24 -> -> 143 -> -> 235 -> 184 ->
(2) 平均寻道长度:827/21=39.38
因为N=9,即每个子队列的长度为9;SCAN算法磁头双向移动
第一个子队列的访问序列:
107# -> 117 -> 133 -> 136 -> 161 -> 187 ->
206 -> 217 -> 223 -> 101
第二个子队列的访问序列:
-> 95 -> 82 -> 81 -> 80 -> 77 -> 24 -> 15 ->
143 -> 284
第三个子队列的访问序列:
-> 235 -> 184 -> 50
寻道总长度:223-107+223-15+284-15+284-50=1014-187=827
2、设系统已完成某进程对188#磁道的访问请求,正在为访问129#磁道的请求者服务,还有若干进程在等待服务,它们依次请求访问的磁道号序列(FIFO)为:
284,33,197,23,281,188,113,12,160,179,91,
293,235,161,278,146,151,100,157,44
(1) 采用N-Step-CSCAN(N=9)磁盘调度算法时,写出磁道访问序列
(2) 计算平均寻道长度ASL(保留两位小数)
解析:
(1) 磁道访问序列: -> -> 281 -> 197 -> 188 -> 160-> 151 -> 146 -> 100 -> -> -> 278 -> 235 -> 179 -> 161-> 157 ->
(2) 平均寻道长度:1033/20=51.65
因为N=9,即每个子队列的长度为9;CSCAN算法磁头单向移动
第一个子队列的访问序列:
129# -> 113 -> 33 -> 23 -> 12 -> 284 -> 281 -> 197 -> 188 -> 160
第二个子队列的访问序列:
-> 151 -> 146 -> 100 -> 91 -> 293 -> 278 ->
235 -> 179 -> 161
第三个子队列的访问序列:
-> 157 -> 44
寻道总长度:129-12+284-12+284-91+293-91+293-44=1283-250=1033
OS计算题练习的更多相关文章
- PMP--可能会涉及到的计算题
一.进度管理里的历时三点估算历时的三点估算可能会出现在进度管理的计算题里.以下公式,大家要记住:说一下历时的三点估算中的几个值:1.最有可能的历时估算:Tm2.最乐观的历时估算: To3.最悲观的历时 ...
- 将100道计算题输出至txt文件,再读取文件至控制台,在控制台中输入答案并评判对错
我在课堂上基本完成了输出100道题和创建文档,但是因为对输入输出流不熟悉,所以并没有实现将输出的计算题导出到文档里,在课下我又请教了宿舍的大佬,基本完成如下: 源代码: import java.io. ...
- CTF-练习平台-WEB之 计算题
四.计算题 打开连接 输入后发现只能输入一个数字,在火狐浏览器中按F12,打开查看器 ,如图所示修改最大长度 输入答案后验证,当当当~~flag出现
- MathExam小学一二年级计算题生成器V1.0
MathExam小学一二年级计算题生成器v1.0 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning ...
- MathExamV2.0四则混合运算计算题生成器
MathExamV2.0四则混合运算计算题生成器----211606360 丁培晖 211606343 杨宇潇 一.预估与实际 PSP2.1 Personal Software Process Sta ...
- Java练习 SDUT-1149_计算题
计算题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的计算,你需要计算f(m,n),其定义如下: 当m=1时 ...
- LOJ 2409「THUPC 2017」小 L 的计算题 / Sum
思路 和玩游戏一题类似 定义\(A_k(x)=\sum_{i=0}^\infty a_k^ix^i=\frac{1}{1-a_kx}\) 用\(\ln 'x\)代替\(\frac{1}{x}\), 所 ...
- THUPC2017 小 L 的计算题
求 $k=1,2,\cdots,n \space \space \sum\limits_{i=1}^n a_i^k$ $n \leq 2 \times 10^5$ sol: 时隔多年终于卡过去了 之前 ...
- CRC(Cyclic Redundancy Check)循环冗余校验码与海明码的计算题
(17)采用CRC进行差错校验,生成多项式为G(X)=X4+X+1,信息码字为10111,则计算出的CRC校验码是 (17) .A.0000 B.0100 C.0010 D.1100试题 ...
随机推荐
- bzoj 2563: 阿狸和桃子的游戏 贪心
这个真的好巧妙啊~ 如果只考虑点权的话显然直接按照权值大小排序即可. 但是加入了边权,就有了一个决策的问题. 于是,我们将边权分一半,分给两个端点. 如果一个人拿了两个端点,则边权都会加上. 否则,边 ...
- Chinese Mahjong
OJ题号:UVa11210 思路: 首先字符串处理读入手牌,str数组将手牌和数字对应,接下来搜索,先搜对子,如果搜过对子就不搜了.由于对子有且只有一个,可以在搜到以后直接跳出.同时注意一副麻将中每种 ...
- Python中的各种排序问题
小书匠python排序 本章目录,快速浏览所需内容: 基本的排序 1.列表(list) 1.1按列表元素大小排序 1.2按列表元素的属性 2.字典(dictory) 3.元组(tuple)排序 3.1 ...
- Luogu4689 [Ynoi2016]这是我自己的发明 【莫队】
题目链接:洛谷 又来做Ynoi里面的水题了... 首先换根的话是一个套路,首先以1为根dfs,然后画一画就知道以rt为根,x的子树是什么了.可以拆分为2个dfs连续段. 然后如果要计算\([l_1,r ...
- zabbix主动模式,自定义Key监控 zabbix采集器
主动模式不是只能用模板提供的标准检测器方式 zabbix-agent两种运行方式即主动模式和被动模式.默认被动模式. 两种模式是相对 客户端 角度来说的. 被动模式:等待server来取数据,可以使用 ...
- (转)hadoop balancer(重新平衡)
借鉴:https://blog.csdn.net/mnasd/article/details/80369603?utm_source=blogxgwz2 参考文档: http://blog.csdn ...
- codeforces319C
C. Kalila and Dimna in the Logging Industry time limit per test 2 seconds memory limit per test 256 ...
- Flutter移动电商实战 --(48)详细页_详情和评论的切换
增加切换的效果,我们主要是修改这个地方 这样我们的评论的内容就显示出来了 最终代码 details_web.dart import 'package:flutter/material.dart'; i ...
- JMeter_控制器执行效果_给自己挖过的坑
线程及循环设置: 数据文件中放在“循环控制器”中的执行效果:每条数据执行5次,取够50条数据时停止 简单逻辑控制器按下面的目录创建后,执行结果效果同上面循环控制器的执行效果 本来想规整下目录结构,结果 ...
- OpenJudge计算概论-忽略大小写比较字符串大小
/*======================================================================= 忽略大小写比较字符串大小 总时间限制: 1000ms ...