【操作系统】2.1.2 进程的状态与转换、进程的组织

简介: 【操作系统】2.1.2 进程的状态与转换、进程的组织

@[toc]

1进程的状态

:ice_cream:创建态:进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源,初始化PCB

:jack_o_lantern:就绪态:当进程创建完成之后,便进入“就绪态”,处于就绪态的进程以及具备运行条件,但如果没有空闲CPU的话,就暂时不能运行。

image-20220721184624881

:bread:运行态:当CPU空闲时,操作系统就回选择一个就绪进程,让它上CPU运行。在CPU运行的进程就处于运行态。CPU会执行该进程对应的程序。

image-20220721184939406

:apple: 阻塞态:如果正在运行的程序想要请求某个时间的发生(如等待系统资源的分配,或者等待其他进程的响应),就不会在进行下去,而是转为阻塞状态。此时CPU就可以选择一个就绪态的进程上CPU执行。如果阻塞态想要请求的那个时间发生了,那么操作系统就会把这个进程转回就绪态。

image-20220721185914031

:banana:终止态:一个进程可以执行exit系统调用,请求操作系统终止该进程,此时该进程会进入”终止态“,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收进程的PCB,当终止进程的工作完成之后,这个进程就彻底消失了。(我挥一挥衣袖,不带走一片云彩)

image-20220721190310650

2.进程状态的转换

如下图:

image-20220721193313957

进程PCB中,会有一个变量state来表示进程的当前状态,如1表示创建态,2表示就绪态...(这让了想起了算法里的状态机)为了对同一个状态下的各个进程进行一个统一的管理,操作系统会将各个进程的PCB组织起来。那怎么组织呢?(数据结构)

image-20220721193530875

3.进程的组织

:leaves:链表方式

image-20220721194501790

:christmas_tree:索引方式

image-20220721194553848

总结

image-20220721194646267

相关文章
|
3天前
|
算法 调度 UED
探索操作系统中的进程调度:理论与实践
【9月更文挑战第24天】 在数字世界的心脏跳动着的是操作系统,它像一位精明的指挥家,精心安排每个音符的演奏。本文将带你进入操作系统的内核,一探进程调度的秘密。我们将从简单的批处理系统谈起,穿越时间隧道,见证现代多道程序设计系统的复杂性与优雅。你将看到代码如何赋予理论以生命,理解调度算法背后的哲理。让我们一起跟随甘地的指引,成为我们希望在世界上看到的改变。
|
7天前
|
算法 Linux 调度
探索操作系统的心脏:进程调度机制
【9月更文挑战第20天】在数字世界的每一次跳动中,有一个看不见的手在默默掌控着节奏,它就是操作系统中的进程调度。本文将带你深入了解这个隐藏在计算机背后的指挥家,揭示它是如何在多任务环境中确保公平与效率并存的。通过浅显易懂的语言和生动的比喻,我们将一同揭开进程调度的神秘面纱,让你对计算机的工作原理有一个全新的认识。
|
2天前
|
存储 算法 前端开发
深入理解操作系统:进程调度与优先级队列算法
【9月更文挑战第25天】在操作系统的复杂世界中,进程调度是维持系统稳定运行的核心机制之一。本文将深入探讨进程调度的基本概念,分析不同的进程调度算法,并着重介绍优先级队列算法的原理和实现。通过简洁明了的语言,我们将一起探索如何优化进程调度,提高操作系统的效率和响应速度。无论你是计算机科学的初学者还是希望深化理解的专业人士,这篇文章都将为你提供有价值的见解。
|
5天前
|
算法 Unix 调度
探索操作系统的心脏:进程管理与调度
【9月更文挑战第22天】在数字世界的复杂迷宫中,操作系统(OS)是指引路径的明灯。本文深入探讨了操作系统的核心功能——进程管理和调度机制,揭示了它们如何确保多任务同时流畅运行。通过比喻和简化的解释,我们将解码进程生命周期的奥秘,并理解调度算法如何在公平性和效率间取得平衡。无论你是技术新手还是资深开发者,这篇文章都将带给你新的视角和深刻的见解。
|
7天前
|
算法 Unix Linux
深入理解操作系统:进程管理与调度
【9月更文挑战第20天】在探索计算机科学的核心,我们不可避免地会遇到操作系统——这一复杂而精妙的软件系统。本文将深入剖析操作系统的关键组成部分之一:进程管理与调度。我们将通过浅显易懂的语言和直观的代码示例,逐步解开进程生命周期的奥秘,并探讨如何高效地进行进程调度。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供新的视角和深入的理解。
33 13
|
6天前
|
算法 调度
深入理解操作系统:进程调度与优先级反转
【9月更文挑战第21天】在操作系统的心脏跳动着的,是进程调度器。它决定了哪个进程运行,何时运行,以及如何优雅地共享CPU资源。本文将通过浅显易懂的语言和直观的代码示例,探索进程调度的奥秘,揭示优先级反转问题及其解决方案,带领读者领略操作系统中这一精妙绝伦的设计。
|
3天前
|
人工智能 Kubernetes 算法
探究操作系统的心脏——进程管理机制
本文深入探讨了操作系统核心组件之一——进程管理机制。进程管理作为操作系统的基础功能,负责协调和控制计算机系统内运行的所有进程,确保系统资源的有效分配与利用。通过详细介绍进程的定义、状态转换、调度算法以及多线程技术等关键概念,本文揭示了进程管理如何支撑起整个操作系统的运行框架,并保障用户任务的顺利执行。同时,文章还讨论了现代操作系统在进程管理方面的创新与挑战,为读者提供了一个全面而深入的理解视角。
11 1
|
8天前
|
监控 算法 程序员
探索操作系统的核心:进程管理与调度
【9月更文挑战第19天】本文深入浅出地探讨了操作系统中至关重要的一环——进程管理与调度。通过直观的语言和生动的案例,我们将了解进程是什么,它们如何被操作系统所管理,以及调度算法对系统性能的影响。文章旨在为读者揭示操作系统背后的秘密,同时提供实用的代码示例来加深理解。无论你是计算机专业的学生还是对操作系统有兴趣的程序员,这篇文章都将为你打开新世界的大门。
|
7天前
|
消息中间件 安全 云计算
操作系统中的进程间通信
本文将深入探讨现代操作系统中进程间通信(IPC)的机制与实现。我们将从基本原理开始,逐步解析管道、信号量、共享内存及消息队列等主要技术的原理和应用。通过实际案例,我们还将展示这些技术在真实系统中的应用效果和性能表现。
|
9天前
|
算法 调度 开发者
深入理解操作系统的进程调度策略
【9月更文挑战第18天】本文将通过浅显易懂的方式,带你深入了解和掌握操作系统中一个至关重要的概念——进程调度。我们将从基础概念出发,逐步探讨进程调度的策略、算法及其在操作系统中的实现方式。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇通往操作系统深层知识的大门,让你对进程调度有更深刻的理解和认识。
15 3