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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 2.1 操作系统之进程 -> 正文阅读

[嵌入式]2.1 操作系统之进程

2.1.1 进程的定义、组成、组织方法、特征

程序:就是一个指令序列。
单道批处理时:

  • 此时内存中:程序段、数据段
  • 程序的代码放在程序段里,程序运行过程中处理的数据放在数据段里

在这里插入图片描述
进程的定义:
程序段,数据段,PCB三部分组成了进程实体(进程映像)。一般情况,我们把进程实体叫做进程,例如:所谓的创建进程,实质上是创建进程实体上的PCB,而撤销进程,实质上是撤销进程实体上的PCB

PCB是进程存在的唯一标志
在这里插入图片描述
进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位

严格来说,进程实体是静态的,进程是动态的
在这里插入图片描述
程序段和数据段:程序本身运行所需要的数据
PCB:进程的管理者(操作系统)所需要的数据


进程的组织

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


进程的特征:
在这里插入图片描述
在这里插入图片描述

2.1.2 进程的状态与转换

进程的三种基本状态:

  1. 运行态:占有CPU,并在CPU上运行。
    注意:单核处理机环境下,每一个时刻最多只有一个进程处于运行态。(双核环境下可以同时由两个进程处于运行态)
  2. 就绪态:已经具备运行条件,但由于没有空闲CPU,而暂时不能运行、
    即:万事俱备,只欠CPU
  3. 阻塞态(等待态):因等待某一事件而暂时不能运行。例如:等待操作系统分配打印机、等待读磁盘操作的结果。CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程所需要的资源分配到位,才能得到CPU的服务

另外两种状态:

  1. 创建态:进程正在被创建,操作系统为进程分配资源,初始化PCB
    2.终止态:进程正在从系统中撤销,操作系统会回收进程拥有的资源,撤销PCB

进程状态的转换:
在这里插入图片描述
在这里插入图片描述

2.1.3 进程控制

什么是进程控制:
进程控制就是要实现进程状态的转换
在这里插入图片描述
如何实现进程控制:
原语实现进程控制,原语的特点是不中断,一气呵成
这种不可中断的操作即原子操作
原语采用“开中断指令”和“关中断指令”实现
在这里插入图片描述
显然,关/开中断指令的权限非常大,必然是只允许在核心态下执行的特权指令

进程控制相关原语
进程控制会导致进程状态的转换,无论哪个原语,要做的事情无非就三种:

  1. 更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
  • 所有进程控制原语一定都会修改进程状态标志
  • 剥夺当前运行进程的CPU使用权必然需要保护其运行环境
  • 某进程开始运行前必然要恢复其运行环境
  1. 将PCB插入合适的队列
  2. 分配/回收资源
    在这里插入图片描述
    在这里插入图片描述

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

2.1.4 进程通信

什么是进程通信:进程之间的信息交互
进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立
为了保证安全,一个进程不能直接访问另一个进程的地址空间

  1. 共享存储
    在这里插入图片描述

  2. 管道通信
    在这里插入图片描述

  3. 消息传递
    在这里插入图片描述
    在这里插入图片描述

2.1.5线程概念和多线程模型

为什么要引入线程?
有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了线程,来增加程序地并发度。
一个进程可能含有多个线程
传统的进程是程序执行流的最小单位,而引入线程后,线程成为了程序执行流的最小单位
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)
在这里插入图片描述
线程的属性
在这里插入图片描述
线程的实现

  1. 用户级线程
    在这里插入图片描述
  2. 内核级线程
    在这里插入图片描述
    在这里插入图片描述
    多线程模型
  • 多对一模型:
    在这里插入图片描述
  • 一对一模型:
    在这里插入图片描述
  • 多对多模型:
    在这里插入图片描述
    在这里插入图片描述
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:07:25  更:2022-03-21 21:07:37 
 
开发: 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 6:37:39-

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