【JavaEE精炼宝库】计算机是如何工作的

目录

前言:

一、冯诺依曼体系

二、CPU基本知识

2.1 硬盘|内存|CPU关系:

2.2 指令:

2.3 CPU是如何执行指令的(重点):

2.4 小结:

三、编程语言

3.1 程序:

3.2 编程语言发展(了解):

四、操作系统

五、进程

5.1 进程的概念:

5.2 进程控制块抽象(Process Control Block):

5.2.1 PCB的核心属性:

5.2.2 操作系统管理进程:

5.3 并行与并发的区别:

六、总结


前言:

今天我们终于来到了JavaEE的舞台,在这之前我们学习了JavaSE,数据结构和数据库。接下来的JavaEE就正式宣告我们对后端的学习踏出了一大步,计算机是如何工作的内容是学习JavaEE的内功也可是说是前置知识,学习它有利用我们后续的学习,所以写下了这篇博客希望可以帮助到您。

现在的计算机大体分成以下几个大类:

• 终端设备(笔记本,台式机,手机.....)

• 服务器

• 嵌入式设备

上面的三个大类都遵守冯诺依曼体系结构

一、冯诺依曼体系

现代的计算机,基本都遵守冯诺依曼体系结构。

• CPU中央处理器:进行算术运算逻辑判断

• 存储器:分为外存和内存,用于存储数据(使用二进制方式存储)。

• 输入设备:用户给计算机发号施令的设备。

• 输出设备:计算机给用户汇报结果的设备。

二、CPU基本知识

2.1 硬盘|内存|CPU关系:

• 针对存储空间:

硬盘 > 内存 >> CPU

• 针对数据访问速度:

CPU >> 内存 > 硬盘

• 针对价格:

CPU >> 内存 > 硬盘

2.2 指令:

• 指令概念:指导CPU进行工作的命令(可以近似理解成CPU提供给程序员的API),主要有操作码+被操作数组成。

其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。

指令本身也是⼀个数字,用二进制形式保存在内存的某个区域中。

下面我将给出一张简单的指令表(大体都是这样的),如下图:

2.3 CPU是如何执行指令的(重点):

所谓的指令都是要先加载到内存中,然后才能被CPU读取并执行。比如一个Java 程序写出来就是一个.java源代码文件。编译得到.class 二进制文件(此时还是在硬盘上),运行程序的时候,jvm 就会把这个.class 加载到内存中,再进一步的翻译成 CPU 能识别的二进制指令。

冯诺依曼体系结构规定:

一个程序中指令和依赖的数据都是要在存储器中保存的,CPU 如果需要执行都是要自动的从存储器中读取到对应的指令的。

• 寄存器:是 CPU 上的一个模块。

• 存储器:是 内存 + 硬盘。

因此 CPU 执行程序大致经历下面三个阶段:

• 读指令:把内存中的指令数据,读取到 CPU 的寄存器(CPU上也能存储数据,存储数据的模块称为 ”寄存器“ 速度比内存更快,但是存储空间跟小且更贵)中。

• 解析指令:理解当前指令要做啥。

• 执行指令:运行指令。

上述的这三个阶段是”简化版“,实际的 CPU 会更复杂。这些内容是计算机执行程序的基本过程,对于理解计算机可以说是非常有意义,虽然面试一般不会直接考这个。

2.4 小结:

• CPU中的PC寄存器,是决定CPU要执行哪条指令的关键。

• 指令是由动作 + 操作对象组成。

• CPU眼中只有指令,没有其他的概念。

三、编程语言

3.1 程序:

所谓程序,就是⼀组指令以及这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。

• 程序 = 指令 + 指令要处理的数据。

3.2 编程语言发展(了解):

为了提升编程效率,最早创造了汇编语言的概念。其实汇编语言和机器语言(也就是指令)直接是完全⼀⼀对应的,只是相对于0、1这些数字,发明了⼀些帮助人类记忆和理解的符号将其对应起来,也就是我们上⾯看到的类似LOAD_A、LOAD_B等。程序员完成编程之后,需要使用汇编器 (assembler)将汇编语言翻译成机器语言。

