<JavaEE> 什么是进程(Process)?进程管理,进程调度,内存管理,进程间通信和多进程编程

目录

一、进程(Process)的概念

二、进程管理

三、进程调度

四、内存管理

五、进程间通信

六、多进程编程


一、进程(Process)的概念

        进程(process)也称为任务(task),是操作系统对一个正在运行的程序的一种抽象,可以把进程看作程序的一次运行过程。同时,在操作系统内部,每个进程在执行过程中,都需要消耗一定的软件和硬件资源,因此进程又是操作系统进行资源分配的基本单位。


二、进程管理

描述进程:

        进程使用进程控制块(PCB)进行描述,计算机内部要管理任何现实事物,都需要将其抽象成一组有关联的、互为一体的数据。

        在不同语言中,可以使用类或结构体的方式来描述事物的特征

        每一个进程控制块(PCB)对象,就代表一个运行着的程序,即进程。

阅读指针 -> 《什么是进程控制块(PCB Process Control Block)?》

<JavaEE> 什么是进程控制块(PCB Process Control Block)?-CSDN博客文章浏览阅读16次。介绍进程控制块和进程控制块的核心属性。进程控制块适用于进程,也适用于线程。https://blog.csdn.net/zzy734437202/article/details/134583750

组织进程:

        操作系统通过线性表、搜索树等数据结构将进程控制块(PCB)进行组织,方便管理时进行增删改查操作。


三、进程调度

        进程调度(Process Scheduling),是对CPU资源进行分配。

        同一时刻,一个CPU核心上,只能有一个进程在运行。但CPU核心少,进程往往非常多,CPU资源不够分配。此时就需要进行进程调度,分时复用,并发执行

        操作系统对CPU资源的分配,采用的时时间模式,即不同的进程在不同的时间段使用CPU资源。


四、内存管理

        内存管理(Memory Manage)也称为内存分配。每个进程的内存是彼此独立,互不干扰的,这也体现了进程的“独立性”。

        进程运行过程中被切换出CPU,此时其消耗的内存空间将暂时存放至硬盘的特定区域(swap空间),直到进程真正执行,

        操作系统对内存资源的分配,采用的是空间模式,即不同进程使用内存中的不同区域,互相之间不会干扰。


五、进程间通信

        进程是操作系统进行资源分配的最小单位,而且进程间具有“独立性”,但有时也需要多个进程之间配合完成某些任务,这就需要系统提供一些公共空间,让多个进程都能访问,进程之间借助公共空间进行数据交互,这就被称为进程间通信(Inter Process Communication)

        主流操作系统提供的进程通信机制包括:管道、共享内存、文件、网络、信号量、信号等。


六、多进程编程

简述并发的概念:

        并发(Concurrency)是一种在同一时间执行多个任务的技术。在计算机领域中,并发通常通过多线程或多进程来实现。多线程可以让程序同时执行多个任务,而多进程则可以让程序同时执行多个独立的程序。

        多个进程在同一个CPU中依次切换执行,当切换速度足够快时,在人的感知中,这些进程就是同时在执行的,这就被称为“并行”。

        当多个进程在多个CPU中依次切换执行时,从微观上看来,这些进程就不再是“依次执行”,而是“同时执行”,这就被称为“并发”。

        在多核CPU中,并行和并发是同时出现的,因此,往往也将并行和并发统称为并发,与之对应的编程方式就称为并发编程。

多进程编程的缺点:

        进程通常可以很好的解决“并发编程”的问题,但在需要频繁创建和销毁进程得情况下,进程表现得不尽如人意。此时使用的多进程编程,会使得系统开销过大。

        系统开销过大的原因在于,进程是操作系统进行资源分配的基本单位,每次创建或销毁进程都需要申请或释放系统资源。

        总结,进程过于“笨重”,在频繁进行创建和销毁时,需要不断地向系统申请和释放资源,开销较大


阅读指针 -> 《什么是线程(Thread)?进程和线程有什么区别?》

<JavaEE> 什么是线程(Thread)?进程和线程有什么区别?-CSDN博客介绍什么是线程(Thread)。进程和线程有什么区别.https://blog.csdn.net/zzy734437202/article/details/134589609

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发环境搭建-deveco-studio 开发工具安装问题()

从华为官网下载工具deveco-studio, 下载地址 HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 这是下载后的工具 1、一步步安装步骤 报错了,一般安装都会报这个错误 看似问题不小,其实, 继续下步,就正常了&#xff0c…

一款专为POS机设计的芯片解决方案

一、基本概述 HCM8003设计用于磁条读卡器系统。它会从F/2F恢复时钟和数据信号磁产生的数据流头HCM8003将用于数据速率从200到15000比特每秒。 二、典型电路 内部数据的采集和跟踪这个范围是自动的。可以应用于POS机终端设备、磁卡门禁系统、身份识别等场合。 三、引脚定义 四…

vivado产生报告阅读分析18-设计收敛报告

设计收敛报告 Report QoR Assessment report_qor_assessment 命令会生成报告以提供下列信息 : • 评估得分 , 用于指示设计满足性能目标的概率 • 有关建议的后续步骤的流程指南 • 使用率和性能指标汇总信息 • 对于 QoR 至关重要的方法论检查汇…

技术前沿探索:人工智能与大数据融合的未来

技术前沿探索:人工智能与大数据融合的未来 摘要:本博客将探讨人工智能与大数据融合领域的最新技术趋势、前沿研究方向以及挑战与机遇。通过介绍相关技术和案例,我们希望激发读者对这一领域的兴趣,并为其职业发展提供有益参考。 一…

