程切换问题

2023-10-26

处理器总处于以下状态中的一种:

1、内核态,运行于进程上下文,内核代表进程运行于内核空间;

2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;

3、用户态,运行于用户空间;

 

一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。

用户级上下文:  正文、数据、用户堆栈以及共享存储区;

寄存器上下文:  通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);

系统级上下文:  进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。

 

当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。而系统调用进行的模式切换(mode switch)。模式切换与进程切换比较起来,容易很多,而且节省时间,因为模式切换最主要的任务只是切换进程寄存器上下文的切换。系统中的每一个进程都有自己的上下文。一个正在使用处理器运行的进程称为当前进程(current)。当前进程因时间片用完或者因等待某个事件而阻塞时,进程调度需要把处理器的使用权从当前进程交给另一个进程,这个过程叫做进程切换。此时,被调用进程成为当前进程。在进程切换时系统要把当前进程的上下文保存在指定的内存区域(该进程的任务状态段TSS中),然后把下一个使用处理器运行的进程的上下文设置成当前进程的上下文。当一个进程经过调度再次使用CPU运行时,系统要恢复该进程保存的上下文。所以,进程的切换也就是上下文切换。在系统内核为用户进程服务时,通常是进程通过系统调用执行内核代码,这时进程的执行状态由用户态转换为内核态。但是,此时内核的运行是为用户进程服务,也可以说内核在代替当前进程执行某种服务功能。在这种情况下,内核的运行仍是进程运行的一部分,所以说这时内核是运行在进程上下文中。内核运行在进程上下文中时可以访问和修改进程的系统数据。此外,若内核运行在进程上下文中需要等待资源和设备时,系统可以阻塞当前进程。

Linux下的线程实质上是轻量级进程(light weighted process),线程生成时会生成对应的进程控制结构,只是该结构与父线程的进程控制结构共享了同一个进程内存空间。 同时新线程的进程控制结构将从父线程(进程)处复制得到同样的进程信息,如打开文件列表和信号阻塞掩码等。创建线程比创建新进程成本低,因为新创建的线程使用的是当前进程的地址空间。相对于在进程之间切换,在线程之间进行切换所需的时间更少,因为后者不包括地址空间之间的切换。

