系统调度问题

本文深入探讨了计算机系统中调度的基本概念,包括非剥夺和剥夺两种调度方式,并通过实例对比了不同调度策略对进程周转时间的影响。此外,还分析了调度不过来的原因,如CPU性能不足、工作量过大及程序效率低下,提出了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是调度

  当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状,这个分配CPU时间的过程就是调度

 

二、调度的方式

  2.1 非剥夺方式:分派程序一旦把CPU分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。

    2.2 剥夺方式

  当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的CPU,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、 时间片原则。
  例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。
假如它们就按P1、P2、P3的 顺序执行,且不可剥夺,则三进程各自的 周转时间分别为20、24、
26个单位时间,平均 周转时间是23.33个时间单位。
假如用 时间片原则的剥夺调度方式,可得到:
可见:P1、P2、P3的 周转时间分别为26、10、6个单位时间(假设时间片为2个单位时间),平均周转时间为14个单位时间。
衡量进程调度性能的指标有: 周转时间、响应时间、CPU-I/O执行期
 

三、为什么出现调度不过来?

  3.1调度不过来,简单来说,就是要求CPU在1小时内做1.5小时的工作量,CPU在1小时做不过来,就导致部分任务无法做;

  3.2为什么出现?

  CPU性能(工作效率:跟频率,cpu核数相关)不足以胜任这份工作量

  工作量太大,减少工作量

  程序占用太多CPU,要写出好的程序,1.尽量少调用效率低的接口(哪些是接口比较耗cpu???),2.线程/进程不需要CPU时,主动让出来;

 

转载于:https://www.cnblogs.com/jly594761082/p/10310424.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值