2008年(239)
分类: Oracle
2008-06-18 00:25:33
现代计算机系统通常采用多道并发处理。在这样的系统中,每一个用户作业都以进程的形式参与系统的并发执行。进程是程序在一个数据集合上运行的过程,是操作系统进行资源分配和调度的一个独立单位。
1. 进程的状态及转换
一般来说,进程在它的整个生命期中,可以处于以下基本状态:
(1)就绪。进程具备运行条件,但尚未获得CPU资源。
(2)运行。进程正在使用CPU资源。
(3)等待。由于等待某一个事件,进程不能使用CPU资源。
一个进程在其执行期间不断地在这三个状态之间转换,以“走走停停”的方式向前推进。整个状态的转换过程可见图2-4。
(1)用户提交任务处理。如果系统没有可用的CPU资源,就将该进程放入就绪队列,进行等待。
(2)如果存在CPU资源,操作系统就按照调度算法,从就绪队列中调度一个进程到CPU上运行,从而该进程就从就绪状态转变为运行状态。与此同时,原来正在运行的进程,可能完成所有操作而正常结束,也可能由于分配的时间片用完而被迫退出CPU资源,从运行状态转变为就绪状态。
(3)进程在运行过程中,可能会等待某一个事件,例如:等待分配某一资源,等待I/O操作的完成等等。在这种情况下,进程由于无法继续执行,就主动退出CPU资源,然后使自己处于等待状态,从而引起状态的变化。
(4)如果进程所等待的事件发生了变化,例如:一次I/O操作完成,于是进程就退出等待状态,进入就绪状态。
2. 进程的调度算法
可能有多个进程同时处于就绪状态,等待执行。进程的调度算法,决定了哪一个进程可以获得CPU资源。在操作系统中,有以下这些常用的进程调度算法:
(1)先来先服务算法。对处于就绪状态的进程,按照进程的提交顺序进行调度处理。
(2)轮转法。CPU的处理时间被分成固定大小的时间片。一个进程在被调度选中之后,用完了系统规定的时间片,但又未完成要求的任务,则它自行释放CPU资源而排到就绪队列的末尾,等待下一次调度。同时当前就绪队列的第一个进程获得CPU资源。
(3)优先权法。给进入系统的进程设定一个优先级,表示该进程所享有的调度优先权。对处于就绪状态的进程,优先级高的进程首先获得CPU资源。
在实际的操作系统中,一般是将几个调度算法结合起来使用。如:基于优先级的先来先服务调度算法,就是优先级高的进程首先获得CPU资源,而具有相同优先级的进程,则按照先来先服务算法,进行调度。
3. 数据库系统的进程调度
数据库系统需要启动许多个不同功能的进程。它的进程调度是根据进程间的相互关系,基于操作系统的进程调度管理,从而实现进程之间的协同处理,完成用户数据的管理和维护。