【JavaEE】进程

目录

一.冯诺依曼体系结构

二.CPU的核心概念

核心数

频率(Clock Speed 或时钟频率)

如何选择合适的CPU

三.指令的执行

1.什么是指令

1.取指令

2.解析指令

3.执行指令

4.访问内存(Memory):

5.写回结果(Write Back):

四.进程

1.进程的概念

2.特点

3.进程的三种基本状态

4.创建与终止

 5.进程通信

6.进程管理

7.进程控制块(PCB)

8.进程调度*

分时复用

总结


一.冯诺依曼体系结构

什么是冯诺依曼体系结构?先来了解一下计算机祖师爷--冯诺依曼

冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是布达佩斯大学数学博士,在现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。

冯诺依曼体系结构,又称为“普林斯顿结构”,是一种计算机体系结构的设计思想,是由冯诺依曼在1945年提出。以下是该结构的核心思想和特点:

核心思想:将程序指令和数据存储在同一个读写存储器中,从而实现程序指令的存储和执行。

特点:

  1. 二进制表示:数据和指令都是使用二进制形式(0和1)表示,这使得计算机内部的数据处理和传输更为简单和高效。
  2. 统一的存储器:数据和侄子存储在同一个存储器上,通过地址来区分。这种设计简化了存储器的管理,并允许程序指令和数据之间的灵活转换。
  3. 顺序执行:计算机按照存储器中的程序指令顺序执行,每条指令执行完毕之后,程序计数器会自动指向下一条指令。
  4. 五大组成部分:冯诺依曼体系结构下的计算有五大基本部分组成。

                 1.中央处理器(CPU)CPU是由控制器和运算器共同构成的

                     控制器:相当于指挥官,根据内存中的指令来指挥完成各种操作。

                     运算器:用来处理算术运算和逻辑运算。

                  2.存储器(memory):用来存储数据和指令。分为主存储器(如RAM)和辅助存储器(如硬盘、u盘、光盘等)。主存储器提供了快速的读写能力,辅助存储器则提供了大容量的存储空间。

                  3.输入设备(Input Devices):输入设备允许用户或其他系统向计算机输入数据。常见的输入设备包括键盘、鼠标、扫描仪、摄像头等。

                  4.输出设备(Ouput Devices):输出设备用于将计算机处理后的数据以人可以理解的形式展示出来。如扬声器、耳机、显示器、打印机等。

5.指令和数据同一存储:在冯诺依曼体系结构中,指令和数据通过同一条总线传输到运算器,这种设计简化了计算机内部的结构。

6.指令的执行是顺序的:除非程序指令中包含跳转指令,否则指令是按照它们在存储器中的顺序执行的。

二.CPU的核心概念

CPU(中央处理单元)是计算机硬件的核心部件,负责执行计算机程序中的指令,处理数据控制其他硬件设备的操作。

  • 指令集:CPU执行指令的基础集合,这些指令定义了CPU可以执行的操作,如算术运算、数据传输、控制操作等。
  • 控制单元(Control Unit,CU):负责指令的解码和执行流程的控制,确保指令按正确的时序执行。
  • 运算单元(Arithmetic Logic Unit,ALU):负责协调和控制CPU内核的操作,包括指令的解码和执行。
  • 缓存:提供快速的数据存取,减少CPU和主内存之间的数据传输延迟。
  • 并行处理:现代CPU通常具有多个核心,每个核心可以独立执行指令。这种多核设计允许CPU并行处理任务,从而提高整体性能。

核心数

定义:核心数是指在CPU中独立的处理单元数量。每个核心都是一个完整的处理单元,能够执行指令、进行计算和处理数据。

在任务管理器中,可以查看计算机的核心数

优势:多核心CPU能够同时处理多个线程或进程,对多任务处理和并行计算非常重要。核心数的增加可以提高CPU的多任务处理能力和并行计算能力,尤其是在运行多线程应用程序时。

适用场景:视频编辑、3D渲染、科学计算等需要大量并行处理的应用。

频率(Clock Speed 或时钟频率)

定义:CPU中的频率通常指的是时钟频率,即CPU的时钟速度,它表示CPU内部的时钟振荡器产生周期性信号的速率,单位是赫兹(Hz)。时钟频率是衡量CPU性能的一个重要指标,它决定了CPU每秒可以执行多少个时钟周期,从而影响CPU执行指令的速度。(1GHz【千兆赫兹】=10^9Hz) 

