关于操作系统调度器的三篇论文

这篇具有很好参考价值的文章主要介绍了关于操作系统调度器的三篇论文。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【引子】没有忘记,目前从事的是DingOS 操作系统相关工作,没有因为LLM 而迷失。LLM 会成为基础设施,LLM 会为操作系统赋能,但是操作系统的价值是客观存在的,除非,计算机体系结构发生了翻天覆地的变化。

在任何多路复用资源的系统中,计算在哪里运行以及何时运行的调度问题都可能是最基本的问题。然而,就像计算机中许多其他重要问题一样(例如数据库中的查询优化),调度器的研究像钟摆一样,时而活跃,时而处于休眠状态,因为它被认为是一个“已解决”的问题。

调度一直是系统和网络中最基本的操作之一。它涉及将任务分配给CPU并在它们之间进行切换,这些决策对应用程序性能和系统效率都至关重要。长期以来,操作系统(OS)调度专注于公平性。

然而,近年来的两个发展导致了OS调度研究的复兴。首先,云计算的出现赋予了不同的,难以优化的指标。例如,微延迟和微秒(µs)尺度,这些指标在传统的调度器中没有被考虑。其次,摩尔定律的结束使得操作系统堆栈(包括调度)的专业化成为了继续提高性能的必要条件。

近年来有三篇论文或许实现了性能、可扩展性和策略选择相关的突破。第一篇论文挑战了低延迟(通常通过配置专用核心实现)和高利用率(需要核心重新分配)之间的假定权衡,通过在单微秒粒度上实现分配决策来解决这个问题。第二篇论文通过将策略的创建和操作进行分解,使得用户空间代理完全可以处理策略的创建和操作,而固定的内核机制则负责向代理通信事件和应用实施调度决策。第二篇论文根据微秒级灵活策略进行负载均衡和分配决策的能力,最终选择了根据应用程序选择策略的问题。

1. 微秒级核心重新分配

第一篇论文由Ousterhout等人回答了一个基本问题,即操作系统中核心分配可以多快进行以及这种重新分配是否有益于应用程序的性能。该论文介绍的系统名为Shenango,挑战了广泛存在的观念,即在微秒级别上跨应用程序分配核心是不可行的,因为存在高开销和潜在的缓存污染。

在这篇论文中,作者们详细阐述了Shenango系统的设计和实现,包括如何实现快速核心重新分配,以及如何避免因重新分配而导致的性能下降。此外,作者们还通过大量的实验验证了Shenango系统的有效性,快速核心重新分配确实是可能的,并展示了其在性能方面的显著优势。

关于操作系统调度器的三篇论文

在Shenango操作系统中,我们实现了微秒级别的核心重新分配,其关键在于使用了专用调度核心。该核心每5微秒可以做出一次CPU核心的分配决策,以确保系统的高效性。为了确定何时从应用程序中分配或回收核心,Shenango监视每个应用程序的线程运行队列和网络数据包队列的长度,并使用其导数作为拥塞信号。这种方法可以有效避免系统拥塞,保障了系统的稳定性和可靠性。同时,该算法完全在专用核心上运行,该核心还管理将传入的网络数据包引导到其相应的目标应用程序的CPU核心。这使得整个系统的运行更加高效,同时也提高了系统的可靠性和安全性。

作者们展示了这种方法的有效性,通过展示如何通过细粒度的CPU核心重新分配,来改善在同一系统上共存的延迟敏感和批处理应用程序的性能。通过基于瞬时输入的数据包速率分配CPU核心,Shenango操作系统在使用5微秒核心重新分配间隔与100微秒间隔相比,前者的延迟降低了,后者的吞吐量提高了6倍以上。随后的研究表明,Shenango的微秒级调度程序还可以帮助缓解其他系统资源(例如缓存和内存带宽)的干扰,并向网络提供细粒度反馈以防止过载。

2. 部署操作系统调度到Linux的框架

