IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 操作系统中的进程管理知识 -> 正文阅读

[嵌入式]操作系统中的进程管理知识

一、什么是进程
进程是调度资源的独立单位。说白了就是对资源进行管理。一个进程里又有一个或多个线程。线程是处理器调度的基本单位。
举个例子,我们打开一个QQ,算打开一个进程。那么QQ里有很多任务要进行,这些任务叫做线程,在一个进程里可以多条线程(多条任务)并发处理。

进程=程序+数据+PCB( process control block 程序控制块)

其中PCB是用来存放进程的状态信息的,当进程中断时通过查看PCB上一次的状态,回到上一次的状态,继续执行。

二、进程的状态
进程的状态可以分为三状态、五状态、七状态。状态越多,越复杂。
**

三状态:就绪 运行 阻塞

**
如下图所示:在这里插入图片描述

当进程被创建以后,获取运行需要的资源,变成就绪状态。当CPU调度该进程时,变成运行状态。当分为该该进程的运行时间片结束以后,回到就绪状态,等待下一次被CPU调度。当运行状态遇到IO请求或者其他原因中断时,进程的状态变成阻塞状态。当IO完成后,进程回到就绪状态。

五状态:创建 就绪 运行 阻塞 终止

创建状态:已知进程创建需要先申请一个空白PCB,并向PCB中写入控制和管理进程的信息,然后为该进程分配运行时所必须的资源,最后,把该进程转入就绪状态并插入就绪队列之中。但如果进程所需的资源尚不能得到满足,比如系统尚无足够的内存使进程装入其中,此时创建工不工作尚未完成,进程不能被运行调度,于是把此时进程所处的状态称为创建状态。(注意:创建状态和阻塞状态不同)

终止状态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态。进入终止状态额进程以后不能再执行,但在操作系统中仍然保留一个记录,其中保存状态码和一些计时统计数据,供其他进程收集。一旦其他进程完成了对其信息的提取之后,操作系统将删除该进程,即将其PCB清零,并将该空白PCB返还系统。

具体五状态转换图,如下图所示:
在这里插入图片描述

注意,任何状态都可以直接释放,到终止状态。(可以因为各种原因导致该进程结束)

七状态:创建 就绪 运行 阻塞 终止 就绪挂起 阻塞挂起

在这里插入图片描述
比较复杂,解释一下挂起的概念
挂起:把进程或者程序/数据从内存移到外存
解除挂起(激活):把进程或者程序/数据从外存移到内存
挂起的目的是在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的状态。
因为有了挂起的概念,所以有了就绪挂起和阻塞挂起的概念。一个是就绪状态对挂起,一个是阻塞状态被挂起。

引起挂起状态的原因有如下几方面:
  (1)终端用户的请求。当终端用户在自己的程序运行期间发现有可疑问题时,希望暂停使自己的程序静止下来。亦即,使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改。我们把这种静止状态称为“挂起状态”。
  (2)父进程的请求。有时父进程希望挂起自己的某个子进程,以便考察和修改子进程,或者协调各子进程间的活动。
  (3)负荷调节的需要。当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。
  (4)操作系统的需要。操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

PCB包含哪些内容?
参考这篇博客

面试题:PCB包括哪些内容
https://blog.csdn.net/xiuxiuxiuyuan/article/details/79189564

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 16:02:04  更:2021-11-15 16:04:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:26:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码