当前位置: 首页 > news >正文

Java多进程(详细)

进程的含义

        简单理解是正在跑起来的程序,正在运行的程序。没有正在运行的程序不叫进程,同一个程序,运行多次,就可能产生多个进程。

        平时所说的程序,值的是一些exe的可执行文件,得把程序跑起来才会涉及到进程。

进程和程序的区别

        程序是可执行文件,只是在硬盘上的一个东西(静态的)

        如果双击程序,此时操作系统,就会把可执行文件中的数据和指令,加载到内存中,并且让CPU去执行这里的指令,,完成一系列相关的工作,运行起来的(动态的)就是进程

        进程能够干活,说明进程能够消耗一定的硬件资源,可执行程序,只是占用了硬盘空间,而进程,会消耗cpu资源,内存资源,硬盘,网络带宽

进程的管理

        对于计算机中进程的管理,核心思路采用先描述,再组织 

        1.描述

        会使用一个专门的结构体,来记录一个进程里面的各个属性。

        这个结构体叫做PCB(进程控制块)(Linux中的PCB,在源码中是一个task_struct结构体)

(通用叫法,各种系统里用来描述进程的结构体都可以被称为PCB)

        2.组织

        会使用一系列的数据结构,把多个进程进行一个有效的组织,随时方便进行遍历,查找,汇总数据

        对于Linux来说通常是使用双向链表这样的方式来组织的

        当使用双向链表进行组织的时候

                1.查看进程的列表,本质就是在就是在遍历这个链表。

                2.创建一个进程,就是创建一个PCB结构体,并且插入到链表中

                3.销毁一个进程,就是把这个PCB结构体从链表上删除并释放

PCB中大致有哪些属性

        1.PID进程的标识

                同一个系统上的同一时刻,每一个进程的pid是不相同的,它相当于是进程的身份标识,是用于区分进程的

        2.内存指针

                表达了该进程对应的内存资源是什么样的,比如内存资源要存些什么

                最主要存储的就是从exe可执行文件中加载过来的指令和数据

        3.文件描述符表

                和硬盘资源有关

                硬盘是硬件,应用程序一般是没法直接接触到硬件这一层的

                实际上是操作系统抽象成文件这样的概念,程序操作的是文件,文件实践上是保存在硬         盘上的,采用这种方法程序间接操作硬盘

                每个进程都会有一个文件描述符表来记录当前进程正在使用哪些文件

                操作系统打开一个文件就会产生一个"文件描述符",同时会使用文件描述符表把文件描         述符组织起来

        4.记账信息

                相当于是一个统计信息,会统计进程在cpu中执行了多久,执行了多少指令,是对于进程         的调度工作进行一个兜底,避免优先级较高的进程执行太长时间。

PCB中进程调度相关的属性

        1.状态

                这里介绍的是两个常见的状态(不是所有的)

                        1.就绪状态,进程已经做好了随时被CPU执行的准备

                        2.堵塞状态/睡眠状态,进程还没有准备好调度到CPU上

                状态是可以互相转换的

        2.优先级

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

        3.上下文

                这些进程是轮着上的,一次运行不完,就需要保证下次上CPU运行的时候,能够从上次运行到的位置继续往后运行,相当于存档,读档。        

并行和并发

        1.并行

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

        2.并发

                两个进程轮换着在一个CPU核心上运行

                由于CPU切换进程的速度极快,微观上两个进程是串行执行的,宏观上两个进程是同时执行的

为什么不直接分配内存给进程

        在很久之前,操作系统是直接分配内存给进程的,但是要是进程中的代码有BUG,比如进程 中的代码出现了指针的越界访问,就可能会将其它进程中的数据修改,导致其他进程崩溃,这是很不合理的,会非常影响系统的稳定性所以现在不直接分配内存给进程

虚拟地址

        1.虚拟地址的含义

                虚拟地址,并非是在物理内存上真实存在的地址,而只是在该进程中存在,不同的进程         可以存在相同的虚拟地址,但是对应到的是不同的物理地址,虚拟地址和物理地址操作系统         可以进行灵活的转换

        2.虚拟地址的作用

                这样设定了以后,每一个进程的有效的虚拟地址都是固定范围

                进程使用虚拟地址的内存时,都需要将虚拟地址转换成物理地址,这个转换过程中,就可以针对虚拟地址是否有效做出一个校验,就很有安全的保证

        3.虚拟地址的效果

                在虚拟地址空间的加持下进程就具有了独立性,每一个进程都有自己的虚拟地址空间,一个进程无法直接访问或者修改另一个进程的虚拟地址空间的内存,强化了系统的稳定性

进程间通信的本质

        找一个公共的区域,多个进程都能访问到的区域,借助公共区域来完成数据的交换。

        

                

相关文章:

Java多进程(详细)

进程的含义 简单理解是正在跑起来的程序,正在运行的程序。没有正在运行的程序不叫进程,同一个程序,运行多次,就可能产生多个进程。 平时所说的程序,值的是一些exe的可执行文件,得把程序跑起来才会涉及到进程…...

