认识计算机-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.mzph.cn/news/137429.shtml

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

相关文章

万宾科技智能井盖监测仪器助力建设数字化城市

市政公共设施建设在近几年来发展迅速,市政设备的更新换代,资产管理等也成为其中的重要一项。在市政设施建设过程中,井盖也是不可忽视的,一方面,根据传统的管理井盖模式来讲,缺乏有效的远程监控管理方法和手…

【hcie-cloud】【3】华为云Stack规划设计之华为云Stack交付综述【上】

文章目录 前言华为云Stack交付综述交付流程华为云Stack交付流程华为云Stack安装部署流程 交付工具链华为云Stack交付工具链eDesigner - 让解决方案销售更智能eDesigner配置页面 - 基本信息eDesigner配置页面 - 服务及组网配置eDesigner配置页面 - 弹性云服务器/ECSeDesigner配置…

【工具推荐】一键多平台文章发布神器推荐(免费)

hello,大家好,我是你们老朋友洛林,上一篇文章说到自己深受多平台手动发布的折磨「传送门」,准备开发一款文章多平台工具,后来联系到 Wechatsync 原作者进行了简单的沟通,下面是关于以后的一些规划&#xff…

LeetCode(1)合并两个有序数组【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 88. 合并两个有序数组 1.题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合…

STM32 堆栈空间分布

参考 运行时访问__initial_sp和__heap_base 无RTOS时的情况 在以上配置的情况下,生成工程。在工程的startup.s文件中,由如下代码: Stack_Size EQU 0x400AREA STACK, NOINIT, READWRITE, ALIGN3 __Stack_top ; 自己添加 Stack_Mem…

完全零基础,教你创建数码配件小程序商城

现如今,随着数码产品的普及,数码配件市场也越来越火爆。如果你有兴趣进入这个行业,并且想要开设一家数码配件小程序商城,那么不要担心,即使你完全零基础也可以轻松实现。 首先,登录【乔拓云】网后台&#x…

城市内涝积水监测,万宾科技内涝预警监测系统

每一个城市的排水体系都是一个复杂的网络系统,需要多个部分配合协调,预防城市排水管网带来安全隐患,也因此才能在一定程度上缓解城市内涝带来的安全问题。在海绵城市建设过程中不仅要解决大部分道路硬化导致的积水无法渗透等问题,…

【架构】后端项目经典分层架构介绍

文章目录 前言分层架构项目实践示例项目结构 其他知识 前言 开发后端项目时,我们最常见的一种架构模式就是分层架构 。 所谓的分层架构,就是把系统自上而下分为多个不同的层,每一层都有特定的功能和职责,且只和自己的直接上层与…

小白学爬虫:通过商品ID或商品链接封装接口获取淘宝商品销量数据接口|淘宝商品销量接口|淘宝月销量接口|淘宝总销量接口

淘宝商品销量接口是淘宝开放平台提供的一种API接口,通过该接口,商家可以获取到淘宝平台上的商品销量数据。使用淘宝商品销量接口的步骤如下: 1、在淘宝开放平台注册并创建应用,获取API Key和Secret Key等必要的信息。 2、根据淘宝…

【Vue】【uni-app】工单管理页面实现

用的是uni-app的uni-ui拓展组件实现的 功能是对工单进行一个展示,并对工单根据一些筛选条件进行搜索 目前是实现了除了日期之外的搜索功能,测试数据是下面这个tableData.js,都是我自己手写的,后端请求也稍微写了一些,…

FPGA配置采集AR0135工业相机,提供2套工程源码和技术支持

目录 1、前言免责声明 2、AR0135工业相机简介3、我这里已有的 FPGA 图像处理解决方案4、设计思路框架AR0135配置和采集图像缓存视频输出 5、vivado工程1–>Kintex7开发板工程6、vivado工程1–>Zynq7100开发板工程7、上板调试验证8、福利:工程代码的获取 1、前…

【解决问题】---- 解决 avue-crud 表格勾选数据翻页后界面保持选中

1. 错误预览 第一页选择【7、8、9、10】 直接点击第三页未进行选择 直接点击第四页未进行选择 2. 问题总结 通过测试可以看到,页面的选择项会影响到其他页面的选择;点击保存,返回的数据却是真真选择的数据;数据在选择渲染…

【论文阅读】多模态NeRF:Cross-Spectral Neural Radiance Fields

https://cvlab-unibo.github.io/xnerf-web intro 从不同的light spectrum sensitivity获取信息,同时需要obtain a unified Cross-Spectral scene representation – allowing for querying, for any single point, any of the information sensed across spectra。…

CAN轴【禾川】

禾川CAN轴有问题。 厂家说是只能使用禾川的伺服X2EN,和X3EN 添加CAN主站: 网络: 0 波特率: 1000K 添加CAN总线: 主站: 2 同步帧: 80h 设置刷新时间 时间帧:100h 添加伺服&…

Vue el-table序号与复选框hover切换

效果图下&#xff1a; <template><div class"container"><el-tableref"multipleTable"id"multipleTable":data"person.tableData"cell-mouse-enter"cellEnter"cell-mouse-leave"cellLeave"selecti…

Leetcode-LCR 021 删除链表的倒数第 N 个结点

快慢指针&#xff0c;快指针先移动n-1个节点后&#xff0c;慢指针从虚拟头结点出发&#xff08;相当于快慢指针相隔n个节点&#xff09;&#xff0c;快慢指针一起向链表尾依次移动一个结点&#xff0c;当快指针移动到表位时&#xff0c;慢指针正好移到被删除元素的前一个结点&a…

Python数据容器(字符串)

字符串 1.字符串 字符串也是数据容器的一种&#xff0c;字符串是字符的容器&#xff0c;一个字符串可以存放任意数量的字符。 2.字符串的下标索引 从前向后&#xff0c;下标从0开始从后向前&#xff0c;下标从-1开始 # 通过下标索引获取特定位置的字符 name python print(na…

TinyEngine 开源低代码引擎首次直播答疑QA合集

前言 10月27日晚8点&#xff0c;OpenTiny 社区开启了 TinyEngine 开源低代码引擎首次答疑直播&#xff0c;本次直播我们通过收集开发者诉求&#xff0c;精心策划和组织了内容&#xff0c;希望提供给大家最明确和清晰的答疑方式。这是 TinyEngine 低代码引擎直播计划的开端&…

Flutter 第三方 flutter_screenutil(屏幕适配)

一直觉得自己写的不是技术&#xff0c;而是情怀&#xff0c;一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的&#xff0c;希望我的这条路能让你们少走弯路&#xff0c;希望我能帮你们抹去知识的蒙尘&#xff0c;希望我能帮你们理清知识的脉络&#xff0…

【Royalty in Wind 2.0.0】个人体测计算、资料分享小程序

前言 Royalty in Wind 是我个人制作的一个工具类小程序。主要涵盖体测计算器、个人学习资料分享等功能。这个小程序在2022年第一次发布&#xff0c;不过后来因为一些原因暂时搁置。现在准备作为我个人的小程序重新投入使用XD PS&#xff1a;小程序开发部分我是在21年跟随郄培…