计算机是如何工作的(上篇)

javaEE初阶的学习内容0213

计算机发展史

世界上很多的高科技发明,来自于军事领域
计算机最初是用来计算弹道导弹轨迹的

弹道导弹 ~~国之重器,非常重要
两弹一星
原子弹,氢弹,卫星(背后的火箭发射技术)

计算弹道导弹轨迹的计算过程非常复杂,计算量也很大 ~~ 但是可以手动计算出来的(当年我国研究两弹一星,就是全靠算盘算出来的) ~~ 1.算的慢 2. 算得可能不准 => 因此,就迫切的需要一台机器来帮助我们计算=> 计算机(专用计算机)就出现了
第一台计算机, 埃尼阿克,诞生于1946年,美国普林斯顿大学,主要用来计算弹道导弹轨迹,运算速度(CPU主频)每秒5000hz(每秒5000次),重达几十吨,占地面积为好几个房间 ~~ 虽然非常low,但还是远远超过人工手动计算
博主破笔记本的处理器处理器 12th Gen Intel® Core™ i5-12500H2.50 GHz ~~ 1GHz即十亿赫兹(10^9 Hz),每秒计算25亿次

珠脑心算(珠心算) ~~ 打算盘,或者心算
看着一长串需要运算的数字,在极短的时间内就能得出正确的结果的珠心算人才,
是属于国家战略储备人才!!!这种人才在极端情况下(即所有电子设备都失效了),仍然
可以把弹道导弹的轨迹算出来对敌人进行反制

随着时代的发展,通用型计算机开始出现
通用型计算机的愿景是图灵(祖师爷)提出来的,冯洛伊曼(祖师爷)实现的

图灵和冯洛伊曼这两位祖师爷是属于同一个时代的人,都是那个时代的天才,诺依曼只比图灵大8岁
~~ 但是冯洛伊曼在美国,图灵在英国
冯洛伊曼曾经对图灵抛出橄榄枝,邀请他一起来研究通用计算机,但可惜被图灵给拒绝了,因此两位祖师爷就没有一起共事过

图灵的介绍

图灵,本来只是一个数学家,但是随着二战爆发,
在欧洲战场,作为世界老大,号称日不落帝国的英国,被后起之秀的德国打的很惨
英国为了寻求反击,对德国进行有效的进攻,就需要获取到德国的军事部署
当时各国的通讯都是通过无线电报进行的,只要你有电台,就能收到数据.
但是由于德国的无线电报都是加密的,就需要进行解密
~~ 对于无线电报的解密,很多国家都是有专门的人才储备,英国也有.
但是由于德国的著名密码系统Enigma的出现,通过机器的方式来进行加密,
导致使用人力破解这种方式就没了作用,束手无策了,根本算不过来,就算破解了,
也会发现加密方式早就变了

由于图灵本来就一直在研究计算机相关的内容,于是,图灵就站了出来
~~提出用魔法打败魔法!!! => 通过仔细研究Engima的构造,造出来一个反Engima机,
用机器来破解机器加密的数据!!!
因此,通过这样的一种手段,让英国解析出了很多来自德国的重要军事情报,
这些情报在当时就直接推动了著名战役诺曼底登陆(欧洲战场重要的转折点)的发生,
最后,帮助盟军取得了二战的胜利.

不过,遗憾的是,图灵祖师爷,在战后遭到了政府的迫害 =>
1952年,英国政府对图灵的同性恋取向定罪,随后图灵接受化学阉割,
1954年6月7日,图灵吃下含有氰化物的苹果中毒身亡,享年42岁。
2013年12月24日,在英国司法大臣克里斯·格雷灵的要求下,
英国女王伊丽莎白二世向图灵颁发了皇家赦免,进行了平反

图灵奖,名称就取自艾伦·麦席森·图灵,计算机领域的国际最高奖项,被誉为“计算机界的诺贝尔奖”。



独显跟集显有什么区别

集显是集成在CPU内部的.
独显是独立出来的.
同时代的产品相比,最好的集显,也打不过最差的独显

CPU 工作流程

~~ (工作不用&面试不考)

逻辑门

电子开关 —— 机械继电器(Mechanical Relay)

image-20230916112935398

~~ 它可以实现 1 位(bit) 的基本逻辑运算

门电路(Gate Circuit)
  • 与门

    image-20230916105910183

  • 或门

    image-20230916110834307

  • 非门

    image-20230916110956200

与门,或门,非门的实现,借助于二极管等设备特殊物理特性
输入的信号是1,0这样的比特位,通过这个门电路,来计算出与或非的值

异或门 ~~ 相同为0,相异为1

image-20230916112504463

算术单元(Arithmetic Unit)

