首页 > 系统相关 >调研:如何基于Linux平台实现自主设计的调度器

调研:如何基于Linux平台实现自主设计的调度器

时间:2024-04-03 18:24:41浏览次数:21  
标签:SCHED 策略 BATCH 调度 任务 Linux 调研

如果能在linux操作系统上实现自主设计的调度算法,那么现在实时领域的研究或许还有意义吧。

基于linux操作系统,调整调度算法的方法大致分为两种:

  • 小调:调整Linux内核提供的14个调度器参数。在Linux内核中,当前定义了五个调度策略:NORMAL(CFS)、FIFO、RR、BATCH、IDLE 。
    • SCHED_NORMAL(CFS) 这是Linux内核的默认调度策略。CFS的目的是最大化整体CPU利用率,并为所有任务提供公平的CPU资源。
    • SCHED_FIFO 这是一个固定优先级调度策略,每个任务以1到99的优先级值执行,并且是按高优先级顺序抢占并执行CPU的策略。

    • SCHED_RR 这基本上与SCHED_FIFO的操作相同,但每个任务都有一个时间量子值,这是执行的最长时间。当时间量子过期时,任务以轮询方式切换到下一个任务。

    • SCHED_BATCH 此策略适用于批处理作业。通过避免被其他任务抢占,我们可以运行一个任务更长时间,比其他策略更好地利用硬件缓存;但是,这对于交互式任务效果不佳。

    • SCHED_IDLE 此策略以非交互方式运行,类似于SCHED_BATCH。但是,与SCHED_BATCH不同,当其他进程处于空闲状态时,可以执行SCHED_IDLE。

  可以通过Linux提供的schedtool工具/sysctl命令更改这些策略的有关参数,如latency_ns, migration_cost_ns, rt_period_us, rt_runtime_us, cfs_bandwidth_slice_us等。

  • 大调:如何部署实验室设计的调度算法到现有的应用程序和操作系统中,一些Google的工程师构建了一个名为ghOSt的框架,该框架可以实现不同的调度策略,并将它们部署到Linux内核中,以方便用户更容易地使用。

   具体可参考文章:Humphries J T, Natu N, Chaugule A, et al. ghost: Fast & flexible user-space delegation of linux scheduling[C]//Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles. 2021: 588-604.

  github开源代码:

  ghOSt kernel code. https://github.com/google/ghost-kernel
  ghOSt userspace code. https://github.com/google/ghost-userspace

标签:SCHED,策略,BATCH,调度,任务,Linux,调研
From: https://www.cnblogs.com/Daemon17/p/18113303

相关文章

  • linux tracepoint增加
    引入tracepoint的背景当需要获取内核的debug信息时,通常你会通过以下printk的方式打印信息:voidtrace_func(){//……printk("输出信息");//……}缺点:内核中printk是统一控制的,各个模块的printk都会被打印,无法只打印需要关注的模块如果需要修改/新增打印信......
  • Linux目录和文件管理
    Linux目录和文件管理目录Linux目录和文件管理一、目录层次二、查看文件内容2.1显示命令2.1.1cat2.2分页显示2.2.1more2.2.2less2.3显示文件前后内容2.3.1head2.3.2tail2.3.3wc2.3.4grep2.3.5paste2.3.6split三、压缩,解压缩3.1gzipbzip23.2归档tar四、vim编辑器4.1基......
  • linux 中 vim的map 映射快捷键设置
     001、打开一个测试文件,在末行模式输入下面代码:vima.txtaabbrootddROOtKKAsrOOTDDSddjjf~~~~~~~~~~~~~~~~~~~~:map<F2>:echo"helleworld!"<CR>##在末行模式中输入如下内容,然后回车,后边按F2键则表示执行了echo"hellowworld!......
  • linux设备树
    基本知识:一、各个文件介绍1、DTS:描述设备树的文件,即采用树形结构描述板级设备2、DTB:DTS编译以后得到的二进制文件3、DTC:将DTS编译为DTB的工具,编译命令-makedtbs4、dtsi:描述SOC级信息,而DTS描述的是板级文件,DTS可以引用dtsi文件  二、常用的标准属性属性由键值对......
  • Windows如何优雅的运行ROS2/linux
    Windows如何优雅的运行ROS2/linux前言在ROS/ROS2开发过程中,大家普遍使用到的分布式开发方法都是基于虚拟机/双系统进行,本质上是希望基于Ubuntu良好的生态环境进行,但是两种方式各有各自的好处,也有各自的弊端,例如虚拟机很大而且并不能运行GPU;又比如双系统会导致个人数据碎片化(......
  • Zabbix绝配!Linux用户密码过期预警与自动发现脚本大揭秘
    Zabbix绝配!Linux用户密码过期预警与自动发现脚本大揭秘原创 脚本家园 脚本家园 2024-04-0206:35 云南 1人听过在Linux系统管理中,用户密码的安全性和有效性是至关重要的。为了保持系统的安全性,管理员经常需要确保用户密码定期更换,并提前警告用户其密码即将过期。在这方面,Z......
  • linux sudo漏洞 可导致用户以 root 权限运行命令
    Sudo的全称是“superuserdo”,它是Linux系统管理指令,允许用户在不需要切换环境的前提下以其它用户的权限运行应用程序或命令,通常是以root用户身份运行命令,以减少root用户的登录和管理时间,同时提高安全性。该漏洞是sudo安全策略绕过问题,可导致恶意用户或程序在目标Linux系统......
  • Linux系统下安装MongoDB的详细步骤
    一、概述MongoDB由C++语言编写,是一个介于关系型数据库和非关系型数据之间的产品,是非关系型数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似与json的bson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语......
  • Linux内核中的通用PHY驱动
    一. 简介前面一篇文章说明了有线网络的网络硬件方案。常用到的一种方案是:内部集成了MAC网络外设的SOC芯片(处理器),外接一个PHY网络芯片。前面文章也学习了Linux内核中的PHY子系统,也是为(上面这种方案)PHY网络芯片提供的驱动框架。Linux内核内部提供了通用的PHY驱动。本文来学......
  • 如何提高Linux RCU实时性
    简介     LinuxRCU(Read-Copy-Update)是一种同步机制,用于提高多处理器系统中读取频繁且写入少的数据结构的性能。在实时系统中,响应时间和预测性是非常重要的。实时性意味着系统能够在严格的时间限制内完成任务。RCU通过减少锁的需求和允许并行读取操作,提高了系统的实时性......