2.1_1 进程的概念、组成、特征

news2025/1/10 2:48:20

2.1_1 进程的概念、组成、特征

(一)进程的概念

  程序:是静态的,就是一个存放在磁盘里的可执行文件,就是一系列的指令集合。

  进程(Process):是动态的,是程序的一次执行过程。

  同一个程序多次执行会对应多个进程。

  例如,将QQ.exe这个程序打开三次,会显示三个QQ进程

image-20240220214024438

  问题:操作系统是这些进程的管理者,它要怎么区分各个进程?

  如上图,这三个进程,如果都叫QQ进程,那就区分不开了。

(二)进程的组成——PCB

  接上文问题:操作系统是这些进程的管理者,它要怎么区分各个进程?

  :当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的“身份证号”——PID(Process ID,进程ID)。

  除了PID外,对每个进程来说,还会记录其他的信息,如:进程所属用户ID(UID)

  注:PID、UID——基本的进程描述信息,可以让操作系统区分各个进程。

  还要记录给这个进程分配了哪些资源(如:分配了多少内存、正在使用哪些I/O设备、正在使用哪些文件)

  注:可用于实现操作系统对资源的管理。

  还要记录进程的运行情况(如:CPU使用时间、磁盘使用情况、网络流量使用情况等)。

  注:可用于实现操作系统对进程的控制、调度。

  上述这些信息,都被保存在一个数据结构PCB(Process Control Block)中,即进程控制块

  操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中

image-20240220215533690

(三)进程的组成——程序段、数据段

image-20240221155042095

  PCB给操作系统用的

  程序段、数据段给进程自己用的

image-20240221155410046

  一个进程实体(进程映像)PCB、程序段、数据段组成。

  进程动态的,进程实体(进程映像)静态的。

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


image-20240221155715042

  注:“进程”和“进程实体”不需要区分的那么细,除非专门问了“进程实体”如何。

  程序段、数据段、PCB三部分组成了进程实体(进程映像)

  引入进程实体的概念后,可把进程定义为:

  进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位。

  注:一个进程被“调度”,就是指操作系统决定让这个进程上CPU运行。

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

(四)进程的特征

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

image-20240221160141704

总结

image-20240221160252375

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

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

相关文章

Java学习--黑马SpringBoot3课程个人总结-2024-02-16

1.添加文章 1.1 富文本编辑器 文章内容需要使用到富文本编辑器,这里咱们使用一个开源的富文本编辑器 Quill 官网地址: https://vueup.github.io/vue-quill/ 安装: npm install vueup/vue-quilllatest --save导入组件和样式: …

基于springboot+vue的B2B平台的医疗病历交互系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

【git 使用】git 中head、工作树、和索引分别是什么,有什么关系和区别

HEAD 定义:HEAD 是指向当前所在分支(或者是某个特定的提交)的指针,它表示当前工作目录正在处于哪个提交或分支上。作用:HEAD 指示了当前工作目录的状态,可以通过 HEAD 来确定当前处于哪个分支上&#xff0…

【已解决】PPT无法复制内容怎么办?

想要复制PPT文件里的内容,却发现复制不了,怎么办? 这种情况,一般是PPT文件被设置了以“只读方式”打开,“只读方式”下的PPT无法进行编辑更改,也无法进行复制粘贴的操作。 想要解决这个问题,我…

百度地图接口 | 实现校验收货地址是否超出配送范围

目录 1. 环境准备 2. 代码开发 2.1 application.yml 2.2 OrderServiceImpl 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Py…

单片机03--按键--寄存器版

GPIO端口相关寄存器(STM32F40x芯片) 目标: 开关KEY1控制开灯。 分析: KEY1---PA0--->输入---->浮空输入/下拉输入 KEY1不导通时,PA0输入为低电平,KEY1导通时,PA0输入为高电平。 实现…

Elasticsearch 别名(Aliases)的作用

Elasticsearch 8.4.3 别名(Aliases) 一. 介绍二. 别名的优势三. 别名的基本操作3.1 创建别名3.2 查询别名关联的索引3.3 删除别名3.4 更新别名3.5 通过别名查询数据 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接…

2024.2.21

