认识计算机-JavaEE初阶

文章目录

  • 一、计算机的发展史
  • 二、冯诺依曼体系(Von Neumann Architecture)
  • 三、CPU基本工作流程
    • 3.1 算术逻辑单元(ALU)
    • 3.2 寄存器(Register)和内存(RAM)
    • 3.3 控制单元(CU)
    • 3.4 CPU基本工作流程
  • 四、编程语言(Program Language)
    • 4.1 程序(Program)
    • 4.2 编程语言的发展
  • 五、操作系统(Operating System)
    • 5.1 操作系统的概念
    • 5.2 什么是进程 / 任务(Process / Task)
    • 5.3 CPU分配----进程调度(Process Scheduling)
    • 5.4 内存分配-----内存管理(Memory Manage)
    • 5.5 进程间的通信

前言:
随着时代发展,互联网的兴起,计算机已经普及到了家家户户,可以说每个人都对计算机并不陌生,但我们是否真正了解计算机呢?接下来简单介绍一下有关计算机的知识。

一、计算机的发展史

计算的需求在⼈类的历史中是⼴泛存在的,发展⼤体经历了从⼀般计算⼯具到机械计算机到⽬前的电⼦计算机的发展历程。
计算机的发展史可以追溯到古代使用计算工具时期。然而,现代计算机的起源可以追溯到20世纪初的一系列重要发明和创新。以下是一些关键的里程碑事件:

  1. 1837年,英国数学家查尔斯·巴贝奇设计了一台名为分析引擎(Analytical Engine)的机械计算器,被视为世界上第一台计算机的雏形。

  2. 1936年,数学家阿兰·图灵提出了通用图灵机的概念,奠定了计算机理论的基础,并对计算机科学做出了重大贡献。

  3. 1940年代中期,康奈尔大学的维尔纳·冯·布劳恩(Von Neumann)教授提出了存储程序原理,即将指令和数据存储在同一内存中,这成为现代计算机架构的基础。

  4. 1946年,世界上第一台电子管计算机ENIAC诞生于美国宾夕法尼亚大学,它是一个巨大的机器,主要用于军事计算。

  5. 1951年,第一台商业计算机UNIVAC I问世,成为世界上第一台投入商业应用的计算机。

  6. 1960年代,计算机开始出现集成电路技术的应用,这使得计算机变得更小、更快、更强大,并且成本更低。

  7. 1970年代,个人计算机(PC)开始出现,苹果公司和微软成为该领域的主要开拓者。

  8. 1980年代和1990年代,计算机网络和因特网的发展使得计算机得以连接并共享资源,促进了信息时代的到来。

在过去几十年里,计算机技术迅速发展,从大型机、小型机、个人计算机到移动设备和云计算等新兴领域的不断创新。
⼈类对计算的需求,驱动我们不断的发明、改善计算机。⽬前这个时代是“电⼦计算机”的时代,发展的潮流是:更快速、更稳定、更微型。

二、冯诺依曼体系(Von Neumann Architecture)

现代的计算机,⼤多遵守冯诺依曼体系结构:
在这里插入图片描述

  • CPU 中央处理器:进行算术运算和逻辑判断
  • 存储器:分为外存和内存,用于存储数据(用二进制方式存储)
  • 输入设备:用户给计算机发号施令的设备
  • 输出设备:计算机向用户汇报结果的设备

对于存储空间大小:硬盘 > 内存 >> CPU
对于数据访问速度:CPU > 内存 > 硬盘

认识计算机之父–冯诺依曼
冯·诺依曼(John von Neumann,1903年12⽉28⽇-1957年2⽉8⽇),美籍匈⽛利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之⼀。冯·诺依曼是布达佩斯⼤学数学博⼠,在现代计算机、博弈论、核武器和⽣化武器等领域内的科学全才之⼀,被后⼈称为“现代计算机之⽗”、“博弈论之⽗”。

三、CPU基本工作流程

CPU(中央处理器Center Process Unit)由运算器(ALU)、控制器(CU)、寄存器、时钟组成。
在这里插入图片描述

3.1 算术逻辑单元(ALU)

