接下来的blog将围绕JavaEE的知识,介绍线程,网络等知识
即计算机都是由以下几部分构成的
存储大小:
硬盘(外存) > 内存 > cpu
访问速度:
cpu > 内存 > 外存
注意:
我们平时买手机,电脑时上面写的内存并不是运行内存,而是外存,即硬盘大小
CPU即中央处理器,是计算机最核心的部分,其性能决定了计算机的算术能力。其最核心的指标——主频,例如一个1.50GHz的CPU一秒钟可以计算15亿次,其工艺技术堪比氢弹。因为我们需要在芯片上激光雕刻电路,目前最小的门电路大小就是AMD的5nm的CPU,未来受基础力学的影响,计算机将向量子计算机发展。常见的CPU有Intel,AMD,高通等。
我们通过各种语言写出的可执行程序在运行时,操作系统会将其加载到内存中,然后再读取到CPU中,CPU对指令进行解析,把这些语言解析成二进制语言,然后执行这些指令。
下面介绍一下CPU的构成原理
可通过继电器实现true和false的逻辑运算
即输入true返回false
输入false返回true
即两个输入都为true时输出true,否则输出false
即只要有一个输入是true,就输出true
我们的计算机的集成程度,例如之前提到的5nmCPU,就是指的是这个门电路的大小
可以实现两个1个bit位的数的加和
两个半加器可以实现带进制的两数加和
可以实现三个1个bit位的数的加和
单一的全加器就可以实现带进制的两数加和
我们可以通过这些组件实现算数加和,进而实现减法,乘法,除法
我们可以通过操作码,实现CPU对寄存器上的数据的操作
常见的操作码有:
| 指令 | 功能 | opcode | 操作的项目 |
|---|---|---|---|
| LOAD_A | 将ram地址的数据加载到A寄存器 | 0010 | 4位ram地址 |
| LOAD_B | 将ram地址的数据加载到A寄存器 | 0001 | 4位ram地址 |
| STORE_A | 将A寄存器数据写到ram地址 | 0100 | 4位ram地址 |
| ADD | 将两个寄存器的数据作加和,其结果放到第二个寄存器 | 1000 | 2位寄存器id 另外2位寄存器id |
即就是通过控制台的开关,通过切换开关实现1和0的切换,通过二进制输入指令
通过纸带上面的孔进行输入输出
通过英文单词,将二进制的操作进行简化,进行代码的编写
例如C语言,不同的高级语言的语法不同,编译器也就不同,转换成的CPU指令也就不同
因此,不同的高级语言的效率与成本都是有所不同的,所以适用的应用场景也不一样,例如c和c++的执行效率高,用于游戏引擎,搜索引擎等,而Python,PHP等的执行效率没有那么高,而开发效率很高,也就是节省人力成本
可以管理计算机资源的软件,也就是说既可以管理各种硬件,防止硬件资源被程序滥用,也可以为程序提供运行的空间,便于操作计算机
常见的操作系统有windows,unix,linux等
我们由软件到硬件的顺序依次是
其中从系统调用到驱动,都是属于操作系统