虽然汇编降低了程序员的记忆成本,但要求程序还是必须掌握计算机硬件的所有知识,而且随着计算机厂商越来越多,⼀次编写的程序往往只使用于⼀类计算机。这个是远远不够的,所以更为高级的语言诞生了,高级语言屏蔽了硬件细节,让程序员可以站在更高的层面上思考自己的业务。这里以C语言为例,程序员完成程序的编写之后,需要使用编译器(compiler)和连接器(linker)将程序翻译成汇编语言,再借助汇编器变成最终的机器语言。

借助封装的思想,我们学习编程变得越来越容易。不过有利则有弊,高度的抽象,导致很多的程序员把计算机视为⼀个黑箱,完全无法理解自己的程序是如何工作起来的,希望我们大家不要做这种程序员。

注意:高级语言的⼀条语句(Statement)往往对应很多条指令(Instruction)才能完成。

四、操作系统

操作系统是⼀组做计算机资源管理的软件的统称。目前常见的操作系统有:Windows系列、Unix系 列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

• 操作系统的定位:

操作系统的两个基本功能:

1. 防止硬件被应用程序滥用。

2. 向应用程序提供简单⼀致的机制来控制复杂而又通常大相径庭的低级硬件设备。

五、进程

5.1 进程的概念:

每个应用程序运行于现代操作系统之上时,操作系统会提供⼀种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了⼀个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。

进程是操作系统对⼀个正在运行的程序的⼀种抽象,换言之,可以把进程看做程序的⼀次运行过程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

除了上述自己运行的程序时进程之外,还有一些系统自带的(对于我们系统能够稳定运行有很重要的意义)。

5.2 进程控制块抽象(Process Control Block):

简写:PCB

计算机内部要管理任何现实事物,都需要将其抽象成⼀组有关联的、互为⼀体的数据。在Java语言中,我们可以通过类/对象来描述这⼀特征。

// 以下代码是 Java 代码的伪码形式,重在说明,⽆法直接运⾏ 
class PCB {
// 进程的唯⼀标识 —— pid; 
// 进程关联的程序信息,例如哪个程序,加载到内存中的区域等 
// 分配给该资源使⽤的各个资源 
// 进度调度信息(留待下⾯讲解) 
}

在操作系统中,通常使用 PCB 这样的数据结构来描述进程。

5.2.1 PCB的核心属性:

1. pid进程标识符:进程的id / 标识符。

2. 内存指针:该进程依赖的指令和数据都在哪里。

3. 文件描述符表:记录该进程打开了那些文件。

4. 状态,优先级,上下文,记账信息等。

5.2.2 操作系统管理进程:

• 先描述:通过 PCB 结构体来把进程的各种属性都表示出来。

• 再组织:通过链表数据结构把多个 PCB 串起来。

5.3 并行与并发的区别:

• 并行:在宏观时间上是同时执行,在微观时间上也是同时执行。

• 并发:在宏观时间上时同时执行,在微观时间上是串行执行(一条一条执行)。

由于操作系统内核内部管理好了,所以在编写应用程序的时候,无法干预,普通用户也感知不到,因此现在往往把 并行并发 统称为” 并发 “。把编写解决并发问题的程序称为”并发编程“。

六、总结

重点记住指令的操作流程进程的相关内容, 掌握好进程后,在下一章多线程我们会详细讲解进程和线程的区别和各自的优缺点,这也是面试的高频考点。

结语:

其实写博客不仅仅是为了教大家,同时这也有利于我巩固知识点,和做一个学习的总结,由于作者水平有限,对文章有任何问题还请指出,非常感谢。如果大家有所收获的话还请不要吝啬你们的点赞收藏和关注,这可以激励我写出更加优秀的文章。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter性能测试(四)

