【操作系统原理-陈渝老师】第七章 进程与线程

本文深入探讨了操作系统的进程管理,包括进程的定义、组成、特点和控制结构,详细阐述了进程状态模型、生命期管理以及挂起状态。同时,介绍了线程的概念、优势、实现方式和线程与进程的区别。内容覆盖了用户线程、内核线程以及它们在操作系统中的管理机制。

目录

0.总览

1.进程描述

1.1 进程的定义

1.2 进程的组成&进程与程序的比较

1.3 进程的特点

1.4 进程控制结构

2.进程管理

2.1 进程的生命期管理

2.2 进程状态模型

2.2.1 进程状态变化模型

2.2.2 进程状态变化图

2.2.3 进程可能的状态变化

2.3 进程挂起

2.3.1 什么是进程挂起

2.3.2 挂起的状态

2.3.3 与挂起相关的状态转化

2.3.4 操作系统如何管理PCB实现进程的调度

3.进程小结

4.线程

4.1 为什么使用线程

4.2 什么是线程

4.3 线程的实现

4.3.1 三种线程的实现方式

4.3.2 用户线程与内核线程的对应关系

4.3.3 用户线程的实现

4.3.4 内核线程的实现

4.3.5 轻量级进程的实现


0.总览

1.进程描述

1.1 进程的定义

1.2 进程的组成&进程与程序的比较

1.3 进程的特点

1.4 进程控制结构

不同功能的操作系统的进程控制块的组织方式可能不一样.
链表适合频繁进程创建结束的操作系统,如果有特殊需求,可以有不同的组织方案.

2.进程管理

2.1 进程的生命期管理

最开始操作系统初始创建第一个进程,叫做init进程,这个进程再负责创建其他新的进程.
什么时候创建新的进程呢?
是用户在向操作系统发出请求之后会创建新的进程.
另外正在运行的进程执行创建进程的系统调用也会创建新的进程.

查看systemd这个程序是干啥的.

有多个就绪进程的时候什么时候选择,如何选择与后面要介绍的调度算法有关.

'

忙等待浪费的是CPU资源.
进程的等待是放弃CPU资源给别的进程使用.
等待也可以称为阻塞,比如说将内容从硬盘中读到内存中,这个过程相对于CPU的执行速度来说很慢,如果
让CPU执行忙等待是很浪费CPU资源的,这时候就需要CPU等待起来,让其他就绪的进程执行,它自身等待操
作系统把文件读到内存中去.
其次,需要和其他进程协同完成某个工作,如果其他进程没有执行,它无法执行的话,这也需要等待.
再次,需要的数据没有到达.

进程由于某种原因不得不等待的话,操作系统将会把进程从运行态变到等待状态,一旦编程等待状态就不会占用CPU了.


课后查询:忙等待与等待之间的关系?

2.2 进程状态模型

2.2.1 进程状态变化模型

2.2.2 进程状态变化图

2.2.3 进程可能的状态变化

不会持续很久,这里只是完成一个PCB的初始化过程.

2.3 进程挂起

2.3.1 什么是进程挂起

2.3.2 挂起的状态

2.3.3 与挂起相关的状态转化

 

2.3.4 操作系统如何管理PCB实现进程的调度

3.进程小结

4.线程

4.1 为什么使用线程

4.2 什么是线程

线程控制段TCB中包含的内容:
1.PC--程序计数器;
2.SP--堆栈
3.State--
4.Regiseters--寄存器信息
...

早期MS-DOS支持单进程;
早期UNIX多进程单线程模式;
现在Windows-NT和Linux支持多进程且在单进程中有多线程的模式.

线程有独立的寄存器和堆栈,独立的堆栈能给线程一个相对独立的控制流.
共享代码段,数据,打开的文件及网络数据等.
线程有自己独占的资源和与其他线程共享的资源.

高性能计算时强调性能,代码相对统一,用线程比较好, 如天气预报,空气动力学的计算等,
也不容易出现错误.
之前的浏览器有些使用的是多线程,现在有的比如说chrome用的是多进程,早期可能注重资源的
节省,现在更注重安全.

为什么同一进程内的线程切换时间比进程短?
与内存管理相关,因为同一进程中的线程有同一个地址空间,有同一个进程的页表,切换的时候
不需要切换内存管理所需要的的页表,所有信息可以重用,但对进程而言,切换进程,需要切换页
表,这个代价是比较大的,许多cache和tlb等硬件信息都会无效,需要重新加载.

4.3 线程的实现

4.3.1 三种线程的实现方式

线程的分类:
用户线程
内核线程
轻量级进程



用户线程操作系统是看不见的,那么用户线程是由谁来管理呢?
是由应用程序的库来管理,有专门的应用线程库来实现用户线程的管理.

内核线程有操作系统自己来管理.

4.3.2 用户线程与内核线程的对应关系

4.3.3 用户线程的实现

4.3.4 内核线程的实现

4.3.5 轻量级进程的实现

有点晕...
Linux中有哪些种类的线程?
晕啥?Linux中既有内核线程也有用户线程啊
不过轻量级进程还需要再研究一下.

 

基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理实现方法;②学习如何在STM32平台上进行电机控制算法的移植优化;③为开发高性能、低成本的电机驱动系统提供技术参考实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值