v05.01 百图画鸿蒙(进程状态) | 不是那么重要的`重要`状态 | 画出鸿蒙骨骼系统

Posted 鸿蒙内核源码分析

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了v05.01 百图画鸿蒙(进程状态) | 不是那么重要的`重要`状态 | 画出鸿蒙骨骼系统相关的知识,希望对你有一定的参考价值。

百图画鸿蒙 | 一图一主干

  • 如果把鸿蒙比作人,百图目的是要画出其骨骼系统。
  • 百图系列每张图都是心血之作,耗时甚大,能用一张就绝不用两张,所以会画的比较复杂,高清图会很大,可在公众号中回复 百图 获取3倍超高清最新图。v**.xx代表图的版本,请留意图的更新。
  • 本篇图为进程状态图,进程在运行过程中其状态是随着任务的状态不断的变化的,结构体中用了processStatus来记录状态,很有意思的是,用一个变量表示了两层逻辑 数量和状态,嵌入式设计真的有没有必要如此节省空间吗 ? 当进程中的多个任务处于多种状态时,进程会出现即处于运行状态又处于阻塞状态的情况,所以它不能作为很重要的逻辑判断,更多用作记录。
  • 讲真,在鸿蒙内核,进程的状态并不是那么重要,这可能会让人有些不可思议,而任务状态比它重要和复杂的多得多,内核的活跃分子是任务(task),在系列篇中已多次提及,但熟悉它十分有必要。

百文说内核 | 抓住主脉络

  • 百文相当于摸出内核的肌肉和器官系统,让人开始丰满有立体感,因是直接从注释源码起步,在加注释过程中,每每有心得处就整理,慢慢形成了以下文章。内容立足源码,常以生活场景打比方尽可能多的将内核知识点置入某种场景,具有画面感,容易理解记忆。说别人能听得懂的话很重要! 百篇博客绝不是百度教条式的在说一堆诘屈聱牙的概念,那没什么意思。更希望让内核变得栩栩如生,倍感亲切。
  • 与代码需不断debug一样,文章内容会存在不少错漏之处,请多包涵,但会反复修正,持续更新,v**.xx 代表文章序号和修改的次数,精雕细琢,言简意赅,力求打造精品内容。
  • 百文在 < 鸿蒙研究站 | 开源中国 | 博客园 | 51cto | csdn | 知乎 | 掘金 > 站点发布,公众号回复 百文 可方便阅读。

按功能模块:

前因后果基础工具加载运行进程管理
总目录
调度故事
内存主奴
源码注释
源码结构
静态站点
参考文档
双向链表
位图管理
用栈方式
定时器
原子操作
时间管理
ELF格式
ELF解析
静态链接
重定位
进程映像
进程管理
进程概念
Fork
特殊进程
进程回收
信号生产
信号消费
Shell编辑
Shell解析
编译构建进程通讯内存管理任务管理
编译环境
编译过程
环境脚本
构建工具
gn应用
忍者ninja
自旋锁
互斥锁
进程通讯
信号量
事件控制
消息队列
内存分配
内存管理
内存汇编
内存映射
内存规则
物理内存
时钟任务
任务调度
任务管理
调度队列
调度机制
线程概念
并发并行
CPU
系统调用
任务切换
文件系统硬件架构
文件概念
文件系统
索引节点
挂载目录
根文件系统
VFS
文件句柄
管道文件
汇编基础
汇编传参
工作模式
寄存器
异常接管
汇编汇总
中断切换
中断概念
中断管理
### 百万注源码处处扣细节
  • 百万汉字注解内核目的是要看清楚其毛细血管,细胞结构,等于在拿放大镜看内核。内核并不神秘,带着问题去源码中找答案是很容易上瘾的,你会发现很多文章对一些问题的解读是错误的,或者说不深刻难以自圆其说,你会慢慢形成自己新的解读,而新的解读又会碰到新的问题,如此层层递进,滚滚向前,拿着放大镜根本不愿意放手。

  • < gitee | github | coding | codechina > 四大码仓推送 | 同步官方源码,公众号中回复 百万 可方便阅读。

以上是关于v05.01 百图画鸿蒙(进程状态) | 不是那么重要的`重要`状态 | 画出鸿蒙骨骼系统的主要内容,如果未能解决你的问题,请参考以下文章

v04.02 百图画鸿蒙(任务状态) | 内核最重要的状态迁移过程 | 画出鸿蒙骨骼系统

v02.02 百图画鸿蒙(进程控制块) | 隔壁练腰的老王 | 画出鸿蒙骨骼系统

v02.02 百图画鸿蒙(进程控制块) | 隔壁练腰的老王 | 画出鸿蒙骨骼系统

v04.01 百图画鸿蒙(任务状态) | 让状态迁移过程一目了然 | 画出鸿蒙骨骼系统

v04.02 百图画鸿蒙(任务状态) | 内核最重要的状态迁移过程 | 画出鸿蒙骨骼系统

v02.02 百图画鸿蒙(进程控制块) | 系统资源管理的最小单元 | 画出鸿蒙骨骼系统