热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

至今不敢写一篇关于cfs的文章

linux内核在2.6.23种引入了一种完全公平的进程调度方式,就是cfs调度算法,该算法比起原来的O(1)算法来说确实简便了不少,但是却高效了很多,合理了很多。我研究这个cfs算法已经快一年了,

linux内核在2.6.23种引入了一种完全公平的进程调度方式,就是cfs调度算法,该算法比起原来的O(1)算法来说确实简便了不少,但是却高效了很多,合理了很多。

我研究这个cfs算法已经快一年了,但是至今也不敢写一篇关于它的文章,因为它太神圣了,太美妙了,像我这样的文笔,我这样糟糕的表达方式能做的仅仅是亵 渎cfs算法。cfs没有用哪怕一种额外的补充算法,也没有列举很多额外的约定,只是提供了一条,仅仅一条简单的规则,引入了一个概念,虚拟时钟的概念, 就可以把cfs表述的如此美妙,简直令人叫绝,cfs中的无极变速思想更是让人拍案,它彻底抛弃了时间片的概念,正是将调度决策引入一种更加灵活的方式, 实际上时间片是不合理的,无论何时保证公平才是合理的,有人会问,按照权值分配不同的时间片不也是很合理吗?实际上每时每刻都让每个进程感到公平你不觉得 更加合理吗?时间片分配中,在当前时间片没有完成之前,除了抢占是没有办法执行别的进程的,即使突然来了一位猛士,然而在cfs中,系统并不偏向在任何时 期的任何进程,即使该进程的时间片还没有用完。cfs保证的是每时每刻的公平,cfs依据的是进程的执行时间,利用的是补偿原理,cfs让进程先超前运 行,然后补偿别的进程,这样很合理。另外cfs不用任何启发算法,只是一个虚拟时钟就够了,因为当进程睡眠的时候,其虚拟时钟就不走了,这样当然落后于别 的进程的虚拟时钟,理应得到补偿。

      cfs真是太猛了,我即便再不敢亵渎它,却还是写下了这篇拙文。


推荐阅读
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • 本文探讨了大型服务端开发过程中常见的几个误区,包括异步任务处理不当、日志同步模式使用、网络操作未设置超时、缓存命中率及响应时间未统计、单一缓存模式、分布式缓存加锁不当以及团队管理上的误区,旨在帮助开发者避免这些常见错误。 ... [详细]
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合C语言初学者学习。 ... [详细]
  • 安装双硬盘对电脑有何益处?
    面对日益增长的数据存储需求,仅通过更换更大容量的硬盘来解决空间问题并非唯一途径。本文探讨了在同一台计算机上安装两个硬盘的可能性及其带来的多种优势。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • 利用SSH隧道实现外网对局域网机器的安全访问
    本文探讨了一种常见的网络配置问题及其解决方案,即如何在外网环境下安全地访问位于局域网内的计算机。特别介绍了使用SSH反向隧道技术来实现这一目标的具体步骤和注意事项。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • LCUI 2.1.0 版本现已推出,这是一个用 C 语言编写的图形用户界面开发库,适合创建轻量级的桌面应用程序。此次更新包括多项修复和功能增强,并正式宣布将启动 Android 支持的开发计划。 ... [详细]
  • 解决CentOS 7.5中无法通过man命令查询C语言库函数的问题
    本文描述了在CentOS 7.5操作系统上,使用man命令查询C语言库函数时遇到的问题,并提供了详细的解决方案。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 在安装Ubuntu 12.10并尝试安装VMware Tools时,遇到了一个常见的错误提示:指定的路径不是有效的3.5.0-17-generic内核头文件路径。本文将提供解决这一问题的具体步骤。 ... [详细]
  • 如何在Linux中实现字符设备控制
    本文详细探讨了在Linux环境下控制字符设备的方法,包括蜂鸣器和模数转换器(ADC)的实际操作案例。对于开发者来说,了解这些基础知识对于嵌入式系统的开发尤为重要。 ... [详细]
  • Linux中为何使用chmod 777设置最大文件权限
    在Linux系统管理中,设置文件权限是一个常见的操作。其中,chmod 777命令用于赋予文件所有者、组和其他用户完全控制权限。本文将探讨这一命令背后的原理及其应用。 ... [详细]
  • 本文详细探讨了Android系统中的内部存储路径,包括如何正确地使用这些路径进行文件操作,以及不同存储路径的特点和权限要求。 ... [详细]
author-avatar
mobiledu2502891987
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有