-
精确测量噪声系数是进程调度-pna-x矢量网络分析仪的功能之
资源介绍
5.4 进程调度
协调处理器资源在各个进程间使用的过程,就叫做进程调度,或者简称为调度。实现调
度功能的程序,就是调度程序,或者叫调度器。本书中只研究(经典)进程调度,进程调度
的过程如图 5-5所示。
就绪状态进程 进程上下文
*处理器分派器
排队器
上下文切换器
就 绪队列
运行状态进程
其他状态进程
状态决策器
资源管理器
(内存、文件、外设等)
运行
请求
未分配
分配
剥夺或自愿放弃处理器
睡眠或挂起等操作
就绪
未就绪
调度程序
图 5-5 进程调度过程
调度策略
调度程序具有多种策略,总体上可分为非剥夺式调度和剥夺式调度两种类型。
1.非剥夺式调度是指进程之间自愿共享处理器,每个进程在获得处理器运行一段时间后,
都会自愿放弃处理器,以供其他进程使用。一个典型的例子是 yield()函数的使用。yield()函数
的大体流程是:
(1)保存当前进程上下文,设置状态为就绪;
(2)调用调度程序,切换到其他进程运行(如果能找到的话)。
这要求每个进程在运行一段时间后,都周期性地调用 yield()函数来实现进程调度。
2.剥夺式调度是指进程之间并不自愿共享处理器,每个进程在获得运行后,不会主动释
放处理器资源,除非在获取某项资源时,因为资源不可获得而被挂起。基本上,处理器资源
的共享需要操作系统强制剥夺进行。通常这是通过一个时钟中断来实现的,晶振硬件周期性
地发送时钟中断信号给处理器,处理器在时钟中断中运行调度程序,从而实现进程调度。UNIX
采用剥夺式调度策略。剥夺式调度策略可分为:
(1)轮转调度(round-robin),又称 RR调度,这是所有调度算法中使用最广泛的一种。
RR调度要求在所有请求处理器的进程之间,公平地分配处理器使用时间。这符合大多数用户
的需求,在一段时间 T中,n个进程中的每个进程都获得近似于 T/n的运行时间(需要除去调
度程序和中断等所花的时间)。假如在此过程中发生了 m次中断和调度,每次中断的处理时间
是 Ti,每次调度所花的时间是 Ts,则每个进程获得的运行时间是
( i s) *T T T m
n
。很容易看