LinuxO(1)调度算法
概念
在Linux中,O(1)调度算法是一种进程调度算法。O(1)表示算法的时间复杂度是常数级别的,与系统中的进程数量无关。


运行队列结构
- 他采用了两个运行队列,一个活动队列和一个过期队列。活动队列中的进程是有资格获取CPU时间片的进程,过期队列中的进程是已经用完时间片的进程。而操作系统始终只会调度活动队列的进程。
- 多个队列又被分为多个优先级数组,例如从0~139。优先级不同,Linux下版本可能有差异,数值越小优先级越高。
- 利用哈系统指针数组140个元素,类型为struct task_struct*,前100个下标不用考虑是为实时进程进行使用的。剩下的40个元素是对于分时进程进行考虑。对于剩下的40个元素利用哈系统将进程优先级相同的。串在一起。通过优先级挂队里相同优先级的进程会被链接在一起。
- 也可以理解为在一个CPU里面有一个运行队列,一个运行队列里面有两张表,一个是活动队列和一个过期队列。
活动队列
- 时间片还没有结束的所有进程都按照优先级放在该队列。
- nr_active:总共有多少运行状态的进程
- queue[140]:一个元素就是一个进程队列相同优先级的进程按照fifo规则进行排队调度,所以数组下标就是优先级。
- 在该结构中选择一个最合适的进程过程是如何?
- 从0号下标开始,遍历queue[140]
- 找到第一个非空队列,该队列必定为优先级最高的队列。
- 拿到选中队列的第一个进程开始运行,调度完成。
- 遍历queue[140]时间复杂度是常数,但还是太低效了。
- bitmap[5]:一共是140个优先级,一共140个进程队列。为了提高查找非空队列的效率,就可以用五个。32个比特位表示队列是否为空,这样便可以大大提高查找效率。
过期队列
- 过期队列和活动队列结构一模一样。
- 过期队列上放置的进程都是时间片耗尽的进程。
- 当活动队列上的进程都被处理完毕之后,对过期队列的进程进行时间片重新计算。
active指针和expired指针
- active永远指向活动队列。
- expired永远指向国旗队列。
- 活动队列上的进程越来越少,过期队列上的进程越来越多,因为进程时间片到期时一直都存在的。在最终只要能够交换活动队列指针和过期队列指针的内容,就相当于又具有一批新的活动进程。
- 进程有三种情况,运行退出。不退出,但时间偏到了。有新的进程产生了。
调度过程

