一、(7分)简述多级反馈队列,并给出其基本规则。 二、(6 分)简述受限直接访问,并给出通用的实现技术。 三、(7 分)假设系统中有四个相同类型的资源被三个进程共享。每个进程最多需要两个 资源。简述什么是死锁,并证明这个系统不会死锁。 四、(10分)某进程调度程序采用基于优先数(priority)的调度策略,即选择优先数最小的进 程运行,进程创建时由用户指定一个nice作为静态优先数。 为了动态调整优先数,引入 运行时间cpuTime和等待时间wait Time,初值均为0。进程处于执行态时,cpuTime 定 时加1,且waitTime置0;进程处于就绪态时,cpuTime 置0, waitTime 定时加1。请回 答下列问题。 (1)若调度程序只将nice的值作为进程的优先数,即priority=nice,是否会出现饥饿现象, 为什么? (2)使用nice、cpuTime和waitTime设计一种动态优先数计算方法, 以避免产生饥饿现象, 并说明各变量的作用。
时间: 2024-04-05 18:33:30 浏览: 96
多级反馈队列进程调度GUI实现
一、多级反馈队列是一种常见的进程调度算法,它将进程按照优先级分成多个队列,每个队列有自己的时间片大小,高优先级队列的时间片较短,低优先级队列的时间片较长。当进程到达系统时,先进入最高优先级队列,如果时间片用完了还未完成,则进入次高优先级队列,以此类推。基本规则如下:
1.高优先级的进程会优先执行,低优先级的进程会被推迟执行;
2.如果有多个进程在同一队列中等待执行,采用时间片轮转的方式调度;
3.如果一个进程在一个队列中占用的时间超过了它的时间片,它会被移到下一个更低优先级的队列,直到它完成为止。
二、受限直接访问是一种实现页面置换的方法,它通过将主存中的每个页面映射到一个固定的位置,使得页面调度算法可以直接访问页面的位置,从而提高内存管理的效率。通用的实现技术包括:
1.建立一个页表,将每个页面映射到一个唯一的物理地址;
2.使用一个页表寄存器来存储当前进程的页表基地址;
3.使用MMU(内存管理单元)来实现虚拟地址到物理地址的转换。
三、死锁是指多个进程互相等待资源,导致系统无法继续运行的一种状态。在本题中,每个进程最多需要两个资源,而系统中共有四个资源,因此不存在死锁的情况。即使所有进程都同时请求两个资源,也最多只能有两个进程同时分配到资源,另外一个进程会被阻塞等待资源释放。
四、
(1)调度程序只将nice的值作为进程的优先数,即priority=nice,会出现饥饿现象。因为优先数只与进程创建时指定的nice值有关,不能反映进程的运行状态和等待时间,优先数较低的进程可能永远无法被调度执行。
(2)使用nice、cpuTime和waitTime设计动态优先数计算方法可以避免饥饿现象。一种常见的方法是:priority = nice + 2 * cpuTime + waitTime。其中,nice表示进程创建时指定的优先数,cpuTime表示进程运行的时间,waitTime表示进程等待的时间。因为cpuTime和waitTime随着进程的运行而增加,所以优先数也会随着时间的推移而增加,保证了所有进程都能获得执行的机会。
阅读全文