操作系统原理 —— 什么是进程?进程由什么组成?有什么特征?(六)

news2025/2/21 23:49:23

进程的概念

在我小时候,刚刚接触电脑的时候,只会在浏览器中输入 4399 搜索小游戏玩一玩,到后来,我学会了安装游戏,然后知道安装完成之后,找到对应的 .exe 的图标就可以运行游戏。

好,那么什么时候是程序? 程序就是我们下载好安装包之后,点击安装,然后需要选择安装目录,最后在我的电脑中对应的磁盘位置就能找到这个程序。

在程序安装好之后,它是存储在磁盘上的,并且它是静态的,程序也就是一系列的指令集合。

那什么是进程? 我们来一起看看下图:

在这里插入图片描述

在我们程序安装好之后,运行所安装的程序,如果是你 windows 系统可以使用任务管理器查看,如果你是使用的 Mac 系统,可以使用活动监视器 来查看进程。

当我们运行一个软件之后,我们就能看到在进程管理中看到多了一条刚刚运行的软件,然后我们在退出这个软件,又会发现进程管理中对应的软件不见了。

这个说明进程它是动态的,进程是程序的一次执行过程,它随着程序的启动:创建、运行、销毁, 同一个程序多次执行会对应多个进程,

在这里插入图片描述

那既然同一个程序,可以执行多次,并且对应不同的进程,那么操作系统它是如何来区分的?

也可以换句话来说,进程它是由什么东西组成的? 我们接着往下看

进程的组成

我们先来看一个问题:操作系统是这些进程的管理者,他要怎么区分各个进程:

首先,当进程被创建的时候,操作系统会为该进程分配一个唯一的、不重复的一个号码,这个号码叫做 PID(process ID 进程ID),如下图:

在这里插入图片描述

通过上图我们可以看到,操作系统要记录每一个进程的 PID、进程对应的所属用户是谁。

还要记录这些进程分配了哪些资源,比如分配了多少内存、该进程读写了磁盘数据等等

还要记录每一个进程运行情况,比如 CPU 的使用时间、磁盘使用情况,网络流量使用情况等等。

那么以上这些信息,操作系统是如何来保存的呢?

在操作系统中,有一个数据结构叫做:PCB (Process control block),即进程控制块,操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会放在 PCB 当中。

我们再来看下图,PCB 由哪几块组成:

在这里插入图片描述

进程不仅仅只有 PCB 中一些管理的数据,我们再来看看一个程序的执行过程:

在这里插入图片描述

首先由我们的写的程序代码,编译成可执行的文件,当我们运行可执行文件的时候,操作系统是需要把运行的程序放入到内存当中,程序其实也就是一些指令,然后由 CPU 来执行这些指令。 在程序的执行过程中,会产生一些动态数据,这些数据也是需要被保存起来的。

所以在进程当中,不仅仅只有 PCB ,还有 程序段、数据段,这三个部分组成 进程实体

在这里插入图片描述

进程的特征

那么进程有哪些特征呢?

动态性:进程是程序的一次执行过程,是动态的产生、变化和消亡的。

并发性:内存中有多个进程实体,各进程可并发执行。

独立性:进程是能独立的运行、独立获取资源、独立接口调用的基本单位。

异步性:各进程各自独立、不可预知的速度向前推进,操作系统要提供进程同步机制来解决异步问题。

结构性:每个进程都会配置一个 PCB,结构上看,进程由程序段、数据段、PCB 组成。

本章总结

在这里插入图片描述

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

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

相关文章

2.数据库开发

二.数据库开发 1.开发数据库流程 2.数据库,数据表,数据字段的命名 3.数据库字符集和排序规则设置 4.数据表的引擎选择 二.数据库开发 1.开发数据库流程 ①建立数据库

虚幻图文笔记:面部动画基本原理以及在UE5中如何导入面部动画

