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

JavaEE|计算机是如何工作的

通过了解计算机是如何工作可以让我们对于计算机/Java有更清楚的认识(背景介绍)

计算机内部的单位换算

计算机的组成部分

1.CPU电脑上最核心的部分(中央处理器)

计算机进行的各种算术运算,逻辑判断,都是CPU负责的(代码里写的内容都是CPU运行的)

2.主板(就是一个大插座)

3.内存和硬盘

存储数据的主要的模块,二者合称为存储器

内存和硬盘的区别

(1)内存读写速度快,硬盘读写速度慢,能相差几千倍

机械硬盘读写速度一般是200MB/s左右

内存读写速度快,是硬盘基础上几千倍

(2)内存存储空间比较小,硬盘存储空间比较大

(3)内存的成本比硬盘更高

(4)内存存储数据是不持久的,断电就没了

硬盘存储数据是持久的,断电也不会丢失,但是,如果一块硬盘放上几年,数据可能会出现丢失

4.电源

5.散热器

6.机箱

7.显卡(GPU)

显卡和CPU很相似,都能进行算术运算和逻辑判断

CPU也叫做“通用计算机芯片”,能进行复杂运算

GPU也叫“专用计算机芯片”,虽不能进行复杂运算,但能进行多组简单运算,这时CPU无法实现的

GPU速度比CPU快很多

GPU就是用来处理运算简单,但是运算量非常大的场景,可以在如下场景运用

1.图形渲染(大型游戏,3D建模)

2.挖矿(加密货币)

比特币,以太坊,狗狗币

3.AI人工智能

模型训练~~就是在算大量的1+1

使用显卡就非常合适

冯诺依曼体系

冯诺依曼体系结构~一台计算机:

(1)CPU

(2)存储器---内存和硬盘

(3)输入设备---键盘和鼠标

(4)输出设备---显示器

有的设备,既是输入设备,又是输出设备,例如:

触摸屏

网卡(上网的时候,和网线连接的那个部分对应的硬件设备)集成在主板上~~

下载数据,输入

上传数据,输出

CPU的核心介绍

现代的cpu主要要关心的指标(与日常开发密切相关)

(1)cpu的频率

基频/默频

睿频/加速频率(也是有上限的)

现代cpu的一个特性,动态的根据当前的任务量,频率变更(类似于变频空调)

周围温差大,空调工作效率高,快速降温(耗电量大)

(2)cpu和核心数

cpu的内部构造非常精密,里面是由数不满的小的电路元件构成的计算单元,计算单元越多,算得就越快,但cpu面积有限,计算单元无法无限增加

单个核心既然已经达到瓶颈,于是引入两个核心进行工作(多核心技术)

一个cpu上可以有多个核心

内核,也就是物理核心,类似现实中真正干活的人;逻辑核心,实际上这些人能同时干几个活

我的电脑就是一个16核,24线程(8大核,8小核)

大核,一个顶两

小核,一个顶一个

线程就代表要干的活

CPU核心数越多,CPU运行能力越强(效率越高)

当然cpu往多核心角度发展,也对程序员提出了新的要求,程序员写代码的时候就需要把任务,拆分成多个部分

CPU执行程序(指令)的过程

编程语言可以分成三个大类

1.机器语言(以二进制的形式,表示一种语言)

2.汇编语言

3.高级语言(C,Java)

CPU上面都支持哪些指令,每个指令怎么表示,有哪些意义,都是cpu在设计出来的时候就确定了

可以使用表格,表示出cpu支持哪些指令~~

内存存放着内存地址,如果在C语言中,定义一个变量,保存上述内存地址,这个变量就叫“指针变量”

指令,此处咱们约定,一条指令是8个bit,一个字节

一条指令=4位操作码(opcode)+4位操作数

(函数名) (函数参数)

寄存器,也是存储数据的模块,存在于CPU上,CPU存储数据的部分

寄存器的访问速度比内存更快,但空间更小,成本也更高,掉电之后数据也会丢失

CPU的寄存器主要是在CPU进行执行指令进行的各种运算的时候,临时存储数据,起到一些辅助效果

cache是介于寄存器和内存之间存储设施(也是集成在cpu上的)

指令如何执行

机器语言程序(二进制指令)

假设CPU从0号地址这里开始执行

CPU执行指令的流程

1.读取指令

2.解析指令(对照指令,理解指令)

3.执行指令

(1)从0号地址开始执行

读取指令

CPU内部有专门的寄存器负责保存读到的指令

解析指令

把1110地址上的数据,读取到寄存器A中

执行指令

依次执行1,2,3的指令,直到第四条指令

认为程序结束了

像上述这些指令,CPU1s能进行39亿次

操作系统

计算机中,最重要的“软件”

操作系统是一个搞管理的软件

(1)管理各种硬件设备

(2)给应用程序,提供一个稳定的运行环境

这些应用程序,工作过程中是会互不干扰的,即使某个应用程序,有bug(比如,程序崩溃),不会影响到其他的应用程序

1.Windows11/10

2.Linux

后端开发常用,嵌入式设备Linux也是主力系统

3.Mac OS

