Linux环境编程--08 CPU调度

1. 思考点

1.  多核处理器“同一时刻”能运行几个进程?多核处理器如何进行cpu调度的。

2.  

2.  CPU调度

1. 目的是使CPU执行更多的指令,提高CPU效率。

2. 因为进程间存在竞争,需要操作系统选择进程进行转换。

3. 操作系统为了方便cpu调度,为进程的不同状态进行组织管理。为某些特定的状态设立一个或多个进程队列,用于管理内存。如就绪队列、设备队列。所有设备队列中进程都是等待状态。

3. CPU调度方式

1. 长程调度

        道:允许在内存中运行的最多进程数。

        新建状态的进程,一般首先放到外存进程池中,当内存中的进程数量没有达到最多进程数时,操作系统的调度程序从新建状态选择一个装入内存,并转换为就绪状态。这种从“新建状态”转换为”就绪状态“的操作就是长程调度,又称为作业调度或高级调度。

2. 中程调度(交换)

           本质上不属实进程管理内存,应该属于内存管理。中程调度是指,一个进程在内存和外存之间的换进换出,目的是为了节省内存。一个进程在内存长期不运行时,会造成内存浪费。

3. 短程调度

     又称为CPU调度或低级调度。就绪队列中不止一个进程,cpu空闲时,操作系统选择一个进程让他执行。

4. 长程调度对比短程调度

          切换频率看:长程调度频率低、速度慢,短程调度频率高、速度快。进程生命周期中,只有一次长程调度,成千上万次短程调度。

          切换开销看:长程调度开销大,短程调度开销小。长程调度需要把代码从外存调到内存,这些IO操作很费时。

         

4. cpu调度的部件

1. 调度程序

           依据某种策略,选择内存中的一个就绪进程。

2. 分配程序

          负责具体的进程切换工作。

3. 具体过程:

       a. 利用定时器把cpu的控制权转交给cpu调度程序,让调度程序选择一个需要运行的进程。

       b. 进行进程上下文切换,把该进程从就绪状态转换为运行状态

      c. 系统切换到用户态,跳转到用户程序的适当位置并重新运行之

4. 分配延迟:分配程序终止一个进程,并运行另一个进程的时间开销。 

5. cpu调度的两种方式

1. 非抢占式调度

       系统把cpu分配给某进程后,系统不可以抢占已分配的cpu分配给其他进程,只有进程自愿释放cpu,才可以把cpu分配给其他进程。

       优点:易实现、开销小、适合批处理系统。缺点响应时间比较长,不适合交互式系统。

2. 抢占式调度

       系统根据某种原则暂停某个正在运行的进程,将已分配的CPU,重新分配给另外一个进程。

       可防止单一进程长时间占用CPU,但系统开销大。

6. CPU调度的目标和衡量指标

1. CPU调度核心任务是提供CPU的效率,也就是利用率。

2.  CPU利用率:固定时间内CPU利用的比例。

3. 吞吐量:指单位时间内运行完的进程数。(理解一下,是数量,不考虑进程运行时间有长有短)

4. 周转时间:进程从提交到运行结束的全部时间。

5. 等待时间:进程等待调度(不运行)的时间片总和。(理解等待时间:是不连续、分段的)

6. 响应时间:从进程提交到首次运行(不是到进程结束)的时间段。也就是第一段等待时间。

7. 运行时间:进程运行的时间片总和。

8. 周转时间 = 运行时间+等待时间

9. CPU调度目标:最大的CPU利用率、最大的吞吐量、最短的周转时间、最短的等待时间、最短的响应时间;关键在于调度算法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值