OS学习笔记三:处理器调度

一、 处理器调度的相关概念

1、CPU调度

CPU调度其任务是控制 、协调进程对CPU的竞争。

即按一定的调度算法从就绪队列中选择一个进程,把CPU 的使用权交给被选中的进程如果 没有就绪进程,系统会安排一个 系统空闲进程或idle

2、进程切换

进程切换:是指一 个进程让出处理器,由另一个进程占用处理器的 过程

  • 进程 切换主要包括两部分工作:

    • 切换全局页目录以加载一个新的地址空间

    • 切换 内核栈 和硬件上下文,其中硬件上下文包括了内核执行新进程需要的全部信息 , 如CPU 相关 寄存器

切换过程包括了 对原来运行进程各种状态 的保存和对 新的进程各种状态 的恢复

3、进程上下文切换具体步骤

场景:进程A 下CPU ,进程B 上CPU

  1. 保存进程A 的上下文环境(程序计数器、程序状态字、其他寄存器…… )

  2. 用新状态和其他相关信息更新进程A 的PCB

  3. 把进程A 移至合适的队列(就绪、阻塞…… )

  4. 将进程B 的状态设置为运行态

  5. 从进程B 的PCB 中恢复 上下文(程序计数器 、 程序状态字、其他寄存器…… )

4、进程上下文切换开销

  • 直接开销:内核完成切换所用 的CPU 时间

    • 保存和恢复寄存器……

    • 切换地址空间 (相关指令比较 昂贵)

  • 间接开销

    • 高速缓存(Cache) 、缓冲区缓存(Buffer Cache) 和TLB(Translation Look-aside Buffer)

二、设计调度算法要考虑的几个问题

1、调度算法衡量指标

  • 吞吐量 Throughput — 每单位时间完成的进程数目

  • 周转时间TT(Turnaround Time)

    每个进程从提出请求到运行完成的时间

  • 响应时间RT(Response Time)

    从提出请求到第一次回应的时间

  • 其他

    • CPU 利用率(CPU Utilization)

    CPU 做有效工作的时间比例

    • 等待时间(Waiting time)

    每个进程在就绪队列(ready queue) 中等待的时间

三、多处理器调度算法设计

  • 不仅要决定选择哪一个 进程执行

  • 还需要决定在 哪一个CPU 上执行

  • 要 考虑进程在多个CPU 之间迁移时的开销

  • 高速缓存失效、TLB 失效

  • 尽可能使进程总是在同一个CPU 上执行

  • 如果每个进程可以调度到所有CPU 上,假如进程上次在CPU1 上执行,本次被调度到CPU2 ,则会 增加高速缓存 失效、TLB 失效; 如果 每个 进程尽量调度到指定的CPU 上,各种失效就会减少

  • 考虑 负载 均衡问题

四、批处理系统中采用的调度算法

  • 先来先服务(FCFS-First Come First Serve )

  • 最短作业优先(SJF-Shortest Job First )

  • 最短剩余时间优先(SRTN-Shortest Remaining Time Next )

  • 最高相应比优先(HRRN-Highest Response Ratio Next )

五、交互式系统中采用的调度算法

  • 轮转调度(RR-Round Robin )

  • 最高优先级调度(HPF—Highest Priority First )

  • 多级反馈队列(Multiple feedback queue )

  • 最短进程优先(Shortest Process Next )

六、WINDOWS 线程调度

本文整理自:《操作系统原理》北京大学_陈向群 讲义
四、五、六部分内容可以参考课件:课件下载地址

个人微信公众号:
这里写图片描述

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值