2.1操作系统-进程管理:进程基本概念、进程与程序、进程与线程、进程的状态、进程三态模型、进程五态模型

news2025/2/24 4:48:54

2.1操作系统-进程管理:进程基本概念、进程与程序、进程与线程、进程的状态、进程三态模型、进程五态模型

  • 进程基本概念
  • 进程与程序
  • 进程与线程
  • 进程的状态
    • 进程三态模型
    • 进程五态模型

进程基本概念

进程是程序在一个数据集合上运行的过程(运行的过程,是动态的),它是系统进行资源分配和调度的一个独立单位。它有程序块、进程控制块(PCB)和数据块三部分组成。

PCB:PCB是进程存在的唯一标志。内容包含进程标识符、状态、位置信息、控制信息、队列指针(它会由队列的形式来链接同一状态的进程,然后以索引的方式指向这个队列)、优先级(记录进程的优先级,在调度的过程当中,可以有按优先级调度的算法)、现场保护区等。

进程与程序

进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程,一定是先有程序,程序执行起来才有进程。

程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。

进程与线程

进程的两个基本属性:可拥有资源的独立单位;可独立调度和分配资源的资本单位。

而线程仅仅可以被独立调度,其余属性都没有。多个线程在某些情况下是可以共享一些信息和资源的。
请添加图片描述

进程的状态

软考中这进程状态分为大致两种模型,不考虑挂起的三态模型,考虑挂起的五态模型。三态模型、五态模型这两种都是考虑进程运行之后,是不会被其他进程来抢占的,也就是非抢占式的CPU调度过程

进程三态模型

三态模型是进程状态的基础,它将整个进程运行过程中分成阻塞、就绪、运行三种状态。需要注意的是:阻塞态不能直接回到运行态,就绪态也不能直接到阻塞态。

请添加图片描述

三态模型的划分依据是:它会将CPU和其它资源进行归类,进程是资源分配和调度的基本单位,调度的情况是由CPU来调度进程的,除CPU之外,还有一些其它资源,这样将资源分成了两大类,一类是CPU资源,一类是其它资源,相比而言,CPU资源更为重要和珍贵。所以划分进程状态的时候,会根据资源状态的情况来进行划分。

运行状态:当所有资源都具备(即CPU资源和其它资源都OK了)的情况下,我们认为进程被CPU调度了,调度的过程就会进入运行状态。

就绪状态:当非CPU资源就绪了,只剩CPU资源没有就绪,我们认为进程进入就绪状态。就绪状态什么时候进入运行状态?等到CPU调度它就会进入运行状态。

运行状态→就绪状态→运行状态:运行状态的进程什么时候会缺失CPU资源?我们认为一个进程不会长时间占据所有CPU资源,我们会把CPU它的使用时间划分成一些小的片段,分发出去,那分发的时间片,一个进程用完自己的时间片的时候,会回到就绪队列去排队,等着下一次的调度。

阻塞状态:当CPU资源不足,非CPU资源也不足就认为该进程进入阻塞状态,或者叫做等待状态。这种情况下,它需要等待某个资源,我们会把它描述为“在等待某个事件的情况下,它是处于等待或阻塞状态的”,而等待的这个事件发生之后,它就会进入就绪状态。那么是否存在CPU资源有了,非CPU没有准备就绪的情况?这种情况是不做考虑的。因为CPU资源是非常珍贵的资源,在其它条件满足之前,是不会考虑将CPU分配给它的,所以会发现阻塞态没有反向进入运行态的过程,包括已经进入就绪态的进程,一般它的资源也不会被其它阻塞进程抢占走。

三态模型,举个例子:

就绪状态→运行状态→就绪状态:进程去医院看病,医生的诊断是最重要的,可以看成是CPU,但是并不是进程去了就可以直接找医生问诊了,得预约、挂号,然后排队等待医生叫号,等待医生叫号。这个过程可以看成进程是就绪状态。医生叫号到进程,进程进入运行状态。在计算机中,还需要考虑单个进程长时间执行不完(该进程分配的时间片已用完,但还未执行完),会被CPU剔出,重新回到就绪状态排队等待CPU下一次调度的情况。

