进程切换和是Linux2.6内核中进程调度的算法

news2025/1/12 6:11:07

正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

进程切换

进程并发就需要做到进程切换,一个CPU一套寄存器但是需要运行的进程有很多,CPU内是内置的有时间片的,当时间片到之后,上面的进程就会被从CPU上剥离下来,开始调度下一个进程,所以被剥离下来的进程就需要保存CPU中寄存器的内容,然后等到下一次被调度的时候再把内容放上去,接着执行,寄存器上的内容不需要清零,直接进行覆盖就行,因为下一个进程来的时候,这时寄存器的内容是上一个进程的并且已经保存带走了。所以进程在被调度的时候是会进行上下文保护的,不然下一次调度就会不知道从哪里开始。这就是进程切换。

O(1)调度算法

在这里插入图片描述
我们可以看到运行队列有140个位置,每个位置就表示一个优先级,0 ~ 99我们不用考虑,而100 ~ 139是普通优先级,正好对用我们普通用户可以修改的40个优先级。每一个需要运行的进程都会被放在运行队列中,我们会发现其中有两个运行队列,这是怎么回事?
两个运行队列我们分为活跃队列和过期队列,其中void* active 指向的是活跃队列,void* expired指向的是过期队列,CPU只调度活跃队列,这样做有什么好处,因为CPU要保证每个进程较为公平的都能够得到调度,如果只有一个队列的话,如果已经在调度100位置的优先级了,此时如果前面插入了一个优先级高的进程,那CPU就得拐回去调度它,如果加入的优先级高的进程很多的话,会导致优先级低的一直无法导致调度,从而导致进程饥饿问题,所以当一个进程没有别调度完,就去过期队列排队,所以活跃队列的进程一定会越来越少,如果CPU把活跃队列中的所有优先级的进程都调度完了,就进行swap(active,expired)操作,然后持续进行这样的操作,来保证每个进程进行较为公平的调度。

我们看到还有一个bitmap的东西,它其实是一个int的数组,可以表示160个比特位,所以就可以映射每个优先级是否有进程,利用这样的位图可以大大的提高查找非空队列的效率。

nr_active就表示这个整个队列queue总共有多少个运行状态的进程。

那么今天的分享就到这里了,有什么不懂得可以私信博主,或者添加博主的微信,欢迎交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1389480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KT148A语音芯片智能锁扩展语音地址以及如何支持大量小文件的打包

一、语音芯片应用于智能锁的需求 智能锁的语音播放需求中,有很多需要多国语言合并在一起的需求 其中语音文件数多,并且每个语音文件小的特点 如果使用OTP的语音芯片,就很麻烦,因为用户不可烧录,调试也很繁琐 同时大…

μ综合设计控制器

μ综合设计控制器是一种基于μ分析的控制器设计方法,用于提高控制器的鲁棒性和性能。μ分析是一种数学工具,用于描述和比较控制系统在不同参数变化下的性能。通过μ综合设计,可以综合运用各种控制策略,以达到更好的控制效果。 μ…

pycharm debug显示的变量过多

问题: https://blog.csdn.net/Hodors/article/details/117535731 解决方法: 把"Show console variables by default"前面的勾取消掉就行 参考: https://stackoverflow.com/questions/48969556/hide-console-variables-in-pychar…

C语言--质数算法和最大公约数算法

文章目录 1.在C语言中,判断质数的常见算法有以下几种:1.1.试除法(暴力算法):1.2.优化试除法:1.3.埃拉托色尼筛法:1.4.米勒-拉宾素性检验:1.5.线性筛法:1.6.费马小定理&am…

k8s---配置资源管理

目录 配置资源管理的方式 secret pod如何来引用secret??? 陈述式创建: 声明式创建 Secret创建加密文件 使用token挂载 环境变量使用 docker-registry ConfigMap 陈述式 热更新 总结: 配置资源管理的方式 …

OJAC近屿智能带你解读:AIGC必备知识之Lang Chain

Look!👀我们的大模型商业化落地产品📖更多AI资讯请👉🏾关注Free三天集训营助教在线为您火热答疑👩🏼‍🏫 Lang Chain, 是一种先进的语言模型链技术,旨在通过串联多个专业…

js逆向第21例:猿人学第20题新年挑战