性能:更高的时钟频率通常意味着更好的性能,因为CPU可以在单位时间内执行更多的操作。

如何选择合适的CPU

在选择CPU时,需要考虑预算、使用场景、性能要求等。

办公或者家庭使用:通常选择中低端的CPU即可;

游戏使用:如果有游戏需求的话,不仅要牢牢CPU,还要考虑GPU,大多数游戏对CPU的要求并不高,但对于一些3A大作,需要比较高的性能。

专业工作负载:如视频编辑、3D渲染、工程模拟等,这些任务通常需要强大的多线程性能。因此,考虑购买具有更多核心和更高线程数的CPU。

三.指令的执行

1.什么是指令

指令(instruction)是指示计算机执行特定操作的命令。它是计算机程序的基本构建块,由计算机的中央处理器(CPU)解释和执行。每条指令都代表了一种操作,比如数据传输、算术运算、逻辑判断、控制转移等。

由编程语言编写的程序,最终都要被翻译成“CPU上执行的二进制指令”

指令执行过程为:

取指令--->分析指令--->执行指令

1.取指令

  • 程序计数器(Program Counter,即PC):计算机中央处理器(CPU)中的一个特殊寄存器,存储着当前正在执行指令的地址或者下一条要执行的指令的内存地址。
  • 内存读取:根据程序计数器PC中的值从程序存储器读取出指令,送到指令寄存器。
  • PC更新:当指令被读取之后,PC会自动递增,执行下一个指令的地址。

2.解析指令

解析指令:指令寄存器中的指令被解码,确定操作码(Opcode)和操作数(Operand)。

 操作数寻址:根据操作数寻找操作的地址。

3.执行指令

  • 读取数据:把操作数的内存数据读取出来,并存放到寄存器中。
  • CPU执行解码阶段确定的操作,这可能包括算术运算、逻辑运算、数据传输或控制操作。
  • 执行阶段可能涉及ALU(算术逻辑单元)进行计算,或者访问寄存器和内存进行数据读取或写入。

4.访问内存(Memory):

  • 如果指令需要访问内存(例如,加载或存储数据),这个阶段会进行内存读写操作。

5.写回结果(Write Back):

  • 执行结果写回到CPU寄存器或内存中,以便后续指令可以使用这些结果。

当完成上述步骤之后,CPU会重复这一过程,开始取下一条指令,直到最后一条指令结束。

遇到跳转指令、电源或硬件故障、遇到异常或错误等,会使CPU停止或中断。

示例:

 

 

四.进程

进程是操作系统中的一个核心概念,用于描述系统中正在运行的程序及其相关状态。操作系统负责进程的创建、调度、同步、通信和终止等任务,以确保系统的高效和稳定运行。

1.进程的概念

进程是程序程序的一次运行,是系统进行资源分配和调度的基本单位。每个进程都有一系列的属性,包括进程ID(Process ID)、状态、程序计数器(Program Counter)、寄存器集合、堆栈、内存限制、打开的文件列表、访问权限和安全属性等。

2.特点

  1. 动态性:进程是程序的一次执行过程,它随着时间的推移而创建、运行和终止。
  2. 并发性:计算机系统允许同时存在多个进程,它们可以并发执行,共享计算机的资源。
  3. 独立性:每个进程都拥有自己的地址空间,一个进程的执行通常不会影响到其他进程。
  4. 异步性:进程的执行顺序和速度可能不同于程序代码的顺序和速度,因为进程可能会被中断和恢复。
  5. 结构特征:进程通常由正文段(代码)、数据段(静态数据)、堆(动态分配的内存)和栈(局部变量和函数调用信息)等组成。

3.进程的三种基本状态

进程在其运行的过程中会经历多种状态,以下是进程的三种基本状态:

  • 就绪状态(Ready):进程已经准备好执行,等待CPU调用。
  • 运行状态(Running):进程正在CPU中执行。
  • 阻塞状态(Blocked或Waiting):当进程因为等待某些事件(如I/O完成、获取特定的资源或信号量)而无法执行时,它处于阻塞状态。在等待的事件发生之前,进程不会被执行。

4.创建与终止