运行状态→阻塞状态→就绪状态:医生叫号,叫到进程,进程进入运行状态;然后医生开始诊断进程,抽血化验、拍片等检查你先做一下,出结果了再来复诊,此时进程的结果没出来,需要等待各项检查结果打印出来,这个等待的过程进程处于阻塞或等待状态;结果出来了,打印好了,去找医生复诊,到前台再次取号排队,等待医生叫号,进入就绪状态

进程五态模型

在三态模型基础上,会衍生出其它模型,比如五态模型、七态模型,甚至五态模型也有多种形式。软考中涉及比较多的是挂起形成的五态模型。

挂起所考虑的是内存的问题,进程创建比较多的时候,系统资源,尤其是内存资源可能无法满足进程运行的要求。比如:春运的时候,火车站人特别多,会要求开车前两小时内的人开始进站候车检票,其他人在外面。这个过程就是内存资源不足的时候将某些进程挂起,放到磁盘兑换区里面,暂时不参与调度,这个挂起的过程,可以理解为从内存放到磁盘的过程。

请添加图片描述

哪些状态有挂起呢?在三态模型的基础上,运行态、就绪态、阻塞态都可以挂起,挂起的结果不一样。阻塞状态挂起前叫活跃阻塞,挂起后叫静止阻塞,静止之后的阻塞状态,必须恢复或激活才能恢复到达活跃状态,活跃状态表示进程是已经活跃在内存当中了,如果内存资源不足,就会挂起,放到磁盘区域,进入静止阻塞状态。

活跃阻塞和静止阻塞都可以等待事件发生,进入各自的就绪态(活跃就绪和静止就绪),活跃就绪和静止就绪表示就绪状态是发生存在内存中还是磁盘中,静止就绪同样需要恢复或激活才能进入活跃就绪状态。

静止就绪是不能直接被CPU调度的,必须激活进入活跃就绪状态才能被调度。

运行态同样可以被挂起,被挂起后会进入静止就绪态。

一般来讲,挂起的原因可能是系统出现故障、或者用户调试程序,挂起本身也可以由程序员的代码进行控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能驾驶词典 --- 自动驾驶芯片梳理

0 前言 与智能驾驶相关的芯片主要分为自动驾驶芯片(边缘端)和智能座舱芯片两大类,另外衍生的相关芯片种类还有计算集群芯片(云端), 1 自动驾驶芯片梳理 目前业内具有代表性的智驾芯片产品梳理如下。 1…

Studio 3T使用教程,本人详细介绍连接Mongodb过程

1:安装好MongodbWindows下安装 MongoDB_mongodb windows_Dragon-v的博客-CSDN博客2:安装好Studio 3T3:打开 Studio 3T ,点击开始创建连接 4:点击 Manually configure my connection settings,然后next5&…

【MySQL之MySQL底层分析篇】系统学习MySQL,从应用SQL语法到底层知识讲解,这将是你见过最完成的知识体系

文章目录MySQL体系结构MySQL存储结构(以InnoDB为例)MySQL执行流程(以InnoDB为例)1. 数据写入原理2. 数据查询原理MySQL存储引擎1. 为什么需要不同的存储引擎2. 如何为数据指定不同的存储引擎,数据粒度又是多少3. MySQL…

28岁还是一事无成,现在想学习软件测试还来得及吗?

为什么会学习软件测试? 28岁了,算一下8年了,工作了一年,就没去工作就一-直在家,家里固定每个月给2000,偶尔一个月有四千,但依旧没钱,家里给了一套房子,出门200米就是地铁站&#xff…

【流程控制】JavaScript 全栈体系(五)

JavaScript 基础 第七章 运算符 一、赋值运算符 目标: 能够使用赋值运算符简化代码 赋值运算符:对变量进行赋值的运算符 已经学过的赋值运算符: 将等号右边的值赋予给左边, 要求左边必须是一个容器其他赋值运算符: -*/% 使用…

轻松实现内网穿透:实现远程访问你的私人网络

导语:内网穿透是什么?为什么我们需要它?今天我们将介绍这个令人惊叹的技术,让你实现远程访问你的私人网络。 使用内网穿透,轻松实现外网访问本地部署的网站 第一部分:什么是内网穿透? 通俗解释…

【LeetCode】剑指 Offer 18. 删除链表中重复的节点(题目二) p122 -- Java Version

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ 1. 题目介绍(83. 删除排序链表中的重复元素) 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序…

机器学习-BM-FKNCN、BM-FKNN等分类器对比实验