~~ 算数单元,负责计算机里的所有数字操作,比如四则运算

  • 半加器
    ~~ 两个比特位相加

image-20230916114129049

  • 全加器
    ~~ 三个比特位相加

image-20230916114729936

  • 加法器 ~~ 由半加器和全加器构成
    ~~ 针对两个二进制的数字进行相加
    不仅仅是针对一个比特运算,而是多位的运算
    ~~ 加法器,不仅可以算加法,
    还可以算减法 => 本质上是加上减数的补码
    乘法 => 连续相加
    除法 => 连续相减
    有了加法器,加减乘除都搞定了!!!

image-20230916120441773

CPU的设计理念与道家老祖宗提出的道生—,一生二,二生三,三生万物不谋而和!!!
推荐阅读一下科幻小说<<三体>>中有关人列计算机的描述,有助于加深你的理解!!!
博主在这为你们简单介绍一下
<<三体>>的人列计算机的诞生背景:
三体星人(外星人),他们的生存的星球上方有三个太阳,三个太阳做着三体运动,导致其运动轨迹是
相当混乱的,这就导致他们无法进行正常的农业生产,社会发展举步维艰,文明发展甚至出现倒退的情况!!!
这时,他们的领袖“秦始皇”广招天下能人,来制作“万年历”,对农业生产进行指导,促进帝国发展.无数的大佬
就站了出来,贡献出自己制作的“万年历”,不过都前赴后继的都失败了.直到两位大佬的出现,牛顿和冯洛伊曼

牛顿 : 万有引力定律 + 牛顿三定律 => 列方程 ~~ 有关恒星与行星之间运动的轨迹方程
微积分 => 解方程 ~~ 就可以得到“万年历”

冯洛伊曼 : 陛下,给我三千万个训练有素的士兵!!!我来解方程
用三个士兵来为陛下进行演示
三个士兵站成品字形,上面两个代表输入,下面一个代表输出.
每个士兵拿着两个小旗,一个旗子是黑旗(图中用红旗代替),一个是白旗(图中用绿旗代替)
红旗表示0,绿旗表示1
image-20230916141224973

士兵挥旗规则
如果两个为输入的士兵都挥动红旗 ~~ 输入了2个0 => 输出的士兵挥动红旗 ~~ 输出了1个0
如果两个为输入的士兵都挥动绿旗 ~~ 输入了2个1 => 输出的士兵挥动绿旗 ~~ 输出了1个1

如果两个为输入的士兵一个挥动红旗,一个挥动绿旗 ~~ 输入了1个1和1个0
=> 为输出的那个士兵挥动红旗 ~~ 输出了1个0 ~~=> 就构成了一个与门
如果两个为输入的士兵一个挥动红旗,一个挥动绿旗 ~~ 输入了1个1和1个0
=> 为输出的那个士兵挥动绿旗 ~~ 输出了1个1 ~~=> 就构成了一个或门

类似的,如果用两个士兵,一个代表输入,一个代表输出
为输入的那个士兵挥动红旗 ~~ 输入了1个0
=> 为输出的那个士兵挥动绿旗 ~~ 输出了1个1
相反的是:
为输入的那个士兵挥动绿旗 ~~ 输入了1个1
=> 为输出的那个士兵挥动红旗 ~~ 输出了1个0
~~=> 这两个士兵就构成了一个非门

有了基本的与门,或门,非门,用更多的士兵组合,就可以构成异或门
更多的异或门 => 就可以构成半加器和全加器
更多的半加器和全加器 => 就可以构成加法器

通过更多的士兵,构造出更多的门电路,也就有了CPU ,
进一步的也就有了存储器,输入设备,输出设备…

这时,一个人列计算机就出现了,冯洛伊曼还为这个计算机编写了一套操作系统,
基于这个操作系统,来进一步的去进行解方程操作

结果如何???
最终棋差一招.牛顿力学体系,不够精确,
没有考虑相对论造成的影响,计算出现误差,功亏一篑,
这黑锅得牛顿来背,最可气的是牛顿最后还跑路了!!!

这本书,对于我们找工作也是有一定帮助的
因为面试中有一些非技术的问题.
最近在看啥书?"(常见经典问题)
你回答说你看的书必须是有意义,
另一方面家喻户晓.三体就是很好的选择.(很多程序猿都看过)
和面试官聊三体,你就很容易和面试官有共同语言,刷得好感,提高印象分
比如一些三体中值得讨论,具有争议的话题,”“章北海的做法是否正确?”
让面试官对你有更多的了解!!!

编程语言(Program Language )

