Linux——进程轮换

news2025/1/19 11:25:02

目录

一.进程切换

       1.定义:

        2.硬件上下文:

        总结:


一.进程切换

       1.定义:

        进程切换(process switch),作为抢占式多任务的一个重要功能,其实质就是OS内核挂起正在运行的进程A,然后将先前被挂起的另一个进程B恢复运行。

        2.硬件上下文:

        每个进程都有自己的地址空间,但是进程每当被CPU执行处理时,它部分的数据代码会被CPU的寄存器拿到,CPU处理数据的方式就是靠寄存器去进行计算的。因此,OS内核必须要将挂起该进程时寄存器的值装入CPU寄存器,进程恢复执行前必须装入寄存器的一组数据就叫做“硬件上下文”,它是进程执行上下文的子集,后者是进程执行时需要的所有信息。

       如上就是进程在运行时,CPU内部寄存器的行为,CPU拿到该进程后,对代码进行编译、汇编、链接成二进制可执行文件,里面的代码也就变成了计算机能识别的指令。CPU体内的寄存器开始获取部分代码的变量数值进行运算——取指令、分析指令、执行指令。

        当我们的进程在运行的时候,一定会产生非常多的临时数据,而这份数据处于多个寄存器中,属于当前进程!!!

        进程在运行的时候,是占有的享用CPU的,但CPU不会一直让其进程占有到它自己结束,万一该进程内部是个死循环的话,CPU岂不是要一直被占有?那CPU就没法去执行其他进程,那么其他进程会一直再等待,变得卡顿,一整天就仅跟着该进程死磕到底了。

        科学家们依据根据上面所说的这种情况,制定了一种高效率的方式,即CPU每过一段时间就将停止该进程的运行,调度下一个进程进来运行,让每个进程都有机会能被CPU处理。里面具体的细节在于:CPU将某个进程运行一段时间后停下来,体内的某些特定寄存器会保存当前CPU所执行到代码的上下文和具体位置,以便于下一次CPU再执行该进程时能够快速的找到上一次的断点处开始运行。

       

        举个例子:小明是一个大二学生,某一天上午,小明看到学校来了一些解放军叔叔来招人了,小明从小就梦想着要当军人,如今看到后十分兴奋,立刻跑过去报名,由于小明身体倍棒通过了入伍体检,可以去当兵了。于是小明将这个信息告诉了辅导员和校领导,之后小明带着行李箱走了,接下来的课程和考试都将缺席。消防的做法是把小明的学籍信息保留下来,给他设置一个断点。

        两年后,小明退伍回来继续上大学,进入学校的第一件事就是找老师恢复自己的学籍,否则他没办法继续上学,恢复学籍后学校承认了他,小明也就有了回来体验大学生活的权利了,继续从大二开始上起。

总结:

        CPU和操作系统对进程的处理原则就是:给它们分配时间片,让CPU执行进程某一段时间(可能是几毫秒~几十毫秒不等)后就会拿下去换另一个进程上来,这个拿下去换上来的操作就是时间片轮转操作,可以让用户更好的体验到多个软件并发执行的效果。

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

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

相关文章

天书奇谈3D服务端搭建架设教程Centos

天书奇谈3D服务端搭建架设教程Centos 大家好,我是艾西,今天给大家分享一款回合制MMORPG手游的搭建教程。也算是G 内回合制手游的第一梯队吧,回合制手游总会有那么一帮热爱的玩家我们话不多说直接进入正题开始操作: 架设准备&…

00后们劝你们不要去外包,3年外包,废了....

先说一下自己的情况,专科生,19年通过校招进入杭州某个外包软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…

UNIX网络编程卷一 学习笔记 第十六章 非阻塞式IO

套接字的默认状态是阻塞的,当发出一个不能立即完成的套接字调用时,进程将被投入睡眠,等待相应操作完成。可能阻塞的套接字调用有以下四类: 1.输入操作:包括read、readv、recv、recvfrom、recvmsg函数。如果进程对一个阻…

公司study three