苹果电脑上面的系统

4.IOS

苹果手机系统,和Mac OS不一样

5.Android

当前市场上最多的系统,包括一些高配置一点的嵌入式系统,也开始使用安卓

上述系统,彼此之间是不兼容的

但在Java中,可以通过虚拟机上实现一份Java代码在不同平台上运行

进程

操作系统中重要的概念:进程

一个运行起来的程序,就称为进程

现代计算机同时能跑百十来个进程很常见

操作系统就需要能够管理好上述进程

管理好进程需要对进程的各类属性做好分类,所以我们就需要结构体/对象,通过对象的各种属性保存上述信息

站在操作系统的视角,如何让管理进程?

1.先描述一个进程是啥样的

使用结构体,描述出进程的核心属性

进程控制块(PCB)

非常大的结构体,有很多很多的属性

2.再把多个进程组织起来

1)创建一个新进程

创建一个PCB,初始化PCB的各个属性,把PCB加载到链表上

2)销毁一个进程

把这个进程的PCB在链表上找到,并且从链表上删除掉

3)查看进程链表

遍历链表,取出链表上的每个元素,把里面的一些关键信息,显示到界面上

PCB的一些关键要点

1.pid(进程id)

进程的标识符

2.内存指针(一组指针)

进程就需要知道执行的指令在哪里,指令依赖的数据又在哪里

进程的运行过程中需要依赖内存,资源

’3.文件描述符

进程在硬盘上读取到的数据就是以文件的形式来组织的,每次打开一个文件,就会把这个文件的信息,保存到文件描述符中,表里的每个向,就对应着打开一个打开了的文件

4.进程状态

进程有很多状态,其中两个最典型

1)就绪状态->随叫随到,进程就可以随时到cpu进行执行

2)阻塞状态->进程当前不适合到cpu上执行

5.进程优先级

这么多进程,能够到cpu上运行的机会是不相等的

有些进程优先级高一些,吃到的cpu资源更多

6.进程上下文

进程在执行过程中失去cpu就需要记录当前状态,方便下次继续运行

保存上下文:把CPU中的这些寄存器的值,保存到内存中(PCB的对应属性中)

恢复上下文:把PCB中刚才保存的属性,填写回对应的寄存器当中去

7.进程的记账信息

统计功能,统计每个进程都在CPU上运行了多久,方便及时的资源倾斜

4,5,6,7统称为进程调度

进程是操作系统中,资源分配的基本单位

http://www.cnnetsun.cn/news/1880750.html

相关文章:

  • 小白程序员必看!收藏这份AI Agent“思考”与“行动”架构指南,轻松入门大模型开发
  • PotPlayer百度翻译插件:实现视频字幕实时多语言转换
  • 在线考试系统:防作弊与自动评分的实现技术
  • PHP全局使用局部变量+参数默认值+静态变量
  • Java八股文实践篇:从理论到实战,设计一个高并发AI图像生成服务
  • Qwen3.5-4B模型C语言代码审查与优化助手实战
  • RAG重排序(Rerank)入门基础教程(非常详细),收藏这一篇就够了!
  • Windows任务栏透明美化终极指南:TranslucentTB完整配置教程
  • Go语言的sync.Map.CompareAndDelete原子操作与条件
  • 哔哩下载姬技术解析:构建高效B站视频下载解决方案
  • Alibaba DASD-4B Thinking 对话工具解决“403 Forbidden”等API调用错误排查指南
  • “养虾”太贵劝退?华为云FlexNPU专治算力“吃空饷”
  • 手把手教你用ResNet-18镜像:无需代码,WebUI界面轻松识别1000种物体
  • Rust的匹配中的模式守卫优化与编译器在布尔表达式中
  • SpringBoot + 小程序实战:如何设计一个高可用的流浪动物救助系统后台?
  • 智慧树自动刷课插件完整指南:5分钟实现高效学习自动化
  • ClearerVoice-Studio企业级方案:基于SpringBoot的智能客服语音优化系统
  • HTML图片怎么在Firefox中调试对齐_Firefox开发者工具调图方法
  • DownKyi终极指南:3个高效技巧让你成为B站视频下载专家
  • OneAPI GPU显存优化:Ollama本地模型与云端模型混合调度策略
  • 比迪丽LoRA模型Keil5嵌入式开发趣味应用:为项目文档生成主题角色
  • 3分钟掌握电脑性能优化:开源工具UXTU终极指南
  • 批量处理不求人!cv_unet_image-matting图像抠图WebUI高效工作流
  • 微信小程序的图书借阅系统
  • 如何用XUnity.AutoTranslator轻松突破语言障碍:3步实现Unity游戏自动翻译
  • 聊聊C语言那些事儿之概览
  • 「鸿蒙智能体实战记录 13」智能体上架提交与审核通过实现
  • Qwen3.5-9B-AWQ-4bit保姆级教程:Web界面响应延迟优化与前端体验提升技巧
  • Face3D.ai Pro实战案例:为AI换脸研究提供高保真源人脸3D先验约束模型
  • 4月份还能投哪些大厂?一份“补录清单”给你整理好了