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

JavaEE初阶——计算机工作原理

一、什么是JavaEE 

JavaEE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 3.0应用程序。

二、计算机是如何工作的

1.冯诺依曼体系(Von Neumann Architecture)

现代的计算机中,大多遵循冯诺依曼体系结构

结构包含:①CPU中央处理器(进行算术运算和逻辑判断);②存储器(分为外存和内存,用于存储数据,使用二进制存储);③输入设备(用户给计算机发号施令的设备);④输出设备(计算机给用户汇报结果的设备)

2.CPU基本工作流程

2.1 逻辑门电路

可以实现1位(bit)的基本逻辑运算,下面举几个常见的例子

(1)非门

(2)与门

(3)或门

(4)异或门

2.2算术逻辑单元ALU

ALU是计算机进行算数,逻辑运算的核心部件,是计算机的数学大脑

2.3寄存器和内存

寄存器:寄存器就是附着在CPU中的高速存储单元,是CPU的得力干将。它的特点是速度极快,容量较小(通常只有几十个到几百个字节的容量,只能存储少量的关键数据和控制信息)。它可以在CPU执行算术运算和逻辑运算时,用来暂时存储参与运算的操作数和运算结果的!

内存:内存是计算机主要存储数据的设备之一,用于暂时存储 CPU 需要处理的数据和处理后的结果,速度没有寄存器快,但是比外部存储快很多,容量较大(一般有4GB—16GB甚至更高),它可以进行数据的存储,多任务处理。(要区分的是这里是内存,不是人们常说的手机多大内存的内存,这是一个容易误导广大消费者的错误说法,之后为了区分发明了“运行内存”这样一说,其实也是不对的,可以说为“内存和外存”)。

2.4控制单元CU

通俗来讲,CU就是指挥官,ALU就是CU的士兵,让干什么就得干什么。也就是说CU可以驱动ALU进行具体的计算工作!

2.5CU如何驱动ALU进行工作的?

这里我们就提到指令

那什么是指令呢?

所谓指令就是指导CPU进行工作的指令,主要有操作码+被操作数组成!

操作码就是要做的事情,被操作数是要做操作的数据

指令本身是一种数据,二进制保存在内存的某个区域

下面是一张简化后的指令表,真正的指令表比这个复杂很多

说明:RAM是内存;规定LOAD_A是00;LOAD_B是01

opcode(操作码)=>>op(operation操作)code(码)

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

这里我们演示一段指令是如何执行的呢?

以上过程就是CPU执行一段指令的简要过程!

3.编程语言

3.1程序

程序就是一组指令需要处理一些数据

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

3.2编程

注意:高级语言的一条语句往往对应很多条指令才可以完成

4.操作系统

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

操作系统可以对CPU的管理和应用

4.1进程

进程就是操作系统对正在运行的程序的一种抽象表示,也就是说,进程可以看作程序的一次运行过程

4.2进程控制块(PCB)

1.pid(进程id)进程的身份标识

2.内存指针(进程运行时,需要对内存的开销,占用资源)

3.文件描述表(需要硬盘也就是外存,进程读写文件需要open指定文件)

4.进程状态:就绪状态(随叫随到);阻塞状态(不运行)

5.进程优先级:哪一个优先级高一点,哪一个进程吃CPU多一点(也就是消耗内存资源多一些)

就好比如,打大型游戏,和运行其他小软件,无疑是大游戏吃内存更多

6.进程的上下文

进程调度,执行一会失去CPU,过一段时间后,继续执行,必须从上一次断开的位置开始,不能从头来。把中间值保存到寄存器中

也就是游戏中的存档!

7.进程的记账信息

就是在一段时间内统计哪个进程对CPU的消耗多少,要是有个进程长时间没有消耗太多进程,则就会给这个进程倾斜一点资源!

谢谢大家的支持!有任何表述错误的地方,请大家指出来,博主积极改正并认真修改学习!


http://www.kler.cn/a/472443.html

相关文章:

  • maven的简单介绍
  • python注意事项:range遍历越索引现象、列表边遍历边修改出现的问题
  • 用户界面软件02
  • Eclipse配置Tomcat服务器(最全图文详解)
  • vue3运行时执行过程步骤
  • Windows 系统中的任务管理器是什么,打开快捷键是什么?
  • 常见的注解
  • 探索Linux Kernel:早期I/O内存映射的奥秘
  • Unity 2d描边基于SpriteRender,高性能的描边解决方案
  • Elasticsearch:Query rules 疑难解答
  • Golang学习笔记_17——方法
  • 【Leetcode】单词拆分:dfs解法、dp解法
  • 计算机网络之---物理层的基本概念
  • 大数据hadoop和hive能支持多大
  • Linux性能优化策略:让你的系统运行如飞
  • Boost.Asio 的 TCP 通信教程
  • Redis 渐进式遍历与数据库管理
  • UE5AI感知组件
  • 用CLEAN算法实现杂波抑制的Matlab仿真程序
  • 《深度学习模型在鸿蒙分布式框架下的跨设备高效之旅》
  • Tauri教程-基础篇-第二节 Tauri的核心概念上篇
  • .NET中的框架和运行环境
  • Vue.js组件开发-如何避免props中的数据冲突
  • 面试手撕-多线程死锁
  • 升级 Spring Boot 3 配置讲解 —— 为何 SpringBoot3 淘汰了 JDK8?
  • 探索大型语言模型新架构:从 MoE 到 MoA