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

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

进程切换

进程并发就需要做到进程切换,一个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.mzph.cn/news/627413.shtml

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

相关文章

基于cy7c68013的逻辑分析仪nanoDLA全套软件linux下编译测试

0. 环境 - win10 - ubuntu22 - nanoDLA 提前获取到源码:-> 浏览器打开 https://github.com/wuxx/nanoDLA -> Download as zip. 硬件就直接用taobao买到的,原理图是 1. win10出厂测试 1.1 安装pulseview nanoDLA-master\software\pulseview-0.4.…

014集:python访问互联网:网络爬虫实例—python基础入门实例

以pycharm环境为例: 首先需要安装各种库(urllib:requests:Openssl-python等) python爬虫中需要用到的库,大致可分为:1、实现 HTTP 请求操作的请求库;2、从网页中提取信息的解析库;3、Python与…

外贸货源怎么找?9大优质货源渠道分享!

近几年跨境电商无货源模式大火了一把,让不少人都跃跃欲试。毕竟这种模式投资少,门槛低,回本快,想增加额外收入或创业的人们都争相涌入。但是要想做得好,选好货源渠道就是关键了。如果不小心选错了供应商,可…

MybatisPlus框架入门级理解

MybatisPlus 快速入门入门案例常见注解常用配置 核心功能条件构造器自定义SQLService接口 快速入门 入门案例 使用MybatisPlus的基本步骤: 1.引入MybatisPlus的起步依赖 MybatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能&#…

如果你正在学自动化测试,那么请你仔细看完这篇文章

接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人。 本人从事软件自动化测试已经近5年,从server端到web端,从API到mobile,切身体会到自动化带来的好处与痛楚…

python面试题

python装饰器 装饰器的本质就是一个函数能为其它函数增加额外功能 装饰器不加参数 #coding:utf-8 from time import time#装饰器函数 def elapsed(target):"统计目标函数执行的耗时"def decorated(*args,**kwargs):start time()r target(*args,**kwargs)end tim…

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…

FlinkAPI开发之水位线(Watermark)

案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 Flink中的时间语义 哪种时间语义更重要 从《星球大战》说起 数据处理系统中的时间语义 在实际应用中&#xff0c…

vue cli 配置了productionSourceMap: true 开启source-map 没有生成map文件

因为UglifyJsPlugin导致生成map失败,可以将其注释即可 也可以加上 new UglifyJsPlugin({sourceMap:true })

基于Java+SSM运动会管理系统详细设计和实现【附源码】

基于JavaSSM运动会管理系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 …

C++写二进制文件

源文件 #include <iostream> #include <fstream> #include <sstream> #include <cmath>void convert2() {// 打开输入文本文件std::ifstream inputFile("mask.txt");// 打开输出二进制文件std::ofstream outputFile("mask.dat", …

现在00后开发人员不晓得加班为何事嘛?

我招了两个做HTML5开端开发的人员&#xff0c;是从培训机构招来的&#xff0c;按理说他们应该很努学很用样才对的。他们上班第一天我就跟他们讲&#xff0c;我们不需要上、下班打卡&#xff1b;你们也不必太过担心迟到或早退。因为我们搞开发的人员首先是按自己的工作任务完成情…

【部署LLaMa到自己的Linux服务器】

部署LLaMa到自己的Linux服务器 1、Llama2 项目获取方法1&#xff1a;有git可以直接克隆到本地方法2&#xff1a;直接下载 2、LLama2 项目部署3、申请Llama2许可4、下载模型权重5、运行 1、Llama2 项目获取 方法1&#xff1a;有git可以直接克隆到本地 创建一个空文件夹然后鼠标…

蓝牙网关G602

一、产品概述 G602是一款支持蓝牙4.2/5.0的蓝牙网关&#xff0c;主处理器采用580MHz的MIPS24KEc处理器&#xff0c;DRAM为DDR2 64MB&#xff0c;16MB FLASH。G602蓝牙网关集成PA和LNA&#xff0c;蓝牙扫描和连接距离可以达到100米以上&#xff0c;极大的增加了覆盖范围&#x…

CORS漏洞学习

CORS漏洞属于一个协议漏洞&#xff0c;具体是由于同源策略的设置问题触发的漏洞&#xff0c;漏洞利用条件较为苛刻&#xff0c;但实战中也常见。 首先要了解同源策略 什么是同源策略&#xff1f; 同源策略是一种Web浏览器安全机制&#xff0c;旨在防止网站相互攻击。 同源策…

数学建模-Matlab R2022a安装步骤

软件介绍 MATLAB是一款商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境&#xff0c;主要包括MATLAB和Simulink两大部分&#xff0c;可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程…

2024年【危险化学品经营单位主要负责人】考试报名及危险化学品经营单位主要负责人考试资料

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位主要负责人考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新危险化学品经营单位主要负责人考试资料题目及答案&#xff01;多做几遍&#xff0c;其实通过危险化学品经营单位主要负责…

NeRF 其三:Instant-NGP

NeRF 其三&#xff1a;Instant-NGP 1. 球谐函数1.1 NeRF 中球谐函数的作用1.2 球谐函数1.2.1 当阶数 j 0 j0 j0 时&#xff0c; m 0 m0 m0&#xff1a;1.2.2 当阶数 j 1 j1 j1 时&#xff0c; m 0 m0 m0&#xff1a;1.2.3 当阶数 j 1 j1 j1 时&#xff0c; m 1 m1 m1&…

vue中设置注释模板

参考地址 ctrlshiftp 打开编辑器配置输入configure user snippets - 选择 new global snipp files - 命名为 vueComment&#xff0c;弹出注释模板&#xff0c;即可自定义注释 如下/// 回车 即可在代码块中使用注释 { "Print to console": {"prefix": &q…

什么是游戏盾,游戏盾是如何做到免疫攻击的

什么是游戏盾&#xff1a;游戏盾是针对游戏行业面对的DDoS、CC攻击推出的针对性的网络安全解决方案&#xff0c;相比高防IP&#xff0c;除了能针对大型DDoS攻击&#xff08;T级别&#xff09;进行有效防御外&#xff0c;还具备彻底解决游戏行业特有的TCP协议的CC攻击问题能力&a…