JavaEE|计算机是如何工作的

张开发
2026/5/4 12:53:49 15 分钟阅读
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人工智能模型训练~~就是在算大量的11使用显卡就非常合适冯诺依曼体系冯诺依曼体系结构~一台计算机(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.高级语言(CJava)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中执行指令依次执行123的指令直到第四条指令认为程序结束了像上述这些指令CPU1s能进行39亿次操作系统计算机中最重要的“软件”操作系统是一个搞管理的软件(1)管理各种硬件设备(2)给应用程序提供一个稳定的运行环境这些应用程序工作过程中是会互不干扰的即使某个应用程序有bug比如程序崩溃不会影响到其他的应用程序1.Windows11/102.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上运行了多久方便及时的资源倾斜4567统称为进程调度进程是操作系统中资源分配的基本单位

更多文章