进程调度是处理机调度。
1 记录系统中所有进程的执行状态。
2 根据一定调度算法,从就绪队列中选出一个进程来,准备把CPU分给它。
3 把CPU分给进程。
进程调度一般在下面的情况下发生的:
1 正在执行的进程执行完毕。
2 正在执行的进程调用阻塞原语将自己阻塞起来进入等待状态。
3 正在执行的进程调用了P原语操作,从而因为资源不足而被阻塞,或调用了V原语操作击活了等待资源的进程。
4 在分时系统中时间片用完。
在CPU方式是可以剥夺的时候,还有:
12 就绪队列中的某个进程的优先级边的高与当前进程的优先级,从而引起进进程调度。
进程调度算法解决以何种次序对各就绪进程进行处理机的分配以及按何种时间比例让进程占用处理机。
1 先进先出算法。
2 时间片轮转算法。
3 最高优先数算法。
静态优先数。动态优先数。
在多道程序系统中,一组进程中的每个进程均无限期的等待被该组进程中的另一个进程所占有且永远不会释放的资源,这种现象处于死锁状态。处于死琐状态的进程称为死琐进程。发生死琐时,死琐进程至少有两个。所有死琐进程都有等待资源,其中,至少有两个死琐进程占用了资源。
永久性资源和临时性资源。
产生死琐的原因是:
3 系统提供的资源数量有限,不能满足每个进程的使用。
4 多道程序设计时,进程推进次序不合理。
产生死琐的4个必要条件:
1 互斥条件。
2 不可剥夺条件。
3 部分分配。
4 循环等待。
资源分配图(注意40页B图有问题)
三种预防措施:
1采用静态资源预分配,破坏“部分分配”条件。
2允许进程剥夺其他进程占用的资源,从而破坏“不可剥夺”条件。
3采用资源有序分配法,破坏“环路”条件。