review——Linux进程调度与切换

news2024/11/13 9:42:29

文章目录

目录

前言

1.进程的一些概念

2.进程的优先级

二、进程切换

三、进程调度

总结


前言

在我们的windows电脑上,常常会开启许多不同的软件,我们知道他们会一种和谐的方式存在于我们的电脑上,它们会随着我们的点击而启动,会随着我们计算机的关闭而关闭。那么本文想要介绍的是在Linux的操作系统中是如何对这些软件处理,来到达这种“和谐”状态。


一、Linux进程的概念准备

1.进程的一些概念

①独立性:进程与进程之间是不会相互影响的,一方的错误退出并不会导致另一方出错

②共享性:通常计算机只有一块CPU,所有的进程共享这一块CPU及其周边资源

③并发:假如计算机有多块CPU,多个进程在不同的CPU上运行叫做并发

④并行:只有一块CPU,多个进程在一段时间内在一块CPU上以进程切换的方式执行,叫做并行

我们要讲的Linux进程调度与切换起始就归属于并行。

2.进程的优先级

进程一共有140等级,其中0-99不允许用户使用,这一部分由操作系统控制,100-139开放给用户,用户可以使用并通过接口调控进程的优先级。

二、进程切换

我们要知道的是,在计算机的CPU中其实集成了很多寄存器,这些寄存器来帮助CPU中的运算器进程运算和数据读取等等操作,当我们的进程在加载到CPU中运行时会产生很多的数据,这些数据中的一部分就会保存在CPU的寄存器中,当进程切换发生时,会将这些数据返回到进程中管理这部分数据的空间中(需要说明的是进程载出CPU时不一定将执行内容全部执行完毕)。当进程再一次加载到CPU中时,会继续从上一次执行到的部分往后执行,而实现这一步的重要步骤就是要将上一次执行完载出的寄存器中的数据重新加载回CPU中的寄存器。

图1        进程寄存器数据载入载出示意图

关于为什么CPU知道再次载入的进程从哪里开始执行,这个其实是一个叫做PC指针的寄存器来完成的,这个指针指向该进程下一条指令的地址,只要CPU读取了该指针指向地址的内容,就可以读取该内容,就可以得知下一步应该做什么。

实际上,操作系统会维护一个运行队列,在这个队列中操作系统会依次执行排好队的程序。

需要注意的是:“进程替换”与“进程切换”不是一个概念。

三、进程调度

要讲清楚进程的调度,就必须先介绍一下,操作系统维护的运行队列。

图2        操作系统运行队列结构示意图

 在该结构中,维护了两个队列——运行队列、休眠队列。操作系统会优先执行活跃队列中的内容,而将过期进程和新到来的进程按照对应的优先级链入到对应优先级休眠队列中的链表上,等待活跃队列中的进程全部完成执行或时间片到期,此时活跃队列转换为休眠队列,休眠队列转换成为活跃队列,这一过程是通过指针来进行的,所以是十分高效的。

图3        运行队列与休眠队列关系图
图4        新进程与时间片进程进入休眠队列

 

图5        活跃队列与休眠队列互换示意图

需要说明的是进程的优先级体现在休眠队列转换为活跃队列的时候,这个时候优先级高的先执行,优先级低的后执行。 


总结

Linux中的进程调度与切换是通过操作系统根据优先级的调度完成的,当然本文只是解释了在正常情况下,进程的优先级。

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

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

相关文章

PMP核心知识点—之项目的整合管理

知识点1:制定项目章程 项目章程是启动过程组的输出。 项目章程主要是:批准项目、给项目经理授权 明确项目与组织战略目标之间的直接联系。 项目章程是由项目发起人编制或者是项目经理和项目发起人共同编制。 项目章程是由项目启动者或者项目发起人发布。…

【unity实战】使用新版输入系统Input System+Rigidbody实现第三人称人物控制器(附项目源码)

最终效果 前言 使用CharacterController实现3d角色控制器,之前已经做过很多了: 【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果,复制粘贴即用 【unity实战】C…

这些OA办公系统,才是企业高效行政的秘诀

本文将盘点10款OA办公系统,为企业选型提供参考。 大量的文件堆积在办公室,查找困难,浪费时间?文件的借阅和归还流程不规范,文件不知去向,无翼而飞?纸质单据审批周期长、审批过程不透明&#xff…

仕考网:事业单位考试分为哪几种类型?

事业单位招聘考试每年举行一次或两次,全国性的联考通常在每年的5月和10月底至11月初进行,省和市级直属单位的招聘次数则不受限制,各省的具体考试时间由各自安排。 事业单位的考试类型主要分为以下几种:全国事业单位联考、省级事业…

ELK学习笔记(一)——使用K8S部署ElasticSearch8.15.0集群