构建像Shenango这样高效的调度器是一个有趣的实验室练习,但是在生产环境中需要考虑更多的因素。比如,如何兼容现有的应用程序和操作系统(如Linux),如何满足不同的需求以及如何实现更高的可扩展性和可靠性等等。为了解决这些问题,一些Google的工程师构建了一个名为ghOSt的框架,该框架可以实现不同的调度策略,并将它们部署到Linux内核中,以方便用户更容易地使用。

关于操作系统调度器的三篇论文

ghOSt设计背后的关键理由是为了提高操作系统的灵活性。ghOSt从微内核中汲取灵感,将OS调度委托给用户空间代理,可以是全局的或每个CPU。这种方法的优点显而易见:用户空间代理可以根据不同的需求和场景制定不同的调度策略,而不仅仅是受限于内核代码的固有规则。因此,开发人员可以享受用户空间开发的灵活性,而不受内核代码的限制和长时间部署周期的困扰。

为了在用户空间代理和内核之间实现无缝的通信,ghOSt使用了共享内存来传递提示信息,使代理能够做出更明智的调度决策。这种方法不仅提高了操作系统的性能,而且还为应用程序提供了更广泛的功能和更高的效率。而最简化内核调度类,是ghOSt设计中最为重要的组成部分之一。内核调度类负责将代理传递的调度事件转换为内核可以理解的格式,并将处理结果返回给代理。

总的来说,ghOSt的设计使得操作系统变得更加灵活和高效,从而能够更好地满足不同用户的需求。它为开发人员提供了更多的自由度和创造空间,使得他们可以更好地实现自己的想法和创意。同时,ghOSt的设计也为用户提供了更好的体验和更快的响应速度,使得他们能够更加高效地完成工作。

ghOSt面临的最大挑战是内核组件与用户空间代理之间的通信延迟,可能需要达到5微秒。这可能会导致

(1)竞争条件,例如,用户空间代理向已从线程的CPU掩码中删除的CPU来调度线程);

(2)低利用率,因为CPU保持空闲等待代理的调度决策。

ghOSt通过在共享内存上实现事务API来避免竞争条件,该API允许代理以原子方式提交调度决策。为了减轻第二个问题,作者们建议使用自定义的eBPF程序,在每个核心上本地运行并临时调度任务,直到收到代理的决策。当将其他操作系统功能卸载到用户空间(例如内存管理)时,相同的技术也适用。

3.选择最佳调度策略选项

在引入ghOSt之后,可以轻松开发和部署自定义调度策略,但问题在于每个应用程序应该使用哪种策略。为了回答这个问题,McClure等人进行了全面的分析。

在引入ghOSt之后,可以轻松开发和部署自定义调度策略。然而,虽然这是一个不错的进展,但是使用哪种策略对于每个应用程序来说都是一个重要的问题。为了解决这个问题,McClure等人进行了全面的分析,并提出了以下建议:

首先,应该考虑应用程序的需求以及其性质。例如,一些应用程序需要保持高可用性,需要在任何时候都能够提供服务,因此需要使用具有高容忍度的策略。另一些应用程序可能会经常需要进行扩展,因此需要使用具有良好扩展性的策略。了解应用程序的性质是选择调度策略的关键。

其次,应该考虑数据中心的资源利用率。在数据中心中运行的应用程序通常会共享物理资源,例如CPU,内存和网络带宽。因此,应该选择那些可以最大程度利用这些资源的策略。例如,可以使用负载均衡策略来确保每个节点都能够平均分配负载,从而使整个数据中心的资源利用率最大化。

最后,应该考虑操作和管理的成本。一些策略可能会增加管理和操作的成本,因此需要权衡这些成本和性能。应该选择那些既能够满足应用程序的需求,又可以最小化操作和管理成本的策略。