除了上述的三种基本状态,进程还有另外的两种状态:

  • 创建(Created或New)当进程正在被创建,还没有准备好执行时,它处于创建状态。在这个状态下,操作系统正在为进程分配所需的资源,初始化进程控制块(PCB)。
  • 终止(Terminated或Exit)当进程已经完成执行或被强制终止时,它处于终止状态。在这个状态下,操作系统会释放进程占用的资源,并从系统中移除进程。

 5.进程通信

进程通信(Inter-Process Communication,简称IPC)是指在不同进程之间传送数据或信号的一些技术和方法。以下是几种常见的进程通信方式:

  1. 管道(Pipes):半双工(即双方可以相互通信,但一方传送时另一方不能传送)的通信方式。可以在父子进程间或兄弟进程间建立通信,分为匿名管道和命名管道
  2. 消息队列(Message Queues):允许一个或多个进程向队列中写入消息,其他进程则可以读取队列中的消息。提供了一种异步的通信机制。
  3. 共享内存(Shared Memory):允许多个进程访问同一块内存空间,是最快的IPC方式,因为它不需要数据复制。但是,需要同步机制来防止多个进程同时写入同一内存区域。
  4. 信息量(Semaphores):用于控制对共享资源的访问,可以实现进程的同步或互斥。
  5. 套接字(Sockets):用于不同主机上的进程进行网络通信,也可以用于同一主机上的进行间的通信。
  6. 文件:进程可以读取文件来交换数据,是一种简单但并不是最高效的IPC。

6.进程管理

一个操作系统上的进程比较多,所以需要管理

1.描述:通过结构体或类(主流系统c/c++实现的),把进程的各种属性表示出来。对于Linux操作系统,使用"PCB“这样的结构体来描述进程信息,PCB称为进程控制块。

2.组织:通过数据结构把上面的多个结果体串起来,并进一步进行各种增删查改。

创建新的进程(双击exe,运行起程序),就相当于创建了一个PCB结构体,并且插入链表中。当结束进程时,就是把PCB从链表上删除掉,并且释放这个PCB结构体。在查看进程列表时,就是在遍历这个链表,依次显示出对应的信息。

7.进程控制块(PCB)

