计算机进程调度论文,计算机操作系统小论文-Linux进程调度.doc

计算机操作系统小论文-Linux进程调度

Linux进程调度

一、概述

自1991年Linux操作系统出现以来,Linux操作系统以令人惊异的速度迅速在服务器和桌面系统中获得了成功。它已经被业界认为是未来最有前途的操作系统之一,并且在嵌入式领域,由于Linux操作系统具有开放源代码、良好的可移植性、丰富的代码资源以及异常的健壮,使得它获得越来越多的关注。[1]本文分析了Linux操作系统中几种常用的调度算法。

二、高级、中级和低级调度

在操作系统中,存在很多种调度,如用户提交作业的调度、运行进程的调度、I/O 请求的调度、存储空间切换的调度等。在不同的操作系统中所采用的调度方式不完全相同,在执行调度时所采用的调度算法也可能不同。因此,可从不同的角度对调度进行分类。常用的一种分类方法是按调度的层次,把调度分为高级调度、中级调度和低级调度。

(1)高级调度

高级调度通常也称作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,准备执行。系统接纳一个作业后,将它变为一个或者多个进程,为它们分配除了处理机之外的必要的系统资源后,将其排入就绪队列,准备执行。 值得注意的是,在批处理系统中,作业进入系统后,是先驻留在外存上的,因此,需要有作业调度,以将它们分批装入内存;在分时系统中,为了能及时响应,用户通过键盘输入的命令或数据等,都是直接送入内存,因而无须配置作业调度;类似地,在实时系统中,通常也不需要作业调度。

(2)中级调度

中级调度大多针对于分时系统,是按一定的算法在内存和外存之间进行进程对换,目的在于缓和内存的紧张。为此,应使那些暂时不具备执行条件的进程不再占用宝贵的内存空间,将它们挂起并调至外存上等待,称此时进程的状态为挂起状态。当这些进程重新又具备执行条件,且内存已空闲时,再由中级调度决定,将外存上哪些已具备执行条件的进程解除挂起后重新调入内存,排在进程就绪队列上,等待进程调度。

由此可见,中级调度实质上是决定允许哪些进程有资格参与竞争处理机资源。中级调度实施的方法是“挂起”和“解除挂起”进程,将进程的程序和数据在内存与外存间进行对换,以达到短期调整系统负荷的作用。所以中级调度也常称为进程对换。中级调度实际上就是存储器管理中的进程对换功能。

(3)低级调度

低级调度就是指进程调度,它决定就绪队列中的哪个进程可以获得处理机。被低级调度选中的进程将实际获得处理机,并可立即在处理机上执行它的程序。在以进程为单位的操作系统中,进程调度是最基本的调度,在 3 种基本类型的操作系统中,都必须配置低级调度。

三、进程调度的方式

进程调度通常有以下两种方式。

(1)非剥夺方式

非剥夺方式也称非抢占方式。采用这种调度方式时,一旦把处理机分配给某个进程后,便让该进程一直执行,直至该进程完成或发生某事件而被阻塞时,才把处理机分配给其他进程,决不允许其他进程强占已分配出去的处理机。

这种调度方式的优点是实现简单、系统开销小,适用于大多数的批处理系统环境。但它难以满足紧急任务的要求——立即执行,因而可能造成难以预料的后果。显然,在要求比较严格的实时系统中,不宜采用这种调度方式。

(2)剥夺方式

剥夺方式也称抢占方式,其含义是根据某种原则,强行剥夺现行进程正在使用的处理机,并把处理机分配给其他进程。剥夺原则如下所述。

① 优先级原则。通常对一些重要和紧急的进程,赋予较高的优先级。优先级高的进程可以剥夺优先级低的进程而执行。

② 短进程优先原则。当到达的进程比正在执行的进程明显短时,将剥夺长进程的执行而优先执行短进程。

③ 时间片原则。每个进程被分配给一个同样的时间片,时间片用完后重新进行处理机调度。

④ 强制性剥夺。极重要的进程或人工干预,强制引起处理机调度。

四、进程调度算法

在Linux操作系统中,有五种常用的进程调度算法:先来先服务(FCFS)调度算法、短进程优先(SPF)调度算法、高优先级优先(HPF)调度算法、

时间片轮转法(RR)以及多级反馈队列调度算法。

1. 先来先服务(FCFS)调度算法

在进程调度中,采用FCFS调度算法时,进程调度程序从就绪进程队列中,选择一个最先进入队列的进程,把CPU分配给它,让它进入执行状态。该进程一直执行,直到进程完成或因等待某事件发生阻塞时,才放弃CPU。

为了实现FCFS调度算法,系统只要按先进先出(FIFO)规则建立进程就绪队列即可,也就是进程控制块入队时加在队列末尾,调度出队时从队列首开始顺序扫描,将相关的PCB调度移出相应队列。

FCFS调度算法具有一定的公平性,并且实现也比较容易,这是它的优点。但是,它的缺点是实际上不公平,它比较有利于长进程,而不利于短进程。因为对于那些执行时间较短的进程来说,如果它们在某些执行时间很长的进程开始执行之后到达,则短进程将等待很长的时间。

在实际操作系统中,尽管很少

你可能感兴趣的:(计算机进程调度论文)