调度算法变量

由几个变量影响线程的调度。

一些是线程支持特有的;另一些是进程调度注意事项的详尽细节:

优先级
线程的优先级值是它在争用处理器时间时优先权的基本指示符。
调度程序运行队列位置
线程在调度程序的可分派线程队列中的位置反映了一些前面的状况。
调度策略
这一线程属性决定了一个正在运行的线程在时间片的末尾会遇到什么情况。
争用作用域
线程的争用作用域决定了它是否只和它的进程内的其他线程竞争,还是和系统里的所有线程竞争。一个创建时带有进程争用作用域的 pthread 由库来调度,而那些创建时带有系统作用域的则由内核调度。库调度程序利用一个内核线程池来调度具有进程作用域的 pthread。一般来说,如果 pthread 正在执行 I/O,那么创建具有系统作用域的 pthread。当有很多进程内同步时,进程作用域是有用的。争用作用域是一个  libpthreads.a 概念。
处理器相似性
在何种程度上强制执行相似性会影响性能。

将这些注意事项结合起来考虑看来是复杂的,但是您在管理一个给定进程时可以从三种截然不同的方法中选择:

缺省
进程拥有一个线程,该线程的优先级随着 CPU 消耗而不同,其调度策略是 SCHED_OTHER。
进程级控制
进程可以有一个或多个线程,但是那些线程的调度策略为缺省值 SCHED_OTHER,这允许使用现有的控制 nice 值和固定优先级的方法。所有这些方法对进程中的每一个线程的影响是相同的。如果 使用了  setpri() 子例程,进程中所有线程的调度策略被设置为 SCHED_RR。
线程级控制
进程可以拥有一个或多个线程。这些线程的调度策略设置为 SCHED_RR 或者 SCHED_FIFO n,视情况而定。每一个线程的优先级是固定的,由线程级子例程控制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值