作者们将调度过程分为两个不同的策略:在应用程序之间分配核心和在每个应用程序内的CPU之间平衡负载任务。令人惊讶的是,他们发现第二个策略相对简单;无论任务服务时间分布,核心数量,核心分配策略和负载均衡的开销如何,无论是延迟还是效率,都是最好的负载均衡策略。

相比之下,核心分配策略要复杂得多。例如,与过去的工作相反,作者们发现根据平均延迟或利用率主动回收应用程序的核心对于小任务的性能表现更好,而不是等待CPU变为空闲状态。他们还发现,在处理小任务时,最好为每个应用程序分配一定数量的CPU,而不是动态分配。

关于操作系统调度器的三篇论文

这项分析开辟了新的研究领域,例如开发实现可扩展为全局队列的新硬件,在模拟中表现甚至优于任务获取。此外,该研究没有考虑抢占的存在,因此需要进一步研究抢占策略如何影响调度决策。

4.小结

这三篇论文,探讨了在操作系统调度器中如何引入现代化的方法。第一篇论文专注于构建尽可能快速的调度器,第二篇旨在简化实现并与现有应用程序和操作系统兼容的新策略。第三篇论文则探讨不同类型应用程序的最佳调度策略。最终,这三篇论文为致力于开发现代计算系统更好的调度策略作出了有益的贡献。这些论文强调了需要更好、更有效率、更灵活的操作系统调度程序,开辟了新的研究领域,并展示了操作系统调度策略持续发展和创新的重要性。

【参考文献与关联阅读】

  • Amy Ousterhout, Joshua Fried, Jonathan Behrens, Adam Belay, 和 Hari Balakrishnan (MIT CSAIL). “Shenango: Achieving High CPU Efficiency for Latencysensitive Datacenter Workloads. Proceedings of the 16th Usenix Symposium on Networked Systems Design and Implementation”, 2019. https://dl.acm.org/doi/10.5555/3323234.3323265 (https://www.usenix.org/conference/nsdi19/presentation/ousterhout)

  • Jack Tigar Humphries (Google), Neel Natu (Google),Ashwin Chaugule (Google), Ofir Weisse (Google), Barret Rhoden (Google), Josh Don (Google), Luigi Rizzo (Google), Oleg Rombakh (Google), Paul Turner (Google), 和 Christos Kozyrakis (Stanford University and Google). “ghOSt: Fast & Flexible User-space Delegation of LinuxScheduling. Proceedings of the 28th ACM Symposium on Operating Systems Principles”, 2021. https://dl.acm.org/doi/10.1145/3477132.3483542

  • Sarah McClure (UC Berkeley), Amy Ousterhout (UCBerkeley), Scott Shenker (UC Berkeley and ICSI), Sylvia Ratnasamy (UC Berkeley). "Efficient Scheduling Policies for Microsecond-scale Tasks." Proceedings of the 19th Usenix Symposium on Networked Systems Design and Implementation, 2022. https://www.usenix.org/conference/nsdi22/presentation/mcclure

  • 温故知新:从计算机体系结构看操作系统

  • 一种编译器视角下的python性能优化

  • 计算机网络的元认知、实践与未来

  • 异想天开!没有CPU的操作系统

  • 嵌入式Linux的网络连接管理

  • 计算机体系结构的一知半解

  • 机器学习与微分方程的浅析

  • Linux 内核裁剪框架初探

  • 操作系统中的系统抽象

  • 感知人工智能操作系统

  • 从操作系统看Docker

  • IoT中的Linux选择文章来源地址https://www.toymoban.com/news/detail-478733.html