~~ 被视为是程序猿和计算机之间沟通桥梁
编程语言和日常使用自然语言,是有很大的区别的.编程语言必须要严谨,无歧义.
世界上的编程语言种类繁多.大体可以分成三个大类


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

  1. 机器语言

    二进制(0,1)构成的指令 ~~ CPU能够识别
    厂商在设计CPU的时候就会设计好"指令集”CPU都支持哪些指令,以及这些指令要怎么工作.(这就类似于CPU提供的API)
    ~~ 但是人对机器语言很难理解,于是发明了汇编语言

  2. 汇编语言

    通过简单的单词作为"助记符",代替二进制的指令.
    汇编语言与机器语言是一 一对应的,
    每一个机器指令,就对应到一条汇编语句

    不同的CPU有不同的体系架构支持的指令集也是不一样的.
    即使是同类架构,不同的版本,指令集也是不一样的,导致了汇编语言会不一样.

    你在学习汇编的时候,一定要明确你学的是针对哪个系列的 CPU的…
    CPU有x86, arm, mips…很多不同种架构的

    学校学汇编大概率是8086CPU体系下的汇编语言
    => 16位汇编,支持的指令有限寄存器个数也比较少,
    现在是64位CPU,支持的指令更多寄存器个数也更多.

    8086CPU ~~ Intel早期的一个经典CPU,是一个16位CPU.
    后面又有了286,386,486….而这些后面诞生的以86结尾的CPU型号
    ~~ 被统称为x86(非常重要的CPU的体系结构.当下主流的PC和服务器都是x86结构)
    手机,路由器,主要是arm架构.

  3. 高级语言

    C,C++,C#(读作C sharp)
    ~~ C++ 相比于C做出改进,多2个加号++
    ~~ C# 相对于C++做出改进,又多2个加号++.
    ~~ 一个 # 相当于4个+(一个井字可以由4个+构成)

    Java,Python,PHP
    Ruby,JS(JavaScript),GO

U型号
~~ 被统称为x86(非常重要的CPU的体系结构.当下主流的PC和服务器都是x86结构)
手机,路由器,主要是arm架构.

  1. 高级语言

    C,C++,C#(读作C sharp)
    ~~ C++ 相比于C做出改进,多2个加号++
    ~~ C# 相对于C++做出改进,又多2个加号++.
    ~~ 一个 # 相当于4个+(一个井字可以由4个+构成)

    Java,Python,PHP
    Ruby,JS(JavaScript),GO

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

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

相关文章

MySQL架构介绍与说明

1、MySQL架构介绍 和其它数据库相比&#xff0c;MySQL有点与众不同&#xff0c;它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上&#xff0c; 插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的…

【数据结构】C++实现二叉搜索树

二叉搜索树的概念 二叉搜索树又称为二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有结点的值都小于根结点的值。若它的右子树不为空&#xff0c;则右子树上所有结点的值都大于根结…

Spring Boot 动态加载jar文件

Spring Boot 动态加载jar文件 接口实现&#xff1a; package org.bc.device;public interface IDeviceHandler {String start();String stop(); }实现类&#xff1a; package org.bc.device; public class MqttDevice implements IDeviceHandler{ Override public String s…

Linux——Shell脚本编程(2)

一、Shell变量 Linux Shell 中的变量分为&#xff0c;系统变量 和 用户自定义变量 (这个用的比较多)。 系统变量 : $HOME、$PWD、$SHELL、$USER 等等&#xff0c;比如 : echo $HOME 等等.. 显示当前shell中所有变量 : set 举例说明&#xff1a; 二、设置环境变量 记得在注释…

小丑未能阻止抢购iPhone15,预约人数快500万了,而且越贵越买

iPhone15发布后&#xff0c;在昨天开启预约&#xff0c;从某电商平台可以看到预约人数已近300万&#xff0c;加上其他平台&#xff0c;估计预约人数已快500万了&#xff0c;显示出消费者仍然是嘴上说不爱&#xff0c;行动上却是迅速抢购&#xff0c;苹果的真香定律让竞争对手很…

服务器数据恢复-热备盘同步过程中硬盘离线的RAID5数据恢复案例

服务器数据恢复环境&#xff1a; 华为OceanStor某型号存储&#xff0c;11块硬盘组建了一组RAID5阵列&#xff0c;另外1块硬盘作为热备盘使用。基于RAID5阵列的LUN分配给linux系统使用&#xff0c;存放Oracle数据库。 服务器故障&#xff1a; RAID5阵列1块硬盘由于未知原因离线…

postgresql 内核源码分析 btree索引插入分析,索引页面分裂流程,多举措进行并发优化,对异常进行保护处理

Btree索引插入流程分析 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献&#xff1a; toadb开源库 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&a…

HCIE-HCS规划设计搭建

1、相关术语 1、等价路由 等价路由&#xff08;Equal-cost routing&#xff09;是一种网络路由策略&#xff0c;用于在网络中选择多个具有相同路由度量&#xff08;路由距离或成本&#xff09;的最佳路径之一来转发数据流量。 当存在多个路径具有相同的路由度量时&#xff0c;…