PCB是操作系统用于管理进程的一种数据结构。PCB通常由操作系统内核维护,用于存储和管理进程的状态信息、资源信息和其他与进程相关的信息。PCB通常会包含以下几种信息:

  1. 进程标识符(PID)唯一的标识一个进程。同一时刻,一个机器上的多个进程之间的PID是唯一的,不会重复,系统内部许多操作都是通过PID找到对应的进程的。
  2. 内存指针(一组):用来描述进程依赖度指令和数据在内存的哪个区域内。在操作系统运行exe时,就会读取exe中的指令和数据,加载到内存中。(说明进程的执行需要一定的内存资源
  3. 文件描述符表:描述进程打开了哪些文件,对应硬盘上的数据,在进程中,打开了某个文件,就会在顺序表中添加一项。(说明进程的执行也需要一定的硬盘资源)

8.进程调度*

定义:进程调度是操作系统中的核心功能之一,它负责决定哪个进程将获得CPU时间以及它们将获得多长时间。进程调度的目标是在多任务环境中实现高效和公平的CPU时间分配,以提高系统的吞吐量、响应时间、资源利用率和用户体验

在操作系统中,进程调度的关键就是:分时复用

分时复用

定义:分时复用是进程调度的一种重要的特性,允许多个用户或任务共享同一台计算机的资源,每个用户或任务都感觉像是独占整个计算机系统,通过快速切换CPU在多个用户或任务之前进行分配,给每个用户或任务分配一小段连续的时间片,从而实现分时复用。

并发/并行都是由系统内核统一调度的,统称为“并发” 

在进程调度,主要与以下几个属性有关:

进程状态、进程的优先级、进程的上下文、进程的记账信息

在前面,已经把进程的状态详细说明,这里就不展开写。

进程的优先级:优先级高的进程先执行,低的后执行。

进程的上下文:一般CPU会同时执行多个进程,即分时复用,一个进行执行一会就要从CPU上调走,过一段时间之后还会调度到CPU上沿着上次执行的结果,继续往后执行

进程的记账信息:能记录和跟踪进程使用系统资源的情况,以便于操作系统能过进行资源管理和性能评估。还可以用于实施公平的资源分配策略,合理的利用系统资源。

总结

冯诺依曼体系结构:现代计算机的基础,定义了计算机的基本组成部分(输入设备、输出设备、控制器、运算器、存储器)和它们的交互方式。

CPU的两个重要指标核心数、频率

CPU执行命令的流程:取指令-->解析指令-->执行指令

进程控制块(PCB):是管理进程的一种数据结构,用于存储进程的各种信息。

进程管理:当运行exe程序时,相当于创建了一个PCB结构体,并且将这个结构体串到链表中。

进程调度:决定了哪个线程获得CPU的时间以及时长,能够合理地分配系统资源,进程调度与进程的状态、进程的上下文、进程的优先级以及进程的记账信息有关

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

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

相关文章

视频解码故障案例两则

案例1 绿边 故障分析: 这个能明显看到视频上方出现绿色半透明边带。这说明Y数据正常。UV数据不正常。 它显然与视频帧的垂直分辨率设置有关。 UV数据和Y数据是连续放置的,如果上方出现彩色数据失调,说明这部分数据实际仍然是Y数据。也就是…

为什么我在go语言里从前端接收到的参数是数字28546.123456,但是我不能使用float32只能使用float64呢?

在 Go 语言中,当你从前端(例如通过 HTTP 请求)接收数据时,这些数据通常以字符串的形式到达后端。然后,后端需要将这些字符串解析或转换为适当的类型,比如 float32 或 float64。 然而,如果你发现…

JAVASE进阶day08(Map双列集合)

HashMap 1.HashMap基本使用 package com.lu.day08.map;import java.util.HashMap; import java.util.Map; import java.util.Set;public class MapDome {public static void main(String[] args) {HashMap<String , String> map new HashMap<>();//添加后者修改-…

H264视频编码中Annex B 格式介绍

Annex B 格式是 H.264 (也称为 AVC) 视频编码标准中的一种数据表示格式&#xff0c;用于将视频数据从编码器传输到解码器。它主要用于流媒体传输和文件存储。 文章目录 Annex B 格式的定义Annex B 格式的主要特点Annex B 与其他格式的对比Annex B 格式示例将 H.264 数据从 MP4…

查询(q_proj)、键(k_proj)和值(v_proj)投影具体含义

查询(q_proj)、键(k_proj)和值(v_proj)投影&#xff0c;这些投影是自注意力机制的核心组件&#xff0c;特别是在Transformer架构中。 让我们通过一个简化的例子来说明&#xff1a; import numpy as np# 假设输入维度是4&#xff0c;注意力头数是2 input_dim 4 num_heads 2 …

每天一道Java面试题系列之--Spring如何解决循环依赖问题

面试题&#xff1a;Spring如何解决循环依赖问题&#xff1f; 问题背景&#xff1a; 在Spring框架中&#xff0c;循环依赖通常发生在单例&#xff08;Singleton&#xff09;作用域的bean之间。当两个或多个bean在它们的构造函数中相互引用时&#xff0c;Spring容器在创建这些b…

电脑32位和62位是什么意思

在现代计算机世界中&#xff0c;32位和64位是两个常见的术语&#xff0c;但许多用户可能不太清楚它们的确切含义以及它们之间的区别。本文将详细介绍32位和64位计算机的基本概念、如何查看您的计算机是32位还是64位&#xff0c;以及它们对用户的实际影响。 32位与64位的基本概…

算法之工程化内容(1)—— Linux常用命令

目录 1. cd 命令 2. pwd 查看当前工作目录路径 3. SSH远程登录 4. ln -s 软链相关 5. mkdir 新建空目录 6. cp 复制 7. chown 权限改写 8. 进程相关&#xff08;nohup/ ps/ kill&#xff09; 9. tar -czvf/ tar -xzvf&#xff0c;zip/ unzip解压缩文件 10. df/ du/ free 11. hi…

MySQL篇七:复合查询

文章目录 前言1. 基本查询回顾2. 多表查询3. 自连接4. 子查询4.1 单行子查询4.2 多行子查询4.3 多列子查询4.4 在from子句中使用子查询4.5 合并查询4.5.1 union4.5.2 union all 前言 前面我们讲解的mysql表的查询都是对一张表进行查询&#xff0c;在实际开发中这远远不够。 1.…

【高中数学/指数函数】比较a=0.6^0.9 b=0.6^1.5 c=1.5^0.6的大小

【问题】 比较a0.6^0.9 b0.6^1.5 c1.5^0.6的大小 【解答】 指数函数y0.6^x是减函数&#xff0c;因为0.9<1.5,所以0.6^0.9>0.6^1.5,即a>b; 指数函数y1.5^x是增函数&#xff0c;1.5^0.6>1.5^01>0.6^0.9,即c>a; 综上&#xff0c;得出c>a>b的结论。 …

【运维】docker批量删除临时镜像(两种方式)

docker批量删除Tag<none>的临时镜像 在开发的时候&#xff0c;需要经常发布开发包&#xff0c;在使用docker build构建镜像的时候&#xff0c;同一个版本经常会使用相同tag&#xff0c;频繁打包一段时间后&#xff0c;本地会出现很多Tag<none>的临时镜像&#xff…

【MySQL】MySQL中的字段类型和区别

文章目录 前言一、说明举例1. 数值类型2. 字符串类型3. 日期和时间类型 二、总结 前言 在设计数据库和创建表时&#xff0c;理解MySQL中的各种字段类型及其区别是非常重要的。每种类型都有其特定的用途和存储需求。在本文中&#xff0c;我们将详细讨论MySQL中的各种字段类型&a…

uniapp如何发送websocket请求

方法1&#xff1a; onLoad() {uni.connectSocket({url: ws://127.0.0.1:8000/ws/stat/realTimeStat/,success: (res) > {console.log(connect success, res);}});uni.onSocketOpen(function (res) {console.log(WebSocket连接已打开&#xff01;);uni.sendSocketMessage({d…

Xinstall揭秘:APP推广数据背后的真相,让你的营销更精准!

在这个移动互联网时代&#xff0c;APP如同雨后春笋般涌现&#xff0c;但如何在这片红海中脱颖而出&#xff0c;成为每一个开发者与运营者面临的共同难题。其中&#xff0c;APP推广统计作为衡量营销效果、优化推广策略的关键环节&#xff0c;更是不可忽视的一环。今天&#xff0…

[GDOUCTF 2023]Tea writeup

通过strings找到关键函数 int __fastcall main_0(int argc, const char **argv, const char **envp) {char *v3; // rdi__int64 i; // rcxchar v6; // [rsp20h] [rbp0h] BYREFint v7; // [rsp24h] [rbp4h]int v8; // [rsp44h] [rbp24h]int four_key[12]; // [rsp68h] [rbp48h]…

你知道滚筒式高速视觉检测机外观怎么“看”出产品质量吗?

点火线圈胶套是一种用于保护点火线圈绝缘部分的胶质套管。这种胶套通常由高温耐磨的橡胶或硅胶材料制成&#xff0c;具有良好的绝缘性能和耐高温性能。点火线圈胶套的作用是防止点火线圈与外部环境接触&#xff0c;防止受潮、灰尘或化学物质的侵蚀&#xff0c;同时起到绝缘和保…

python怎么调用cmd命令

关于python调用cmd命令&#xff1a; 1、python的OS模块 OS模块调用CMD命令有两种方式&#xff1a;os.popen()、os.system()都是用当前进程来调用。 OS.system是无法获取返回值的。当运行结束后接着往下面执行程序。用法如&#xff1a;OS.system("ipconfig"). OS.…

随身WiFi市场乱象横生,随身WiFi测评最好的格行随身WiFi如何引领变革?

在当今随身WiFi市场乱象频发、内卷严重的背景下&#xff0c;消费者对于产品的性能与商家是否会后台割韭菜依旧存疑&#xff0c;尤其是“随身WiFi到底卡不卡&#xff1f;”的问题&#xff0c;成为了广大消费者关注的重点。然而&#xff0c;在众多品牌中&#xff0c;格行随身WiFi…

【音频特征提取】傅里叶变换算法源码学习记录

目录 背景快速理解FFT&#xff08;快速傅里叶变换&#xff09;IFFT&#xff08;逆傅里叶变换&#xff09;STFT&#xff08;短时傅里叶变换&#xff09; 代码实现FFT源代码IFFT源代码FFT、IFFT自己实验STFT源代码STFT自己实验 总结 背景 最近用到了相关操作提取音频信号特征&am…

Vue3 根据相对路径加载vue组件

一、设置动态组件加载器 1、"DynamicFormLoader.vue" <template><div><component :is"formComponent" v-if"formComponent" /></div> </template><script setup> import { ref, watch } from vue; import …