现代操作系统第二章习题.docVIP

  • 10
  • 0
  • 约1.48千字
  • 约 2页
  • 2019-09-08 发布于江西
  • 举报
在用户空间实现线程,其最大的优点是什么?最大的缺点是什么? 答:在用户空间实现线程,其最大的优点是线程切换至少比陷入内核要快一个数量级;最大的缺点是程序员通常在经常发生线程阻塞的应用中才希望使用多个线程。 在使用线程的系统中,若使用用户级线程,是每个线程一个堆栈还是每个进程一个堆栈?如果使用内核级线程情况又如何呢?请给予解释。 答:在使用线程的系统中,无论使用用户级线程还是使用内核级线程,都有专用的线程表来管理线程,专用的进程表管理进程;而且,进程表总是存放在内核空间中。不同的是用户级线程中线程表存放在用户空间中,内核对其一无所知;内核级线程中线程表存放在内核空间中,所有能够阻塞线程的调用都已系统调用的形式实现。 有5个批处理作业A到E,它们几乎同时到达一个计算中心。估计它们的运行时间分别为10,6,2,4和8分钟。其优先级(由外部设定)分别为3,5,2,1和4,其中5为最高优先级。对于下列每种调度方法,计算其平均进程周转时间,可忽略进程切换的开销。 轮转法。 优先级调度 先来先服务(按照10,6,2,4,8次序运行) 最短作业优先 对A)假设系统具有多道程序处理能力,每个作业均公平CPU时间,对于B)到D),假设任一时刻只有一个程序运行,直到结束。所有的作业都完全是CPU密集型作业。 答:对于A,平均公平CPU时间为(10+6+2+4+8)/5=6,如下表所示,平均进程周转时间为(28+12+14+18+30)/5=20.4 作业 运行时间段 周转时间 A(10) 0-6 24-28 28 B(6) 6-12 12 C(2) 12-14 14 D(4) 14-18 18 E(8) 18-24 28-30 30 对于B,如下表所示,平均进程周转时间为(24+6+26+30+14)/5=20 作业 优先级 运行时间段 周转时间 A(10) 3 14-24 24 B(6) 5 0-6 6 C(2) 2 24-26 26 D(4) 1 26-30 30 E(8) 4 6-14 14 对于C,如下表所示,平均进程周转时间为(10+16+18+22+30)/5=19.2 作业 运行时间段 周转时间 A(10) 0-10 10 B(6) 10-16 16 C(2) 16-18 18 D(4) 18-22 22 E(8) 22-30 30 对于D,如下表所示,平均进程周转时间为(30+12+2+6+20)/5=14 作业 运行时间段 周转时间 A(10) 20-30 30 B(6) 6-12 12 C(2) 0-2 2 D(4) 2-6 6 E(8) 12-20 20 一个软实时系统有4个周期时间,其周期分别为50ms,100ms,200ms和250ms。假设这4个事件分别需要35ms,20ms,10ms和x ms的CPU时间。保持系统可调度的最大x值是多少? 答:保持系统可调度的条件是所有周期时间所需CPU时间与其周期时间的比的和不大于1,即35/50+20/100+10/200+x/250=1,解出x为12.5 ms 考虑图2-46中的过程put_forks,假设变量state[i]在对test的两次调度之后而不是之前被置为THINKING。这个改动会对解法有什么影响? 答:可能出现进程忙等待。因为变量state[i]在对test的两次调度之后被置为THINKING,可能旁边的哲学家已经HUNGRY且得到了EATING的哲学家的唤醒,但这个哲学家还在EATING,所以他只能一直等着,直到EATING的哲学家离开临近区。

文档评论(0)

1亿VIP精品文档

相关文档