VS Code 安装方法

1.安装控制台程序.NET SDK 功能&#xff1a;应用能够正常的运行和构建。 .NET SDK下载地址&#xff1a;下载 .NET(Linux、macOS 和 Windows) 2.安装驱动编辑器vscode vscode下载地址&#xff1a;https://code.visualstudio.com/Download 选择System Installer&#xff0c;…

windows mysql8.0主从配置

windows mysql8.0主从配置 一、安装两个MySQL并配置 1. 主库配置my.ini&#xff0c;我的主库是安装版 [mysqld] # 设置mysql的安装目录 basedirD:\\soft\\mysql-5.7.39 # 设置mysql数据库的存放目录 datadirD:\\soft\\mysql-5.7.39\\data #设置3306端口 port3306 #主服务器…

乐趣国学—卧薪尝胆

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

C#企业办公自动化系统asp.net+sqlserver

办公自动化网站是多层次的技术、设备和系统的综合。一个完整的办公自动化网站应包括信息的生成与输入、信息的加工与处理、信息的存储与检索、信息的复制、信息的传输与交流以及信息安全管理等功能。本软件用于构建、整合、扩展和管理企事业机构的整体信息系统&#xff0c;实现…

linux驱动开发day6--(epoll实现IO多路复用、信号驱动IO、设备树以及节点和属性解析相关API使用)

一、IO多路复用--epoll实现 1.核心&#xff1a; 红黑树、一张表以及三个接口、 2.实现过程及API 1&#xff09;创建epoll句柄/创建红黑树根节点 int epfdepoll_create(int size--无意义&#xff0c;>0即可)----------成功&#xff1a;返回根节点对应文件描述符&#xf…

Elastic Stack 8.10:更简单的跨集群搜索和身份验证等等

作者&#xff1a;Tyler Perkins, Gilad Gal, Shani Sagiv, George Kobar, Michael Peterson, Aris Papadopoulos Elastic Stack 8.10 增强了跨集群和向量搜索、数据摄取、Kibana 和云注册。 配置远程搜索时获得更大的灵活性&#xff0c;并提供更多信息来分类问题&#xff0c;…

传统生产者和消费者问题,Sychronized版和Lock版

1.生产者和消费者问题Synchronized版 面试&#xff1a;单例模式、排序算法、生产者消费者、死锁 package com.kuang.pc;/*** 线程之间的通信问题&#xff0c;生产者和消费者问题&#xff01; 等待唤醒 &#xff0c;通知唤醒* 线程交替执行 A B 操作同一个变量 num0* A num1;*…

【Vue】入门及生命周期(前后端分离)

目录 一、Vue简介 1、Vue.js是什么 2、库和框架的区别 2.1 库(Library) 2.2 框架(Framework) 3、MVVM的介绍 二、Vue入门 1、Vue快速入门 2、Vue的优势 三、Vue事件 四、Vue生命周期 1、实例 一、Vue简介 1、Vue.js是什么 Vue是一款流行的构建用户界面(UI)的[渐进式…

基于 Alpine 环境构建 aspnetcore6-runtime 的 Docker 镜像

关于 Alpine Linux 此处就不再过多讲述&#xff0c;请自行查看相关文档。 .NET 支持的体系结构 下表列出了当前支持的 .NET 体系结构以及支持它们的 Alpine 版本。 这些版本在 .NET 到达支持终止日期或 Alpine 的体系结构受支持之前仍受支持。请注意&#xff0c;Microsoft 仅正…

postman导入json脚本文件(Collection v1.0、Collection v2.0)

1. 以postman v8.5.1 版本为例 2. 在postman v5.0.2 低版本中导出json脚本文件, 请选择Collection v2.0 Export - Collection v2 3. 在postman v8.5.1 版本 导入 json脚本文件 Import - Collection v2 - Export - Import

InfiniBand vs 光纤通道,存储协议的选择

数字时代&#xff0c;数据量爆发增长&#xff0c;企业越来越迫切地追求高吞吐量、低延迟和更高性能的网络基础设施&#xff0c;存储协议的选择变得愈发至关重要。在众多存储协议中&#xff0c;InfiniBand和光纤通道备受关注。本文旨在深入探讨InfiniBand和光纤通道作为存储协议…

mysql 日志总结

mysql 根据日志的功能&#xff0c;分6种 慢查询日志&#xff1a;记录所有执行时间超过 long_query_time 的所有查询&#xff0c;方便我们对查询进行优化通用查询日志&#xff1a;记录所有连接的起始时间和终止时间&#xff0c;以及连接发送给数据库服务器的所有指令&#xff0…