【JavaEE初阶】浅谈进程

✏️✏️✏️今天正式进入JavaEE初阶的学习,给大家分享一下关于进程的一些基础知识。了解这部分内容,只是为后续多线程编程打好基础,因此进程部分的知识,不需要了解更加细节的内容。

清风的CSDN博客

😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流

动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛

目录

 前言

一、什么是进程(任务/task)

1.1 进程概念 

1.2 进程的特点 

1.3 如何描述和组织进程

二、进程描述——PCB进程控制块 

2.1 PID——进程标识

 2.2 内存指针

2.3 文件描述符表 

三、PCB中进程调度相关的属性 

3.1 状态

3.2 优先级 

3.3 上下文 

 3.4 记账信息


 前言

        在学习这部分内容之前,还是需要了解一下什么是操作系统?通俗来说,操作系统就是管理应用程序,对下,要管理各种硬件设备,对上,要给应用程序提供一个稳定的运行环境。这里涉及到的内容也是方方面面的。那么,今天我们就来了解一下操作系统中的最重要的内容——进程。

一、什么是进程(任务/task)

每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。

1.1 进程概念 

        进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程, 同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

        简单来说,进程就是正在运行的程序。那么也就是说,没有运行起来的程序,也就不是进程了。程序是可执行文件,只是在硬盘上的一个东西(静态的)。如果双击程序,此时操作系统就会把可执行文件中的数据和指令加载到内存中,并且让CPU去执行这里的指令,完成一系列相关的工作,此时是运行起来的,动态的。也就是进程。 

1.2 进程的特点 

  • 动态性 创建->产生;调度->执行;得不到资源->暂停;撤销->消亡。
  • 并发性 多个进程可以在一段时间内同时运行。
  • 独立性 进程是独立运行的基本单位。
  • 异步性 进程各自可以独立地、以不可知的速度前进。 

进程能够干活,说明进程能够消耗一定的额系统资源。而对于可执行文件来说,只是占用了硬盘空间。而进程,会消耗CPU资源,内存资源,硬盘,网络带宽......

一台正在运行的计算机中,大概率是包含很多进程的,一旦东西多了,就需要考虑“管理”,此时,针对计算机中“进程”的管理,核心思路就是需要先描述,再组织。

  • 描述:使用一个专门的结构体,来记录一个进程里面的各个属性。
  • 组织:使用一系列的数据结构,把多个进程进行一个有效的组织,随时方便进行遍历,查找,汇总数据。 

 进程管理的前提是进程数量非常多,如果只有几个进程,那么也就不需要考虑管理进程了。

1.3 如何描述和组织进程

描述:PCB(进程控制块)。

组织:通常会使用双向链表这样的方式来进行组织。当使用双向链表来组织的时候,查看进程的列表,本质上就是遍历这个链表。创建一个进程,就是创建了一个PCB结构体,并且插入到链表上。销毁一个进程,就是把PCB从这个结构体从链表上删除并释放。

二、进程描述——PCB进程控制块 

PCB中大概包含的信息: PID(进程的标识)、内存指针、文件描述符表。

2.1 PID——进程标识

同一个系统上,同一时刻,每个进程的PID一定都是不同的。有的时候,运行一个可执行文件EXE,可能会设计到多个进程。

 2.2 内存指针

       表示了该进程对应的内存资源的情况。(也就是操作系统分配的内存空间),最主要存储的就是从exe可执行文件中加载过来的指令和数据。还会保存一些运行过程的中间结果的数据。指令我们可以看成是一个剧本,而进程就是演员,演员要按照剧本进行表演,也就是说,进程要按照指令去完成一系列的相关操作。

2.3 文件描述符表 

        它和硬件资源有关,硬盘是硬件,应用程序一般是无法直接接触到“硬件”这一层面的。实际上是操作系统抽象成“文件”这样的概念,程序操作的是文件,文件实际上是存储在硬盘上的。每个进程就会有一个文件描述符来记录当前这个进程正在使用哪些文件。操作系统打开一个文件,就会产生一个文件描述符,同时会使用文件描述符表,把文件描述符组织起来。

此外,计算机最重要的一个硬件资源就是CPU,在这里也简单介绍一下CPU资源是怎么体现的:

