JavaEE--计算机是如何工作的

一、一台计算机的组成部分

1.CPU(中央处理器)

2.主板(一个大插座)

3.内存(存储数据的主要模板)

4.硬盘(存储数据的主要模板)

内存和硬盘对比:

|--------------|--------|--------|
| | 内存 | 硬盘 |
| 读写速度 | 快 | 慢 |
| 存储空间 | 小 | 大 |
| 成本 | 高 | 低 |
| 存储数据的持久性 | 不持久 | 持久 |

**存储空间大小:**硬盘>内存>>CPU

**数据访问速度快慢:**CPU>>内存>硬盘

5.电源

6.散热器

7.机箱

8.显卡

9.键盘鼠标

10.显示器

二、冯·诺伊曼体系(Von Neumann Architecture)

冯·诺伊曼体系是计算机体系结构的一种基本设计原则,也称为存储程序计算机。它由匈牙利裔物理学家冯·诺伊曼在20世纪40年代提出,被认为是现代计算机的基础。

冯·诺伊曼体系的核心思想是将程序指令和数据存储在同一存储器中,这样的设计使得计算机可以按照存储器中的指令序列自动执行程序。这种设计有效地实现了程序控制和数据流的分离,使得计算机的结构更加简单和灵活。

冯·诺伊曼体系包括了四大部分:CPU中央处理器、存储器、输入设备和输出设备。这种体系结构的设计思想被广泛应用于现代计算机的设计中,包括个人电脑、服务器、移动设备等各种计算机设备。

  • CPU 中央处理器:进行算术运算和逻辑判断;
  • 存储器:分为外存和内存, 用于存储数据(使用二进制方式存储);
  • 输入设备:用户给计算机发号施令的设备,如键盘、鼠标;
  • 输出设备:计算机个用户汇报结果的设备,如显示器。

既是输入设备,也是输出设备的:触摸屏,网卡......

总的来说,冯·诺伊曼体系为计算机的发展奠定了坚实的基础,是现代计算机体系结构的重要里程碑之一。

三、CPU基本工作原理

CPU(Central Processing Unit,中央处理器)的基本工作原理可以概括为以下几个步骤:

  1. 读取指令(Instruction Fetch):CPU从内存中读取下一条指令,这个过程通常包括将指令的地址加载到指令寄存器中。

  2. 解析指令(Instruction Decode):CPU解析指令的操作码和操作数,并确定执行该指令需要的操作。

  3. 执行指令(Instruction Execute):根据解码后的指令内容,CPU执行对应的操作,可能涉及算术运算、逻辑运算、内存访问等。

  4. 写回结果(Write Back):将执行指令后的结果写回到相应的寄存器或内存中。

在这些基本步骤中,CPU内部包含多个寄存器、运算器和控制器等部件,通过时钟信号来同步各个部件的工作。CPU根据指令集架构(ISA,Instruction Set Architecture)定义的指令集执行相应的操作,实现对数据的处理和控制。整个过程是高度复杂且高效的,CPU内部的微指令控制了各个部件的工作流程,从而实现了计算机的正常运行。

衡量CPU好坏的重要指标:

1.CPU频率(正相关)

基频/ 默频:

睿频/ 加速频率:

2.CPU核心数(正相关)

1. 算术逻辑单元ALU

算术逻辑单元(Arithmetic Logic Unit,ALU)是计算机中的一个核心组件,用于执行基本的算术运算(如加法、减法、乘法、除法)和逻辑运算(如与、或、非、异或等)。ALU通常是CPU中的一个子模块,负责处理各种运算操作,是计算机实现数据处理和逻辑判断的关键部分。

ALU通常包括以下功能和特点:

  1. 算术运算功能:ALU能够执行各种算术运算,如加法、减法、乘法和除法。这些运算操作是基本的数据处理操作,用于对数字进行加减乘除等操作。

  2. 逻辑运算功能:除了算术运算,ALU还支持逻辑运算,如与、或、非、异或等逻辑操作。这些运算用于进行数据比较、逻辑运算和控制流程。

  3. 位操作:ALU能够对数据进行位级的操作,如移位、旋转等。这些操作对于处理位级数据非常重要,如编码解码、位操作等。

  4. 状态标志位:ALU通常会生成一些状态标志位,如零标志、进位标志、溢出标志等,用于指示运算结果的状态,方便程序在之后进行条件判断或跳转。

  5. 并行处理:现代计算机中的ALU通常是高度并行化的,能够同时处理多个操作,提高计算效率和性能。

在计算机中,ALU与寄存器、控制单元等组件共同协作,完成指令的执行,实现计算机的数据处理功能。ALU的设计和优化对计算机的性能、功耗等方面有重要影响,是计算机体系结构中的关键组成部分。

ALU符号

2.寄存器(Register)

寄存器(Register)是计算机内部用来存储临时数据和指令的一种存储器件。在CPU中,寄存器扮演着非常重要的角色,主要用于存储指令执行过程中需要的数据、地址和控制信息。

CPU的寄存器访问速度比内存快很多,存储空间也比内存小很多,成本也高很多。

3.指令(Instruction)

指令(Instruction)是计算机中用于执行特定操作的基本命令。计算机通过执行一条条指令来完成各种任务,指令是计算机程序的基本单元,由操作码(Opcode)和操作数(Operand)组成。

指令可以包括各种操作,如数据传输、算术运算、逻辑运算、跳转、分支等。每条指令都对应着计算机中的一些硬件操作,例如将数据从一个地方移到另一个地方、对数据进行加减乘除等运算、进行条件判断和跳转等。

指令的执行是由CPU中的控制单元负责的,控制单元会按照程序的顺序逐条读取指令,并将其解码和执行。在执行指令时,CPU会根据指令的操作码确定执行的操作类型,操作数则提供操作所需的数据。

|---------|---------------------------|------------|-----------------|
| 指令 | 功能 | opcode | 操作的地址或寄存器 |
| LOAD_A | 从RAM(内存)的指定地址,将数据加载到寄存器A中 | 0010 | RAM地址(4bit) |
| LOAD_B | 从RAM(内存)的指定地址,将数据加载到寄存器B中 | 0001 | RAM地址(4bit) |
| STORE_A | 将数据从寄存器A中写入指定地址中 | 0100 | RAM地址(4bit) |
| ADD | 计算两个寄存器数据的和,并将结果放在第二个寄存器中 | 1000 | 2位寄存器ID 2位寄存器ID |
[简化指令表]

四 、编程语言

编程语言是一种用于编写计算机程序的形式化语言。它定义了一套语法规则和符号,用于编写代码以表达计算机程序的逻辑和算法。编程语言通过编译器或解释器将程序代码转换为机器能够执行的指令,从而实现程序的功能。

编程语言分为三类:

  1. 机器语言:计算机能直接理解和执行的二进制代码
  2. 汇编语言:使用助记符号来表示机器指令
  3. 高级语言:高级语言可以分为编译型语言和解释型语言。编译型语言在程序执行前需要将代码编译成机器码,例如C、C++;解释型语言则在运行时逐行解释执行代码,例如Python、JavaScript。

五、操作系统

操作系统是一种管理计算机硬件和软件资源的系统软件。它提供了用户与计算机硬件交互的界面,同时负责调度系统资源、管理文件系统、控制输入输出及网络通信等功能。操作系统的主要目的是使计算机系统能够高效、稳定地运行各种应用程序。
目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

六、进程

在计算机科学中,进程(Process)是指计算机中运行的程序的实例。进程是操作系统中分配资源的基本单位,每个进程都有自己独立的内存空间、代码、数据和系统资源,包括文件、网络连接等。进程之间是相互独立的,它们不能直接访问其他进程的数据,需要通过操作系统提供的IPC(进程间通信)机制来进行通信。

进程有以下特点:

  1. 独立性:每个进程有独立的内存空间,不受其他进程影响。

  2. 并发性:操作系统能够在多个进程之间进行快速的切换,实现并发执行。

  3. 动态性:进程的创建和销毁都是动态的,进程可以根据需要动态生成或销毁。

  4. 资源分配:操作系统为每个进程分配系统资源,如内存、CPU时间等。

在操作系统中,进程的管理包括进程的创建、调度、终止和通信等功能。进程的调度是操作系统根据一定的调度算法决定何时将CPU分配给哪个进程执行,以实现多个进程的并发执行。进程通信是指不同进程之间进行数据交换和共享信息,常见的进程通信方式包括管道、信号、消息队列、共享内存等。

进程是操作系统中重要的概念,它为多任务处理、资源管理和系统性能提供了基础。理解进程的基本原理和管理机制对于操作系统的设计和开发非常关键。

1.进程控制块(PCB)

进程控制块(Process Control Block,PCB)是操作系统中用于管理和控制进程的核心数据结构,是操作系统为每个进程维护的信息块。PCB包含了操作系统对进程进行管理和调度所需的所有信息,是操作系统了解和控制进程状态的重要数据结构。PCB的抽象描述了操作系统对进程的控制和管理方式。

PCB通常包含以下信息:

  1. 进程标识符(Process ID):唯一标识一个进程的数字或字符串。

  2. 程序计数器(Program Counter):存储当前指令的地址,用于指示下一条要执行的指令。

  3. 寄存器集合:存储进程的寄存器状态,包括通用寄存器、指令指针等。

  4. 进程状态(Process State):表示进程当前的状态,如运行、就绪、阻塞等。

  5. 调度信息:包括进程的优先级、运行时间、等待时间等信息,用于调度算法的选择。

  6. 进程控制信息:包括进程的父进程ID、子进程ID等关联信息。

  7. 进程间通信信息:用于进程间通信的信息,如消息队列、信号等。

  8. 资源占用信息:记录进程所占用的资源情况,如内存地址空间、打开的文件描述符等。

PCB的抽象实现了操作系统对进程的管理和控制,当操作系统需要管理进程时,会根据PCB中的信息进行相应的操作,如进程的创建、销毁、切换和调度等。PCB的存在使操作系统能够有效地管理多个进程,实现进程的并发执行和资源分配。

总的来说,进程控制块的抽象描述了操作系统对进程进行管理和控制的方式,是操作系统中重要的数据结构之一。

2.进程调度

进程调度是操作系统内核中的一个重要功能,用于决定在多个就绪态进程中选择哪个进程获得CPU的执行权限。进程调度的目标是合理地分配CPU时间片和其他系统资源,以提高系统的效率、公平性和响应性。​​​​

相关推荐
西岭千秋雪_5 分钟前
Kafka客户端整合
java·spring boot·分布式·kafka·linq
xhyyvr7 分钟前
解码大地的预警 —— VR地震起因及先兆学习系统
学习·vr·vr公共安全·vr公共安全体验馆·vr地震·vr地震起因先兆·vr地震模拟平台
leonardee10 分钟前
Golang笔记——Interface类型
java·后端
算法如诗14 分钟前
**MATLAB R2025a** 环境下,基于 **双向时间卷积网络(BITCN)+ 双向长短期记忆网络(BiLSTM)** 的多特征分类预测完整实现
开发语言·网络·matlab
k093315 分钟前
在组件外(.js文件)中使用pinia的方法2--在http.js中使用pinia
开发语言·javascript·http
我是好小孩16 分钟前
【Android】RecyclerView的高度问题、VH复用概念、多子项的实现;
android·java·网络
张彦峰ZYF18 分钟前
高并发优惠权益聚合接口的优雅实现(含超时控制 + 来源标识 + Fallback 降级)
java·后端·面试
Amber_3719 分钟前
php的数组和python的列表 -- 横向对比学习
python·学习·php
4Forsee20 分钟前
【Android】模板化解决复杂场景的滑动冲突问题
android·java·rpc
若水不如远方24 分钟前
深入 Dubbo 服务暴露机制:从注解到网络的完整链路剖析
java·dubbo