一个完整的计算机系统由硬件系统和软件系统两大部分组成。

计算机基础(个人版)_计算机基础

冯诺依曼体系结构

主要内容如下

  1. ​计算机处理的数据和指令一律用二进制表示
  2. 顺序执行程序的每一条指令
  3. 计算机由运算器,控制器,存储器,输入设备,输出设备五大部分组成

计算机基础(个人版)_计算机基础_02

二进制和十进制转换

十进制       二进制

0                   

2^0              1                   1

2^1              10                  2

2^2              100                4

2^3              1000              8

2^4              10000            16

2^5              100000          32

2^6              1000000        64

2^7              10000000      128

...

例如

19

19=16+3

10000+10+1=10011


摩尔定律

1965年由戈登摩尔提出,其核心是集成电路上可容纳的晶体管数目,每隔18个月或24个月,就能增加一倍,其性能也自然会提高一倍。

但到2020年,元器件的尺寸已经接近物理极限。

计算机分类

  1. 按规模化分
  • 超级计算机
  • 大型计算机
  • 小型计算机
  • 微型计算机
  1. 按功能和角色划分
  • 服务器Server和客户机client

其中

服务器按应用功能可分为:web服务器,数据库服务器,文件服务器,中间件应用服务器,日志服务器,监控服务器,程序版版本控制服务器,虚拟机服务器,邮件服务器,打印服务器,域控制服务器,多媒体服务器,通讯服务器,ERP服务器等。

服务器按外形分类

pc服务器常见的三种外形:

  • 塔式服务器
  • 刀片服务器
  • 机架式服务器

服务器硬件组成

  1. cpu。cpu即中央处理器,由运算器和控制器组成。
  2. 主板。
  3. 内存。
  4. 硬盘。机械硬盘HDD和固态硬盘SSD.
  5. 网卡。
  6. 相关其他硬件。远程管理卡、阵列卡、电源、显卡、热插拔技术、机柜

cpu指令集分类:

  • CISC:Complex Instruction Set Computer,复杂指令集。
  • RISC:Reduced Instruction Set Computer,精减指令集。

复杂指令集和精减指令集:

CISC的指令系统庞大,功能复杂,指令格式寻址方式多;执行速度慢;难以优化编译,编译程序复杂;无法并行;无法兼容。

所以出现了RISC

RISC其基本思想是尽量简化机算计指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,使其实现更容易,指令并行执行程度更好。

当前CPU的两大架构是CISC和RISC,X86是CISC的代表架构,占领了95%以上的桌面计算机和服务器市场。Arm作为RISC的一种,在智能手机,可穿戴设备等移动处理器市场占主要地位,针对物联网,5G,AI新兴领域的应用,RISC-V和MIPS两大精简指令集架构再次登上历史舞台。

主流CPU指令集:

  • X86/X86-64架构
  • ARM架构
  • POWER架构 (由IBM设计,POWER系列微处理器在不少IBM服务器、超级计算机、小型计算机及工作站中,广泛使用。)

储存器的层次结构

计算机基础(个人版)_计算机基础_03

存储器越往上速度越快,但是价格越来越贵,越往下速度越慢,但是价格越来越便宜。正式由于计算机各个部门的速度不同,容量不同,价格不同,导致了计算机系统编程中的各种问题以及相应的解决方案。

并发

CPU的速度超级快,不能老让它闲着,要充分地压榨它。

人类需要多个程序”同时“运行,我们要把CPU的时间进行很小的分片,让各个程序在CPU上快速轮转,造成一种多个程序同时在运行的假象,及并发。

当CPU遇到IO操作(硬盘,网络)时,不能在那干等”几个月“甚至”几年“,在等待的时候,要切换去执行别的程序。

缓存

需要持久化的数据一定要保存在硬盘中,但是硬盘超级慢,支持不了大量的并发访问,那怎么办呢?

可以把最常访问的热点数据放到CPU的缓存中,其实CPU也确实是这么做的,但是CPU的L1,L2,L3级缓存实在是太瞎小了,根本满足不了需求。于是只好退而求其次,把热点数据放到速度稍慢的内存中,于是应用程序的缓存就出现了。

缓存虽然解决了问题,但是也带来了更多的问题,例如:缓存数据和数据库数据怎么保持一致性?缓存如果崩了该怎么处理?数据在一台机器的内存放不下,要分布到多个机器上,怎么搞分布式,用什么算法?...