操作系统 ---- 进程的概念、组成、特征

news2024/9/22 7:26:45

学习路线: 

一、进程的概念及组成

我们通过一个例子来说明进程的概念以及程序和进程的区别。
      我们在Windows操作系统中打开任务管理器,在任务管理器当中能看到此时系统当中运行的进程有哪些,如下图所示: 

      此时,如果我想要使用QQ的话,我打开我的QQ应用程序,于是我的QQ程序就开始运行,相应的在进程这一栏里我会看到和QQ相关的一个条目,如下图所示:
      而如果说此时我想要同时登录两个甚至三个QQ,那我可以再打开两次QQ程序,那在这个时候会发现进程这一栏里QQ相关的条目出现了三条,如下图所示。也就是说,在系统当中,此时有三个QQ进程正在运行,虽然说这三次我打开的都是.exe程序,但是这个程序的三次执行会对应三个不同的进程。

那么接下来我们便可以给出程序和进程这两个概念到底是什么了?

程序:是静态的,就是存放在磁盘里的可执行文件,就是一系列的指令集合。
进程(Process) :是动态的,是程序的一次执行过程。
注意:同一个程序多次执行会对应多个不同的进程。那么就有一个问题,即:操作系统是这些进程的管理者,它要怎么区分各个进程?
答案:当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的“身份证号” -- PID(Process ID,进程ID)。

操作系统除了要记录进程的PID【可以让操作系统区分各个进程】之外,还要记录给进程分配了哪些资源【可用于实现操作系统对资源的管理】(如:分配了多少内存、正在使用哪些I/O设备、正在使用哪些文件),还要记录进程的运行情况【可用于实现操作系统对进程的控制、调度】(如:CPU使用时间、磁盘使用情况、网络流量使用情况等)。

上述的这些信息都被保存在一个数据结构PCB(Process Control Block)中,即进程控制块。操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中。PCB中可包括的信息如下图所示:


除了PCB之外,进程还有两个很重要的组成部分,即程序段、数据段,如下图所示:

PCB是给操作系统用的;程序段、数据段是给进程自己用的。

结合上面的知识,我们分析程序是如何运行的?

程序在运行之前需要编译成二进制的机器指令,如下图所示:

程序执行的过程,其实就是CPU执行一条一条指令的过程,如下图所示:

那接下来我们把程序运行的过程再进一步细化一下:
      我们把程序写完之后,经过编译链接等操作,最终会形成一个可执行文件,例如Windows系统下的.exe可执行文件,这个可执行文件一般存放在硬盘当中,这个可执行文件当中保存的其实是上图中一系列的二进制指令,而在这个程序运行之前,需要将其从硬盘读入到内存当中,并且操作系统要建立一个与他相对应的进程,在建立进程的过程中,操作系统会为其建立一个PCB,该可执行文件中所存放的一系列二进制指令也需要读入到内存之中,这一系列的指令序列我们将其称之为程序段。
      程序【指可执行应用程序】执行的过程或者说这个进程执行的过程,就是CPU从内存当中读入这些一条一条的二进制指令然后来执行这些指令。
在我们编写的程序当中,我们定义了一些变量,这些内容也需要放入内存当中,这就是数据段。

进程是动态的,进程实体(进程映像)是静态的。进程实体反映了进程在某一时刻的状态(如:x++后,x=2)。

因此,更确切的说,进程实体(进程映像)由PCB、程序段、数据段这三部分组成。

定义:
程序段、数据段、PCB三部分组成了进程实体(进程映像)。
引入进程实体的概念后,可把进程定义为:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

来自百度:

狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。

广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

注意:PCB是进程存在的唯一标志!

问题:若同时挂三个 QQ 号,那么三个不同的进程的PCB、程序段和数据段是否不同?
答案:同时挂三个QQ号,会对应三个QQ进程,它们的PCB、数据段各不相同,但程序段的内容都是相同的(都是运行着相同的QQ程序)。