一、遇到问题解决思路 1、检查请求头是否正确 2、检查请求参数是否正确 3、检查鉴权信息是否正确 4、检查变量作用域 5、检查数据提取是否正确(正则/json提取器) 二、请求头检查 1、在Http信息头管理器查看 2、注意这里的变量作用域是全局的 三、请求参数检查 1、在查看结…

Agent AI智能体:塑造未来社会的智慧力量

🔥 个人主页:空白诗 文章目录 🤖 Agent AI智能体:塑造未来社会的智慧力量🎯 引言🌱 智能体的未来角色预览💼 行业革新者🌟 创意合作者🛡️ 公共安全与环保🚀 …

EPAI手绘建模APP数值几何变换

(10) 数值几何变换 图 257 数值几何变换工具栏 ① 数值几何变换和交互式几何变换都包括移动、旋转、缩放模型。但是交互式几何变换变换时的变换轴是模型自身中心为变换中心,以X、Y、Z方向的为变换方向,而数值几何变换可以指定变换中心和变换方向。另外&a…

Mask RCNN(Mask_RCNN-master)简单部署

一.注意事项 1.本文主要是引用大佬的文章(侵权请联系,马上删除),做的工作为简单补充 二.介绍 ①简介: Mask R-CNN(Mask Region-based Convolutional Neural Network)是一种用于目标检测和语义…

武汉凯迪正大—电能质量测试仪功能特点

武汉凯迪正大电能质量测试仪功能特点 1. 仪器是专门用于检测电网中发生波形畸变、谐波含量、三相不平衡等电能质量问题的高精度测试仪器;同时还具备电参量测试、矢量分析的功能。 2. 可精确测量电压、电流、有功功率、无功功率、相角、功率因数、频率等多种电参量…

翔云优配正规炒股美股市场秒速涨停!主力疯狂加仓,板块掀涨停潮

查查配今日,A股整体微幅震荡,主要股指涨跌互现,上证指数小幅飘红再创年内新高,创业板指和科创50则小幅调整,两市成交跌破万亿元。盘面上,国防军工、化工、低空经济、房地产等板块涨幅居前,ST、电力、酒店餐饮、家用电器等板块跌幅居前。 翔云优配以其专业的服务和较低的管理费…

vue项目基于WebRTC实现一对一音视频通话

效果 前端代码 <template><div class"flex items-center flex-col text-center p-12 h-screen"><div class"relative h-full mb-4 fBox"><video id"localVideo"></video><video id"remoteVideo">…

CentOS操作

1.如何修改主机名 方法一&#xff1a; 修改命令&#xff1a;hostnamectl set-hostname 主机名 查看命令&#xff1a;hostname 方法二和方法三都是永久改变主机名&#xff0c;需要密码验证 方法二 修改命令&#xff1a;nmcli general hostname 主机名 查看命令&#xff…

普通人适合做大模型吗?过程中会发生什么潜在的挑战?

对于普通人来说&#xff0c;直接进行大模型的研发和训练可能存在一定的挑战&#xff0c;因为这通常需要以下资源和知识&#xff1a; 专业知识&#xff1a; 大模型的开发需要深入理解机器学习、深度学习、神经网络等领域的知识。 计算资源&#xff1a; 大模型的训练需要高性能的…

无处不在的AI:被科技巨头盯上的Agent智能体的崭新时代

&#x1f97d;一.Agent AI智能体 Agent AI 智能体是一种基于人工智能技术的智能代理&#xff0c;它可以自主地执行任务、与环境进行交互&#xff0c;并根据环境的变化做出决策。 OpenAI将AI Agent定义为以大语言模型&#xff08;LLM&#xff09;为大脑驱动具有自主理解、感知、…

一个账号玩遍ChatGPT/Claude-3/Midjourney 省钱又省力