初始状态
系统中有活动队列和过期队列,活动队列包含有资格获取CPU时间片的进程,这些进程按照优先级分布在不同的优先级数组中。优先级从0~139。
选择进程运行
当进行进程调度时,调度器首先查看活动队列中优先级最高数组,在这个优先级最高的数组中选择一个进程来运行。这个选择过程比较简单快速,因为它不需要遍历整个系统的所有行程,只需在特定的优先级数组里选择。
时间片用完
当活动队列中的进程用完自己的时间片之后,他不会立刻回到活动队列的头部重新竞争CPU。因为操作系统采用分时操作系统。分时操作系统是要保持绝对的公平,进程调度绝对公平。而是被移动到过期队列中相应的优先级数组里。
队列交换
当活动队列中所有的进程都玩都用完时间片,也就是活动队列中没有可运行的进程时,活动队列和过期队列进行交换。此时原来的过期队列变为活动队列,而原来的活动队列变为过期队列,新的活动队列中的进程又可以开始竞争CPU资源。这个交换操作的时间复杂度也是o1。
优点
由于采用这种结构,查到下一个要运行的进程的时间复杂度为o一,无论系统中有多少个进程都能快速的做出调度决策,提高了系统的响应速度和整体的性能。并且保证了分时操作系统调度进程绝对的公平。
应用场景
多用户交互环境
在桌面Linux系统中,当多个用户同时登录并且运行多个程序时,如打开多个办公软件,浏览器标签等oe1调度算法能够快速的在这些进程中进行切换,保证每个用户操作都能得到及时响应,提供流畅的交互体验。
服务器环境
由于外部服务器就像运行或ngnx服务器可能同时处理多个客户端请求,oe调度算法可以高效的调度处理这些请求的进程。不管同时存在的请求数量多少都能快速的分配cpu响应性能。
多任务处理
在Linux系统执行多任务时,例如一边进行文件下载,一边编译程序,一边运行后台服务等情况。O1调度算法能够合理分配CPU时间片给各个任务。对应的进程使这些任务都能有条不紊的进行。
相关文章:
LinuxO(1)调度算法
概念 在Linux中,O(1)调度算法是一种进程调度算法。O(1)表示算法的时间复杂度是常数级别的,与系统中的进程数量无关。 运行队列结构 他采用了两个运行队列,一个活动队列和一个过期队列。活动队列中的进程是有资格获取CPU时间片的进程&#x…...
安防监控/视频系统EasyCVR视频汇聚平台如何过滤134段的告警通道?
视频汇聚/集中存储EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为…...
SDKMAN!安装Maven
一、通过SDKMAN!正常安装 查看maven版本 sdk list maven安装maven 3.6.3版本 sdk install maven 3.6.3查看maven 3.6.3安装目录 sdk home maven 3.6.3安装过程中可能会失败,出现tmp临时目录中存在临时文件 # 移除临时文件,不要手动删除,…...
[NeurIPS 2022] STaR: Bootstrapping Reasoning With Reasoning
Contents IntroductionMethodExperimentsReferences Introduction CoT 推理可以有效提升 LLM 推理能力,但 few-shot prompting 无法发挥 CoT 的全部潜力,训练能够生成中间推理步骤 (i.e., rationale) 的 LLM 又需要大量人工标注 rationale,为…...
C++中对象的构造与析构
目录 一、引言 二、构造函数详解 1.构造函数的作用 2.构造函数的调用时机 3.构造函数的分类 三、析构函数详解 1.析构函数的作用 2.析构函数的调用时机 四、实例分析 五、总结 本文将详细讲解C中对象的构造和析构过程,包括构造函数、析构函数的作用及其调用时机…...
算法笔记(九)——栈
文章目录 删除字符串中的所有相邻重复项比较含退格的字符串基本计算机II字符串解码验证栈序列 栈是一种先进后出的数据结构,其操作主要有 进栈、压栈(Push) 出栈(Pop) 常见的使用栈的算法题 中缀转后缀逆波兰表达式求…...
动态SLAM总结一
文章目录 方法分类:OctoMap:(2013)UFOMap:(2020)Removert:(2020)ERASOR:(2021)DynamicFilter:(202…...
HTB:Mongod[WriteUP]
连接至HTB服务器并启动靶机 靶机IP:10.129.99.33 分配IP:10.10.16.12 1.How many TCP ports are open on the machine? 使用nmap对靶机进行全端口TCP脚本、服务扫描: nmap -sC -sV -T4 -p- {TARGET_IP} 可以看到靶机共开放TCP端口2个&…...
DenseNet算法:口腔癌识别
本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 DenseNet算法结构 其基本思路与ResNet一致,但是它建立的是前面所有层和后面层的密集连接,它的另一大特色是通过特征在channel上的连接来实现特征重用。 二 设计理念 三…...
828华为云征文 | 利用FIO工具测试Flexus云服务器X实例存储性能
目录 一、Flexus云服务器X实例概要 1.1 Flexus云服务器X实例摘要 1.2 产品特点 1.3 存储方面性能 1.4 测评服务器规格 二、FIO工具 2.1 安装部署FIO 2.2 主要性能指标概要 三、进行压测 3.1 测试全盘随机读IO延迟 3.2 测试全盘随机写IO延迟 3.3 测试随机读IOPS 3.4…...
Pikachu-File Inclusion- 本地文件包含
前端每次挑选篮球明星,都会通过get请求,传了文件名,把页面展示出来,由于文件名时前端传给后台;并且查看源码,没有对参数做限制; 尝试直接从前端修改filename 参数; filename../../../../../../…...
linux基础 超级笔记
1.Linux系统的组成 Linux系统内核:提供系统最核心的功能,如软硬件和资源调度。 系统及应用程序:文件、任务管理器。 2.Linux发行版 通过修改内核代码自行集成系统程序,即封装。比如Ubuntu和centos这种。不过基础命令是完全相…...
Python——异常处理机制
Python 异常处理机制 Python异常与异常处理机制针对 Traceback 的解读try-except-else-finallyexcept语句except语句的机制在 except 语句中引用当前被处理的 Python 异常 finally语句finally语句执行后才能抛出未被处理的异常finally中执行return会导致异常丢失 raise 语句rai…...
社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例
摘要:本文探讨社群团购中的用户黏性价值,分析其与传统团购网站的区别,并阐述开源小程序多商户AI智能名片商城源码在增强社群团购用户黏性方面可能发挥的作用。 一、引言 在当今的商业环境中,社群团购逐渐成为一种重要的营销模式。…...
基于php的民宿预订管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...
java 从基础到入门 到架构师所需要学习的路线
java是一种广泛使用的编程语言,可以应用于多种平台和应用程序。下面是一个从基础到入门,再到架构师所要掌握的Java学习路线的详细列举: 学习Java基础知识: 理解面向对象编程的概念,如类、对象、继承、多态等。 学习Ja…...
【吊打面试官系列-MySQL面试题】什么叫视图?游标是什么?
大家好,我是锋哥。今天分享关于【什么叫视图?游标是什么?】面试题,希望对大家有帮助; 什么叫视图?游标是什么? 视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增&#…...
项目管理-信息技术发展
1、计算机软硬件 2、计算机网络 1)定义 2)分类:PAN LAN MAN WAN 公用网 专用网 3)网络协议 语法 语义 时许 4)网络标准协议 7层 5)IEEE 802 规范 6)TCP/IP 协议 7) SDN 软件定义网…...
异常处理【C++提升】(基本思想,重要概念,异常处理的函数机制、异常机制,栈解旋......你想要的全都有)
更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: C系列语法知识_Stark、的博客-CSDN博客 座右铭:梦想是一盏明灯,照亮我们前行的路,无论风雨多大,我们都要坚持不懈。 异…...
基于springboot vue 电影推荐系统
博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
