CPU调度

简介: CPU调度

cpu调度并发

长进程:占用cpu时间长的

短进程:占用cpu时间短的

可以看出基本都是短进程

  • cpu密集型程序占比比较多,计组中我没学过现代的计算机大多是以存储器为中心,所以i/o交互不需要cpu全程参与

单核调度的流程

抢占调度

前面我没学过的两种方式,一种是程序主动离开cpu,一种是被动离开。

只有进程从运行状态变为终止状态和父进程调用io设备进入等待状态,cpu才有可能将父进程赶出cpu(非抢占调度),其他基本都是抢占调度。

cpu调度算法

画一个分析表

早期操作系统:

早期系统秉承先来先服务

图中我们可以看到到达顺序为p1、p2、p3的话p3需要等待37秒才能执行响应。

而如果我们换个顺序

这样我们发现p1只需要等待12秒即可响应,第一种平均等待时间22毫秒,而第三种平均等待时间只要5毫秒,所以我们可以得到如果能优化一下,让开销小的先执行,这样用户感觉会好些,当然解决这个问题,我们还需要有个判优机制,我们需要知道那个进程消耗资源少,那个更多,这个我们后面讨论。

基于先来先执行算法的优缺点,我们又有了一个算法

时间片轮转

每个进程获得的运行时间是平均的,但等待时间可能会超过(n-1)q

但是这个算法是基于分时系统的,分时系统我们已经不用了。

我们再对上面的算法进行优化

RR算法分析

但是这个RR算法的平均周转时间会比FCFS更糟糕

最短作业优先(sjf)

如果我们可以让短进程在长进程之前执行,那么我们可以让算法

如果是个抢占式

SRTF算法的优缺

但是这个算法最大的缺点是我们无法预先知道每个进程的执行时间。所以这个只是一个理论模型

上面的算法要不然是理论模型,要不然就是被淘汰了,下面这个算法才是重点

优先级调度算法

假设所有进程都是0时到达,非抢占式就会按照优先级进行排序

如果是抢占式,则正在执行的进程很可能会被打断。

如果优先级一直不变会产生一个叫做饥饿现象的现象,也就是说高优先级的进程会长期占据cpu,导致低优先级的进程一直处于"饥饿状态"。

上面说的这些算法并非使用所有环境,现在的环境都是尽量将这些算法的优点集中到一起。

长程调度和短程调度

长程调度是进程数据在内存———硬盘之间的资源调度,短程是进程在cpu——内存之间的资源调度

相关文章
|
8天前
|
算法 网络协议 调度
操作系统 -- CPU调度
操作系统 -- CPU调度
23 0
|
11月前
|
算法 Linux 调度
【操作系统--CPU调度算法】Linux环境中C语言详解(附代码)
操作系统之CPU调度算法,使用C语言实现,可运行在linux环境中
271 0
|
Linux 调度 Android开发
RK3399平台开发系列讲解(进程调度篇)14.8、CPU 上下文切换
RK3399平台开发系列讲解(进程调度篇)14.8、CPU 上下文切换
76 0
RK3399平台开发系列讲解(进程调度篇)14.8、CPU 上下文切换
|
算法 Linux 调度
互联网+大赛 - 龙蜥社区赛题(限制 CFS 调度的 CPU 并发度)|学习笔记
快速学习互联网+大赛 - 龙蜥社区赛题(限制 CFS 调度的 CPU 并发度)
86 0
|
算法 调度
2.2.2操作系统(CPU利用率 系统吞吐量 周转时间 调度算法 FCFS SJF HRRN)
调度算法的评价指标 ​1.CPU利用率 2.系统吞吐量 3.周转时间 4.等待时间 5.响应时间 调度算法 1.先来先服务(FCFS, First Come First Serve) 2.短作业优先(SJF, Shortest Job First) 非抢占式 抢占式 ​注意几个小细节: 对FCFS和SJF两种算法的思考… 3.高响应比优先(HRRN, Highest Response Ratio Next) 知识回顾与重要考点
2.2.2操作系统(CPU利用率 系统吞吐量 周转时间 调度算法 FCFS SJF HRRN)
|
Kubernetes Cloud Native 安全
Koordinator 0.6:企业级容器调度系统解决方案,引入 CPU 精细编排、资源预留与全新的重调度框架
经过社区多位成员的贡献,Koordinator 0.6 版本正式发布。相较于上一个版本 0.5,新版本进一步完善了 CPU 精细化编排能力,更好的兼容原生用法;支持了资源预留的能力(Reservation),补齐了调度原子语意缺失;发布了全新的重调度框架,支持用户灵活的扩展自定义插件。这些特性源自于阿里巴巴内部的生产实践,并结合上游社区规划思考,为用户带来标准、强大、灵活的调度解决方案。
953 0
Koordinator 0.6:企业级容器调度系统解决方案,引入 CPU 精细编排、资源预留与全新的重调度框架
|
存储 缓存 Kubernetes
Kubernetes 怎么调度管理 CPU
Kubernetes 怎么调度管理 CPU
1310 0
|
算法 调度 数据中心
计算机原理探险系列(九)CPU调度机制
计算机原理探险系列(九)CPU调度机制
178 0
|
负载均衡 调度 虚拟化
VMware虚拟化的CPU调度原理及实践建议
ESXi的CPU调度原理及实践建议
2365 0