OpenCV 4.0+Python机器学习与计算机视觉实战

💂 个人网站:【办公神器】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言第一部分&…...

自学网络安全(黑客)全笔记

一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…...

WAF/Web应用安全(拦截恶意非法请求)

Web 应用防火墙(Web Application Firewall, WAF)通过对 HTTP(S) 请求进行检测,识别并阻断 SQL 注入、跨站脚本攻击、跨站请求伪造等攻击,保护 Web 服务安全稳定。 Web 安全是所有互联网应用必须具备的功能&#xff0c…...

Windows环境下git客户端中的git-bash和MinGW64

我们在 Windows10 操作系统下,安装了 git 客户端之后,可以通过 git-bash.exe 打开一个 shell: 执行一些 linux 系统里的命令: 注意到上图紫色的 MINGW64. Mingw-w64 是原始 mingw.org 项目的改进版,旨在支持 Window…...

欧姆龙CX系列PLC串口转以太网欧姆龙cp1hplc以太网连接电脑

你是否还在为工厂设备信息采集困难而烦恼?捷米特JM-ETH-CX转以太网通讯处理器为你解决这个问题! 捷米特JM-ETH-CX转以太网通讯处理器专门为满足工厂设备信息化需求而设计,可以用于欧姆龙多个系列PLC的太网数据采集,非常方便构建生…...

Vue3笔记

1. Vue2 选项式 API vs Vue3 组合式API <script> export default { data(){ return { count:0 } }, methods:{ addCount(){ this.count } } } </script> <script setup> import { ref } from vue const count ref(0) c…...

git相关

gerrit用户指南&#xff1a; 资料&#xff1a;Gerrit 用户指南 gerrit-user-guide 上述有介绍如何review&#xff0c;review并非修改代码之后如何重新提交等操作 jenkins介绍 Jenkins详细教程 - 知乎 一、jenkins是什么&#xff1f; Jenkins是一个开源的、提供友好操作界…...

车道线检测|利用边缘检测的原理对车道线图片进行识别

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 这两个都是博主在学习Linux操作系统过程中的记录&#xff0c;希望对大家的学习有帮助&#xff01; 操作系统Operating Syshttps://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482Linux S…...

C++—static关键字详解

引言&#xff1a; C的static有两种用法&#xff1a;面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数&#xff0c;不涉及类&#xff1b;后者主要说明static在类中的作用。 一.面向过程中的static 1.静态全局变量 静态全局变量有以下特点…...

CS144学习笔记(1):Internet and IP

1.网络应用 网络应用可以在世界范围内交换数据&#xff0c;例如你可以通过浏览器读取出版社服务器提供的文章。网络应用的基本模型&#xff1a;两台主机各自在本地运行一个程序&#xff0c;程序通过网络来通信。 最常用的通信模型使用双向可靠字节流&#xff0c;通信的两台主机…...

2 Linux基础篇-Linux入门

2Linux基础篇-Linux入门 文章目录 2Linux基础篇-Linux入门2.1 Linux介绍2.2 Linux和Unix的关系 学习视频来自于B站 【小白入门 通俗易懂】2021韩顺平 一周学会Linux。 2.1 Linux介绍 常见的操作系统有 Windows、MacOS、Android、ios、Linux、Unix等。而其中&#xff0c;Linux是…...

分享200+个关于AI的网站

分享200个关于AI的网站 欢迎大家访问&#xff1a;https://tools.haiyong.site/ai 快速导航 AI 应用AI 写作AI 编程AI 设计AI 作图AI 训练模型AI 影音编辑AI 效率助手 AI 应用 文心一言: https://yiyan.baidu.com/ 百度出品的人工智能语言模型 ChatGPT: https://chat.openai.c…...

静态 链接

1、空间与地址的分配 现在的链接器空间分配的策略基本上都采用 “相似段合并” 的方式。通过将所有相同类型的 section 合并到一起&#xff0c;例如将所有输入目标文件的 .text 合并&#xff08;按顺序合并&#xff09;到输出文件的 .text 节中&#xff1b;然后&#xff0c;链接…...

【C#性能】C# 语言中的数组迭代

一、说明 可迭代性&#xff0c;是数组等操作的根本&#xff1b;在C程序开发过程中&#xff0c;可迭代操作是非常普遍、非常广泛的&#xff0c;然而&#xff0c;对这种操作知道多少&#xff0c;又不知道多少&#xff0c;都将影响开发灵活性、开发的进度。因此&#xff0c;本文干…...

