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

进程的介绍

文章目录

  • 一.进程的概念
    • 1.1概念
    • 1.2进程的组成
      • 1.2.1 PCB中描述进程的特征
  • 二.进程的虚拟地址空间
  • 三.进程间的通信
  • 引入线程

一.进程的概念

1.1概念

百科的介绍:
百科的介绍
换句话说,一个跑起来的程序,就是一个进程,也就是在操作系统中运行的exe程序就是一个进程,如下图的进程列表
在这里插入图片描述
进程是操作系统对一个正在运行的程序的抽象,同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位

而线程是操作系统调度执行的基本单位

1.2进程的组成

进程是一个重要的"资源管理",是由描述+组织构成的,
描述:使用结构体来描述进程属性(PCB(进程代码块))
组织:通过双向链表,来把多个PCB给串到一起

1.2.1 PCB中描述进程的特征

  1. pid 进程的身份标识符(唯一的数字)
  2. 内存指针 (指向自己的内存是那些)
  3. 文件描述符表 (硬件上的文件等其他资源)
  4. 进程调度的相关属性

详细的介绍的进程调度的相关属性

  1. 进程的状态
  • 就绪状态
  • 运行状态
  • 阻塞状态
  1. 优先级
  2. 上下文
    操作系统在进行进程切换的时候,就要把进程执行的"中间状态"记录下,保存好,下次这个进程再上CPU运行的时候,就可以恢复上次的状态好继续往下执行(读档,存档)
  3. 记账信息
    操作系统,统计每个进程在CPU上占用的时间和执行的指令的数目,根据这个来决定下一阶段如何调度

二.进程的虚拟地址空间

内存管理----虚拟地址空间
程序中所获取的内存地址,并非是真的物理内存的地址,而是经过了一层抽象,虚拟出来的地址(内存的特性:随机访问(闪现))

虚拟地址空间:程序中所取到内存地址,并非是真正的物理内存的地址,而是经过了一层抽象,虚拟的地址

先来介绍未引入虚拟地址的模式
在这里插入图片描述

如果代码不小心出不bug了,可能会导致访问的内存越界
像上面的图片,进程1访问的内存越界到进程2时候,就把进程2搞崩溃了

针对进程使用的内存空间,进行’"隔离"引入了虚拟地址空间,代码里不再直接使用真实的物理地址,而是使用虚拟的地址(由操作系统和专门的硬件设备负责进行虚拟地址到物理地址的转换)
如下图:
在这里插入图片描述