【RtpRtcp】1: webrtc m79:audio的ChannelReceive 创建并使用

m79中,RtpRtcp::Create 的调用很少 不知道谁负责创建ChannelReceiveclass ChannelReceive : public ChannelReceiveInterface,public MediaTransportAudioSinkInterface {接收编码后的音频帧:接收rtcp包:

【Fusion 360环境搭建】保姆级贴心教程

文章目录 选择Fusion 360的理由一、Fusion 360注册账号二、安装 选择Fusion 360的理由 稚辉君推荐! 一、Fusion 360注册账号 官网网址 https://www.autodesk.com.cn/products/fusion-360 贴心提示:访问不了时试试手机热点 选择“ 教育” &#xf…

[架构之路-249]:目标系统 - 设计方法 - 软件工程 - 需求工程- 需求开发:如何用图形表达需求,结构化方法的需求分析

目录 一、概述 二、数据模型:E-R图/实体关系图(数据单元之间的结构关系) 三、功能模型:数据流图DFD(逻辑运算,包括输入和输出,实体之间的关系):输入》处理 》 输出 四…

golang学习笔记——创建项目

创建项目 从Go 1.8开始,将GOPATH设置为环境变量不是必需的。如果我们没有设置一个,Go使用默认的GOPATH为$HOME/go。可以使用go env查看环境变量信息。 创建项目 # 创建项目目录 mkdir helloLog cd helloLog # 使用go mod初始化项目,生成go.mod文件 go…

成为独立开发者有多难

首先自我介绍:我是一名前端开发工程师,7年的前端开发经验。CSDN 九段刀客_js,vue,ReactNative-CSDN博客,80多万的访问量,1万多的粉丝。 相信80%的程序员的终极梦想都是成为一名独立开发者,不用找工作有自己的产品可以有睡后收入。…

《C++ Core Guidelines解析》深入理解C++

前言 在计算机编程领域,C一直以其高效、灵活和强大而闻名。然而,C作为一种复杂的编程语言,如果没有正确的理解和使用,很容易导致软件质量的下降和性能问题的出现。幸运的是,一本名为《CCore Guidelines解析》的书籍为…

97、Text2NeRF: Text-Driven 3D Scene Generation with Neural Radiance Fields

简介 论文地址 使用扩散模型来推断文本相关图像作为内容先验,并使用单目深度估计方法来提供几何先验,并引入了一种渐进的场景绘制和更新策略,保证不同视图之间纹理和几何的一致性 实现流程 简单而言: 文本-图片扩散模型生成一…

An issue was found when checking AAR metadata

一、报错信息 An issue was found when checking AAR metadata:1. Dependency androidx.activity:activity:1.8.0 requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs.:app is currently compiled against …

微服务负载均衡器Ribbon

1.什么是Ribbon 目前主流的负载方案分为以下两种: 集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx)。 客户端根据…

CentOS 7 使用异步网络框架Libevent

CentOS 7 安装Libevent库 libevent github地址:https://github.com/libevent/libevent 步骤1:首先,你需要下载libevent的源代码。你可以从github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2:下载完成后&…

Springboot整合MybatisPlus及分页功能

1 引入pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId><version>2.7.14</version> </dependency> <dependency><groupId>com.baomidou</groupId><a…

【考研数据结构代码题8】三元组表示的稀疏矩阵快速转置

题目&#xff1a;三元组表示的稀疏矩阵快速转置 考点&#xff1a;矩阵的压缩与存储 难度&#xff1a;★★★ 稀疏矩阵压缩存储 三元组结构 //三元组结构 typedef struct {int row;int col;int value; } Term; 核心代码 // 转置函数&#xff0c;a为原矩阵&#xff0c;b存放转…

AIGC专题报告:生成式人工智能用例汇编

今天分享的是AIGC系列深度研究报告&#xff1a;《AIGC专题报告&#xff1a;生成式人工智能用例汇编》。 &#xff08;报告出品方&#xff1a;德勤&#xff09; 报告共计&#xff1a;16页 生成式人工智能&#xff08;AI&#xff09;的兴起 生成式AI给人类文明创造了无限的可…

STM32 CAN通信自定义数据包多帧连发乱序问题

场景&#xff1a; can标准帧中每一帧只能传输8字节&#xff0c;而应用中传输一包的内容往往超过8字节&#xff0c;因此需要把一个包拆成多个帧发送&#xff0c;接收端才把收到的多帧重新组装成一个完整的包 问题描述 在一问一答的两块板间通信&#xff0c;多帧连发是能够按照…

致远M3 反序列化RCE漏洞复现(XVE-2023-24878)

0x01 产品简介 M3移动办公是致远互联打造的一站式智能工作平台&#xff0c;提供全方位的企业移动业务管理&#xff0c;致力于构建以人为中心的智能化移动应用场景&#xff0c;促进人员工作积极性和创造力&#xff0c;提升企业效率和效能&#xff0c;是为企业量身定制的移动智慧…

基于51单片机音乐盒设计( proteus仿真+程序+原理图+PCB+报告+讲解视频)

音乐盒 主要功能&#xff1a;仿真原理图PCB图程序设计&#xff1a;设计报告实物图资料清单&#xff08;提供资料清单所有文件&#xff09;&#xff1a;资料下载链接&#xff1a; 基于51单片机音乐盒仿真设计( proteus仿真程序原理图PCB报告讲解视频&#xff09; 仿真图proteus …