线程切换上下文切换的原理与此类似,只是线程在同一地址空间中,不需要MMU等切换,只需要切换必要的CPU寄存器,因此,线程切换比进程切换快的多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程切换问题 的相关文章

  • 程切换问题

    处理器总处于以下状态中的一种 内核态 运行于进程上下文 内核代表进程运行于内核空间 内核态 运行于中断上下文 内核代表硬件运行于内核空间 用户态 运行于用户空间 一个进程的上下文可以分为三个部分 用户级上下文 寄存器上下文以及系统级上下文
  • 《剑指offer》系列---1

    最近一直在看剑指offer 这上面的题目都是比较考察编程能力的 打算做个记录 把写过的代码保存下来 1 实现一个string类 面试官的考察点应该在以下几点 1 模板类的书写 2 对于赋值函数考察的几点 1 是否返回引用 因为只有返回引用
  • 一些笔试题笔记1

    总结一些常见的笔试题 最小公约数和最大公倍数 这个其实很简单 记住概念就可以了 我们利用辗转相除法计算 最大公约数 摘自百度百科 一般地 如果求a和b的最大公约数 a gt b 那么 当时 得 这里表示b整除a 而表示b不能整除 当时 设余
  • 面试常见的八股文记录

    本文是记录平常看到的面试八股文问题 其问题主要是从leetcode中的讨论区整理出来的 答案大多是参考一些大佬讲解来整理的 在此进行整理 方便大家换工作时来熟悉下常见的八股文问题 大家可以看看 也可以讨论下 2021 05 10 微信 后端
  • 硬件工程师笔试题——21大疆秋招

    给志同道合者 成长的方向 鄙人不才 答案有误 三思 三思
  • 五大浏览器对应的内核

    写这个文章是为了让自己容易快速找到 简单粗暴 3 晴天雨天不如前端在身边 各浏览器对应的内核 谷歌 Webkit gt blink 现在是blink啦 FireFox Gecko safari webkit opera presto IE
  • 顺序表----数组结构c++

    include
  • c++中函数参数传递(值传递、指针传递,引用传递)进一步认识

    ps 今天想写一个函数 从函数中把我需要的两个值传出来 由于传出来的值比较多 所以不考虑用return来返回 需要通过参数把修改后的值拉出来供我使用 很当然的就想到了用指针 但是值就是传不出来 使我对原有的大脑中指针的思维产生混沌感 今天一
  • 绕懵逼之同步/异步 阻塞/非阻塞

    被面试官绕蒙蔽了 特此整理总结一下 1概念解析 1 1 同步与异步概念描述 同步异步概念与消息的通知机制有关 所谓同步就是一个任务的完成需要依赖另外一个任务时 只有等待被依赖的任务完成后 依赖的任务才能算完成 这是一种可靠的任务序列 要么成
  • SQL练习题之求平均分低于80分的班级学生各科成绩并合计学生总分

    是对是错也好 不必说了 是怨是爱也好 不须揭晓 何事更重要 比两心的需要 柔情蜜意怎么可缺少 说不出再见 谭咏麟 文章目录 前言 一 练习题题目 二 创建测试数据 一 创建测试表 二 插入测试数据 三 思路 四 解答 一 详细代码 二 结果
  • 经典面试题 为什么要用 Docker

    经典面试题 为什么要用 Docker 解决面试题 斩获心仪的 Offer 文章目录 经典面试题 为什么要用 Docker 一 Docker是什么 二 Docker 的优势 1 更高效的利用系统资源 2 更快速的启动时间 3 一致的运行环境
  • 【2021-04-07华为机试】第二题:各任务执行完毕需要的时间

    题目 给定N个任务 1 lt N lt 100 任务编号从0开始顺序累加 这N个任务在系统中排队顺序执行 每个任务的自身执行时间为非负整数 依次为t1 t2 tn 部分任务之间存在依赖关系的 某任务所依赖的任务如果没有执行 则该任务需要重回
  • leetcode 编写一个函数来查找字符串数组中的最长公共前缀。

    编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 string longestCommonPrefix vector
  • 《程序员面试宝典》第6章sizeof和数据对齐

    一 看例子讲sizeof include
  • 指针笔试题(一)

    include
  • 2012.8.28 阿里巴巴电话面试

    半个小时左右的电话面试 问题不是太难 算法和数据结构是薄弱环节 1 现在主要在做什么研究 做过的项目介绍和在其中担任的职责 2 问语言方向 是否做过相关的工作 3 是否了解linux系统 在系统中都做过什么 用什么编译器 4 数据结构中 栈
  • 蘑菇街前端面试

    vue与jquery的区别 为什么现在很多人使用vue vue怎样实现双向数据绑定 内部原理 1 jQuery首先要获取到dom对象 然后对dom对象进行进行值的修改等操作 2 Vue是首先把值和js对象进行绑定 然后修改js对象的值 Vu
  • 经典面试题 TCP和UDP有什么区别?

    经典面试题 TCP和UDP有什么区别 解决面试题 斩获心仪的 Offer 文章目录 经典面试题 TCP和UDP有什么区别 一 TCP和UDP是什么 二 TCP和UDP有什么区别 1 TCP和UDP区别总结 2 TCP三次握手和四次挥手 2
  • 多益网络校招 —— 二面hr面

    11月27号晚上技术面试 12月6号才收到hr面试通知 12月8号hr面 整轮hr面试只有15分钟 一开始是做自我介绍 然后问了以下问题 1 我父母对我的职业有什么看法 2 之前有没有拿到满意的offer 3 为什么学前端 4 未来职业规划
  • 《剑指offer》系列---2

    1 求斐波那契数列的第N项 这个题目很简单 讲递归的书上都是用这个来讲的 但是面试的时候 如果你写个递归 那估计会让人失望的 因为递归的效率真是一个问题 你可以测试一下 输入50 基本上得到结果的时间 够你去喝杯茶了 include