1、用多线程进行文件拷贝 #include<myhead.h>//参数结构体创建 typedef struct INFO {const char *srcfile;const char *destfile;int length; }Info;//定义获取文件长度的函数 int get_file_len(const char *srcfile,const char *destfile){int srcfd,destfd;//只读形式…

MySQL 查询遇到Illegal mix of collations的错误

业务同学线上业务执行 SQL 时报错&#xff0c; ### Error querying database. Cause: java.sql.SQLException: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation like含义是对like操作非法混合了排序规则(utf8mb4_ge…

qml 电池控件设计(手把手从零开始)

一、说明 做 qt 开发也有好几年了&#xff0c;一直基于QWidget 框架做的开发&#xff0c;使用重写 paint 函数实现各种显示效果&#xff0c;在复杂的 ui 开发中&#xff0c;控件一多或者刷新频率一高&#xff0c;其实也是存在性能限制。 一般来说&#xff0c;qt 的界面对象全部…

MKS T3BI集成蝶阀说明T3B-T3PRS-232Supplement

MKS T3BI集成蝶阀说明T3B-T3PRS-232Supplement

洛谷 P1016 [NOIP1999 提高组] 旅行家的预算【贪心】

原题链接&#xff1a;https://www.luogu.com.cn/problem/P1016 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市&#xff08;假设出发时油箱是空的&#xff09;。给定两个城市之间的距离 D1​、汽车油箱的容量 C&#xff08;以升为单位&#xff09;、每升汽…

计网day5

六 传输层 6.1 传输层概述 6.2 UDP协议 6.3 TCP协议 TCP连接管理&#xff1a; TCP可靠传输&#xff1a; TCP拥塞控制&#xff1a;

unity学习(32)——跳转到角色选择界面(父子类问题)

新问题 应该是两个脚本之间缺少继承关系 its children 解决起来很简单&#xff0c;把ResceneScript也绑到canvas上就可以了 。 此时&#xff0c;在账号密码正确的情况下&#xff0c;是可以完成场景切换。 对应的代码如下&#xff1a; TMP_Text d GameObject.FindWithTag(&…

【问题解决】删除node节点后如何把node节点重新加入

环境明细 docker版本&#xff1a; 25.0.3kubeadm 版本&#xff1a;v1.25.0 1 在master节点删除node节点 [rootk8s-master ~]# kubectl delete nodes k8s-node-02 node "k8s-node-02" deleted [rootk8s-master ~]# kubectl get nodes -o wide NAME STAT…

基于 GTSAM 的因子图简单实例

Title: 基于 GTSAM 的因子图简单实例 文章目录 I. 引言II. GTSAM 的安装与配置III. 基于 GTSAM 的因子图实例的 C 实现1. C 源码2. CMakeLists.txt 脚本3. 数值结果 IV. 基于 GTSAM 的因子图实例的 Python 实现1. Python 源码2. 数值结果3. 可视化结果 V. 总结 关联博文: 因子图…

day2:信号与槽

思维导图 使用手动连接&#xff0c;将登录框中的取消按钮使用t4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断u界面上输入的账号是否为"123",密码是否为"…

springboot集成JWT实现token权限认证

vuespringboot登录与注册功能的实现 注&#xff1a;对于JWT的学习&#xff0c;首先要完成注册和登录的功能&#xff0c;本篇博客是基于上述博客的进阶学习&#xff0c;代码页也是在原有的基础上进行扩展 ①在pom.xml添加依赖 <!-- JWT --> <dependency><grou…

【Linux】git操作 - gitee

1.使用 git 命令行 安装 git yum install git 2.使用gitee 注册账户 工作台 - Gitee.com 进入gitee&#xff0c;根据提示注册并登录 新建仓库 仓库名称仓库简介初始换仓库 3.Linux-git操作 进入仓库&#xff0c;选择“克隆/下载” 复制下面的两行命令进行git配置 然后将仓库clo…

Vue3引用第三方模块报错Could not find a declaration file for module ***.

在引用第三方的组件时候报错如下 原因是&#xff1a;该组件可能不是.ts文件而是.js文件 解决方案&#xff1a; 1.在Src的目录下面新建一个文件为shims-vue.d.ts的文件 2.文件内容为 declare module xxx&#xff0c;xxx就是你报错的模块 例如我这样 declare module vue3-pu…