一个完整的计算机系统由硬件系统和软件系统两大部分组成。
冯诺依曼体系结构
主要内容如下
- 计算机处理的数据和指令一律用二进制表示
- 顺序执行程序的每一条指令
- 计算机由运算器,控制器,存储器,输入设备,输出设备五大部分组成
二进制和十进制转换
十进制 二进制
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年,元器件的尺寸已经接近物理极限。
计算机分类
- 按规模化分
- 超级计算机
- 大型计算机
- 小型计算机
- 微型计算机
- 按功能和角色划分
- 服务器Server和客户机client
其中
服务器按应用功能可分为:web服务器,数据库服务器,文件服务器,中间件应用服务器,日志服务器,监控服务器,程序版版本控制服务器,虚拟机服务器,邮件服务器,打印服务器,域控制服务器,多媒体服务器,通讯服务器,ERP服务器等。
服务器按外形分类
pc服务器常见的三种外形:
- 塔式服务器
- 刀片服务器
- 机架式服务器
服务器硬件组成
- cpu。cpu即中央处理器,由运算器和控制器组成。
- 主板。
- 内存。
- 硬盘。机械硬盘HDD和固态硬盘SSD.
- 网卡。
- 相关其他硬件。远程管理卡、阵列卡、电源、显卡、热插拔技术、机柜
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服务器、超级计算机、小型计算机及工作站中,广泛使用。)
储存器的层次结构
存储器越往上速度越快,但是价格越来越贵,越往下速度越慢,但是价格越来越便宜。正式由于计算机各个部门的速度不同,容量不同,价格不同,导致了计算机系统编程中的各种问题以及相应的解决方案。
并发
CPU的速度超级快,不能老让它闲着,要充分地压榨它。
人类需要多个程序”同时“运行,我们要把CPU的时间进行很小的分片,让各个程序在CPU上快速轮转,造成一种多个程序同时在运行的假象,及并发。
当CPU遇到IO操作(硬盘,网络)时,不能在那干等”几个月“甚至”几年“,在等待的时候,要切换去执行别的程序。
缓存
需要持久化的数据一定要保存在硬盘中,但是硬盘超级慢,支持不了大量的并发访问,那怎么办呢?
可以把最常访问的热点数据放到CPU的缓存中,其实CPU也确实是这么做的,但是CPU的L1,L2,L3级缓存实在是太瞎小了,根本满足不了需求。于是只好退而求其次,把热点数据放到速度稍慢的内存中,于是应用程序的缓存就出现了。
缓存虽然解决了问题,但是也带来了更多的问题,例如:缓存数据和数据库数据怎么保持一致性?缓存如果崩了该怎么处理?数据在一台机器的内存放不下,要分布到多个机器上,怎么搞分布式,用什么算法?...