CPU的进程调度策略

CPU的进程调度策略


For real time scheduling #实时进程

SCHED_RR

#论寻

Round-robin fashion,each process gets a max CPU time

SCHED_FIFO

#队列,先进先出

#这个是我就一直占着,除非我做完了,你们才能用CPU。但是如果这个进程有严重的I/O延迟,系统会自动的调另一个上去。或者这个进程用sched_yield函数把CPU隔一段时间分出去。或者它被高优先级的进程取代。

Runs until blocked by I/O,calls sched_yield or preempted by a higher priority process

For general scheduling #普通非实时进程

SCHED_NORMAL

For general applocations,standard round-robin policy

SCHED_BATCH

#这个是特殊的,这个是针对批量的处理的操作的进程。比如对数据进行压缩,合并等等。不能中断,而且运行时间较久。如果运用了这个策略,CPU会相应的照顾到这些进程。

For batch style process,tuned to not be preempted tpp often,tacks run longer,

make bette use of caches

SCHED_IDLE

#这个是针对那些nice小于19的【这个19是最小的】

For low priority applications,with a very low priority(lower than nice 19)

测试:

[[email protected] ~]# lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                2

On-line CPU(s) list:   0,1

Thread(s) per core:    1

Core(s) per socket:    1

CPU socket(s):         2

NUMA node(s):          1

Vendor ID:             GenuineIntel

CPU family:            6

Model:                 13

Stepping:              3

CPU MHz:               2294.786

BogoMIPS:              4589.57

Hypervisor vendor:     KVM

Virtualization type:   full

L1d cache:             32K

L1i cache:             32K

L2 cache:              4096K

NUMA node0 CPU(s):     0,1

我们有两个CPU,所以要把两个CPU占满以测试。

使用FIFO的调度算法:

[[email protected] ~]# chrt -f 10 top

从列出的信息可以看出来,top的优先级还是比较高的。

但是运行下面的命令后:

[[email protected] ~]# chrt -f 1 md5sum /dev/zero &

[1] 1885

[[email protected] ~]# chrt -f 1 md5sum /dev/zero

发现md5sum这两条指令一直占着CPU的最高优先级,一直比TOP高。

之后运行:

[[email protected] ~]# chrt -r 1 sha1sum /dev/zero

发现top命令里,看不见sha1sum的进程被CPU调度。

使用论寻的调度算法:

[[email protected] ~]# chrt -r 1 md5sum /dev/zero &

[1] 1885

[[email protected] ~]# chrt -r 1 md5sum /dev/zero

之后运行:

[[email protected] ~]# chrt -r 1 sha1sum /dev/zero

可以发现3个进程一直被CPU调度着。

时间: 2024-10-21 22:08:50

CPU的进程调度策略的相关文章

Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)

日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.6 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度 前言 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个不同的部分, 其中一个涉及调度策略, 另外一个涉及上下文切换. 进程的分类 linux把进程区分为实时进程和非实时进程

linux内核CFS进程调度策略

一.概述 首先简单介绍一下基本的设计思路, CFS思路很简单,就是根据各个进程的权重分配运行时间(权重怎么来的后面再说). 进程的运行时间计算公式为: 分配给进程的运行时间 = 调度周期 * 进程权重 / 所有进程权重之和   (公式1) 调度周期很好理解,就是将所有处于TASK_RUNNING态进程都调度一遍的时间, 差不多相当于O(1)调度算法中运行队列和过期队列切换一次的时间 (我对O(1)调度算法看得不是很熟,如有错误还望各位大虾指出). 举个例子,比如只有两个进程A, B,权重分别为1

ubuntu查看系统资源占用(内存,cpu和进程)

http://blog.csdn.net/vivian187/article/details/51476043 http://bluexp29.blog.163.com/blog/static/33858148201071534450856/ ubuntu查看系统资源占用(内存,cpu和进程) 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2017/12/11 14:32 版本:V1.0 2010-08-15 03:44:50|  分类: ubunt

Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式最占cpu的进程

Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式 2016/12/220 Comments ######### # top -b -o +%CPU | head -n 22top - 21:02:00 up 2:34, 9 users, load average: 0.10, 0.08, 0.11Tasks: 190 total, 1 running, 189 sleeping, 0 stopped, 0 zombie%Cpu(s): 3.2 us, 2.2 sy,

Linux进程调度策略

linux内核的三种主要调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略(先到先服务)3,SCHED_RR实时调度策略(时间片轮转) 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值. 分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度. 任一个执行时间超过10ms或前两个执行时间超过10ms都会导致运行结果出现偏差,因为 cpu 的调度周期为

【H3C交换机】cpu各个进程的详细说明

display cpu-usage命令用来查看设备CPU占用率的统计信息,以及各个进程的cpu占用率. 各个进程详细说明如下,不同软件版本.盒式和框式的cpu进程略有不同,详细信息可以查看手册中的命令参考,有关display cpu-usage命令的介绍. BUFM:输出调试信息的任务 1731:实现Y1731协议栈,管理协议状态机,维护协议相关的数据库 _EXC:系统异常事件处理任务 _TIL:监控.处理软件异常导致的死循环 AAA:认证/计费/授权,实现与UCM.RADIUS等模块进行交互,

CPU与进程和线程

CPU的介绍:参考博客:https://blog.csdn.net/stpeace/article/details/80101441 官名叫做微处理器,微处理器由一片或少数几片大规模集成电路组成的中央处理器,这些电路执行控制部件和算数逻辑部件的功能. CPU从逻辑上可以划分成3个模块,分别是 1控制单元: 控制单元是整个CPU的指挥控制中心,由 程序计数器PC(Program Counter), 指令寄存器IR(Instruction Register).指令译码器ID(Instruction

操作系统中进程调度策略有哪几种?

FCFS(先来先服务),优先级,时间片轮转,多级反馈-调度算法. 先来先服务调度算法:是一种最简单的调度算法,每次调度是从进程队列中选择一个最先进入该队列的进程,为之分配资源投入运行.该进程一直运行完成或发生某事件而阻塞后才继续处理后面的进程. 优先级调度算法:有短进程优先级.高优先权优先级.高响应比优先级等,按照优先级来执行就绪进程队列中的调度.  (高响应比:(等待时间+服务运行时间)/服务运行时间) 时间片轮转调度算法:系统还是按照先来先服务调度就绪进程,但每次调度时,CPU都会为队首进程

Linux基础之查看系统cpu内存进程等信息

Linux系统信息