L111213 【哈工大_操作系统】内核级线程内核级线程实现操作系统之“树”

L2.4 内核级线程

切换进程,实际上是切换内核级线程,没有用户级进程说法,进程只能在内核中。

  • 多核与多处理器的区别在于是否共用资源。多核=多线程
    在这里插入图片描述

  • 并发:同时触发,交替执行,在一个核上

  • 并行:同时触发,同时执行,在多个核上

1、核心级线程和用户级线程的区别

核心级线程核心两套栈,与用户级线程不同。因为内核级线程执行代码仍然在用户态,需要用到用户栈;同时涉及到内核代码,需要内核栈。所以线程切换时是用户栈和内核栈这一套栈同时切换。

  • 内核栈中存放了用户栈的栈指针、用户态的程序指针
  • 进入内核的唯一方法是中断。用户态->内核态(INT),内核态->用户态(IRET

2、内核线程的切换过程

  • PCB(进程控制块,Process Control Block):用于保存一个进程相关信息的数据结构。进程ID称为PID。
  • TCB(线程控制块,Thread Control Block): 用于保存一个线程相关信息的数据结构。线程ID称为TID。

线程1 -> 线程2 的五段论

实现线程1->线程2,分为五段:

  1. 用户栈->内核栈
  2. 内核栈->TCB
  3. TCB完成切换(Schedule)
  4. TCB->内核栈
  5. 内核栈->用户栈
    在这里插入图片描述

ThreadCreate:创建为内核进程可以切换的样子

  1. 创建TCB、内核栈
  2. 完成用户栈和内核栈的关联,TCB和内核栈的关联
  3. 在内核栈中写一段包含 IRET 的代码,以便内核栈切换回用户栈

linux0.11不支持内核级线程


L2.5 内核级线程实现

1、进入内核 — 采用中断

linux0.11的切换是基于TSS(任务状态段),实验五则是基于内核栈的切换

  • TSS执行效率低

tss任务状态段(Task State Segment),它是一个特殊的内存区域,存储任务切换时的一些状态信息,特别是内核栈指针 ESP0

TSS: Linux0.11中真正完成进程切换是依靠任务状态段(Task State Segment,简称 TSS)的切换来完成的。具体的说,在设计“Intel 架构”(即 x86 系统结构)时,每个任务(进程或线程)都对应一个独立的 TSS,TSS 就是内存中的一个结构体,里面包含了几乎所有的 CPU 寄存器的映像。有一个任务寄存器(Task Register,简称 TR)指向当前进程对应的 TSS 结构体,所谓的 TSS 切换就将 CPU 中几乎所有的寄存器都复制到 TR 指向的那个 TSS 结构体中保存起来,同时找到一个目标 TSS,即要切换到的下一个进程对应的 TSS,将其中存放的寄存器映像“扣在” CPU上,就完成了执行现场的切换。

  • TR类似于CS,在GDT表中索引到当前TSS描述符,找到TSS段
  • 只需要一条 ljmp 指令就可以完成TSS切换,以下的7个步骤都是CPU解释执行的结果
    在这里插入图片描述

重点:switch_to() 中的 ljmp 理解
在这里插入图片描述


L2.6 操作系统之“树”

在这里插入图片描述

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

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

相关文章

三菱FX3U定位控制接线示例(脉冲控制伺服)

一、FX3u系列基本单元(DC24V输入) 二、FX3u系列基本单元(晶体管输出) 脉冲输出用端子Y000、 Y001、 Y002为高速响应输出。 三、FX3UPLC链接MR-J4-A伺服连接实例 1、为了安全起见,不仅仅在可编程控制器侧,在伺服放大器侧也请设计正转限位和反转限位的限位…

数字安全新时代:聚焦关键信息基础设施安全保障——The Open Group 2024生态系统架构·可持续发展年度大会盛大来袭

在全球数字化转型的浪潮中,关键信息基础设施(Critical Information Infrastructure,简称CII)的安全保障已成为各国政府和企业共同关注的焦点。随着技术的飞速发展和网络威胁的日益复杂,如何构建高效、灵活且安全的数字…

vue2接入高德地图实现折线绘制、起始点标记和轨迹打点的完整功能(提供Gitee源码)

目录 一、申请密钥 二、安装element-ui 三、安装高德地图依赖 四、完整代码 五、运行截图 六、官方文档 七、Gitee源码 一、申请密钥 登录高德开放平台,点击我的应用,先添加新应用,然后再添加Key。 ​ 如图所示填写对应的信息&…

【最新华为OD机试E卷-支持在线评测】简单的自动曝光(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

[Linux]开发环境搭建

RPM和YUM 安装JDK 安装Tomcat 安装IDEA 安装MySql

Kotlin真·全平台——Kotlin Compose Multiplatform Mobile(kotlin跨平台方案、KMP、KMM)

前言 随着kotlin代码跨平台方案的推出,kotlin跨平台一度引起不少波澜。但波澜终归没有掀起太大的风浪,作为一个敏捷型开发的公司,依然少不了Android和iOS的同步开发,实际成本和效益并没有太多变化。所以对于大多数公司来说依然风平…

精选算法入门——day2

精选算法入门——day2 题目一题干解题思路一解题思路二解题思路三思路三代码 题目二题干解题思路代码 题目三题干解题思路一代码解题思路二代码解题思路三代码 题目四题干解题思路代码 题目一 题干 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。…

PDF转换为TIF,JPG的一个简易工具(含下载链接)

目录 0.前言: 1.工具目录 2.工具功能(效果),如何运行 效果 PDF转换为JPG(带颜色) PDF转换为TIF(LZW形式压缩,可以显示子的深浅) PDF转换为TIF(CCITT形…

uniapp+Android智慧居家养老服务平台 0fjae微信小程序

目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 老年人 登…

IDEA:Properties in parent definition are prohibited

问题背景 如果你在POM.xml中使用了自定义版本,那么IDEA就没办法很动态检测(其实可以做到的,不是吗),就会有一个Properties in parent definition are prohibited 的错误信息(禁止使用父级定义中的属性&…

吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)

目录 1、用ChatGPT生成论文选题2、用ChatGPT生成论文框架3、用ChatGPT进行文献整理4、用ChatGPT进行论文润色5、用ChatGPT进行问题求解6、用ChatGPT进行思路创新7、用ChatGPT进行论文翻译8、如何直接使用ChatGPT4o、o1、OpenAI Canvas 9、OpenAI Canvas增强了啥?10、…

打造自己的RAG解析大模型:Windows部署OCR服务(可商业应用)

在上一篇文章中,我们介绍了如何在 Windows 环境中配置 OCR 相关模型,并完成了模型验证。本篇文章将基于之前的内容,进一步讲解如何将文本检测、方向分类和文本识别模型进行串联,最终搭建一个基础的 OCR 应用服务。通过这些模型的串…

降重秘籍:如何利用ChatGPT将重复率从45%降至10%以下?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 重复率高达45%?很多人一查论文的重复率,瞬间想“完了,这次真的要重写了”。但其实不用这么绝望!有了ChatGPT,降重真的没那么难。今天就教你几招&a…

网络安全概述:从认知到实践

一、定义 网络安全,即致力于保护网络系统所涵盖的硬件、软件以及各类数据,切实保障其免遭破坏、泄露或者篡改等不良情形的发生。 二、重要性 个人层面:着重于守护个人隐私以及财产安全,为个人在网络世界中的各项活动提供坚实的保…

日语发音

中文 阴平(第一声),用“ˉ”表示,如lā;阳平(第二声),用“ˊ”表示,如l;上声(第三声),用“ˇ”表示,如lǎ&am…

pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)

靶机介绍 来自 vulnhub 主机发现 ┌──(kali㉿kali)-[~/testPwnos1.0] …

个人网站,怎么操作才能提升个人网站的流量

运营个人网站以提升流量是一个综合性的过程,涉及内容优化、技术调整、用户体验提升以及外部推广等多个方面。以下是一些专业建议,旨在帮助个人网站运营者有效提升网站流量: 1.精准关键词研究与优化 -关键词研究:利用工具如谷歌…

MATLAB图像去雾系统

应用背景 现在工业发展迅速,产生的废气很严重,导致雾霾厉害,现在虽然有硬件来拍摄,可以清晰化视野,但是硬件成本昂贵,急需寻求一种算法来帮助雾霾的清晰处理。显得经济。 采用算法原理 本文采用全局直方…

基金好书入门阅读笔记《基金作战笔记:从投基新手到配置高手的进阶之路》2

买基金,说到底是买基金所持有的一揽子资产。那么,常见的可投资产都有哪些类型呢? 图2.9进行了系统性的梳理,我们把资产分为四大类,分别是权益类、固收类、现金和另 类,下面就一一解读。 年化收益率是把一段…

Flume实战--Flume中的拦截器详解与操作

在处理大规模数据流时,Apache Flume 是一款功能强大的数据聚合工具,它可以通过拦截器在运行时对Event进行修改或丢弃。本文将详细讲解Flume中的拦截器,包括时间戳拦截器、Host添加拦截器、静态拦截器以及如何自定义拦截器。 Flume入门到实践…