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.rhkb.cn/news/503832.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医学图像分析工具02:3D Slicer || 医学影像可视化与分析工具 支持第三方插件

3D Slicer 是一款功能全面的开源医学影像分析软件,广泛应用于影像处理、三维建模、影像配准和手术规划等领域。它支持多种医学影像格式(如 DICOM、NIfTI)和丰富的插件扩展,是神经科学、放射学和生物医学研究中不可或缺的工具。 在…

STM32裸机开发转FreeRTOS教程

目录 1. 简介2. RTOS设置(1)分配内存(2)查看任务剩余空间(3)使用osDelay 3. 队列的使用(1)创建队列(1)直接传值和指针传值(2)发送/接收…

使用高云小蜜蜂GW1N-2实现MIPI到LVDS(DVP)转换案例分享

作者:Hello,Panda 大家晚上好,熊猫君又来了。 今天要分享的是一个简单的MIPI到LVDS(DVP)接口转换的案例。目的就是要把低成本FPGA的应用潜力充分利用起来。 一、应用背景 这个案例的应用背景是:现在还在…

Express 加 sqlite3 写一个简单博客

例图: 搭建 命令: 前提已装好node.js 开始创建项目结构 npm init -y package.json:{"name": "ex01","version": "1.0.0","main": "index.js","scripts": {"test": &q…

git撤回提交、删除远端某版本、合并指定版本的更改

撤回提交 vscode的举例 一、只提交了还未推送的情况下 1.撤回最后一次提交,把最后一次提交的更改放到暂存区 git reset --soft HEAD~12.撤回最后一次提交,把最后一次提交的更改放到工作区 git reset --mixed HEAD~13.撤回最后一次提交,不…

[Linux]redis5.0.x升级至7.x完整操作流程

1. 从官网下载最新版redis: 官网地址:https://redis.io/download 注:下载需要的登录,如果选择使用github账号登录,那么需要提前在github账号中取消勾选“Keep my email addresses private”(隐藏我的邮箱…

xss-labs关卡记录15-20关

十五关 随便传一个参数,然后右击查看源码发现,这里有一个陌生的东西,就是ng-include。这里就是: ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号。…

数据库回滚:大祸临头时

原文地址 什么是数据库回滚? 数据库技术中,回滚是通过撤销对数据库所做的一项或多项更改,将数据库返回到先前状态的操作。它是维护数据完整性和从错误中恢复的重要机制。 什么时候需要数据库回滚? 数据库回滚在以下几个场景中很…

年会抽奖Html

在这里插入图片描述 <!-- <video id"backgroundMusic" src"file:///D:/background.mp3" loop autoplay></video> --> <divstyle"width: 290px; height: 580px; margin-left: 20px; margin-top: 20px; background: url(D:/nianhu…

基于FPGA的出租车里程时间计费器

基于FPGA的出租车里程时间计费器 功能描述一、系统框图二、verilog代码里程增加模块时间增加模块计算价格模块上板视频演示 总结 功能描述 &#xff08;1&#xff09;&#xff1b;里程计费功能&#xff1a;3公里以内起步价8元&#xff0c;超过3公里后每公里2元&#xff0c;其中…

nginx-链路追踪(trace)实现

一. 需求场景&#xff1a; 在日常运维工作中&#xff0c;会经常遇到在有多重调用链的场景下&#xff0c;如请求遇到非致命error时&#xff0c;在各环节的定位会非常麻烦&#xff0c;举个例子&#xff1a;比如说&#xff0c;在一个有多重调用链的服务环境下&#xff0c;一个请求…

c#使用SevenZipSharp实现压缩文件和目录

封装了一个类&#xff0c;方便使用SevenZipSharp&#xff0c;支持加入进度显示事件。 双重加密压缩工具范例&#xff1a; using SevenZip; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.…

MySQL和Hive中的行转列、列转行

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 MySQL1.行转列2.列转行 Hive1.行转列2.列转行(1)侧窗(2)union MySQL 1.行转列 把多行转成列。直接group&#xff0c;sum(if()) 2.列转行 Hive 1.行转列 select name,sum(if(kmshuxu…

快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)

1 关于Let’s Encrypt与Cerbot DNS验证 Let’s Encrypt 是一个提供 免费证书 的 认证机构。 Cerbot 是 Let’s Encrypt 提供的一个工具&#xff0c;用于自动化生成、验证和续订证书。 DNS验证是 Cerbot 支持的验证方式之一。相比 HTTP 验证或 TLS-ALPN 验证&#xff0c;DNS …

【Unity3D】Text文本文字掉落效果

相关技术&#xff1a;Text、TextMesh、Rigidbody&#xff08;刚体&#xff09;、BoxCollider&#xff08;碰撞体&#xff09;、TextGenerator、文本网格、文字网格 原理&#xff1a;使用UGUI Text获取其文字的每个字符网格坐标&#xff0c;转世界坐标生成对应的3D文本(TextMesh…

flutter 专题二十四 Flutter性能优化在携程酒店的实践

Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年&#xff0c;这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合&#xff0c;大大提高了研发效率。在开发过程中&#xff0c;也遇到了一些性能相关问题和…

设计模式 行为型 命令模式(Command Pattern)与 常见技术框架应用 解析

命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它旨在将请求发送者和接收者解耦&#xff0c;通过将一个请求封装为一个对象&#xff0c;从而允许参数化客户端对象以进行不同的请求、排队请求或记录请求&#xff0c;并支持可撤销操作。 在软…

NodeLocal DNS 全攻略:从原理到应用实践

文章目录 一、NodeLocal DNS是什么&#xff1f;二、为什么使用NodeLocal DNS&#xff1f;三、工作原理架构图四、安装NodeLocal DNS五、在应用中使用NodeLocal DNSCache六、验证 一、NodeLocal DNS是什么&#xff1f; NodeLocal DNSCache 通过在集群节点上运行一个 DaemonSet …

jenkins入门12-- 权限管理

Jenkins的权限管理 由于jenkins默认的权限管理体系不支持用户组或角色的配置&#xff0c;因此需要安装第三发插件来支持角色的配置&#xff0c;我们使用Role-based Authorization Strategy 插件 只有项目读权限 只有某个项目执行权限

STM32-笔记34-4G遥控灯

4G接线 一、项目需求 服务器通过4G模块远程遥控开关灯。 二、项目实现 复制项目文件夹38-wifi控制风扇项目 重命名为39-4G遥控点灯 打开项目文件 加载文件 main.c #include "sys.h" #include "delay.h" #include "led.h" #include "ua…