【愚公系列】软考中级-软件设计师 025-操作系统(进程管理-状态管理和前趋图)
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
操作系统中的进程是指正在运行的程序的实例。每个进程都有自己的地址空间、数据和代码。进程是操作系统进行资源分配和调度的基本单位。
每个进程都由操作系统维护,并被分配一个唯一的进程标识符(PID)。操作系统利用进程控制块(PCB)来记录和管理各个进程的状态信息,包括进程的优先级、执行状态、寄存器值、分配给进程的资源等。
操作系统通过调度算法来决定进程的运行顺序。调度算法可以根据进程的优先级、时间片轮转、最短作业优先等策略来进行选择。
进程可以通过进程间通信(IPC)来进行相互之间的数据交换和协作。常见的进程间通信机制包括管道、消息队列、共享内存和信号量等。
进程可以存在多个状态,包括运行态、就绪态、阻塞态等。进程可以通过系统调用来进行状态的转换和操作,比如创建新的进程、终止进程、挂起和恢复进程等。
操作系统中的进程管理功能包括进程的创建、终止、调度、同步和通信等。进程的管理和调度是操作系统的重要任务,它能够提高系统的资源利用率和系统的响应速度。
🚀一、进程管理-状态管理和前趋图
🔎1.进程的组成和状态
🦋1.1 概念
进程是计算机中正在运行的程序的实例。它是操作系统进行资源分配和管理的基本单位,包括代码、数据和执行状态等信息。
🦋1.2 组成
进程是计算机系统中执行中的一个独立单位,它是由程序、数据和程序控制块组成的。
-
程序:进程包含了一个要执行的程序或指令集合,它以二进制形式存储在计算机的存储器中。程序定义了进程要执行的操作和计算步骤。
-
数据:进程在执行过程中需要使用的数据存储在进程的数据区中。数据可以是输入数据、输出数据、中间计算结果等。
-
程序控制块(PCB):PCB是进程的管理数据结构,它包含了进程的各种属性和状态信息,如进程标识符、进程状态、程序计数器、寄存器值、优先级、资源分配情况等。PCB的作用是管理和控制进程的执行,系统通过操作PCB来切换和调度进程。
不同的操作系统和编程语言可能会有一些差异。此外,进程还可能包含其他组件,如堆栈区、文件描述符等,用于支持进程的执行和交互。
🦋1.3 状态
进程的三态图和五态图是用来描述进程状态的图形化表示方式。
进程的三态图是指包含三个状态的图,分别是就绪态、运行态和阻塞态。就绪态表示进程已经准备好运行,等待CPU分配时间片;运行态表示进程正在执行;阻塞态表示进程由于某些原因无法继续执行,需要等待某些事件的发生。
进程的五态图是在三态图的基础上增加了两个状态,分别是创建态和终止态。创建态表示进程正在被创建,尚未开始执行;终止态表示进程已经执行完毕,即将被销毁。创建态和终止态是进程的生命周期的两个重要阶段。
🔎2.前趋图
进程的前趋图(Precedence Graph)是用于表示和描述进程之间的依赖关系的图形化工具。它描述了进程之间的先后顺序和执行的依赖关系。前趋图用于解决并发系统中进程调度和同步问题。
在前趋图中,每个进程表示为一个节点,节点之间的有向边表示进程之间的依赖关系。如果进程 A 必须在进程 B 之前执行,那么就会在 A 的节点到 B 的节点之间画一条有向边。这样,前趋图就能清楚地显示出进程之间的执行顺序和依赖关系。
通过观察前趋图,可以确定出一些关键路径和并发路径,从而做出合理的进程调度和同步策略。前趋图也可以用于识别潜在的死锁和资源竞争问题,帮助进行系统调优和性能优化。
进程的前趋图是一个有向图,用于表示和描述进程之间的依赖关系和执行顺序。它是并发系统中的重要工具,用于解决进程调度和同步问题。
ABC可以并行执行,但是必须ABC都执行完后,才能执行D,这就确定了两点:任务间的并
行、任务间的先后顺序。
🔎3.进程资源图
进程资源图是一种描述进程所需资源和资源分配情况的图形表示方法。它通常以矩形框表示进程,矩形框内部显示进程的标识符或名称,外部显示进程所需的各种资源。资源以箭头表示,箭头的方向表示资源的请求方向,箭头的粗细表示资源的数量或权重。进程资源图可以帮助我们直观地了解进程之间的资源需求和资源分配情况,有助于进行资源管理和优化,防止资源竞争和死锁等问题的发生。
P代表进程,R代表资源,R方框中有几个圆球就表示有几个这种资源,在图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。
- 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续。如上图中P2。
- 非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3。当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)