【OS】2.1.2 进程的状态与转换_进程的组织

Blog's 主页: 白乐天_ξ( ✿>◡❛)

🌈 个人Motto:他强任他强,清风拂山冈!

🔥 所属专栏:C++深入学习笔记

💫 欢迎来到我的学习笔记!

一、进程的状态

1.1.创建态

......的同时正在创建进程,这就是创建态。在创建态中,操作系统会为进程分配资源、初始化PCB。创建态又叫做"新建态"。

1.2.就绪态

创建完的进程会进入就绪态,此时它已经具备运行条件,但是由于没有空闲的CPu,就暂时无法运行。

1.3.运行态

系统中不只有一个进程处于"就绪态"。CPU空闲时就会任选一个进程上机运行,此时该进程处于"运行态",CPU就会执行该进程对应的程序(执行指令序列)。

1.4.阻塞态

正在运行中的进程可能会请求某个事件的发生(比如等待某种系统资源的分配或者等待其他进程响应)。在这个时间发生之前,该进程无法继续往下执行,此时操作系统就会让这个进程下CPU,让它进入"阻塞态"。

等待的事件发生后,该进程就会从"阻塞态"转换为"就绪态",此时进程就会拥有再次上机运行的能力。

"阻塞态"又叫做"等待态"。

1.5.终止态

一个进程可以执行exit系统调用,请求操作系统终止该进程,此时进程就进入"终止态"。操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。

终止态又叫做结束态。

二、进程状态的转换(进程五状态模型)

三、进程的组织

3.1.链接方式

  1. 按照进程的状态将PCB分为多个队列;
  2. 操作系统持有指向各个队列的指针。

3.2.索引方式

  1. 根据进程状态的不同,建立几张索引表;
  2. 操作系统持有指向各个索引表的指针。
相关推荐
小宇子2B2 小时前
三、内核入口 el0_svc / entry_SYSCALL_64 的汇编做了什么——从异常向量到 C 函数
操作系统
小宇子2B17 小时前
四、从 write(1, "hello", 5) 到 ksys_write() —— sys_call_table 怎么路由的
操作系统
小宇子2B17 小时前
一、printf("hello") 怎么变成 write(1, "hello", 5) —— libc 的 stdout 缓冲机制
操作系统
小宇子2B6 天前
一个 pthread_mutex_lock() 到底锁了什么——从用户态 CAS 到内核调度
操作系统
LinXunFeng7 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
小宇子2B7 天前
多线程 malloc 为什么会变慢——glibc 的 arena 到 bins 全景
操作系统
闪闪发亮的小星星11 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq11 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
阿米亚波11 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.11 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding