【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.mfbz.cn/a/789827.html

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

相关文章

Linux--网络设置

目录 一、测试网络连接 1、查看网络接口信息 1.1 ifconfig 命令---查看网络接口信息 1.1.1 ifconfig 网卡 #单独查看某个网卡 1.1.2 ifconfig -a #显示所有活动及非活动的连接 二、修改网络配置文件 三、设置网络接口参数 3.1 启用、禁用网络接口配置 3.2 hostn…

U-net和U²-Net网络详解

目录 U-Net: Convolutional Networks for Biomedical Image Segmentation摘要U-net网络结构pixel-wise loss weight U-Net: Going Deeper with Nested U-Structure for Salient Object Detection摘要网络结构详解整体结构RSU-n结构RSU-4F结构saliency map fusion module -- 显著…

常见摄像头模块性能对比

摄像头模块在现代电子设备与嵌入式开发中扮演着重要角色,从智能手机到安全监控系统,再到机器人视觉系统,它们无处不在。以下是一些常见的摄像头模块及其特点的对比: OV2640 分辨率:最高可达200万像素(1600x…

递归 迷宫问题-java

1)findWay方法是为了找出走出迷宫的路径,找到返回true,否则返回false 2)(i,j)是老鼠的位置,初始化的位置为(1,1) 3)因为是递归找路&am…

centos磁盘空间满了-问题解决

报错问题解释: CentOS系统在运行过程中可能会出现磁盘空间不足的错误。这通常发生在以下几种情况: 系统日志文件或临时文件过大导致磁盘空间不足。 安装了大量软件或文件而没有清理无用文件。 有可能是某个进程占用了大量磁盘空间。 问题解决方法&a…

10个图源二维码分享及使用方法

我们曾在《8个图源二维码分享及使用方法》一文中,为你分享了8个图源二维码。 现在在此基础之上新增两个图源二维码,共享10个。 如果你需要这些图源,请在文末查看领取方式。 新增了哪两个图源 增加的两个图源分别是全球10m等高线地图和全球…

[C++]: 模板进阶

标题:[C]: 模板进阶 水墨不写bug 目录 一、非类型模板参数 (1)、非类型模板参数简介 (2)、非类型模板参数实例 二、模板的特化 (1)函数模板特化 (2)类…

Python数据分析-天气类型预测分析

一、研究背景 近年来,随着全球气候变化的加剧,天气预报和气象预测变得越来越重要。准确的天气预测不仅能够帮助人们做好日常生活的安排,还能在农业生产、防灾减灾等方面起到关键作用。随着大数据技术和机器学习算法的快速发展,利…

SAP PS学习笔记02 - 网络,活动,PS文本,PS文书(凭证),里程碑

上一章讲了PS 的概要,以及创建Project,创建WBS。 SAP PS学习笔记01 - PS概述,创建Project和WBS-CSDN博客 本章继续讲PS的后续内容。包括下面的概念和基本操作,以及一些Customize: - 网络(Network&#xf…

7.10号小项目部分说明

总体说明 糖锅小助手 我这次主要对上次糖锅小助手界面添加了一个侧边栏(侧边输入框放置了三个按钮,可以跳转到其他ai聊天界面,还可以退出聊天界面回到登录界面)和一个日期输入框(日期输入框获取时间,根据时…

通过Umijs从0到1搭建一个React项目

有一阵时间没写react了,今天通过umi搭建一个demo项目复习一下react;umi是一个可扩展的企业级前端应用框架,在react市场中还是比较火的一个框架。 Umi官方文档:Umi 介绍 (umijs.org) 一、构建项目。 1、安装包管理工具。 官方推…

js原型和类---prototype,__proto__,new,class

原型和原型链 在js中,所有的变量都有原型,原型也可以有原型,原型最终都指向Object 什么是原型 在js中,一个变量被创建出来,它就会被绑定一个原型;比如说,任何一个变量都可以使用console.log打…

支持向量机 (support vector machine,SVM)

支持向量机 (support vector machine,SVM) flyfish 支持向量机是一种用于分类和回归的机器学习模型。在分类任务中,SVM试图找到一个最佳的分隔超平面,使得不同类别的数据点在空间中被尽可能宽的间隔分开。 超平面方…

数据采集:如何使用八爪鱼采集BOSS直聘职位数据

大家好,我是水哥! 今天给大家分享的是数据采集实战:使用「八爪鱼」第三方工具来采集 BOSS 直聘上的数据分析职位数据。 接下来,我们详细看一看。 不重复造轮子 在工作中,我们一定要形成一个认知,能用第…

初次用bable遍历vue项目下的中文

利用 babel 找到 AST 中的中文 // vite-plugin-babel-transform.js const parser require(babel/parser) const traverse require(babel/traverse).default // const types require(babel/types) // const generate require(babel/generator).default const fs require(f…

.Net C#执行JavaScript脚本

文章目录 前言一、安装二、执行 JavaScript 脚本三、与脚本交互四、JS 调用 C# 方法五、多线程使用总结 前言 ClearScript 是一个 .NET 平台下的开源库,用于在 C# 和其他 .NET 语言中执行脚本代码。它提供了一种方便和安全的方法来将脚本与应用程序集成,…

使用Go编写的持续下行测速脚本,快速消耗流量且不伤硬盘

介绍 使用go语言编写的持续下行测速脚本,可用于任意平台使用,通过指定URL清单文本文件自动遍历测速,支持多线程,支持多平台 特性 轻量级,无依赖采用内存进行缓存数据,不占用磁盘(如果内存较小请使用gcd项目),最大程度减少磁盘IO,保护硬盘寿命可自定义最大下载文件…

Hum Brain Mapp:青春期早期的灰质流失可以用白质生长来解释吗?

摘要 关于大脑发育的一个基本谜题是,为什么儿童进入青春期时,灰质(GM)体积明显减少,而白质(WM)体积明显增加。一种流行的理论认为,由于被修剪的突触太小而不足以影响脑灰质体积,因此大脑总体积保持稳定,而…

Puppeteer 是什么以及如何在网络抓取中使用它 | 2024 完整指南

网页抓取已经成为任何处理网页数据提取的人都必须掌握的一项重要技能。无论你是开发者、数据科学家还是希望从网站收集信息的爱好者,Puppeteer都是你可以使用的最强大工具之一。本完整指南将深入探讨什么是Puppeteer以及如何有效地在网页抓取中使用它。 Puppeteer简…

wifi模组Ai-M62-32S的IO映射和UDP透传测试

wifi模组Ai-M62-32S的IO映射和UDP透传测试 基本IO 映射配网示例开启UDP透传示例复位AT查询wifi是否在线配置DHCP静态IP连接wifi连接UDP开启透传 基本IO 映射 对于wifi模组Ai-62-32S来说其模组 IO 引脚(从模组左上角逆时针排序,引脚序号从 1 开始&#x…