ALU 算术逻辑单元(Arithmetic&logical Unit):是中央处理器(CPU)的执行单元是所有中央处理器的核心组成部分,是计算机的数学大脑,由"And Gate"(与门) 和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行算术运算和逻辑运算,如加减乘(不包括整数除法)。基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。
在这里插入图片描述
在这里插入图片描述

3.2 寄存器(Register)和内存(RAM)

只有ALU还远远不够,⽆法为ALU提供存储的部件,利⽤⻔电路简单说明存储的制作,这些存储都要求必须保持通电状态(容易丢失)。
在这里插入图片描述
可以利⽤⻔锁,构建需要的寄存器和内存
在这里插入图片描述
寄存器是用来暂时保存运算和控制过程中的原始数据,中间结果,最终结果以及控制、状态信息的
内存的构建要⽐这个复杂⼀点,但基本原理⼀致。如此构建的内存被称为RAM(Random Access Memory),可以⽀持O(1)时间复杂度访问任意位置的数据,这也就是我们数组下标访问操作是O(1)的硬件⽀持
在这里插入图片描述

3.3 控制单元(CU)

有ALU、存储了,但这还是不⾜以让我们的计算机⼯作起来,我们需要有⼀个部件来指挥ALU进⾏何种的运算,⽽这个部件就是控制单元(CU)。
在这里插入图片描述

CU 控制单元(Control Unit):负责程序的流程管理。控制单元是整个 CPU 的指挥控制中心,由指令寄存器IR(Instruction Register)、 程序计数器PC(Program Counter)和其他通用的存储器(保存计算的中间结果)等组成,对协调整个电脑有序工作极为重要
在这里插入图片描述

指令(Instrction)指导CPU进行工作的命令,主要由操作码和被操作数组成,是CPU能够执行任务的最小单元。操作码⽤来表⽰要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等,指令本⾝也是⼀个数字,⽤⼆进制形式保存在内存的某个区域中。

3.4 CPU基本工作流程

下面是指令运⾏的⼀个周期的流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执⾏周期经过的阶段:
在这里插入图片描述
电⼦计算机中的CPU靠背后⼀个时钟来进⾏周期驱动。
在这里插入图片描述
小结:

  1. CPU中的PC寄存器,是决定执行那条指令的关键
  2. 指令由 操作码(动作) + 操作数(操作对象)组成
  3. CPU 眼里只有指令

四、编程语言(Program Language)

4.1 程序(Program)

程序:⼀组指令以及这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为⼀组⽂件。
程序 = 指令 + 指令要处理的数据
在这里插入图片描述

4.2 编程语言的发展

为了提升编程效率,最早创造了汇编语⾔的概念。其实汇编语⾔和机器语⾔(也就是指令)直接是完全⼀⼀对应的,只是相对于0、1这些数字,发明了⼀些帮助⼈类记忆和理解的符号将其对应起来,也就是我们上⾯看到的类似 LOAD_A、LOAD_B 等。程序员完成编程之后,需要使⽤汇编器(assembler)将汇编语⾔翻译成机器语⾔。虽然汇编降低了程序员的记忆成本,但要求程序还是必须掌握计算机硬件的所有知识,⽽且随着计算机⼚商越来越多,⼀次编写的程序往往只适⽤于⼀类计算机。这个是远远不够的,所以更为⾼级的语⾔诞⽣了,⾼级语⾔屏蔽了硬件细节,让程序员可以站在更⾼的层⾯上思考⾃⼰的业务。这⾥以 C 语⾔为例,程序员完成程序的编写之后,需要使⽤编译器(compiler)和连接器(linker)将程序翻译成
汇编语⾔,再借助汇编器变成最终的机器语⾔。借助封装的思想,我们学习编程变得越来越容易。不过有利则有弊,⾼度的抽象,导致很多的程序员把计算机视为⼀个⿊箱,完全⽆法理解⾃⼰的程序是如何⼯作起来的,希望我们⼤家不要做这种程序员。
我们使⽤的 Java 语⾔相对于 C 语⾔更⾼级⼀点,但基本抽象原理上没有太⼤的差异。
在这里插入图片描述
注意:⾼级语⾔的⼀条语句(Statement)往往对应很多条指令(Instruction)才能完成

五、操作系统(Operating System)

5.1 操作系统的概念

