常见的进程优先调度算法

  • 什么是进程调度以及为什么有进程调度算法

    无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

  • 常见的进程调度算法

  先进先出算法

算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。

例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,

执行情况如下图:

对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。

可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法

  短进程优先

CPU运行期优先调度算法(SCBF--Shortest CPU Burst First),该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行期分别是16、12、4和3个单位时间,执行情况如下图:P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。

  轮转法

前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。

简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。

多级队列方法:将系统中所有进程分成若干类,每类为一级。

  多级反馈队列

多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权。

时间: 2024-10-24 02:45:55

常见的进程优先调度算法的相关文章

Linux 常见的进程调度算法

1.在介绍进程调度之前,先对进程的状态的概念应该有所了解,下面是关于进程状态的一些基本概念:进程的状态分为三种,分别为: 1).运行态:该状态表明进程在实际占用CPU 2).就绪态: 该状态下进程可以运行,但因为其他进程正在运行而暂时停止 3).阻塞态: 该状态下进程不能运行,除非某种外部事件的发送 运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的. 等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行. 运行态→就绪态 不是由于自身原因,而是由外界原因使

常见的进程调度算法

一.进程和作业的区别 区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务.  关系:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业.  作业调度是宏观调度,它决定了哪一个作业能进入主存.进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理器. 二.先来先服务和短作业(进程)优先调度算法 ①先来先服务(FCFS) 可用于作业调度和进程调度,简单来说,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源.创建进程

操作系统中常见的进程调度算法

1.      先来先服务(FCFS)调度算法 FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度.在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列. 在进程调度中,FCFS调度算法每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,使之投入运行,直到完成或因某种原因而阻塞时才释放处理机. FCFS调度算法属于不可剥夺算法.从表面上看,它对所有作业都是公平的,但若一个长作业

常见进程的调度算法

调度算法是指:根据系统的资源分配策略所规定的资源分配算法,如任务A在执行完后,选择哪个任务来执行,使得某个因素(如进程总执行时间,或者磁盘寻道时间等)最小.对于不同的系统目标,通常采用不同的调度算法. 几个常用的操作系统进程调度算法. 1 先来先服务(队列) 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度.当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源.创建进程,然后放入就

操作系统——进程调度之短进程优先

 1.什么是进程调度 无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数.这将导致它们互相争夺处理机.另外,系统进程也同样需要使用处理机.这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行. 2.处理机调度分类 高级.中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度: 高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备进程调入内存运行: 低级调度:(Low-Level Scheduling)又称为

进程的调度算法

在操作系统,进程是很重要的概念!!!! 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序的实体. 引入进程的目的,在多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上.

复习-进程的调度算法

1.先来先服务(FCFS):非抢占 2.轮转(RR):时间片用完后抢占 3.最短进程优先(SPN):非抢占,下一次选择预计处理时间最短的进程 4.最短剩余时间(SRT):SPN的抢占版,新进程到达时抢占 5.最高响应比优先:非抢占--算了这个懒得看了 6.(多级)反馈:时间片用完后抢占.方案345都是要估计服务时间,而这种方式则是关注已经执行的时间.分配不同优先级的队列i(i越小优先级越高),每个队列的中进程的允许执行时间为2^i.进程高优先级被抢占过后会掉到下一级(惩罚运行时间长的作业).首先

模拟处理机作业调度---短作业优先调度算法

短作业优先调度原理 短作业优先调度算法是指对短作业优先调度的算法.短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行. 算法流程图 JCB 代表一个作业,JCB 的结构如下: 模拟实现 在屏幕上输出以下作业状态表: 可以通过键盘命令动态地增加作业(即增加一个 JCB 数 据结构项).增加作业后,作业状态表内容可更新查看. 算法代码: #include "stdafx.h" #include<iostream> #inclu

短进程优先的调度算法详解

一.SPF算法简介 SJF算法 SJF(shortest job first)是以进程的运行时间长度作为优先级,进程运行时间越短,优先级越高. SJF算法的缺点 必须预知进程的运行时间.即使是程序员也很难准确估计进程运行时间.如果估计过低,系统就可能按估计的时间终止进程的运行,但此时进程并未完成,故一般都会偏长估计 对长进程不利.长进程的周转时间会明显地增长.可怕的是,SJF算法完全忽视进程等待时间,可能使进程等待时间过长,出现饥饿现象. 人机无法实现交互. 完全未考虑进程的紧迫程度.不能保证紧