习题
2
1-7
题,见教材相关章节内容。
8
.
Job1
与
Job2
同时到达,根据短作业优先算法,这时应该先执行
Job2
,
Job2
执行完
毕时
9.0
,系统中有
job1
与
job3
两个作业,
job3
较短,所以先执行
job3
,
job3
执行完毕时
9.7
,系统中有
job1
和
job4
,
job4
较短,先执行
job4
,再执行
job1
,所以他们四个作业的执
行顺序为
Job2
、
Job3
、
Job4
、
Job1
;
Job2
的开始时刻是
8.0
,完成时刻是
9.0
、周转时间
1
,带权周转时间
1
;
Job3
的开始时刻是
9.0
,完成时刻是
9.7
、周转时间
1.3
,带权周转时间
1.86
;
Job4
的开始时刻是
9.7
,完成时刻是
10.0
,周转时间
0.8
,带权周转时间
2.7
;
Job1
的开始时刻是
10.0
,完成时刻是
12.0
,周转时间
4.0
,带权周转时间
2
;
平均周转时间为
1.78
;
平均带权周转时间为
1.89
。
9
.盘子是个互斥使用的通用类型缓冲区,可存放两种不同类型数据,父母
=
两个特定
类型数据
/
产品生产者,子女
=
两个特定类型数据
/
产品消费者。
enum{apple, orange} plate;
semaphore
sCap
,
sOrg,
sApp;
//
盘子里可以放水果数量
,
盘子里有无桔子
/
苹果
sCap = 1;
//
盘子容量:一个水果
sOrg = 0;
//
盘子里没有桔子
sApp = 0;
//
盘子里没有苹果
cobegin
process father {
while(true){
削一个苹果;
P(sCap);
把苹果放入
plate
;
V(sApp);
}
}
process son{
while(true){
P(sOrg);
从
plate
中取桔子;
V(sCap);
吃桔子;
}
}
process mother {
while(true){
剥一个桔子;
P(sCap);
把桔子放入
plate
;
V(sOrg);
}
}
coend
process daughter {
while(true){
P(sApp);
从
plate
中取苹果;
V(sCap);
吃苹果;
}
}
10
.
semaphore
S=1, SO=0, SS=0, SW=0;
//
容器是否可用
,
容器中是浓缩汁
/
糖
/
水