操作系统是⼀组做计算机资源管理的软件的统称。⽬前常⻅的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。
在这里插入图片描述
操作系统由两个基本功能:

  1. 对下管理所有的硬件设备
  2. 对上,要给软件提供稳定的运行环境

5.2 什么是进程 / 任务(Process / Task)

进程是操作系统对⼀个正在运⾏的程序的⼀种抽象,换⾔之,可以把进程看做程序的⼀次运⾏过程;同时,在操作系统内部,进程⼜是操作系统进⾏资源分配的基本单位
在这里插入图片描述
在这里插入图片描述
进程控制块(PCB Process Control Block)抽象:计算机内部要管理任何现实事物,都需要将其抽象成⼀组有关联的、互为⼀体的数据。在 Java 语⾔中,我们可以通过类/对象来描述这⼀特征

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

每⼀个 PCB 对象,就代表着⼀个实实在在运⾏着的程序,也就是进程。操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,⽅便管理时进⾏增删查改的操作。
在这里插入图片描述

5.3 CPU分配----进程调度(Process Scheduling)

单CPU单核的计算机,操作系统对CPU资源的分配,采⽤的是时间模式----不同的进程在不同的时间段去使⽤CPU资源。
在这里插入图片描述

在这里插入图片描述

5.4 内存分配-----内存管理(Memory Manage)

操作系统对内存资源的分配,采⽤的是空间模式-----不同进程使⽤内存中的不同区域,互相之间不会⼲扰,进程之间就具有了隔离性。
在这里插入图片描述

5.5 进程间的通信

通过上述方式,将进程之间隔离开,但现代的应⽤,要完成⼀个复杂的业务需求,往往⽆法通过⼀个进程独⽴完成,总是需要进程之间相互配合地达到应⽤的⽬的,此时,就需要进程之间进行通信。
通信实现方式有很多:

  1. 管道
  2. 共享内存
  3. ⽂件
  4. ⽹络
  5. 信号量
  6. 信号

但都有共同的核心思想:都要借助一个公共空间,完成数据的交互
其中,⽹络是⼀种相对特殊的IPC机制,它除了⽀持同主机两个进程间通信,还⽀持同⼀⽹络内部⾮同⼀主机上的进程间进⾏通信。

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

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

相关文章

深入理解 TCP;场景复现,掌握鲜为人知的细节

