进程管理笔记1-进程线程基础知识

ops/2025/3/22 12:03:44/

5.1 进程线程基础知识

进程

进程的基本定义

进行的程序。代码经过编译,变成二进制可执行文件,运行这个可执行文件后,装载到内存中,然后CPU执行其中指令。

并行和并发

并行指两个任务并列前行,并发指两个任务交替进行。
在这里插入图片描述
那么进程为什么会交替呢?因为有的进程会处于暂停等待状态,这时候就需要让出cpu的计算资源。因此,进程主要分三个状态:就绪,阻塞,运行在这里插入图片描述
就绪:等别的进程用好cpu资源
阻塞:有事用不了cpu资源
运行:正在使用cpu资源
在这里插入图片描述
还有开始结束状态不说了

那么在阻塞的进程等待过程中,实际上占用这物理内存,这很难受,因此需要把这个物理内存交换到硬盘,等再运行的时候,再接入到物理内存
因此,还需要一个挂起状态,指进程实际上没有占用物理内存
因此:
阻塞挂起状态:指进程在硬盘等待某事的发生
就绪挂起状态:进程在硬盘,只要进入内存立马运行

进程的控制结构

进程控制块PCB process control block PCB

PCB和进程绑定:
包含进程描述信息(pid),进程控制(当前状态,阻塞,就绪,运行),进程优先级。资源分配清单(关于内存地址,打开文件列表,和OI信息)。CPU相关信息,很重要,进程被切换时,状态保存在对应的PCB中,重新执行进程时,能从断点处继续执行
在这里插入图片描述

进程的控制

1、创建进程
申请一个空白的PCB并填写相关信息,分配资源,将这个pcb插入到就绪队列
2、终止进程
有三种:正常结束,异常结束,外界干预(kill)
在这里插入图片描述

3、阻塞进程
一旦一个进程被阻塞,只能由另一个进程唤醒
过程:寻找阻塞进程的PCB,然后将其转为阻塞,然后将PCB插入到阻塞进程中

4、唤醒进程
过程:
在该事件的阻塞队列中找到相应进程PCB,然后移出阻塞队列,标记为就绪状态,然后插入到就绪队列中等待调度

进程的上下文切换

一个进程切换到另一个进程,称为上下文切换

先介绍CPU的上下文切换:CPU中有着CPU寄存器和程序计数器,每次运行的时候都依赖的环境。CPU上下文切换就是把前一个任务的上下文(寄存器和程序计数器)保存下来,然后加载新任务的上下文,运行新任务。
系统内核保存的就是上一次的上下文信息

那么进程的上下文切换
除了虚拟内存,栈,全局变量等用户空间的资源,还包括内核堆栈、寄存器等内核空间的资源。

线程

用于满足:实体之间可以并发运行,且共享地址空间

线程是进程中的一条执行流程。

同一进程内,多个线程可以共享代码段、数据段 、打开的文件等资源,但每个线程都有一套独立的寄存器和栈,这样可以确保线程的控制流是相对独立的。

线程和进程的比较

进程是资源(内存,文件)分配单位,线程是CPU的调度单位
进程拥有完整资源平台,线程只独享寄存器和栈
线程同样具有就绪、阻塞、执行的三种状态
现成能减少并发执行的时间和开销

线程比进程更能节约时间:
1、线程创建时间短(不需要像进程一样创建那么多,只需要寄存器和栈),共享进程的资源
2、线程终止时间快,释放的资源少
3、同一个进程内线程切换速度比进程快,因为线程共享一个虚拟空间,也就是同一个进程的线程的页表一样,不需要切换页表这个开销
4、数据交互时候不需要经过内核,这就使得线程之间的数据交互效率更高

线程的上下文切换

线程是调度的基本单位,进程是资源拥有的基本单位

在这里插入图片描述
线程的上下文切换的是什么?
1、若不同进程的线程,则切换过程和进程上下文一样
2、若相同线程,虚拟内存共享,因此只切换寄存器,栈等信息,因此开销很小

线程的实现

1、用户线程:在用户空间实现的线程,不是内核管理的,用户态的线程库来管理的线程

2、内核线程:在内核中实现的线程,内核管理

3、轻量级线程:内核中支持用户线程

用户线程,内核线程存在一对一,多对一,一对多的关系

用户线程

用户线程是基于用户态的线程管理库来实现的,线程控制块TCB(Thread Control Block)也是库中实现的,操作系统看不到,只能看到PCB(进程控制块)
在这里插入图片描述
因此操作系统不直接参与线程的管理和调度。

内核线程

在这里插入图片描述

调度

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/ops/167835.html

相关文章

来源于延胡索的的亚甲二氧桥CYP450-文献精读120

Structure-function analysis of CYP719As involved in methylenedioxy bridge-formation in the biosynthesis of benzylisoquinoline alkaloids and its de novo production CYP719As 在苯基异喹啉生物碱合成中涉及亚甲二氧桥形成的结构-功能分析及其从头合成 摘要 苯基异喹…

19.哈希表的实现

1.哈希的概念 哈希(hash)⼜称散列,是⼀种组织数据的⽅式。从译名来看,有散乱排列的意思。本质就是通过哈希函数把关键字Key跟存储位置建⽴⼀个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进⾏快速查找。 1.2.直接定址法…

Day11 动态规划入门

动态规划 就是 : 给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法. 记忆化搜索 暴力dfs 记录答案 动态规划入门思…

蓝桥杯 握手问题

问题描述 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例,他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此…

ElementUI el-radio失效

我们在使用过程中,偶尔会遇到ElementUI el-radio失效,无法切换选中效果的情况。这个时候该如何解决呢?下面一起来看看吧! 使用 el-radio 标签,点击图中的【二级指标】没有反应,还是默认选中【一级指标】 可…

麒麟操作系统安装人大金仓数据库

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 在当前数字化转型和信息安全备受重视的背景下,众多公司积极推进国产化改造进程。在操作系统领域,统信、open 欧拉、中标麒麟、银河麒麟等国产操作系统崭露头角,逐…

3月21号

今天写了一些题: P1149 [NOIP 2008 提高组] 火柴棒等式 题目描述 给你 n 根火柴棍,你可以拼出多少个形如 ABC 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。用火柴棍拼数字 0∼9 的…

ADASIS V2 协议-2 消息详解

ADAS V2协议-2 消息详解 4 Messages(消息)4.1 ADASIS V2与CAN4.2 POSITION消息格式4.3 SEGMENT消息格式4.4 STUB消息格式4.5 PROFILE SHORT消息格式Profile Type 4.6 PROFIEL LONG消息格式Profile Type 4.7 META-DATA消息格式 4 Messages(消息…