一、下载镜像 #1、下载官方镜像 docker pull elasticsearch:8.15.0 #2、打新tag docker tag elasticsearch:8.15.0 192.168.9.41:8088/new-erp-common/elasticsearch:8.15.0 #3、推送到私有仓库harbor docker push 192.168.9.41:8088/new-erp-common/elasticsearch:8.15.0二、…

港迪技术IPO上市:专注国产替代,盾构机变频器技术领先市场

武汉港迪技术股份有限公司(以下称:“港迪技术”或“公司”)是第四批国家级专精特新“小巨人”企业,公司及子公司港迪智能、港迪软件均为高新技术企业。据港迪技术IPO上市招股书(注册稿)显示,公司…

Java中实现JSON格式的转换(通过实例讲解)

创建项目 在IDEA中新建一个Java项目,在建好后的项目结构中添加一些必要的目录和文件,我最终的项目结构如图所示: 其中, Person和Dog是用于演示的两个类;JSONTest是实现将Person和Dog的实例对象转换成字符串&#xff…

Vue3 数据通信

一、基本概念 数据在 vue 中是单向流动的,有利于管理数据状态和变化。 而在日常组件开发中,难以避免组件之间的数据通信。组件通信可以分为不同的场景,例如父子组件通信、兄弟组件通信、跨层级组件通信等。 Vue3 提供了多种方式进行组件间的…

无法访问,你可能没有权限使用网络资源,此用户无法登录

解决方法: 打开控制面板,WinR运行框输入 control 控制面板主页更改为小图标,并选择凭据管理器 选择Window凭证,添加凭证(如果之前输错过的,这里会有信息,请删掉重新添加)

Mysql基础练习题 620.有趣的电影 (力扣)

620.编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片,返回结果按 rating 降序排列 题目链接: https://leetcode.cn/problems/not-boring-movies/ 建表插入数据: Create table If Not Exists cinema (id int…

HIS系统|HIS系统成品|HIS系统应用

随着医疗信息化的飞速发展,HIS(医院信息系统)已经成为现代医院不可少的组成部分。HIS系统在医疗行业中扮演着至关重要的角色,广泛应用于医院的各个环节,不仅提高了医疗服务的效率,也增强了患者体验。本文将…

Vision Transformer (ViT) + 代码【详解】

文章目录 1、Vision Transformer (ViT) 介绍2、patch embedding3、代码3.1 class embedding Positional Embedding3.2 Transformer Encoder3.3 classifier3.4 ViT总代码 1、Vision Transformer (ViT) 介绍 VIT论文的摘要如下,谷歌翻译如下: 虽然 Transf…

JVM面试(四)类加载器和双亲委派机制

什么是类加载器? 简单来说的话,是用于实现“类加载动作”的加载器 “通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器…

Web测试(知识总结)

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 随着Internet和Internet/Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的…

代码随想录打卡第10天

232 用队列实现栈 两个栈一个负责入一个负责出。 class MyQueue {Stack<Integer> stackIn;Stack<Integer> stackOut;public MyQueue() {stackInnew Stack<>();stackOut new Stack<>();}public void push(int x) {stackIn.push(x);}public int pop() {…

axure9勾选多个删除,弹框显示多个中继器编号

文本框 情形是删除逗号 文本框内插入数据

分类预测|基于雪消融优化极端梯度提升的数据分类预测Matlab程序SAO-XGBoost 多特征输入多类别输出

分类预测|基于雪消融优化极端梯度提升的数据分类预测Matlab程序SAO-XGBoost 多特征输入多类别输出 文章目录 一、基本原理SAO&#xff08;雪消融智能优化算法&#xff09;回归预测中的应用XGBoost 回归预测基本原理SAO-XGBoost 流程 二、实验结果三、核心代码四、代码获取五、总…

Json数据解析报错 -TAB

表现&#xff1a; n8n 解析服务器的数据 报错 json 解析错误 原理&#xff1a; tab键 在代码中为 string tab \t解决办法&#xff1a;tab键替换4个空格 string tab "\t" tab.replaceAll("\t", " ")问题&#xff1a; tab 键 和 空格 在普…

特殊教育学校自闭症:提供个性化教学,满足孩子需求

在特殊教育领域&#xff0c;针对自闭症儿童的个性化教学已成为一种趋势&#xff0c;旨在通过量身定制的教育方案&#xff0c;最大限度地满足每位孩子的独特需求。星启帆自闭症儿童康复机构&#xff0c;作为广州地区的一颗璀璨明珠&#xff0c;正是这一理念的忠实践行者。 星启帆…

什么叫3d建模渲染?与云渲染农场关系

3D建模渲染行业是一个涉及多个行业和领域的技术过程&#xff0c;它不仅仅是一个特点行业的产物&#xff0c;而是广泛应用于产品设计、工业设计、环境设计、动画、游戏建模和影视CG等多个领域。那么3D建模渲染又与云渲染农场有什么关系呢&#xff0c;一起来简单看看吧。 什么叫3…