握手失败 第一次握手丢失了,会发生什么? 当客户端想和服务端建立 TCP 连接的时候,首先第一个发的就是 SYN 报文,然后进入到 SYN_SENT 状态。 在这之后,如果客户端迟迟收不到服务端的 SYN-ACK 报文(第二次…

Apache Airflow (四) :Airflow 调度shell命令

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

Delphi 12 重返雅典 (RAD Studio 12)

RAD Studio 12 的新功能: 以最新的平台版本为目标! RAD Studio 12 提供对 iOS 17(仅适用于 Delphi)、Android 14 和 macOS Sonoma 的官方支持。RAD Studio 12 还支持 Ubuntu 22 LTS 和 Windows Server 2022。 Delphi 源代码的多…

<蓝桥杯软件赛>零基础备赛20周--第5周--杂题-2

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

一题三解(暴力、二分查找算法、单指针):鸡蛋掉落

涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋&#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎&#xff0c;从 f 楼层或比它低的…

3DMAX汽车绑定动画模拟插件MadCar疯狂汽车使用教程

3DMAX汽车绑定动画模拟插件MadCar疯狂的汽车&#xff0c;用于通过模拟控制来快速装配轮式车辆及其动画。这个新版本允许装配任何数量的车轮的车辆&#xff0c;以及包括摩托车在内的任何相互布置。还支持任意数量的拖车。 每个车轮和悬架都有简化的行为设置以及微调&#xff0c…

【微服务专题】手写模拟SpringBoot

目录 前言阅读对象阅读导航前置知识笔记正文一、工程项目准备1.1 新建项目1.1 pom.xml1.2 业务模拟 二、模拟SpringBoot启动&#xff1a;好戏开场2.1 启动配置类2.1.1 shen-base-springboot新增2.1.2 shen-example客户端新增启动类 三、run方法的实现3.1 步骤一&#xff1a;启动…

RAW图像处理软件Capture One 23 Enterprise mac中文版功能特点

Capture One 23 Enterprise mac是一款专业的图像处理软件&#xff0c;旨在为企业用户提供高效、快速和灵活的工作流程。 Capture One 23 Enterprise mac软件的特点和功能 强大的图像编辑工具&#xff1a;Capture One 23 Enterprise提供了一系列强大的图像编辑工具&#xff0c;…

TensorFlow学习笔记--(1)张量的随机生成

张量的生成 如何判断一个张量的维数&#xff1a;看张量的中括号有几层 0 1 2 &#xff1a;零维数列 [2 4 6] : 一维向量 [ [1 2 3] [4 5 6] ] : 二维数组 两行三列 第一行数据为 1 2 3 第二行数据为 4 5 6 以此类推 n维张量有n层中括号 tf.zeros(%指定一个张量的维数%) 生成一…

Django如何创建表关系,Django的请求声明周期流程图

【1】表与表之间的关系 一对一 左表的一条记录对应右表的一条记录&#xff0c;反之亦然 多对一 左表的一条记录对应右表的多条记录&#xff0c;反之不成立 多对多 左表的一条记录对应右表的多表记录&#xff0c;反之成立 【2】django中创建表关系 class Book(models.Model):t…

canvas 曲线图 双数值轴 山峰图

下面的代码本人亲自撰写&#xff0c;原生不易啊。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

CSS3 用户界面、图片、按钮

一、CSS3用户界面&#xff1a; 在CSS3中&#xff0c;增加了一些新的用户界面特性来调整元素尺寸、框尺寸和外边框。CSS3用户界面属性&#xff1a;resize、box-sizing、outline-offset。 1、resize&#xff1a; resize属性指定一个元素是否应该由用户去调整大小。 <style…

Azure 机器学习 - 有关为 Azure 机器学习配置 Kubernetes 群集的参考

目录 受支持的 Kubernetes 版本和区域建议的资源计划ARO 或 OCP 群集的先决条件禁用安全增强型 Linux (SELinux)ARO 和 OCP 的特权设置 收集的日志详细信息Azure 机器学习作业与自定义数据存储连接支持的 Azure 机器学习排斥和容许最佳实践 通过 HTTP 或 HTTPS 将其他入口控制器…

DAY50 309.最佳买卖股票时机含冷冻期 + 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 题目要求&#xff1a;给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 你不…

vue2+elementui使用MessageBox 弹框$msgbox自定义VNode内容:实现radio

虽说实现下面的效果&#xff0c;用el-dialog很轻松就能搞定。但是这种简单的交互&#xff0c;我更喜欢使用MessageBox。 话不多说&#xff0c;直接上代码~ <el-button type"primary" size"mini" click"handleApply()" >处理申请</el-b…

【Git】Git图形化工具SSH协议IDEA集成Git的使用讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Git》。&#x1f3af;&#x1f3af; &#x1f449…

git命令之遭遇 ignore罕见问题解决

我先来讲讲背景 我的一些文件在ignore了&#xff0c;不会被提交到远程仓库&#xff0c;这时候我的远程仓库中是没有这几个文件的&#xff0c;这时候我如果使用 git reset 的话这时候除了那几个 ignore 的文件以外都被更新的&#xff0c;但是如果我不需要这几个被 ignore 的文件…

蓝桥杯之模拟与枚举day1

Question1卡片(C/CA组第一题) 这个是一道简单的模拟枚举题目&#xff0c;只要把对应每次的i的各个位都提取出来&#xff0c;然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可 #include <iostream> using namespace std; bool solve(int a[],int n…

NSS [鹏城杯 2022]压缩包

NSS [鹏城杯 2022]压缩包 考点&#xff1a;条件竞争/逻辑漏洞&#xff08;解压失败不删除已经解压文件&#xff09; 参考&#xff1a;回忆phpcms头像上传漏洞以及后续影响 | 离别歌 (leavesongs.com) 源码有点小多 <?php highlight_file(__FILE__);function removedir($…

大模型+人形机器人,用AI唤起钢筋铁骨

《经济参考报》11月8日刊发文章《多方布局人形机器人赛道,智能应用前景广》。文章称&#xff0c;工信部日前印发的《人形机器人创新发展指导意见》&#xff0c;按照谋划三年、展望五年的时间安排&#xff0c;对人形机器人创新发展作了战略部署。 从开发基于人工智能大模型的人…