全志F1C200S嵌入式驱动开发(解决spi加载过慢的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 之前的几个章节当中,我们陆续解决了spi-nor驱动的问题、uboot支持spi-nor的问题。按道理来说,下面要做的应该就是用uboot的loady命令把kernel、dtb、rootfs这些文件下载到ddr,然…...

信息系统项目管理师(第四版)教材精读思维导图-第三章信息系统治理

请参阅我的另一篇文章&#xff0c;综合介绍软考高项&#xff1a; 信息系统项目管理师&#xff08;软考高项&#xff09;备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 目录 3.1 IT治理 3.2 IT审计 3.1 IT治理 3.2 IT审计...

区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归多变量时间序列区间…...

五步快速搭建个性化外卖小程序商城

随着人们生活节奏的加快&#xff0c;外卖行业蓬勃发展。为了满足用户的需求&#xff0c;许多企业开始使用小程序商城来提供外卖服务。那么&#xff0c;如何制作一个功能完善、用户友好的外卖小程序商城呢&#xff1f;下面就来为大家详细介绍一下制作的步骤。 首先&#xff0c;我…...

jenkins中配置了发送邮件,构建后却没有发邮件Not sent to the following valid addresse

【问题描述】&#xff1a;jekins中配置了发送邮件&#xff0c;构建后却没有发邮件的问题&#xff0c;构建报错&#xff1a;Not sent to the following valid addresse 【报错显示】&#xff1a; 【问题定位】&#xff1a;Extended E-mail Notification中&#xff0c;没有配置…...

省下99%内存!ESP32+TensorFlow Lite模型量化实战:让CNN在520KB RAM上跑起来

ESP32TensorFlow Lite模型量化实战&#xff1a;520KB RAM跑CNN的极限优化手册 当我在一个工业质检项目中首次尝试将CNN模型部署到ESP32时&#xff0c;开发板不断报出的内存不足错误让我意识到&#xff1a;在仅有520KB RAM的微控制器上跑深度学习&#xff0c;需要的不仅是技术实…...

高效优化Windows 11:Win11Debloat彻底提升系统性能与隐私保护指南

高效优化Windows 11&#xff1a;Win11Debloat彻底提升系统性能与隐私保护指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...

PyTorch 2.9镜像效果实测:如何利用新特性提升资源利用率与训练效率

PyTorch 2.9镜像效果实测&#xff1a;如何利用新特性提升资源利用率与训练效率 1. PyTorch 2.9镜像概览 PyTorch 2.9作为最新发布的深度学习框架版本&#xff0c;带来了多项性能优化和功能增强。我们测试的PyTorch-CUDA-v2.9镜像是一个开箱即用的深度学习环境&#xff0c;预装…...

BMS软件架构实战 — 深入解析Modbus协议栈与通信实现

1. Modbus协议在BMS中的核心价值 电池管理系统&#xff08;BMS&#xff09;作为新能源领域的"大脑"&#xff0c;需要实时监控数百个电芯参数。而Modbus协议就像一位高效的"翻译官"&#xff0c;将复杂的电池数据转化为标准化的通信语言。我在电动汽车BMS项目…...

告别游戏客户端!用ROFL-Player深度分析你的英雄联盟回放

告别游戏客户端&#xff01;用ROFL-Player深度分析你的英雄联盟回放 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为每次分析比赛…...

DroidCam手机变电脑摄像头工具

DroidCam 这款免费工具&#xff0c;能让你的安卓或iPhone瞬间变成电脑的无线/USB摄像头。无论是开Zoom会议、上网课还是直播&#xff0c;画质直接碾压普通电脑摄像头。优点很明显&#xff1a;零成本&#xff1a;利用闲置旧手机&#xff0c;省下买新摄像头的钱。画质好&#xff…...

[GROMACS]氢键分析工具的版本迭代:“-life”等参数的消失

引言&#xff1a;一次意外的发现 “为什么我的GROMACS没有gmx hbond中的-life参数&#xff1f;” 当我在Windows终端中输入gmx hbond -h&#xff0c;仔细翻看帮助文档中每一个参数&#xff0c;却始终找不到期待已久的-life选项时&#xff0c;一种困惑油然而生。氢键寿命分析&…...

告别WebSecurityConfigurerAdapter:Spring Security 5.7+组件化配置实战指南

1. 从WebSecurityConfigurerAdapter到组件化配置的转变 如果你最近在升级Spring Boot应用&#xff0c;特别是从2.x版本迁移到3.x&#xff0c;肯定会遇到一个重大变化&#xff1a;Spring Security 5.7版本中&#xff0c;WebSecurityConfigurerAdapter这个老朋友已经被正式弃用了…...

Win11下VSCode+QT5实战:从零搭建C++跨平台GUI开发环境

1. 环境准备&#xff1a;搭建开发环境的基石 在Windows 11上搭建C GUI开发环境&#xff0c;就像组装一台高性能电脑&#xff0c;需要先准备好所有必要的"硬件"和"软件"。我去年接手一个跨平台项目时&#xff0c;花了整整三天才把环境搭好&#xff0c;现在把…...

华新嘉华:如何做好GEO?记住!简单的内容堆砌达不到效果

‍在生成式AI搜索全面重塑信息获取方式的当下&#xff0c;越来越多的企业开始布局GEO&#xff08;生成式引擎优化&#xff09;&#xff0c;希望抢占AI搜索这一新兴流量入口。然而&#xff0c;一个不容忽视的现象正在蔓延&#xff1a;大量企业投入资源、批量生产内容&#xff0c…...