当 OpenAI 的闭源 GPT-4 和 Meta 的开源 LLaMA 3 70B 模型在 Chatbot Arena Elo Score、MMLU 和 MT Benchmark 测试中表现出相当的性能时&#xff0c;选择更昂贵的专有模型&#xff08;其成本高出 58 倍&#xff09;的论据是&#xff1a; NVIDIA GPU Inference 上的运行速度比 …

新能源汽车充电站智慧充电电能服务综合解决方案

安科瑞薛瑶瑶18701709087/17343930412 ★解决方案 ✔目的地充电-EMS微电网平台 基于EMS解决方案从设备运维的角度解决本地充电的能量管理及运维问题&#xff0c;与充电管理平台打通数据&#xff0c;为企业微电网提供源、网、荷、储、充一体化解决方案。 ✔运营场站--电能服务…

教你零成本,免费使用comfyui复现remini爆火的黏土风格转绘(附完整教程)

在五一假期期间,一款名为Remini的AI照片编辑软件在小红书上迅速走红,其独特的“丑萌”黏土风格滤镜深受广大博主和用户的喜爱,引发了一波热潮,让人们玩得不亦乐乎。 Remini软件提供的这种视觉效果虽然看起来有点“丑萌”特效,然而,正是这种独树一帜的画风,使得Remini迅速…

秒翻-网页翻译最佳选择

使用方法&#xff1a; 安装“沉浸式翻译” 在扩展设置页面勾选“Beta”特性。 输入 DeepLX 现成的 API-https://api.deeplx.org/translate。

微信小程序音频怎么保存到手机

如果你想在微信小程序中收听美妙的音乐&#xff0c;又想将其保存到手机中&#xff0c;那么微信小程序音频怎么保存到手机这个问题就是你的最佳指南。 微信小程序音频下载工具我已经打包好了&#xff0c;有需要的自己下载一下 下载高手工具打包链接&#xff1a;百度网盘 请输入…

unreal engine5.3.2 Quixel bridge无法登陆

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题定位二、解决方法 前言 这几天unreal engine5.3.2 Quixel bridge无法登陆&#xff0c;输入epic 账号和密码&#xff0c;然后在输入epic发送的验证码&#xff0c;总是提示登录失败。就算是使用科学上网依然无法登录。而且…

Python——Numpy基础分析(1)

一、数据集 1.数据说明 fixed acidity 固定酸度 volatile acidity 挥发性酸度 pH 酸碱值 alcohol 酒精度数 quality 品质得分 2.部分数据展示 图 1-1部分数据展示 若需要全部数据&#xff0c;请私信作者&#xff0c;谢谢 二、导入数据——使用genfromtxt函数来读取文件…

领导想提拔你,看的从来不只是努力

谁不曾做过努力工作&#xff0c;一路升职加薪的职业规划&#xff0c;现实却给很多人泼了一盆冷水。 在大家的普遍认知里&#xff0c;北上广普遍高薪&#xff0c;月入过万就是标配。 然而在逃离北上广的热门帖子下&#xff0c;有网友发出了声音&#xff1a; “我都35了&#xff…

SpringBoot Actuator未授权访问漏洞的解决方法

1. 介绍 Spring Boot Actuator 是一个用于监控和管理 Spring Boot 应用程序的功能模块。它提供了一系列生产就绪的功能&#xff0c;帮助你了解应用程序的运行状况&#xff0c;以及在运行时对应用程序进行调整。Actuator 使用了 Spring MVC 来暴露各种 HTTP 或 JMX 端点&#x…

2024年全国五大数学建模竞赛Top榜及难度分析!推荐数维杯!!!

发现最近许多同学都陆续开始准备今年的数学建模竞赛了&#xff0c;但是随着数学建模领域越来越普及&#xff0c;影响力越来越广泛&#xff0c;参加的同学也越来越多&#xff0c;就导致有越来越多各式各样的数学建模竞赛此起彼伏出现&#xff0c;但其中有一些竞赛其实并不值得参…