随机推荐

  • Adapter理解

    这里也算回顾做Android开发时候遇到的一个问题吧 当时对Android中适配器的使用不是很了解 也不知道每一种适配器的局限性和用法 用的时候出现很多异 所以 适配器就我自己来看 我觉得这是一个非常重要的知识点 Adapter是用来帮助填
  • OpenGL-渲染光照球体

    3 光照 注意 a OpenGL至少会支持8个光源 即GL LIGHT0到GL LIGHT7 但是开启过多的光源会导致程序运行速度下降 b GL AMBIENT GL DIFFUSE GL SPECULAR这三种属性是光源和材质所共有的 如
  • 【华为OD机试真题 JAVA】查找众数及中位数

    JS版 华为OD机试真题 JS 查找众数及中位数 标题 查找众数及中位数 时间限制 1秒 内存限制 262144K 语言限制 不限 1 众数是指一组数据中出现次数量多的那个数 众数可以是多个 2 中位数是指把一组数据从小到大排列 最中间的那
  • python错误:AttributeError: 'list' object has no attribute 'sorted'

    列表学习的错误 AttributeError list object has no attribute sorted 没有注意sort 和sorted 的区别 sort 是方法 sorted 是函数 方法是调用 函数进行数据传递 So 区别
  • Shadow Mapping 的原理与实践

    早在上世纪七十年代末 Williams在他的 Casting Curved Shadows on Curved Surface 一文中提出了名为Shadow Map的阴影生成技术 之后 他人在此基础上针对相关问题做了许多改进 现在 Shad
  • Wireshark分析DHCP

    DHCP DNS和HTTP是3种常见的高层协议 一 动态主机配置协议DHCP 1 DHCP简介 DHCP Dynamic Host Configuration Protocol 动态主机配置协议 是一个应用层协议 当我们将客户主机ip地址设
  • Spring Boot获取登录用户IP

    控制器方法 RequestMapping value getIp method RequestMethod POST ResponseBody public String getIp HttpServletRequest request r
  • Tcp协议中的3次握手与4次挥手过程分析

    转载https blog csdn net u012824097 article details 52490091 客户端与服务端的通信中步骤 1建立Tcp连接 3次握手 2再进行数据传输 3数据传输完成后 断开连接 4次挥手 建立Tcp连
  • vscode的终端无法识别pnpm命令

    vscode的终端无法识别pnpm命令 windows pnpm已安装 且打开cmd可以运行pnpm 但使用vscode中的终端则无法识别 执行以下命令即可在vscode中运行 原因未知 iwr https get pnpm io inst
  • 减肥怎么减?最全减肥食谱(超厉害的)

    夏天已经到了 对于许多人来说这也是减肥的季节 如果你正在进行减肥 你可能会想知道如何合理地饮食来达到瘦身的目的 你是否曾在某音或某书上搜索 减肥食谱 并发现大量重复的菜式 而且各种相关视频分散在不同的网页上 让你寻找很是麻烦 现在我就介绍一
  • 性能优化方法

    1 纯函数的可缓存性 纯函数相同的输入总能得到相同的输出 如果函数内部的计算非常复杂 当我们发现输入与上一次相同时 可以直接返回结果不经过内部的计算 例子 根据日期 得到当日相关的数据 传入日期 获取当天的数据 function proce
  • unity shader errors unexcepted token ‘f’

    编写或导入shader时候 Inspector视图中可能会出现这个错误 Syntax error unexcepted token f at line xxx 解决办法 在报错行附近查找 有没有float数据 改为浮点值 真相如下 lt
  • yarn 安装依赖中出现的错误

    yarn 清除缓存问题 1 出现报错信息 error https registry yarnpkg com Integrity check failed for computed integrity doesn t match our re
  • 抢先一步,新华三携手HPE正在重塑AI存储新格局

    当前智能IT的创新 正呈现出蓬勃发展之势 全球存储观察 热点关注 当前 数字经济在中国获得了长足进步 并驱动着算力快速进化 为此 智能IT的创新也呈现出了前所未有的蓬勃之势 从智能存储中枢发布到现在 新华三集团持续强化存储融合AI的创新 将
  • 国仁网络资讯:抖音快手哪个变现赚钱效果好;两者有什么区别?

    随着5G时代的到来 越来越多的人说到短视频风口 而短视频中首当其冲的肯定是抖音和快手 对于所有想要把握流量风口的企业来说 在营销渠道上到底是侧重抖音还是快手是营销团队需要思考的问题 快手 记录世界 记录你 抖音 记录美好生活 人们经常会拿抖
  • main,restricted,universe,multiverse有什么区别

    main restricted universe multiverse有什么区别 转载 main 完全的自由软件 restricted 不完全的自由软件 universe ubuntu官方不提供支持与补丁 全靠社区支持 muitiverse
  • mysql 8.0以上版本,安装及解决忘记密码问题

    1 官网下载解压版MySQL数据库 下载链接 https dev mysql com downloads mysql 2 将下载的mysql放在自己喜欢的盘符 不一定是C盘 例如我的就是解压在D盘 D mysql mysql 8 0 18
  • 三角形设计测试用例

    三角形设计测试用例的问题在面试的时候经常遇到 假设输入三个整数a b c分别作为三边的边长构成三角形 通过程序判定所构成的三角形的类型 当此三角形为一般三角形 等腰三角形及等边三角形时 要求画出程序的流程图和时序图 并且用自己熟悉的一种语言
  • 解决Windows缺少api-ms-win-core-com-l1-1-0.dll文件问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个api ms win core com l1 1
  • 程切换问题

    处理器总处于以下状态中的一种 内核态 运行于进程上下文 内核代表进程运行于内核空间 内核态 运行于中断上下文 内核代表硬件运行于内核空间 用户态 运行于用户空间 一个进程的上下文可以分为三个部分 用户级上下文 寄存器上下文以及系统级上下文