线程调度器和调度策略

 

线程调度器(Thread Scheduler):

    操作系统的核心,它实际上就是一个常驻内存的程序,不断地对线程队列进行扫描,

利用特定算法(时间片轮转法、优先级调度法、多级反馈队列调度法(MLFQ等),找出比

当前占有CPU的线程更有CPU使用权的线程,并从之前的线程中收回处理器,再使待运

行的线程占用处理器。

 

线程调度策略(Thread scheduling policy):

(1)时间片轮转调度策略(采用剥夺策略)

时间片: 每个进程被分配一时间段,称作它的时间片,即该进程允许运行的时间

    每次调度时,总是选择就绪队列的队首进程,让其在CPU上运行一个系统预选设置

好的时间片。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进

程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的

就是维护一张就绪进程列表,当进程用完它的时间片,它被移到队列的末尾。

(2) 抢占式调度策略

    Java运行时系统的线程调度算法是抢占式的。Java运行时系统支持一种简单的固定优先级的调度算法。

如果一个优先级比其他任何处于可运行状态的线程都高的线程进入就绪状态,那么运行时系统就会选择该

线程运行。新的优先级较高的线程抢占了其他线程。当系统中的处于就绪状态的线程都具有相同优先级时,

线程调度程序采用一种简单的,非抢占式的轮转的调度顺序。

(3) 多级反馈队列

    1. 设置多级队列,安排各个队列的优先级,1级的队列优先级最高,队列的级别数越高优先级越低。

    2. 设置各个队列的时间片,1级的时间片最短,然后逐级递增。

    3. 新进程进入队列的方法,一个新的进程进入了之后先进入1级队列,一个时间片完了之后没有执行完的

话就放入2级队列,以此类推

    4. 队列之间的调度是按优先级进行调度,从高到低

    5. 一个进程进入较高的优先级的时候需要重新开始调度。

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youaresherlock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值