美文网首页
进程调度

进程调度

作者: c菜鸟 | 来源:发表于2018-01-12 20:19 被阅读0次

分类:逻辑上分为可剥夺调度和非剥夺调度

可剥夺调度:允许挂起,运行到一半可以挂起

非剥夺调度:就是运行直到结束

调度分类

时间片轮转调度:时间片运行结束,就会切换到下一个进程,但是这种方法效率较低,假如时间片为20,那么切换到下一个进程需要花费5秒,那么有20%被浪费。 

优先级调度: 先执行高优先级的进程,高优先级进程执行完,才会执行低优先级的进程,同等优先级按照时间片轮转

多重队列(CTSS):也是优先级调度,只不过是同一优先级,第一个进程分配1个时间片,第二个进程分配4个时间片,第三个进程分配8个时间片以此类推。为2幂次方

本来只写最短作业优先算法但是百度的时候又看到了先来先服务算法,下面以一个例题来说明上述俩个算法,借用别人的解题

假设有a.b.c.d.e五个进程,其到达时间和服务时间由下表给出,计算在采用先来先服务调度算法和最短作业优先算法的平均周转时间和平均带权周转时间,并指出他们的调度顺序及完成时间。

到达时间  服务时间

a  0            4

b  2            7

c  5            4

d  8            3

e  10          2

没有优先级,无所谓权值

先来先服务:

调度顺序是abcde

周转时间:

a:4

b:2+7=9 (a运行时间4,所以b的等待时间为2,运行时间为7)

c:6+4=10 (a+b的运行时间是11,所以c的等待时间是6,运行时间是4)

d:7+3=10 (a+b+c运行时间是15,所以d等待时间是7,运行时间是3)

e:8+2=10 (前4个运行时间是18,e的等待时间是8,运行时间是2)

所以平均周转时间:

(4+9+10+10+10)/5=8.6

如果知道权值的话则分别乘以权值即可

(4*qa+9*qb+10*qc+10*qd+10*qe)/5

最短作业优先:

调度顺序是:abedc

理由-a先到,运行时间4,运行结束后只有b到达,所以b运行,b运行结束后总时间为11,此时cde都到达出于等待中,所以调度最短服务时间的e,然后是次短的d,最后c

周转时间:(跟上面一样,等待时间+运行时间)

a:4

b:2+7=9

e:1+2=3 (b运行完时间是11,而e在10才来,所以等待时间是1)

d:5+3=8 (abe运行结束后时间是13,d等待了5)

c:11+4=15 (abed运行结束后时间是16,c等待了11)

所以平均周转时间:

(4+9+3+8+15)/5=7.8

带权:

(4*qa+9*qb+3*qc+8*qd+15*qe)/5

彩票调度算法:比喻就是调度程序作出选择时,随机选择一张彩票,握有该彩票的进程开始获得cpu运行,如果从100张彩票中选出一张,那么如果一个进程握有20张彩票,那么它获得cpu的概率相比于其他进程就是20%

实时调度:

硬实时和软实时:前者是必须满足时间限制,不能超过,后者是,超过规定事件也是可以的

可调度性:就是处理事件的时间/事件的周期,所有这种事件的和小于1,那么该系统为可调度的

动态调度和静态调度:一个是事先作出调度,一个是运行时作出调度

调度算法

1发生率调度 算法

就是事先分配一个与事项发生频率成正比的优先级,调度时总是选取优先级高的进程,必要时可以剥夺当前进程

2最早截止优先算法

进程执行时间端的排在前,新进程到来时重新排列

3裕度

加入一个进程运行200ms,而他必须在250ms内执行完那么裕度为50,每次总是选取裕度最小的进程执行

相关文章

  • Nuttx Task Schedule

    调度概念 进程调度 按照某种调度算法从就绪队列中选取进程分配CPU,主要是协调对CPU等的资源使用。进程调度目标是...

  • 第三章 处理机调度与死锁

    3.2 作业与作业调度 3.2.3 先来先服务(FCFS)和短作业优先(SJF)调度算法 进程调度 进程调度方式:...

  • 学习之路 | 1 进程调度

    进程调度 多任务 Linux的进程调度 策略 策略决定调度程序在何时让什么进程运行。调度器的策略往往就决定系统的整...

  • 常用调度算法简介

    常用调度算法简介 一、关于调度 进程调度用于多进程或者多线程并发访问资源。 进程调度的需求出现在同时执行多个任务(...

  • 进程调度

    目标 本章将讨论Linux内核是如何进行进程调度的,进程调度程序(也称为调度器)的工作与实现原理。 进程调度程序负...

  • Linux 调度

    调度策略与调度类 进程包括两类: 实时进程(优先级高); 普通进程 两种进程调度策略不同: task_struct...

  • Linux进程调度

    Linux进程调度是通过内核子系统:进程调度程序完成的。进程调度程序决定投入运行的进程、何时运行已经运行时长。从这...

  • Linux内核学习013——进程调度(二)

    Linux内核学习013——进程调度(二) Linux的进程调度 早期版本(1~2.4)的Linux内核中,调度程...

  • 打通Framework与Kernel-谈谈我对进程管理的理解

    Kernel:Linux学习-进程管理与调度(一)-进程描述及其生命周期Linux学习-进程管理与调度(二)-进程...

  • 操作系统-03-操作系统的作业管理

    进程调度 进程调度是指计算机通过决策决定哪一个就绪进程可以获得CPU的使用权。 进程调度一般需要保留旧进程的运行信...

网友评论

      本文标题:进程调度

      本文链接:https://www.haomeiwen.com/subject/jfafoxtx.html