Linux内核源码—进程调度(4.20.17)

sched_class

Linux 中有多种不同的调度策略,每一种调度策略都由不同的调度器类实现,在 sched_class 中定义了调度器需要实现的接口。

上面涉及到的 rq 就是 runqueue,每个 cpu 都对应着一个 runqueue,用来维护在该 cpu 上运行的进程。如果我们去看 struct rq 的定义,可以看到它 包含了 cfs_rq, rt_rq 和 dl_rq 这三种不同的 rq 供调度器使用

如果我们现在 fork() 了一个进程,就需要将它加入到 cfs_rq 队列中,此时 enqueue_task 运行 cfs 调度策略的入队方法,也就是在红黑树中插入节点。

sched_entity

由于调度往往还需要一些额外的信息,所以在 Linux 中定义了调度实体类。

我们还可以看到,在一个进程描述符 task_struct 中是包含多个调度实体的,sched_class 指针指向其对应的调度器,然后调度器再调度相应的调度实体。

Original: https://www.cnblogs.com/zyb993963526/p/15974912.html
Author: Kayden_Cheung
Title: Linux内核源码—进程调度(4.20.17)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10040/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 高效团队的gitlab flow最佳实践

    当前git是大部分开发团队的首选版本管理工具,一个好的流程规范可以让大家有效地合作,像流水线一样有条不紊地进行团队协作。 业界包含三种flow: Git flow Github f…

    2022年8月30日
    0320
  • Linux平台Redis安装总结

    本文测试验证的操作系统为CentOS Linux release 7.8.2003 (Core),Redis版本为redis-6.0.8。 敬请注意,如有不同,请以实际情况为准。 …

    Linux 2022年8月24日
    0290
  • GitLab-安装

    先创建三个目录 config, logs, data Original: https://www.cnblogs.com/saryli/p/16116606.htmlAuthor:…

    Linux 2022年8月30日
    0260
  • LVS简介

    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU、I/O处理能力很快会成为瓶颈。…

    Linux 2022年8月26日
    0320
  • Linux系统挂载windows共享目录报错mount error(121):remote error I/O error

    经查,这是由于NFS(Network File System)即网络文件系统服务器有多个版本,V2、V3、V4。而且各版本同时运行,因此挂载时需要说明版本号 csharp;gutt…

    Linux 2022年8月13日
    0410
  • Vim 编辑器|批量注释与批量取消注释

    添加注释 ctrl + v 进入块选泽模式。 上下键选中需要注释的行。 按大写 I 进入插入模式,输入注释符。 按两次 ESC 退出,即完成添加注释。 取消注释 ctrl + v …

    Linux 2022年9月10日
    0180
  • 找回 linux root密码的几种方法

    1.在系统进入单用户状态,直接用passwd root去更改 2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下: 这样可以搞定 3.将本机的…

    Linux 2022年8月20日
    0280
  • Linux程序前台后台切换

    Linux程序前台后台切换1、在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行Ubuntu$”>root@Ubuntu$ …

    Linux 2022年8月13日
    0470
  • 《只是为了好玩:Linux之父林纳斯自传》

    《只是为了好玩:Linux之父林纳斯自传》 基本信息 作者: (美)Linus Torvalds David Diamond 译者: 陈少芸 出版社:人民邮电出版社 ISBN:97…

    Linux 2022年8月24日
    0300
  • supervisord 进程管理利器

    Supervisor概述 ​ supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序。superv…

    Linux 2022年9月10日
    0230
  • Linux命令-nohup和&

    & 当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh & 需要用户交互的命令不要放在后台执行,不过,…

    Linux 2022年8月13日
    0330
  • Linux驱动面试题

    1、Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备…

    Linux 2022年8月24日
    0290
  • Ubuntu 18.04 安装rtorrent笔记

    服务器要求 步骤-1 通过ssh登录到服务器终端 通过Linux终端登录: ssh root@IPaddress 或者使用ssh软件登录到服务器。 步骤-2 使用sudo切换到ro…

    Linux 2022年8月26日
    0290
  • Linux sort命令详解:字符串排序

    sort 是 Linux 的排序命令,而且可以依据不同的数据类型来进行排序。sort 将文件的每一行作为一个单位,相互比较。比较原则是从首字符向后,依次按 ASCII 码值进行比较…

    2022年8月20日
    0390
  • linux c常用函数 (待完善)

    isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ASCII码字符) isblank(测试字符是否为空格字符)…

    Linux 2022年8月26日
    0250
  • 什么?Android上面跑Linux?

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 前言 众所周知,现在程序员因为工作、个人兴趣等对各种系统的需求越来越大,部分人电脑做的还是双系统。其中,比较常见的有各种模拟器、…

    Linux 2022年9月10日
    0240
  • Ubuntu16.04安装Redis

    Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速。用Redis可以很轻松解决高并发的数据访问问题;作为实时监控信号处理也非…

    Linux 2022年8月26日
    0250
  • Git Push 不用再次输入用户名和密码方法

    前言 在大家使用github的过程中,一定会碰到这样一种情况,就是每次要push 和pull时总是要输入github的账号和密码,这样不仅浪费了大量的时间且降低了工作效率。在此背景…

    Linux 2022年8月30日
    0350
  • macOS 进行 git clone 时报错 fetch-pack: unexpected disconnect while reading sideband packet

    macOS 进行 git clone 时报错 fetch-pack: unexpected disconnect while reading sideband packet 报错信…

    Linux 2022年8月30日
    0350
  • openEuler 20.03/21.03 – 华为欧拉开源版(CentOS 8 华为版开源版)下载

    开始 openEuler 之旅吧 openEuler 通过社区合作,打造创新平台,构建支持多处理架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展。 好玩的活动停不下来 ope…

    Linux 2022年9月10日
    0640
  • jenkins使用shell脚本执行nohup java -jar包失败

    一、问题 通过jenkins执行shell脚本时,脚本中是通过nohup java -jar &的方式启动,显示执行成功,但是服务却没启动,脚本如下: #! /bin/ba…

    Linux 2022年9月14日
    0300
  • linux内核在解析设备树时哪个接口可以用来替代旧接口of_device_is_compatible()?

    答: 新的device_property_match_string()可以用来替代此接口。 Original: https://www.cnblogs.com/dakewei/p/…

    Linux 2022年8月11日
    0310
  • webshell 免杀

    https://xz.aliyun.com/t/11391 Original: https://www.cnblogs.com/cute/p/16356651.htmlAuthor…

    Linux 2022年9月14日
    0210
  • linux系统应急响应排查手册

    系统登陆日志/var/log/wtmp //登陆成功的信息,包括用户登录、注销及系统的启动、停机的事件/var/log/btmp //登陆失败的信息/var/run/utmp //…

    Linux 2022年8月24日
    0250
  • 45个非常有用的 Oracle 查询语句小结

    日期/时间 相关查询 1.获取当前月份的第一天运行这个命令能快速返回当前月份的第一天。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。 复制代…

    Linux 2022年8月20日
    0310
  • Linux主分区,扩展分区,逻辑分区的联系和区别

    基本概念 硬盘 分区有三种,主磁盘分区 、扩展磁盘 分区、逻辑分区 。 一个硬盘 主分区 至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区 +扩展分区总共不能超过4个。逻…

    Linux 2022年8月26日
    01440

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部