HarmonyOS 轻内核进程状态转换

简介: HarmonyOS 轻内核进程状态转换

从系统的角度看,进程是资源管理单元。进程可以使用或等待 CPU、使用内存空间等系统资源,并独立于其它进程运行。HarmonyOS 内核的进程模块可以给用户提供多个进程,实现了进程之间的切换和通信,帮助用户管理业务程序流程。这样用户可以将更多的精力投入到业务功能的实现中。

HarmonyOS 内核中的进程采用抢占式调度机制,支持时间片轮转调度方式和FIFO 调度机制。

HarmonyOS 内核的进程一共有 32 个优先级(0-31),用户进程可配置的优先级有 22 个(10-31),最高优先级为 10,最低优先级为 31。

高优先级的进程可抢占低优先级进程,低优先级进程必须在高优先级进程阻塞或结束后才能得到调度。

每一个用户态进程均拥有自己独立的进程空间,相互之间不可见,实现进程间隔离。

用户态根进程 Init 由内核态创建,其它用户态进程均由 Init 进程 fork 而来。

进程状态说明:

初始化(Init):该进程正在被创建。

• 就绪(Ready):该进程在就绪列表中,等待 CPU 调度。

• 运行(Running):该进程正在运行。

• 阻塞(Pend):该进程被阻塞挂起。本进程内所有的线程均被阻塞时,进程被

阻塞挂起。

• 僵尸态(Zombies):该进程运行结束,等待父进程回收其控制块资源。

状态转换说明:

Init→Ready:

进程创建或 fork 时,拿到该进程控制块后进入 Init 状态,处于进程初始化阶

段,当进程初始化完成将进程插入调度队列,此时进程进入就绪状态。


Ready→Running:

进程创建后进入就绪态,发生进程切换时,就绪列表中最高优先级的进程被执

行,从而进入运行态。若此时该进程中已无其它线程处于就绪态,则该进程从

就绪列表删除,只处于运行态;若此时该进程中还有其它线程处于就绪态,则

该进程依旧在就绪队列,此时进程的就绪态和运行态共存。


Running→Pend:

进程内所有的线程均处于阻塞态时,进程在最后一个线程转为阻塞态时,同步

进入阻塞态,然后发生进程切换。


Pend→Ready / Pend→Running:

阻塞进程内的任意线程恢复就绪态时,进程被加入到就绪队列,同步转为就绪

态,若此时发生进程切换,则进程状态由就绪态转为运行态。


Ready→Pend:

进程内的最后一个就绪态线程处于阻塞态时,进程从就绪列表中删除,进程由

就绪态转为阻塞态。


Running→Ready:

进程由运行态转为就绪态的情况有以下两种:


有更高优先级的进程创建或者恢复后,会发生进程调度,此刻就绪列表中最高优先级进程

变为运行态,那么原先运行的进程由运行态变为就绪态。

若进程的调度策略为 SCHED_RR,且存在同一优先级的另一个进程处于就绪态,则该进程

的时间片消耗光之后,该进程由运行态转为就绪态,另一个同优先级的进程由就绪态转为运行态。

Running→Zombies:

当进程的主线程或所有线程运行结束后,进程由运行态转为僵尸态,等待父进程回收资源。


相关文章
|
4月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
119 0
|
14天前
|
调度 虚拟化 容器
探索操作系统的心脏:内核与进程管理
【8月更文挑战第28天】在数字世界的复杂迷宫中,操作系统扮演着关键角色。它如同一座桥梁,连接硬件与软件,确保一切顺畅运行。本文将深入剖析操作系统的核心——内核和进程管理,揭示它们如何协同工作,保障系统的稳定与高效。通过简化的比喻,我们将一探究竟,了解操作系统背后的神秘面纱。
|
15天前
|
算法 安全 调度
揭秘操作系统的心脏:内核与进程管理
【8月更文挑战第27天】在数字世界的庞大机器中,操作系统扮演着至关重要的角色。本文将深入探讨操作系统的核心组件之一——内核,以及它是如何高效地管理和调度进程的。通过浅显易懂的语言和生动的比喻,我们将一起探索这一技术领域的奥秘,并了解其对整个计算生态的影响。无论你是技术新手还是资深爱好者,这篇文章都将为你打开一扇了解操作系统深层工作机制的大门。
|
20天前
|
存储 算法 调度
操作系统的心脏:内核与进程管理
【8月更文挑战第22天】本文将带你深入探索操作系统的核心——内核,以及它如何通过进程管理来维护系统的稳定运行。我们将从内核的基本概念出发,逐步揭示它在操作系统中的角色和功能,并探讨进程管理的重要性及其对系统性能的影响。文章将用通俗易懂的语言,深入浅出地分析内核与进程管理的相互作用,为你呈现一个清晰、条理化的操作系统内部世界。
|
29天前
|
算法 调度 UED
操作系统的心脏:内核与进程管理
在数字世界的宏伟建筑中,操作系统是那支撑起一切软件运行的基石。本文将深入浅出地探讨操作系统的核心—内核,以及它如何通过进程管理来协调计算机资源的使用。我们将从内核的定义和功能出发,逐步深入到进程的生命周期,以及调度算法的重要性,最终揭示这些机制如何影响我们日常使用的电子设备性能。
29 2
|
10天前
crash —— 查看进程的内核栈的内容
crash —— 查看进程的内核栈的内容
|
1月前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。
|
22天前
|
算法 数据处理 调度
操作系统的心脏:内核与进程管理
【8月更文挑战第21天】 本文以浅显的语言和生动的比喻,探索操作系统内核的奥秘和进程管理的机制。我们将从内核的角色出发,了解它如何协调计算机硬件与软件的交互,并深入进程的世界,揭示它们是如何被创建、调度和同步的。文章通过日常生活中的比喻帮助读者构建对这一复杂主题的直观理解,同时提供实用的知识,让每位用户都能更好地理解自己的电脑是如何运作的。
27 0
|
1月前
|
安全 调度 数据安全/隐私保护
探索操作系统的心脏:内核与进程管理
在数字世界的宏伟建筑中,操作系统扮演着基石的角色,而内核则是这座建筑的核心。本文将深入浅出地介绍操作系统内核的概念、功能及其在进程管理中的关键作用。我们将从内核的职责出发,逐步揭示它是如何协调和管理计算机系统中的资源,保证多任务环境下的高效运行。通过本文,你将了解内核的神秘面纱,并掌握进程管理的基本知识,为深入理解操作系统打下坚实的基础。
28 0
|
4月前
|
算法 Linux 调度
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
329 1
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程