二、进程的特征

程序是静态的,进程是动态的,相比于程序,进程拥有以下特征:


动态性是进程最基本的特征。
异步性会导致并发程序执行结果的不确定性。

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

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

相关文章

【前端】vue+html+js 实现table表格展示,以及分页按钮添加

一. 问题描述 数据条数太多显示到页面上时可能会渲染较慢,因此需要截取数据进行展示。 二. 代码写法 思路:按照上述图示思路,需要有两个数据列表,一个存储的是所有的列表数据,一个存储的是展示的数据列表&#xff0c…

蒙特卡罗——三门问题python代码实现

三门问题 b站李永乐老师讲解三门问题 python蒙特卡罗模拟 #模拟三门问题 import random as rd #n:模拟次数,m:中奖次数 n100000 m0 for i in range(n):#车位于的门号carrd.randint(0,2)#人随机选择一个门doorrd.randint(0,2)#主持人展示空门empties{0,1,2}-{car,door}emptyrd…

jmeter基准测试详解

配置基准测试策略:单线程连续发送请求5分钟 脚本:基准测试.jmx 提取码: 0000 登录接口换成自己需要的登录接口即可 一、基准测试脚本配置 线程组下添加图表插件:TPS、响应时间、服务器资源 linux服务器在serveragent目录下启动serveragen…

Golang | Leetcode Golang题解之第395题至少有K个重复字符的最长子串

题目&#xff1a; 题解&#xff1a; func longestSubstring(s string, k int) (ans int) {for t : 1; t < 26; t {cnt : [26]int{}total : 0lessK : 0l : 0for r, ch : range s {ch - aif cnt[ch] 0 {totallessK}cnt[ch]if cnt[ch] k {lessK--}for total > t {ch : s[…

智能翻译新时代:深入解析AI驱动的翻译软件优势

现在语言已经不再是我们学习交流的难点了&#xff0c;因为我们的身边涌现了一批类似百度在线翻译这样的翻译工具为我们与不了的语言直接搭建其一个桥梁。这次我们就来一起探讨有什么好用的翻译工具吧。 1.福昕在线翻译 链接直达&#xff1a;https://fanyi.pdf365.cn/doc 对…

[Redis] Redis中的String类型

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

comfyui中的几种inpainting工作流对比

inpainting方法集合_sdxl inpaint教程-CSDN博客文章浏览阅读150次。1.32G,通过它可以将所有的sdxl模型转成sdxl_inpaint模型,源于fooocus_inpaint_head,将9个通道压缩为4个通道的小型卷积网络,标准模型unet有4个通道,重绘模型有9个通道,inpaint_model_head和inpaint mode…

Jupyter Notebook 修改默认路径

Jupyter Notebook 修改默认路径 1、默认路径 安装anaconda后&#xff0c;jupyter notebook默认路径下很多文件&#xff0c;很乱&#xff0c;所以为了创建一个干净的文件夹专门存放我的python项目&#xff0c;修改jupyter notebook的文件路径 这是我现在打开jupyter notebook…

常见概念 -- 光回波损耗

什么是回波损耗 回波损耗&#xff0c;又称为反射损耗&#xff0c;当高速信号进入或退出光纤的某个部分&#xff08;例如光纤连接器&#xff09;&#xff0c;不连续和阻抗不匹配会引起反射&#xff0c;这就是光纤回波损耗。器件的回波损耗Return Loss(RL)是光信号的输入端口的反…

【信创】推荐一款在龙芯CPU终端上使用的WiFi接收器 _ 统信 _ 麒麟

原文链接&#xff1a;【信创】推荐一款在龙芯CPU终端上使用的WiFi接收器 | 统信 | 麒麟 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在龙芯CPU架构的台式机上如何安装和使用无线WiFi接收器的文章。对于使用龙芯CPU的台式机用户来说&#xff0c;安装并配置WiF…