到了这里,关于关于操作系统调度器的三篇论文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【操作系统】调度算法

    目录 🏫基本概念 🏥先来先服务(FCFS, First Come First Serve) 🏩短作业优先(SJF, Shortest Job First) 🍆细节 ⛪️高响应比优先(HRRN,Highest Response Ratio Next) 🌇时间片轮转(RR,Round-Robin) 🏰时间片大小的影响 🗼优先级调度算法 🌄多级反馈队列调度算法 🌈实例  🗽多级队列调度

    2024年02月08日
    浏览(41)
  • 操作系统——调度算法

    本文的主要内容是调度算法的介绍,包括先来先服务(FCFS)、最短时间优先(SJF)、最高响应比优先(HRRN)、时间片轮转(RR)、优先级调度和多级反馈队列这六种方法,这些调度算法会从其算法思想、算法规则、该方法用于作业调度还是进程调度、进程调度的方式(抢占式和非抢占式

    2023年04月14日
    浏览(36)
  • 操作系统之调度

    目录 什么是调度 进程调度的时机、切换、过程与方式 调度器/调度程序 调度算法 先来先服务算法 短作业优先算法 高响应比优先算法 时间片轮转算法 优先级调度算法 多级反馈队列调度算法 调度的三个层次 高级调度 中级调度 低级调度 总结如下: 进程调度的时机 注意区分

    2024年02月05日
    浏览(33)
  • 操作系统调度算法--高响应比优先调度算法解析

      高响应比优先调度算法(Highest Response Radio Next,HRRN)是一种对CPU中央控制器响应比的分配的算法。HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之间的折中算法。FCFS算法所考虑的只是作业等待时间,而忽视了作业的运行时间(类似我们在生活中排队买东西)。

    2023年04月18日
    浏览(46)
  • 「 操作系统 」聊聊进程调度算法

    图文并茂!谈谈进程调度那些算法 Cone 进程调度/页面置换/磁盘调度算法 xiaolinCoding 图解经典的进程调度算法 飞天小牛肉 进程调度算法是操作系统中非常重要的一部分,它决定了操作系统中各个进程的执行顺序和时间片。在单核CPU下,任何时刻都只可能有一个程序在执行,比

    2024年02月04日
    浏览(60)
  • 操作系统-进程调度实验报告

    1.实现四种不同及进程调度算法: 先来先服务、时间片轮转调、优先级调度以及短作业优先调度算法。 2.通过实验理解有关进程控制块,进程队列等的概念。 1.运行素材中的代码,观察其执行结果是否正确?各个调度算法的功能是否完善?如果没有,则完善。 2. 按照下表

    2024年02月06日
    浏览(43)
  • 操作系统中的调度算法

    处理机调度层次: 1.高级调度( 作业 调度/) 2.中级调度( 内存 调度/) 3.低级调度( 进程 调度/) 一、作业调度算法 1.先来先服务算法(FCFS) 2.短作业优先算法(SJF) 3.优先级调度算法(PR) 4.高响应比调度算法(PR特例) 5.时间片轮转算法(RR) 6.多级队列调度算法 7.基

    2024年02月10日
    浏览(46)
  • 操作系统课程设计进程调度模拟

    程序下载链接:https://download.csdn.net/download/m0_56241309/86945709 进程调度模拟 摘要 :进程调度是操作系统中必不可少的一种调度,在3中OS中都无一例外地配置了进程调度。此外,它也是对系统性能影响最大的一种处理机调度,在操作系统中具有十分重要的地位。本次模拟,旨在全

    2024年02月08日
    浏览(42)
  • 操作系统之调度算法(学习笔记)

    周转时间 :从作业被提交给系统开始,到作业完成为止的这段时间间隔称为作业周转时间。( 周转时间=作业完成时间-作业提交时间 ) 平均周转时间 :作业周转总时间 / 作业个数( 平均周转时间=(作业1周转时间+作业2周转时间+……作业n周转时间)/n ) 服务时间 :进程在

    2024年02月03日
    浏览(42)
  • 操作系统磁盘调度算法(c++)

    先来先服务这个没什么好说了,按顺序来就是了。将需要访问的磁道序列直接作为算法的访问序列,然后将每次移动的磁道数量记录下来。 最短寻道时间优先,每次执行完,看一下离自己最近的哪条磁道有任务,就移动过去执行。每次寻找下一次访问的磁道号时,都遍历磁道

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包