进程的状态转换

news/2024/11/15 3:33:21/

进程的状态模型有三种,从最简单的说起,方便理解。重点是哪些状态可以经由哪些状态到达,以及三种模型之间多了什么状态

三状态进程模型

  • 运行态:进程正在运行,进程除了获得CPU之外还获得其他资源。
  • 就绪态:进程等待运行,进程除了没有获得CPU之外,其他资源都获取了。
  • 阻塞态:进程发生阻塞,进程不管CPU是否获得,但其他资源没有获得,导致不具备运行条件发生阻塞

五进程状态

  

在三态模型的基础上增加了新建态(new)终止态(exit)

  • 新建态:对应于进程被创建时的状态,尚未进入就绪队列。 创建一个进程需要通过两个步骤: 1.为新进程分配所需要的资源和建立必要的管理信息。 2.设置该进程为就绪态,并等待被调度执行。
  • 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。 处于终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统中消失。 终止一个进程需要两个步骤: 1.先等待操作系统或相关的进程进行善后处理(如抽取信息)。 2.然后回收占用的资源并被系统删除。

进程状态的转换如下:

  1. 新建状态(New) -> 就绪状态(Ready):当进程被创建后,它会进入就绪状态,等待CPU资源。

  2. 就绪状态(Ready) -> 运行状态(Running):当CPU资源可用时,操作系统会将一个就绪状态的进程调度到CPU上运行。

  3. 运行状态(Running) -> 就绪状态(Ready):当进程的CPU时间片用完或者进程主动释放CPU时,进程会回到就绪状态,等待下一次CPU调度。

  4. 运行状态(Running) -> 阻塞状态(Blocked):当进程需要等待某个事件完成时,进程会进入阻塞状态,等待事件完成。

  5. 阻塞状态(Blocked) -> 就绪状态(Ready):当进程所等待的事件完成后,它会回到就绪状态,等待CPU调度。

  6. 运行状态(Running) -> 终止状态(Terminated):当进程完成了它的任务,或者被操作系统终止时,它会进入终止状态。

有些状态无法达到,比如说一个已经处于终止状态的进程无法回到就绪状态或者运行状态,因为它已经完成了它的任务,不再需要占用CPU资源。同样,一个进程如果没有被创建,也就无法处于其他任何状态。

七进程状态

七态模型在五态模型的基础上增加了就绪挂起态(ready suspend),阻塞挂起态(blocked suspend)

  • 就绪挂起态 / 挂起就绪态:进程具备运行条件,但目前在外存中,只有它被对换到内存才能被调度执行。
  • 阻塞挂起态 / 挂起等待态:表明进程正在等待某一个事件发生且在外存中。

http://www.ppmy.cn/news/41090.html

相关文章

《计算机网络——自顶向下方法》精炼——1.4到1.7

三更灯火五更鸡,努力学习永不止。无惧困难与挑战,砥砺前行向成功。 文章目录引言正文时延排队时延吞吐量协议层次,服务模型(重点)封装(重点)网络安全(选看)恶意软件的分类…

【创建者模式】工厂模式

文章目录1、概述2、简单工厂模式2.1、介绍2.2、结构2.3、具体实现3、工厂方法模式3.1、介绍3.2、结构3.3、具体实现4、抽象工厂模式4.1、介绍4.2、结构4.3、具体实现4.4、适用场景5、简单工厂模式改进5.1、介绍5.2、具体实现6、JDK中的迭代器1、概述 根据百科的定义&#xff0…

【第0篇】从0-1自建个人博客系统【web端,admin管理端,express后端,Nginx部署】--vue3技术 reac+hook技术 umi4

【第0篇】从0-1自建个人博客系统【web端,admin管理端,后端】 文章完整地址:http://huxunxun.top/lookArtical?artical_id18 【序言】 我是一个微小的前端开发工程师。 我本不应该是一个前端开发的,我大学学的是计算机科学与技术…

天选姬 - 桌面宠物

天选姬 - 桌面宠物前言下载使用更新设置右键菜单人机交互系统状态闹钟壁纸前言 桌面宠物顾名思义指在电脑桌面的宠物,可以是各种动物或Q版人物。可以进行交互并拥有各种各样的功能,本文介绍一款适用于各种电脑的桌面宠物,天选姬,…

记录-html-docs-js避坑指南

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 我们公司目前在做基于tiptap的在线协同文档,最近需要做导出 pdf、word 需求。 导出 word 文档使用的是html-docx-js-typescript,是用 typescript 重写了一下html-docx-js&…

ffmpeg的滤镜

FFmpeg 是一款开源的跨平台音视频处理工具,它提供了众多功能强大的滤镜用于视频/音频的加工处理。其中,滤镜(Filter)是 FFmpeg 中一个十分重要且常用的组件,它们可以实现对视频和音频的各种操作和变化,如转码、编解码、剪裁、裁剪…

深入探究Hugging Face中的BertModel类

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

4.9(预习)部分

LoadLibraryA GetProcAddress 编写代码&#xff0c;获取 VirtualAlloc 并且调用成功 #include <windows.h> #include <wchar.h> #include <string.h> #include <stdio.h> #include<libloaderapi.h> int main() {HMODULE hModule0;FARPROC space…