OS-调度
创始人
2024-03-17 21:47:59
0

调度

多个程序在并发的情况下执行,最大化CPU利用率,同时要保证一定的公平性

调度的时机

五种情况:

  • Running -> Waiting:例如等待I/O
  • Running -> Ready: interupt,计时器到时间了
  • Running -> Terminated
  • Waiting -> Ready: I/O完成
  • New -> Ready

将进程调度分为非抢占式调度(当前运行的进程不能再运行时才会进行一次调度)和抢占式调度(根据进程的优先级进行跑)

可以直接用调度器来进行调度

调度的过程

img

···的过程叫上下文切换,这里的上下文切换用PCB来表示

作业调度算法

FCFS:First come First Saved,非抢占式

SJF:shortesr-Job-First,问题在于不知道具体运行时间

RR: Round-Robin,定义一个时间片轮流跑,抢占式

Priority Scheduling:选取最高优先级进行执行

Multilevel Queue Scheduling:

在实际应用中,进程通常被分为不同的组,每个组有一个自己的 ready queue,且每个队列内部有自己独立的调度算法。例如,前台队列使用 RR 调度以保证 response,后台队列可以使用 FCFS。同时,队列之间也应当有调度。通常使用 preemptive priority scheduling,即当且仅当高优先级的队列(如前台队列)为空时,低优先级的队列(如后台队列)中的进程才能获准运行。也可以使用队列间的 time-slicing,例如一个队列使用 80% 的时间片而另一个使用 20%。例如:

  • img

Multilevel Feedback Queue Scheduling

Multilevel Feedback Queue Scheduling 允许进程在队列之间迁移。这种算法可以有很多种实现,因为队列的数量、每个队列中的调度策略、队列之间的调度算法以及将进程升级到更高优先级/降级到更低优先级的队列的条件都是可变的。一个系统中的最优配置在另一个系统中不一定很好。这种算法也是最为复杂的。

linux nice函数实现优先级

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...