进程是需要在CPU上执行指令的,如果说进程是演员,那么CPU就是拍摄场地,CPU要给进程场地,才能让进程表演。每一个进程要想执行里面的指令,完成对应的任务,都需要在CPU上执行。但是,一台机器上同一时刻的进程有百八十个,而CPU只有一个。但是在CPU中,拍摄场地不止一个,也就是CPU是有多个逻辑核心,这样就可以同时执行多个进程。但是,进程仍然有上百个,逻辑核心不够用,那么就需要进程的调度。进行调度的时候,又设计到俩个情况:并行和并发。

并行:同一时刻,两个进程,同时运行在两个CPU逻辑核心上。

并发:两个进程,在同一个CPU逻辑核心上,轮流执行。由于CPU切换速度极快,微观上这两个进程是串行执行的,宏观上,看起来这两个进行就像是“同时执行”的。

操作系统在调度这些进程的时候,可能是按照并行的方式,也可能是按照并发的方式。在应用程序这一层,是感知不到的(在系统内核可以感知到)。

三、PCB中进程调度相关的属性 

下面我们只是简单介绍一下基本的内容。 

3.1 状态

这里我们只介绍最重要的两个状态。

就绪状态:一个进程随时做好了在CPU上执行的准备。

阻塞/睡眠状态:进程还没有准备好被调度到CPU上。

3.2 优先级 

系统调度进程的时候,并不是完全公平的,会根据优先级的不同,来决定时间分配的权衡,这样一来,就可以把系统资源调配给更重要的进程了。

3.3 上下文 

进程是轮流执行的,一次运行不完,此时就需要保证下次CPU运行的时候,能够从上次运行到的位置继续往后执行。

操作系统所记录的上下文就是该进程在执行过程中,CPU的寄存器中对应的数据。这些寄存器有的存放中间结果,有的是存放一些特定含义的数据。

 3.4 记账信息

相当于是一个统计信息,会统计每个进程在CPU上执行的时间,也是对进程调度的工作进行一个兜底。


✨好啦,今天的分享就到这里!

🎉希望各位看官读完文章后,能够有所提升。

✨创作不易,还希望各位大佬支持一下!

👍点赞,你的认可是我创作的动力!

⭐收藏,你的青睐是我努力的方向!

✏️评论:你的意见是我进步的财富!

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

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

相关文章

汽车电子 - UDS

汽车电子 - UDS 概念基本概念分类请求与响应寻址信息物理寻址功能寻址 协议格式???750/758厂家自定义的吗???, 所有的UDS服务都在这里边吗???,代码…

offer 选择难?说说我的 2 个思考

大家好,我是鱼皮。秋招仍在进行中,随着越来越多的公司开奖,最近 编程导航星球 的小伙伴们也陆续发来了 offer 报喜: 图片 图片 但也有一部分小伙伴陷入了 “甜蜜的烦恼”,拿了几个 offer 却不知道怎么选择。 offer 选择…

存算一体还是存算分离?谈谈数据库基础设施的架构选择

从一则用户案例说起 某金融用户问,数据库用服务器本地盘性能好还是外置存储好?直觉上,本地盘路径短性能应该更好。然而测试结果却出乎意料:同等中等并发压力,混合随机读写模型,服务器本地SSD盘合计4万 IOPS…

【Spring篇】spring核心——AOP面向切面编程

目录 想要彻底理解AOP,我觉得你的先要了解框架的模块化思想,为此先记录框架在讲AOP 什么是java框架?为什么要出现框架? 我总结以下七点来讲述和帮助理解java框架思想 什么是AOP? 如何理解上面这句话呢&#xff1…

快速压缩:迅速减小PDF文件大小的步骤与技巧

虽然png图片格式是一种无损压缩格式,但是png图片的内存大小也是比较大的,而且兼容性上也没有jpg图片好,许多平台推荐的也都是jpg格式,所以当我们需要把png转jpg格式的时候,就需要用到图片格式转换器,今天推…

Pure-Pursuit 跟踪五次多项式轨迹

Pure-Pursuit 跟踪五次多项式轨迹 考虑双移线轨迹 X 轴方向位移较大,机械楼停车场长度无法满足 100 ~ 120 m,因此采用五次多项式进行轨迹规划,在轨迹跟踪部分也能水一些内容 调整 double_lane.cpp 为 ref_lane.cpp,结合 FrenetP…

鸿蒙开发报错:agconnect sdk not initialized. please call initialize()【BUG已解决】

