计算机体系结构:运算器+控制器=CPU中央处理单元
运算器:就是一个加法器,只能做二进制计算,算数和逻辑运算,如加减乘除,移位
控制器:控制协调运算器和存储器交流,接受控制指令,指示运算器如何运算,指示在存储器里存 储数据存取位置
存储器:编址存储设备,8位一字节,存放数据和指令,不能保存数据,指令,刚加电时里面是空的
I/O设备(输入和输出):硬盘,网卡,性能最差,输入 输出设备,用来人与计算机打交道,硬 盘也属于一种输入输出设备
关系:控制器协调着把存储器的哪个存储单元里面的数据读取到运算器上
主板上的各类总线提供五大部件连接线通路
总线BUS:数据,控制信号传输
1.地址总线:寻址
2.控制总线
3.数据总线
4.线路复用:加数,被加数(数据),指令都可以在此线路传输
Cpu每个针脚代表一种功能(运算方式)
CPU指令集规定了1和0各种拼凑方式代表什么意义,硬件应该如何执行
CPU时钟频率:Ghz为单位 4Ghz代表最大1秒钟变化40多亿次,传输40多亿个数据,通过晶体管震荡实现开关闭合打开制造出0和1
缓存:高速存储器,可以从内存中复制部分常用数据,直接交给CPU,也用来协调硬盘与内存CPU速率差异,连接CPU和内存(内存速度跟不上CPU,需要缓存)一级,二级,三级,数字越小和CPU速度相差越小,预取机制,遵循空间局部性和时间局部性,缓存造价高昂
read ahead:预取,预先加载到缓存中
寄存器:CPU中用来暂时存储传入的数据的,让CPU有记忆功能
中断:CPU通过中断控制器来判断和区分输入输出设备是哪一个,外围设备只有靠不停中断来与CPU交互
敲键盘时,键盘会发出中断信号给cpu,告诉cpu键盘发生状况了,来瞧一下
可编程中断控制器:上面每一根线表示通过向量连接多个设备
Tip:中断多了也会影响cpu性能
4G内存需要32个二进制数字编码,因为2的32次方是4G,所以32位的计算机总线最多寻址4G内存,因为只有32根总线,每根线只表示0和1 64位就是4G个4G
ROM:只读存储器,适用于计算机的指令,这些指令可以映射到内存中,因为RAM没有断电保存的功能。这些指令可以告诉计算机检测输入输出设备等,用于POST加电自检
前端总线(FSB):
北桥:高速总线控制器,需要大量数据,高频率交换(链接CPU和内存)
现在一般把高速的输入输出设备(如固态硬盘直接接到北桥上,速度更快。离CPU较近,告诉总线控制器----快速实现数据交换
南桥:低速总线控制器---连接各种外围设备,硬盘,键盘,鼠标,通过总线连接到北桥
如何让系统更快:固态硬盘直接连接在北桥上
虚拟机:硬件+软件一起模拟实现硬件功能
CPU虚拟化:将CPU被切割成时间片
内存虚拟:线性地址空间---=每个进程自身认为自己有3G内存空间(还有1G给内核),事实上并不是
虚拟机内存:将本来已经虚拟的内存再进行虚拟,物理地址空间虚拟为线性地址空间
为了方便地和计算机打交道,有了操作系统,可以封装底层计算能力,抽象为统一接口,让程序员无需基于二进制编程,这样程序员就可以面向操作系统写程序了,简单了很多。特权指令只能由内核代为执行,普通指令则程序自己可以调用执行
kernel内核功能:
进程管理
内存管理
文件系统
网络功能
硬件驱动
安全机制
内核调用
system call(内核接收其他程序的请求)
malloc(), free() 申请内存和释放内存的两个系统调用
库调用:封装系统调用
liberal call
解释器,编译器,虚拟机
API(库):一种高级语言与计算机交互的环境 库被调用才可以执行。硬件与编程语言之间的兼容层,让多种语言能在多种硬件平台上运行
库:一堆程序,没有执行入口,可以被其他程序调用执行,不能被独立执行
将底层系统调用组合起来,做成一个更高级的接口,方便程序和硬件打交道,一些公共的程序,所有程序都会用到它
二进制编程--->微码编程(汇编语言)--->系统调用编程(基于操作系统)---->库调用编程(c,c++库)---->高级语言编程(基于各种编译器或解释器)
POS: Portable Operating System POSIX
一种规则-----可移植操作系统规范,在不同平台写的程序可以相互兼容(API相同)
编译 汇编 链接 执行
汇编:汇编语言转换为计算机认识的二进制代码
编译:其他语言转换为汇编语言的过程
Windows共享库:.dll文件动态链接库
Linux库:.so文件 共享对象,一份库谁都可以用,极大节约资源,极大地节约了内存
NUMA:非一致性内存访问,每一颗CPU都有自己专有的内存空间,不过需要进程和CPU绑定。
程序运行:向内核申请占据CPU执行指令
写的程序一旦编译后就只能在特定平台上运行了,但是java不是这样的
应用程序是否能运行还依赖于支持哪种架构的CPU
API:编译前
ABI:编译后
CPU架构类型:
x86
x64
arm
m68000,m68k
power
powerpc
ultrasparc
alpha
安腾