博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CPU的进程调度策略
阅读量:6041 次
发布时间:2019-06-20

本文共 1727 字,大约阅读时间需要 5 分钟。

hot3.png

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)

测试:

[root@server19 ~]# 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的调度算法:

[root@server19 ~]# chrt -f 10 top

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

但是运行下面的命令后:

[root@server19 ~]# chrt -f 1 md5sum /dev/zero &

[1] 1885

[root@server19 ~]# chrt -f 1 md5sum /dev/zero

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

之后运行:

[root@server19 ~]# chrt -r 1 sha1sum /dev/zero

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

使用论寻的调度算法:

[root@server19 ~]# chrt -r 1 md5sum /dev/zero &

[1] 1885

[root@server19 ~]# chrt -r 1 md5sum /dev/zero

之后运行:

[root@server19 ~]# chrt -r 1 sha1sum /dev/zero

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

转载于:https://my.oschina.net/u/1759688/blog/308855

你可能感兴趣的文章
vs2015添加vc助手
查看>>
检测点1.1
查看>>
android--------阿里 AndFix 热修复
查看>>
control.add()
查看>>
Sublime text3中配置Github
查看>>
Asp.net,C# 加密解密字符串
查看>>
网页视频播放器插件源码
查看>>
2019-4-23 plan
查看>>
[编解码] 关于base64编码的原理及实现
查看>>
WinDbg配置和使用基础
查看>>
转:Object-Runtime的基本数据类型
查看>>
JMJS系统总结系列----Jquery分页扩展库(五)
查看>>
Excel技巧之——英文大小写转换(转)
查看>>
Google 翻译的妙用
查看>>
常用的集合
查看>>
Unity3D工程源码目录
查看>>
杀死进程命令
查看>>
cookie 和session 的区别详解
查看>>
Mongodb对集合(表)和数据的CRUD操作
查看>>
Target runtime Apache Tomcat is not defined.错误解决方法
查看>>