进程调度
来源:互联网 发布:js二维映射 编辑:程序博客网 时间:2024/05/20 05:24
进程分为:I/O消耗型 和 处理器消耗型
分配处理器使用比:
Linux CFS(完全公平调度调度算法)调度器并没有直接分配时间片到进程,它是将处理器的使用比分配给进程,nice值作为权重将调整进程所使用的处理器时间比。
调度器类:
Linux调度器以模块方式提供(允许不同类型的进程可以有针对性的选择调度算法),这种模块化结构被称为调度器类,每个调度器都有一个优先级,它会按照优先级遍历调度器类,选择具有最高优先级的调度器类中的最高优先级的进程运行。
时间记账:虚拟运行时vruntime:
虽然CFS不再有时间片的概念,但它也必须维护每个进程运行的时间(虚拟运行时vruntime)记账。
进程选择:
CFS使用红黑树(自平衡二叉搜索树)来组织可运行进程的队列,CFS调度核心算法:选择具有最小vruntime的任务,即选择红黑树的最左侧叶子节点。
调度器入口:
schedule(),会以优先级为序,从高到低,依次检查每一个调度器类,并且以最高优先级的调度器类中,选择最高优先级的进程。
休眠和唤醒:
进程把自己标记成休眠状态,从可执行的红黑树中移除,放入等待队列,然后调用schedule()选择和执行一个其他进程。唤醒的过程刚好相反,进程被设置为可执行状态,然后再从等待队列移到可执行红黑树中。
调度策略:
实时调度(SCHED_FIFO、SCHED_RR)、非实时调度(SCHED_NORMAL),前者优先级高
分配处理器使用比:
Linux CFS(完全公平调度调度算法)调度器并没有直接分配时间片到进程,它是将处理器的使用比分配给进程,nice值作为权重将调整进程所使用的处理器时间比。
调度器类:
Linux调度器以模块方式提供(允许不同类型的进程可以有针对性的选择调度算法),这种模块化结构被称为调度器类,每个调度器都有一个优先级,它会按照优先级遍历调度器类,选择具有最高优先级的调度器类中的最高优先级的进程运行。
时间记账:虚拟运行时vruntime:
虽然CFS不再有时间片的概念,但它也必须维护每个进程运行的时间(虚拟运行时vruntime)记账。
进程选择:
CFS使用红黑树(自平衡二叉搜索树)来组织可运行进程的队列,CFS调度核心算法:选择具有最小vruntime的任务,即选择红黑树的最左侧叶子节点。
调度器入口:
schedule(),会以优先级为序,从高到低,依次检查每一个调度器类,并且以最高优先级的调度器类中,选择最高优先级的进程。
休眠和唤醒:
进程把自己标记成休眠状态,从可执行的红黑树中移除,放入等待队列,然后调用schedule()选择和执行一个其他进程。唤醒的过程刚好相反,进程被设置为可执行状态,然后再从等待队列移到可执行红黑树中。
调度策略:
实时调度(SCHED_FIFO、SCHED_RR)、非实时调度(SCHED_NORMAL),前者优先级高
阅读全文
0 0
- 进程调度 ---CFS调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 进程调度
- 05-继承
- Android从系统调用相册OkHttp上传到服务器(activity数据传递)
- php单引号和双引号的区别
- 德意志民族与大和民族的比较研究(转载)
- Android中 的HAL层简析
- 进程调度
- HDU 6205 card card card【最长连续子串+尺取法】
- Spring基础特性总结二 --- 核心组件Core以及Resource的设计
- 最新|TensorFlow开源的序列到序列框架
- 环信android SDK 音频文件接收
- 爱奇艺校招笔试17.09.10查缺补漏
- 单链表反转java代码
- javascript初学笔记——好玩的类库。
- 关于从gethub下载的源码在Roboware显示无法打开工作空间的解决