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

[嵌入式]操作系统—进程管理

操作系统OS(Operating System)

  1. 用户与计算机硬件之间的接口
  2. 控制和管理计算机资源的软件

OS是一个分配者,分配的主体就是任务,就是一切硬件资源都需要找OS申请之后才能被授权使用。

在这里插入图片描述

程序 & 进程

程序

程序 = 指令 + 数据
程序是静态的,一般表现为一个或者一组文件

进程

什么是进程?
进程是动态的。

1.用户角度

进程是程序的一次执行过程,是程序在“运行阶段”的视角主体
一个程序,可以进行多次执行(表现为多个进程), 也可以“同时”执行(多个进程同时存在)

2.操作系统角度

进程是OS进行资源分配的基本单位

  1. OS的职责:分配任务
  2. 资源:被OS管理的硬件资源、软件资源
  3. 分配的单位:分配的时候,最多考虑到这一层级
  4. 基本:允许有更高层次的单位,但最小到这里

换言之,同一个进程中的资源是共享的,不同进程间的资源的隔离的。

总结
进程是动态过程
绑定着一个程序
允许同时存在
OS内部资源分配的最小实体

操作系统的职责

  1. 进程管理模块:主要负责进程的调度工作,主持不同进程在CPU运行的时间划分。
  2. 内存管理模块:主持内存空间的分配工作——进程通信问题。
  3. 文件管理模块:把硬盘上的数据抽象成文件。
    硬盘是最为主要的二级存储,重要的IO设备,OS进行硬盘上的数据协调
    OS一般不会直接去管理硬盘的数据,一般委托文件系统进行抽象管理
  4. 网络管理模块
  5. 其他硬件——以文件驱动的形式进行管理——驱动管理

进程管理

进程管理 / 进程调度, 负责CPU的分配。
以时间线作为主轴去理解
以指令去执行

要做好进程调度我们面临的问题

1.进程控制块抽象(PCB)

Process Control Block

计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。
在Java中,我们可以通过类 / 对象来描述这一特征。

class PCB {
	1.进程的唯一标识,pid
	2.进程关联的程序信息
		a.哪个用户启动的
		b.进程工作目录
		c.什么时候开始的,什么时候结束的
	3.分配给该资源使用的各个资源
	4.调度是用到的信息
}

这样,每一个PCB对象都代表着一个实实在在运行着的程序,即进程。
操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,方便管理时进行增删改查的操作。

2.细化进程

通过对进程做状态划分,来区分处于不同情况下的进程状态

  • 新建,进程处于正在创建中
  • 就绪,进程已经获得了除CPU以外的所有所需资源,等待分配CPU资源
  • 运行,进程的指令在CPU中运行着
  • 阻塞,进程由于等待外部条件无法继续
  • 结束,进程的所有指令执行结束,但PCB暂时保留,OS还需要做一些其他工作

在这里插入图片描述

3.如何选择进程上CPU

在就绪队列中,应该选择哪个进程上CPU?
需要保证公平性、要有消息、要让更紧急的任务先被处理、低成本

  1. 先来先服务
  2. 优先级划分(进程PCB中需要管理一个优先级属性)
  3. 短作业优先级

4.OS什么时候会介入进程调度

——选择一个新的进程,进行CPU分配

  1. 一个新的进程刚处于就绪状态时,当该进程优先级较高时——抢占式(实时)
  2. 运行状态的进程 -> 结束,一个进程结束了
  3. OS每隔一段时间,会调度一次:进程的时间片耗尽
  4. 进程主动放弃CPU:
    运行 -> 阻塞
    运行 -> 就绪

5.OS具体进程切换

通过上下文切换 —— 保护上一个进程的上下文 + 恢复下一个进程的上下文(Context)
上下文指的是:以PC寄存器所代表的一组寄存器中的值
保护上下文:把寄存器中的值保存在内存中的某个位置
恢复上下文:把内存中之前保存的值写入寄存器中

在这里插入图片描述

谢谢浏览

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/14 17:50:50-

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