文章目录 项目场景:问题描述原因分析:解决方案:总结:项目场景: 鸿蒙开发报错: agconnect sdk not initialized. please call initialize() 问题描述 报错内容为: 10-25 11:41:01.152 6076-16676 E A0c0d0/JSApp: app Log: 数据查询失败: {“code”:1100001,“messag…

使用VC++设计程序对一幅256级灰度图像进行全局固定阈值分割、自适应阈值分割

图像分割–全局固定阈值分割、自适应阈值分割 获取源工程可访问gitee可在此工程的基础上进行学习。 该工程的其他文章: 01- 一元熵值、二维熵值 02- 图像平移变换,图像缩放、图像裁剪、图像对角线镜像以及图像的旋转 03-邻域平均平滑算法、中值滤波算法、…

定长子网划分和变长子网划分问题_二叉树解法_通俗易懂_配考研真题

引入:定长子网划分和变长子网划分的基本概念 定长子网划分和变长子网划分的基本概念 目前常用的子网划分,是基于CIDR的子网划分,也就是将给定的CIDR地址块划分为若干个较小的CIDR地址块。 定长子网划分: 使用同一个子网掩码来划分子网,因…

libmosquitto库的一个bug,任务消息id(mid)分配后不起作用

代码如图所示: 当订阅了所有主题后,每个主题的mid是他们的下标索引加100的数字,可是实际打印出来的值是: mid依然是1,2,这个参数在这里失效了,不知道是bug还是mqtt的什么机制?

武汉数字孪生赋能工业制造,加速推进制造业数字化转型

随着数字孪生技术的不断推进,互联网、物联网、智能传感技术开始应用到数控机床的远程服务,状态监控,故障诊断,维护管理等方面。武汉数字孪生是在虚拟空间中创建物理对象的高保真虚拟模型,以模拟其在现实世界中的行为提…

2023年03月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 计算“2+4+8+……+128”,用变量n表示每项,根据变化规律,变量n的赋值用下列哪个最合适?( ) A: B: C: D: 答案:D

叠加原理(superposition principle)

叠加原理(superposition principle)指对线性系统而言,两个或多个输入产生的输出,等于这几个输入单独引起的输出的和,即输入的叠加等于各输入单独引起的输出的叠加。 例如,如果输入产生的输出是,…

「C++」入门

🎇个人主页:Ice_Sugar_7 🎇所属专栏:C启航 🎇欢迎点赞收藏加关注哦! 文章目录 🍉前言🍉命名空间🍌访问命名空间中的元素🍌同名命名空间🍌展开&…

2018年1月22日 Go生态洞察:Hello, 中国!

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

C语言之指针知识点总结

C语言之指针知识点总结 文章目录 C语言之指针知识点总结1. 初识指针1.1 取地址操作符 &1.2 指针变量1.3 解引用操作符 *1.4 指针变量1.4.1 大小1.4.2 指针类型的意义 1.5 void*指针1.6 const关键字1.61 const修饰变量1.6.2 const修饰指针变量 1.7 指针的运算1.7.1 指针-整数…

pyhon数据分析A股股票策略实际买卖总结(每月末更新数据)

简介 本篇文章主要记录python数据分析a股股票选股后实际买卖的记录。 选股策略 低位寻股,筛选出低位股价股票已经做过调整的股票,做短线交易(不超过7天),不贪,小赚即走。分三个时段,开盘三十…

SAS9.2软件“OLE:对象的类没有在注册数据库中注册“问题的解决. 2023-11-25

操作系统测试平台: Win7 sp1 32bit (6.1.7601.26321 (Win7 RTM)) ; Win 11 64bit(具体版本不详) 其它win平台理论上也可以,可自行测试 1.安装依赖库(必要步骤) 下载地址: Microsoft Visual C 2005 Redistributable 下载 Microsoft Visual C 2008 Redistributable 官方vc库总…

buuctf web [极客大挑战 2019]PHP

提示有备份,dirsearch扫描网站备份 GitHub - maurosoria/dirsearch: Web path scanner下载.zip格式文件 解压到python目录下 在上图位置cmd打开窗口 输入python setup.py install安装dirsearch 安装好后输入命令使用dirsearch python dirsearch.py -u http://44296191-973d-…

第一百八十回 介绍两种阴影效果

文章目录 1. 概念介绍2. 实现方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"自定义SlideImageSwitch组件"相关的内容,本章回中将介绍两种阴影效果.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在…