一旦进程1访问越界了,操作系统发现后,此时就直接向进程反馈一个错误(具体来说是发送一个(SIGN SEGEMNT FAUL信号,引起进程的崩溃)

三.进程间的通信

虽然进程进行隔离,但是也引入了新的问题,进程之间也需要进行数据的交互,如此,进程之间就需要有进行"信息交换"的需求.进程间通信的需求就应运而生。
简单来说,需要搞一多个进程都能访问到"公共空间",基于这个公共空间进行交互数据即可.
其中公共空有很多具体的体现形式(不作过多介绍)

  1. 管道
  2. 共享内存
  3. 文件
  4. 网络
  5. 信号量
  6. 信号

引入线程

一个进程要完成内核的事情,它必须有一个运行在它的地址空间的线程。此线程负责执行该进程地址空间的代码。每个进程至少拥有一个在它的地址空间中运行的线程。一个进程要完成内核的事情,它必须有一个运行在它的地址空间的线程。此线程负责执行该进程地址空间的代码。每个进程至少拥有一个在它的地址空间中运行的线程。

相关文章:

进程的介绍

文章目录一.进程的概念1.1概念1.2进程的组成1.2.1 PCB中描述进程的特征二.进程的虚拟地址空间三.进程间的通信引入线程一.进程的概念 1.1概念 百科的介绍: 换句话说,一个跑起来的程序,就是一个进程,也就是在操作系统中运行的exe程序就是一个进程,如下图的进程列表 进程是操…...

hadoop shell 练习题

hadoop shell 练习题: 利用Hadoop提供的Shell命令完成以下任务(路径中的xxx替换为自己的用户名): 1、显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息; 示例: hdfs dfs -ls / 2、从HDFS中下载指定文件; 示例: hdfs dfs -get /…...

优化Linux系统性能的必杀技:调整进程优先级!学会使用nice命令,让你的系统飞一般的顺畅!

文章目录前言一. nice命令介绍1.1 nice的介绍1.2 cpu资源的调度1.3 nice是控制内核吗?二. 语法格式及常用选项三. 参考案例3.1 将ls命令的优先级调整为最高3.2 将 find 命令的优先级调整为最低3.3 如何查看nice值四. nice和renice的区别总结前言 大家好&#xff0c…...

fastdds router-3.开始

1. 项目概述 DDS路由器是由eProsima开发的跨平台非图形化应用程序,由Fast DDS提供支持,允许创建一个通信桥,连接两个DDS网络,否则将被隔离。DDS路由器的主要用途是通信两个物理或虚拟分离的DDS网络,这些网络属于不同的…...

云服务器ECS 什么是云服务器ECS?

云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。 云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共…...

【socket网络编程】

socket网络编程主机字节序列和网络字节序列套接字地址结构通用socket地址结构专用的socket地址结构IP地址转换函数网络编程接口TCP编程流程代码举例服务器代码客户端服务器并发处理多个客户端多线程多进程主机字节序列和网络字节序列 主机字节序列分为大端模式和小端模式&…...

【验证码逆向专栏】某验三代、四代一键通过模式逆向分析

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 本文章未经许可禁止转载…...

《MySql学习》 MySQL的 加锁规则

MySQL加锁原则 两个原则 原则 1:加锁的基本单位是 next-key lock。next-key lock 是前开后闭区间(区间锁和行锁)。原则 2:查找过程中访问到的对象(索引)才会加锁。 两个优化 1.优化 1:索引上…...

软件测试(linux命令篇-01文件操作命令)

linux文件篇命令linux系统常用文件操作命令1、查看目录内容及常用参数:ls2、目录切换:cd 3、创建文件:touch 4、创建目录 :mkdir5、 删除文件或目录:rm6、文件或目录的复制:cp7、文件或目录的移动&#xff…...

Code Virtualizer 3.1.4 Crack

Code Virtualizer 是一个强大的 Windows 应用程序代码混淆系统,它可以帮助开发人员保护他们的敏感代码区域免受逆向工程的影响,基于代码虚拟化的非常强大的混淆代码。 Code Virtualizer 会将您的原始代码(Intel x86/x64 指令)转换…...

Torch同时训练多个模型

20230302 引言 在进行具体的研究时,利用Torch进行编程,考虑到是不是能够同时训练两个模型呢?!而且利用其中一个模型的输出来辅助另外一个模型进行学习。这一点,在我看来应该是很简单的,例如GAN网络同时训…...

LCR数字电桥软件下载安装教程

软件:LCR数字电桥软件NS-LCR 语言:简体中文 环境:NI-VISA 安装环境:Win10以上版本(特殊需求请后台私信联系客服) 硬件要求:CPU2GHz 内存4G(或更高)硬盘500G(或更高) …...

C++模板写法详解

模板 概念 模板就是建立通用的模具,大大提高复用性 模板主要体现了cpp编程的另外一种思想泛型编程cpp提供两种模板机制 函数模板类模板 函数模板 作用 建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表 语…...

【备战面试】每日10道面试题打卡-Day2

本篇总结的是Java基础知识相关的面试题,后续也会更新其他相关内容 文章目录1、 和 equals 的区别是什么?2、你重写过 hashcode 和 equals 吗,为什么重写equals时必须重写hashCode方法?3、为什么Java中只有值传递?4、BI…...

“数字档案室测评”相关参考依据梳理

数字档案室建设无疑比数字档案馆建设应用范围更为广泛,涉及的单位类型和专业领域也更多。这一点从国家档案局的机构设置上也可以看出端倪: 国家档案局两个内设业务指导司中,档案馆(室)业务指导司主要针对档案馆和机关档案室,而经济…...

android 动态加载jar包

什么时候需要用到动态加载jar包呢? 减少apk本身大小,某些界面才需要用jar里的功能jar中的功能可以独立开发,不要依赖其它的东西,能适用各个项目和第三方公司合作,人家不提供项目源码给你,但又要开发他们使…...

JAVA版B2B2C商城源码多商户入驻商城

三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS Android 公众号 H5 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移…...

测试人员如何在测试环境数据库批量生成测试数据?方案分享

测试人员为了测试某个特定场景,往往需要在测试环境数据库中插入特定的测试数据来满足需求;性能测试时,常需要在测试环境生成大量可用测试数据来支持性能测试;建设持续集成持续交付体系时,我们往往也需要在测试环境生成…...

【el】表单

elementUI中的表单相关问题一、用法1、动态表单调用接口返回表单&#xff0c;后端的接口返回值如下&#xff1a;这些是渲染后的效果页面使用&#xff08;父组件&#xff09;<el-button size"small" class"Cancelbtn" click"sub(true)">发起…...

【Flutter入门到进阶】Flutter基础篇---布局

1 GridView网格布局组件 1.1 说明 1.1.1 图例 1.1.2 说明 GridView网格布局在实际项目中用的也是非常多的&#xff0c;当我们想让可以滚动的元素使用矩阵方式排列的时 候。此时我们可以用网格列表组件GridView实现布局 GridView创建网格列表主要有下面三种方式 1、可以通过Gr…...

任意偏振与圆偏振BIC光子晶体远场偏振计算:COMSOL中的直接画偏振态

任意偏振BIC&#xff0c;圆偏振BIC光子晶体远场偏振计算COMSOL直接画偏振态 最近在研究任意偏振BIC&#xff08;Bound states in the continuum&#xff09;和圆偏振BIC光子晶体的远场偏振计算&#xff0c;发现用COMSOL直接画偏振态还挺有意思的。今天就来聊聊这个&#xff0c…...

cobalt家谱研究者助手:家族历史与档案管理方案

cobalt家谱研究者助手&#xff1a;家族历史与档案管理方案 引言&#xff1a;家谱研究的数字时代痛点与解决方案 你是否还在为散乱的家族史料整理而困扰&#xff1f;是否经历过珍贵的口述历史随时间流逝而湮灭&#xff1f;cobalt家谱研究者助手&#xff08;家族历史与档案管理方…...

OpenClaw语音交互方案:nanobot镜像对接语音输入输出

OpenClaw语音交互方案&#xff1a;nanobot镜像对接语音输入输出 1. 为什么需要语音交互能力 作为一个长期使用OpenClaw的技术爱好者&#xff0c;我一直在思考如何让这个强大的自动化工具更加"人性化"。传统的命令行和文本交互方式虽然高效&#xff0c;但对于不擅长…...

手把手教你用Python+AI大模型,把Yapi接口文档变成自动化测试脚本(附避坑指南)

用Python与大模型实现Yapi接口自动化测试的工程化实践 在中小型技术团队中&#xff0c;接口测试往往是质量保障的薄弱环节。传统手工编写测试用例的方式不仅耗时耗力&#xff0c;更难以应对快速迭代的开发节奏。本文将分享如何利用Python生态与AI大模型能力&#xff0c;将Yapi平…...

Phi-4-Reasoning-Vision效果展示:红外图像+可见光图像跨模态推理

Phi-4-Reasoning-Vision效果展示&#xff1a;红外图像可见光图像跨模态推理 1. 多模态推理工具概览 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具&#xff0c;专为双卡RTX 4090环境优化。这个工具最令人印象深刻的是它能够处…...

Python+Spire.Doc实战:5分钟搞定Word邮件合并批量生成邀请函(附完整代码)

PythonSpire.Doc实战&#xff1a;5分钟搞定Word邮件合并批量生成邀请函&#xff08;附完整代码&#xff09; 行政和市场人员经常面临批量发送个性化邀请函的挑战。传统手动修改不仅耗时费力&#xff0c;还容易出错。今天我们将用Python和Spire.Doc库&#xff0c;实现高效精准的…...

别再只用LSTM了!用XGBoost做电力负荷预测,从特征工程到模型部署的完整实战(附Python代码)

电力负荷预测实战&#xff1a;XGBoost如何超越LSTM的五大技术突破 在能源管理领域&#xff0c;准确预测电力负荷一直是行业痛点。当大多数团队还在使用LSTM等深度学习模型时&#xff0c;一个令人惊讶的事实正在发生&#xff1a;经过精心调优的XGBoost模型在多个工业场景中表现优…...

避坑指南:在华为云上为Python老项目配置代码检查与自动化构建(以Flask应用为例)

避坑指南&#xff1a;在华为云上为Python老项目配置代码检查与自动化构建&#xff08;以Flask应用为例&#xff09; 当我们需要将一个遗留的Python项目迁移到现代化开发流程时&#xff0c;往往会遇到各种"历史包袱"。本文将以一个从Python 2.7升级到3.7的Flask应用为…...

【架构实战】数据库分库分表实战

一、为什么需要分库分表 当数据量超过单机数据库的承载能力时&#xff0c;分库分表成为必然选择&#xff1a; 单库数据量过亿&#xff1a;查询性能急剧下降单表数据量过大&#xff1a;索引效率降低&#xff0c;DML操作变慢连接数耗尽&#xff1a;数据库连接成为稀缺资源存储空间…...

【ArUco GridBoard实战】从精度瓶颈到优化检测的完整指南

1. ArUco GridBoard的精度瓶颈与优化思路 在实际的计算机视觉项目中&#xff0c;我们经常会遇到标定板尺寸受限的情况。比如我之前做的一个工业检测项目&#xff0c;标定板尺寸被限制在3cm2cm以内。最初使用的是Charuco标定板&#xff0c;但很快就发现了一个严重问题&#xff1…...