目录 一、简介和环境准备 二、算法简介 2.1四种方法类: 2.1.1FKNN 2.1.2FKNCN 2.1.3BM-FKNN 2.1.3BM-FKNCN 2.2数据预处理 2.3输出视图 2.4调用各种方法看准确率 2.4.1BM-FKNCN 2.4.2BM-FKNN 2.4.3FKNCN 2.4.4FKNN 2.4.5KNN 一、简介和环境准备 k…

Java9之HttpClientAPI实战详解

Java9 之 HttpClientAPI 实战详解 前言 相信关注 java9 的小伙伴们都知道 java9 版本内置模块提供了 Http 功能,当然并不是说之前 jdk 之前并不支持,那么这次更新又多了什么呢?或者是解决了什么问题? 说明 自 JDK 1.0 以来&…

图灵完备及TypeScript图灵完备性验证

一、图灵完备 1.图灵完备的概念 首先从定义出发,什么是图灵完备:图灵完备指一系列操作数据的规则能够模拟任何图灵机。 WikiPedia-图灵完备介绍,在可计算性理论,如果一系列操作数据的规则(如指令集、编程语言、细胞自…

centos安装Anaconda3

目录一、参考二、Anaconda简介1、用途2、关于anaconda三、下载安装1、下载2、安装anaconda3、配置环境遍历4、测试配置结果5、设置显示前缀一、参考 在centos上安装Anaconda 最新Anaconda3的安装配置及使用教程(附图文) 二、Anaconda简介 一句话&…

系统升级丨分享返佣,助力商企实现低成本高转化营销

秉承助力传统经济数字化转型的长远理念 酷雷曼VR再次在VR全景营销中发力 创新研发“分享返佣”功能 进一步拓宽商企VR全景营销渠道 助力商企搭建低成本、高传播、高转化 的VR营销体系 01、什么是“分享返佣”? ●“分享返佣”即“推广”返佣,是酷…

干货满满!MES的简介和运用

导读 谈及MES必须先谈生产,生产体系模型如图所示,涉及人、财、物、信息等资源,产、供、销等环节,以及供应商、客户、合作伙伴等。 其中,生产管理是通过对生产系统的战略计划、组织、指挥、实施、协调、控制等活动&…

【经验总结】10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?(文末赠书5本)

【经验总结】一位近10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的? RT-Thread绝对可以称得上国内优秀且排名靠前的操作系统,在嵌入式IoT领域一直享有盛名。近些年,物联网产业的大热,更是直接将RT-Thread这…

信贷系统学习总结(5)—— 简单的风控示例(含代码)

一、背景1.为什么要做风控?目前我们业务有使用到非常多的AI能力,如ocr识别、语音测评等,这些能力往往都比较费钱或者费资源,所以在产品层面也希望我们对用户的能力使用次数做一定的限制,因此风控是必须的!2.为什么要自己写风控?那么多开源的风控组件,为什么还要写呢?是不是想…

一个大型网站架构的演变历程

正序: Rome was not built in a day(罗马不是一天建成的。)一个成熟的大型网站从来都不是一蹴而就的,需要经过多次架构的调整和升级,我们熟知的大型网站比如京东、淘宝、亚马逊,它们每天都有巨大的用户访问…

什么蓝牙耳机打电话效果最好?通话效果好的无线蓝牙耳机

2023年了,TWS耳机虽说近乎人手一只了,但用户换新的需求和呼声依然热火朝天,因为我们想要听音乐、刷视频的时候都得准备,下面整理一些通话效果不错的耳机品牌。 第一款:南卡小音舱蓝牙耳机 动圈单元:13.3m…

华为OD机试题,用 Java 解【靠谱的车】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

基于springboot的微信公众号管理系统(支持多公众号接入)

微信公众号管理系统,支持多公众号接入。提供公众号菜单、自动回复、公众号素材、模板消息、CMS等管理功能 项目说明 是一个轻量级的公众号开发种子项目,可快速接入微信公众号管理功能swagger文档(启动wx-api后查看):…

四信⾼速动态称重治超系统 不停车超载预检

随着交通运输行业的飞速发展,违法超载现象屡见不鲜,对公路、桥梁等造成了严重破坏,且容易引发交通事故。因此,有必要采用超载治理模式,有效延伸超限检测站管理上的时空范围、缓解执法力量不足的矛盾,以便进…