新版智慧职教(zjy2域名开头的)怎么下载课件?一篇文章教会你

文章目录 1、引言2、痛点3、解决方法 &#x1f343;作者介绍&#xff1a;双非本科大四网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发&#xff0c;目前开始人工智能领域相关知识的学习 &#x1f985;个人主页&#xff…

Redis面试必备:Redis两种内存回收策略,Redis键空间、过期字典等

请记住胡广一句话&#xff0c;所有的中间件所有的框架都是建立在基础之上&#xff0c;数据结构&#xff0c;计算机网络&#xff0c;计算机原理大伙一定得看透&#xff01;&#xff01;~ 1. Redis数据库 1.1 Redis数据库的理解 我们可以把Redis的数据库和MySQL的数据库理解成…

运维学习————Zabbix监控框架(1)

目录 一、监控 1、概念 2、作用 3、创建监控框架 老牌监控框架 新款王牌监控框架 二、zabbix简介 1、概述 2、核心功能 三、主要组件及运行原理 1、主要组件 Zabbix Server Zabbix Agent Zabbix Proxy Zabbix Web 界面 数据库 其他 2、监控架构原理图 原…

通义千问Qwen2-7b-instruct部署

前言 https://www.modelscope.cn/models/qwen/Qwen2-7B-Instruct 其实完全可以按照这个介绍来装&#xff0c;不过容易遇到一些问题&#xff0c;新学习&#xff0c;也是记录一下 环境 python 3.10 在自己电脑上用conda创建一个新环境找租用的服务器租一台&#xff0c;3090一…

超微小间距COB大尺寸LED智能会议一体机玩转高清视频会议显示市场

在当今这个数字化飞速发展的时代&#xff0c;高清视频会议已成为企业沟通协作不可或缺的一部分。随着技术的不断革新&#xff0c;超微小间距COB大尺寸LED智能会议一体机以其卓越的性能和多元化的功能&#xff0c;正逐步引领并重塑高清视频会议显示市场的格局。这款集大成者的诞…

Android SystemUI组件(05)状态栏-系统状态图标显示管理

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节的思维导图&#xff0c;主要关注下方 SystemBars分析中状态栏中的部分-系统状态图标显示&管理 即可。 1 系统状态图标显…

基于Python的机器学习系列(32):PyTorch - 循环神经网络(RNN)

在本篇文章中&#xff0c;我们将探索循环神经网络&#xff08;RNN&#xff09;&#xff0c;这是一种特别适用于时间序列数据或文本数据的神经网络模型。在RNN中&#xff0c;当前的输出不仅取决于当前的输入&#xff0c;还受到前一步输出的影响&#xff0c;从而能够捕捉序列数据…

Java 入门指南:JVM(Java虚拟机)—— Java 类文件结构

文章目录 字节码JVM 与字节码字节码的生成过程 Class 文件结构魔数&#xff08;Magic Number&#xff09;Class 文件版本号&#xff08;Minor&Major Version&#xff09;常量池&#xff08;Constant Pool&#xff09;访问标志(Access Flags)前类&#xff08;This Class&…

Pygame中Sprite类实现多帧动画3-3

4 使用自定义类MySprite 使用自定义类MySprite实现多帧动画的步骤是首先创建MySprite类的实例&#xff0c;之后使用相关函数对该实例进行操作。 4.1 创建MySprite类的实例 创建MySprite类的实例的代码如图12所示。 图12 创建MySprite类的实例的代码 其中&#xff0c;变量dr…

2024年CCPC网络赛A题题解 —— 军训Ⅰ(gym105336A)

个人认为很唐的一道题&#xff0c;考虑到不少人可能懒得写&#xff0c;我这里给大家发个代码叭&#xff0c;还有一点点题解&#xff08;因为真的不是很难&#xff09;。这是题面&#xff1a; 然后我来讲讲怎么做&#xff0c;不觉得会有多少人题目意思都理解不了叭&#xff1f;这…