操作系统中期试题
1、设内存有三道程序A、B、C,并按A、B、C的优先次序执行,其CPU计算和I/O操作的时间如表1所示。试画出多道程序运行的时间关系图(调度程序执行的时间忽略不计),完成这三道程序共花多少时间?比单道运行节省多少时间?(10分)
表1 程序运行时间表(单位:ms)
2、有两个程序,A程序按顺序使用CPU10s,使用设备甲5s,使用CPU 5s,使用设备乙10s,最后使用CPU 10s。B程序按顺序使用设备甲10s,使用CPU 10s,使用设备乙5s,使用CPU 5s,使用设备乙10s。在顺序环境下先执行A程序再执行B程序,CPU的利用率是多少?(10分)
3、假设一个计算机系统具有如下性能特征:处理一次中断,平均耗用1ms。一次进程调度,平均需要2ms。将CPU分配给选中的进程,又平均需要1ms。再假设其定时器芯片每秒产生100次中断。请回答:操作系统将百分之几的CPU时间用于时钟中断处理?如果操作系统采用轮转法调度,10个时钟为1个时间片。那么,操作系统将百分之几的CPU时间用于进程调度(包括调度、分配CPU和引起调度的时钟中断处理时间)?(10分)
4、设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。但是,桌子上总共只有5支筷子,在每人两边分开各放一支。哲学家们在肚子饥饿时才试图分两次从两边拾起筷子就餐。条件:
(1) 只有拿到两支筷子时,哲学家才能吃饭。(2)如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后才能拿到筷子。
(3) 任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。
试描述一个保证不会出现两个邻座同时要求吃饭的通信算法。(10分)
4.三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一个空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现三个进程的同步与互斥活动,并说明所定义的信号量的含义,要求用伪代码描述。 (15分)
6.系统有A、B、C、D共4种资源,在某时刻进程P0、P1、P2、P3和P4对资源的占有和需求情况如表2,试解答下列问题:(1)系统此时处于安全状态吗?(2)若此时P1发出request(1、2、3、4),系统能分配资源给它吗?为什么?(15分)
表2
7.在一单道批处理系统中,一组作业的提交时刻和运行时间如表3所示。试计算以下2种调度算法的平均周转时间T和平均带权周转时间W及调度顺序。(1)短作业优先;(2)响应比高者优先。(20分)
表3
8、系统中有4个进程A、B、C、D,其运行时间分别为6、3、7、1(单位为ms),均在时刻0到达,到达顺序为A、B、C、D。试分别采用时间片轮转(时间片分别为1和3,并不可抢占)调度算法,计算平均等待时间和平均周转时间。(10分)