0. 面部动画的基本原理 之前做过的项目没有涉及过面部动画,所以最这方面不是很了解,一直以为面部动画也是通过骨骼来驱动的(理论上用骨骼驱动当然也是可以的),但很多时候面部动画更多是使用Morph Target(有…

SLAM论文速递【SLAM—— PLD-SLAM:一种基于点线特征的室内动态场景RGB-D SLAM新方法—4.23(1)

论文信息 题目: PLD-SLAM:A New RGB-D SLAM Method with Point and Line Features for Indoor Dynamic Scene PLD-SLAM:一种基于点线特征的室内动态场景RGB-D SLAM新方法论文地址: https://www.mdpi.com/2220-9964/10/3/163发表期刊: ISPR…

MySQL数据落盘原理(redo、undo、binlog、2PC、double write等。)

文章目录 前言一、架构图1、MySQL架构图2、InnoDB架构图 二、落盘分析1.第一阶段2.第二阶段3.第三阶段4.第四阶段5.第五阶段6.第六阶段 前言 在上一章中我们聊到了事务有四大特性:原子性、一致性、隔离性、持久性。本篇文章就持久性重点聊一下,在高性能…

离子交换法处理含铬废水

含铬废水是从哪里来的? 含铬废水来自:冶金、化工、矿物工程、电镀、制铬、颜料、制药、轻工纺织、铬盐及铬化物的生产等一系列行业,都会产生大量的含铬废水。 含铬废水危害有多大? 1、铬化合物具有致癌作用; 2、铬…

做SSM项目的步骤和优化

SSM框架整合 这里说的SSM整合,主要说的是Spring和mybatis之间的整合。因为spring和springMVC都是spring生态系统中的框架,所以spring和springMVC之间的整合是无缝的整合,即,我们在不知不觉中,其实spring和springMVC已…

【C++】list的使用

文章目录 1. list的使用1. 构造函数2.迭代器的使用和数据访问3. 容量相关4. 数据修改1.数据插入2. 数据删除 5.其他接口 1. list的使用 首先,在使用list之前,我们得先了解list到底是个什么东西,查看文档可以了解到,list的底层是一…

使用EasyExcel导出模板并设置级联下拉及其原理分析

一、概述 项目中有时会遇到需要导出一个Excel模板,然后在导出的Excel中填充数据,最终再调用接口批量把Excel中的数据导入到数据库当中的需求。 其中级联下拉选择,手机号校验,性别校验等都是比较常见的校验。 这里就已上面三种情…

县级医院手术麻醉管理系统源码 医院手麻系统源码 C/S架构 系统成熟稳定完整二次开发

医院手麻系统详细功能介绍和说明: ▶手术管理功能包括:手术申请、手术安排、查看手术申请单、手术通知单、填写病人术前会诊记录、谈话记录、麻醉记录、手术记录、附加手术、术后信息及手术回顾等功能。 ▶手术麻醉管理系统包括:手术申请、…

openEuler 欧拉 安装Oracle19c数据库RPM包安装

一、准备工作 将安装部署包上传到服务器上,我安装包放到/home目录下 二、安装依赖包 yum -y install binutils compat-libcap1 compat-libstdc-33 compat-libstdc-33*.i686 elfutils-libelf-devel gcc gcc-c glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh…

“烧钱”的大模型:初探成本拆解与推理优化方法

编者按:大模型的成本问题一直以来是大家重点关注的问题,本文重点讨论了训练大型语言模型(LLMs)需要的成本,并简要介绍什么是LLM以及一些用于优化大模型推理表现的技术。 虽然很难准确预测LLMs未来会怎么发展&#xff0…

热血

周五的晚上,决定去看「灌篮高手」电影了。 那还是很多年以前,樱木双手插进裤腰歪头扭嘴吹着口哨,那不羁的样子像极了一只从上往下看的沙雕。 而全国赛的樱木,多少是成熟了很多,是会说一些犯二的话,会和流川…

Spring Boot中上传文件不写临时文件

Spring Boot中上传文件不写临时文件 前言 在SpringBoot文件上传中,用MultipartFile类型接收文件时,SpringBoot会生成一份临时文件,文件格式为upload_*.tmp,如果业务场景有大量小文件需要上传的话,可以将文件直接丢到…

面试官:说说对称加密、非对称加密、混合加密?

对称加密 两边用同一个密钥来加解密。 A把明文通过某一算法加密之后得到密文,然后把密文发送给B,B接收到密文之后用相同的密钥执行相同的算法去解密。X没有密钥,即使窃取到密文也无法窃听。 对称加密的有优缺点 对称加密的优点&#xff1a…

TryHackMe-Misguided Ghosts(boot2root)

Misguided Ghosts 端口扫描 循例nmap FTP枚举 直接登anonymous,有几个文件,下下来 info.txt 我已经包含了您要求的所有网络信息,以及一些我最喜欢的笑话。- 帕拉摩尔该信息可能指的是pcapng文件 jokes.txt Taylor: Knock, knock. Josh: …

【pytest】

pytest 1、环境安装 1、pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple --targetC:\Dpan-app\ceshirenenv\Lib\site-packages 2、pycharm安装 2、assert >>> assert True >>> >>> assert False Traceback (most recent call …

一篇文章让你彻底学会--节流(并且自己可以手写)

Hi,有的小伙伴们在面试的时候会被要求手写节流函数,很多都被难着了吧,宝贝,那你你没有理解节流函数。 今天,就让我带你攻克它! 1.节流 单位时间内,事件触发,最多只执行一次事件回调。 人话:说…

【STL十三】适配器——迭代器适配器

【STL十二】适配器——迭代器适配器 一、迭代器1、迭代器分类2、迭代器定义3、迭代器和迭代器适配器 二、迭代器适配器、流迭代器1、简介2、迭代器适配器3、流迭代器 三、反向迭代器1、简介2、模板类3、demo 四、插入迭代器1、简介2、模板类3、demo 五、移动迭代器1、简介2、模…

Mysql列的类型定义(日期和时间类型)

文章目录 前言一、类型表二、类型简介总结 前言 日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型。其中,YEAR类型表示年,DATE类型表示日期,TIME类型表示时间,DATETIM…

大模型如何赋能?个人AI助理开始靠谱!

想象一下,生活在这样一个世界里,你有一个个人人工智能助手,它不仅能理解你的需求,还能与你一起学习和成长。一个人工智能无缝融入我们日常生活的世界,使我们能够比以往任何时候都更有效地实现我们的目标。那个世界不再…