ctrlwind:新建桌面 ctrlwin 箭头 切换桌面 WIN CTRL F4 删除桌面 mybatis-plusstreamlambda lambda遍历 存值 if (bpmBoEntityList ! null && !bpmBoEntityList.isEmpty()) {bpmBoEntityList.forEach(x -> {BpmBoEntityDTO dto new BpmBoEntityDT…

一.《HIT2台服韩服》背包遍历和物品品质潜规则

首先找背包遍历 1.通过物品数量我们入手找 2.首先CE搜索当前药品数量 3.然后消耗一瓶血药 4.CE继续搜索10,你会发现还剩下1423个结果 5.经过我们几次的筛选,最终找到几个结果 6.拿到地址后,我们用XDBG附加游戏后查看这个地址 7.随后我们在这个地址上下写入断点,通过消耗血药,就…

English Learning - L3 作业打卡 Lesson3 Day19 2023.5.23 周二

English Learning - L3 作业打卡 Lesson3 Day19 2023.5.23 周二 引言🍉句1: She also told us “you have to break some eggs to make an omelet”.成分划分弱读连读爆破语调 🍉句2: This means you have to do what is necessary to move forward.成分…

English Learning - L3 作业打卡 Lesson3 Day20 2023.5.24 周三

English Learning - L3 作业打卡 Lesson3 Day20 2023.5.24 周三 引言🍉句1: She would always give us nutritious food.成分划分连读语调 🍉句2: She liked serving us meat and potatoes for dinner.成分划分弱读连读爆破语调 # 🍉句3: Mea…

ACL 2019 - AMR Parsing as Sequence-to-Graph Transduction

AMR Parsing as Sequence-to-Graph Transduction 论文:https://arxiv.org/pdf/1905.08704.pdf 代码:https://github.com/sheng-z/stog 期刊/会议:ACL 2019 摘要 我们提出了一个基于注意力的模型,将AMR解析视为序列到图的转导。…

Doris---索引

前缀索引 doris中,对于前缀索引有如下约束: 他的索引键最大长度是36个字节 当他遇到了varchar数据类型的时候,即使没有超过36个字节,也会自动截断 示例1:以下表中我们定义了: user_id,age,message作为表的key ; C…

【C++】“最强查找“哈希表的底层实现

哈希表的查找的时间复杂度是O(1)~ 文章目录 前言一、哈希冲突和哈希函数二、哈希表底层实现 1.开放地址法2.链地址法总结 前言 哈希概念: 顺序结构以及平衡树 中,元素关键码与其存储位置之间没有对应的关系,因此在 查…

100道护网面试题大全(附答案)

最近日入1000的护网行动已经开始摇人了, 不少大学生在后台私信我如何参加护网、面试问些什么、有没有护网内推 作为一个负责任的博主,收到大家反馈的我,连夜发动钞能力,收集整理了一套护网蓝初面试文档 1. 什么是DDoS攻击&#x…

深度学习编译器

1.为什么需要深度学习编译器 深度学习编译器主要为解决不同框架下训练的模型部署到指定的某些设备上时所遇到的一系列复杂的问题,即将各种深度学习训练框架的模型部署到各种硬件所面临的问题; 首先深度学习领域,从训练框架看,当前…

安科瑞消防设备电源监控系统选型及介绍

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:自 2014 年《火灾自动报警系统设计规范》实施以来,由于针对消防设备电源监控系统的规定较为模糊,尚未确立详细的规定,导致当前消防设备电源监控系统的设计和建立呈…

【C++】unordered_set 和 unordered_map 使用 | 封装

文章目录 1. 使用1. unordered_set的使用2. unordered_map的使用 2. 封装修改结构定义针对insert参数 data的两种情况复用 哈希桶的insertKeyOfT模板参数的作用 迭代器operator()beginendunordered_set对于 begin和end的复用unordered_map对于 begin和end的复用unordered_map中…

计组期末复习---个人版

(一)计算机系统概论 1.1计算机分类与发展历史 分类:电子模拟计算机和电子数字计算机 电子模拟计算机:数值由连续量来表示,运算过程是连续的 电子数字计算机:按位运算,并且不是连续地跳动运算…

【JavaSE】Java基础语法(二十四):时间日期类

文章目录 1. Date类2. Date类常用方法3. SimpleDateFormat类(应用) 1. Date类 计算机中时间原点 1970年1月1日 00:00:00 时间换算单位 1秒 1000毫秒 Date类概述 Date 代表了一个特定的时间,精确到毫秒 Date类构造方法 示例代码 publi…

数据结构-顺序表

数据结构-顺序表 线性表顺序表的概念和结构静态顺序表和动态顺序表 接口的实现顺序表的初始化顺序表的打印顺序表的销毁顺序表的增容顺序表的尾插顺序表的尾删顺序表的头插顺序表的头删顺序表的任意位置插入顺序表的任意位置删除顺序表中元素的查找 完整代码 线性表 线性表是n…

数据包伪造替换、会话劫持、https劫持之探索和测试

(一)数据包替换攻击 该攻击过程如下:伪造服务器响应客户端的数据包。监听客户端的数据包,用预先伪造的数据包,伪装成服务器返回的数据发送给客户端。 因为攻击者跟目标在同一个局域网,所以攻击者发送的数…

无监督学习——k均值

文章目录 聚类k均值代码实现1. 引入依赖2. 数据加载3. 算法实现4. 测试 无监督学习重要的应用有两类:聚类、降维。 聚类: k均值 基于密度的聚类 最大期望聚类 降维: 潜语义分析(LSA) 主成分分析(PCA&a…

AcWing算法提高课-1.3.11二维费用的背包问题

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 有 N N N 件物品和一个容量是 V V V 的背包&#xff0c;背包能承受的最大重量是 M M M。 每件物品只能用一次。体积是 v i v_…