文章目录 一、前言二、定位加密参数1、定位wasm加密2、反编译wasm3、定位sign加密三、代码实现四、参考文献一、前言 新春福利:抓取这5页的数字,计算加和并提交结果 二、定位加密参数 通过get请求地址可以看到需要搞定参数有page、sign、t如下图: 进入堆栈不难发现这样一…

互联网加竞赛 基于机器视觉的12306验证码识别

文章目录 0 简介1 数据收集2 识别过程3 网络构建4 数据读取5 模型训练6 加入Dropout层7 数据增强8 迁移学习9 结果9 最后 0 简介 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的12306验证码识别 该项目较为新颖,适合作为竞赛课题方向…

驾驭车联网的力量:深入车联网网络架构

车联网,作为移动互联网之后的新风口,以网联思想重新定义汽车,将其从简单的出行工具演化为个人的第二空间。车联网涵盖智能座舱和自动驾驶两大方向,构建在网联基础上,犀思云多年深度赋能汽车行业,本文将从车…

极端恶劣天气数据集-

极端恶劣天气数据集是一个包含了各种极端天气事件的统计信息的数据集。这些事件包括暴雨、暴雪、台风、龙卷风等极端天气现象。该数据集提供了有关这些极端天气事件的时间、地点、持续时间、强度等详细信息。 这个数据集对于研究和分析极端天气现象的频率、趋势和影响具有重要…

基于K-Means聚类与RFM模型分析顾客消费情况【500010102】

项目说明 本数据集是生成式模拟数据,本项目通过可视化分析对数据进行初步探索,再通过时间序列针对店铺的销售额进行分析,对时序图进行分解,发现数据存在季节性,并且通过auto_arima自动选择参数建立了SARIMA模型&#…

【Leetcode 程序员面试金典 02.08】 —— 环路检测 |双指针

面试题02.08. 环路检测 给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回null。 如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。 为了表示给定链表中的…

【不用找素材】ECS 游戏Demo制作教程(1) 1.15

一、项目设置 版本:2022.2.0f1 (版本太低的话会安装不了ECS插件) 模板选择3D URP 进来后移除URP(因为并不是真的需要,但也不是完全不需要) Name: com.unity.entities.graphics Version: 1.0.0-exp.8 点击…

59.说一下 spring 的事务隔离?

spring 的事务隔离有什么作用? 用来解决并发事务所产生一些问题,并发会产生什么问题? 1.脏读2.不可重复度3.幻影读事务隔离的概念 通过设置隔离级别可解决在并发过程中产生的那些问题分别举例说明 1.脏读 上述图表示:一个事务,读取了另一个事务中没有提交的数据,会在…

AI对决:ChatGPT与文心一言的深度比较

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文…

NXP-RT1176开发(一)——环境搭建(MCUXpressoIDE/VSCode)

目录 1. 安装IDE 1.1 官方开发的IDE软件 1.2 Config工具下载 1.3 说明(需先有SDK) 2. 下载SDK 3. VScode环境下编译 3.1 安装插件 3.2 确保本地有交叉编译工具链和CMAKE 3.3 加载本地SDK 3.4 导入例程编译 1. 安装IDE 该处理器编译规则可以MDK…

动手搓一个kubernetes管理平台(2)-后端权限设计

授权和认证 1. 权限分类 由于用户需要操作kubernetes,所以权限分类起码需要2套,即平台的权限和集群的权限管理,前者用于管理平台,如用户的添加,报表的查看,日志的审计等等,后者用于集群管理&a…

Vue3+ElementPlus实例_select选择器(不连续搜索)

1.开发需求 在各大UI框架的select选择器中,在搜索时都是输入连续的搜索内容,比如“app-store”选项,你要输入“app-xxx”,才能匹配这个选择,要是想输入“a-s”这种不连续的匹配方式,就实现不了&#xff0c…

【MATLAB】Linux版本 高分辨率屏 调整显示缩放

0 引言 安装了linux版本的MATLAB R2023b之后,发现工具栏字体很小不方便使用,所以上网找到了MATLAB论坛上某位大佬的教程:参考链接,放在这里供各位参考 。 1 环境 这里注明我的matlab安装环境仅供参考,未在其他环境下…