一、计算机体系结构
- 冯·诺依曼体系结构(储存程序型电脑)
- 采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中。
- 不可编程的计算机器(计算器,学习机,非智能手机),不提供API,仅内含固定用途的程序,只能读数据
- 存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。
- 指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无数据类型的标志,它的数据类型由操作码确定。
- 通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。
- 以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。
- 数据以二进制表示。
- 顺序执行程序.
哈佛结构: 将程序资料与普通数据分开储存,两个硬盘,两个内存…
CPU(Central Processing Unit)
- ALU(Arithmetic and Logic Unit):
- 累加器
- 状态寄存器
- 通用寄存器组
- CU(Control Unit):
- IR(Instruction Register):存放指令
- PC(Program Counter):存放下一条指令所在单元的地址
- ID(Instruction Decoder)指令译码器
- OC(Operation Controller)
- 寄存器,高速缓存,数据状态控制总线
- ALU(Arithmetic and Logic Unit):
二、操作系统
操作系统内核,提供三个抽象:
- 文件对I/O设备的抽象,字节序列,使得程序统一对待各种I/O设备,包括网络
- 虚拟存储器对主存和硬盘的抽象
进程对处理器的抽象
- 操作系统在CPU寄存器,主存,I/O设备间拷贝数据,形成了存储层次结构:
- CPU寄存器,芯片的高速缓存SRAM–>芯片外的高速缓存SRAM–>主存DRAM–>本地硬盘/网络分布式文件系统。
- 拷贝次数越少,越好,netty,零拷贝
三、信息的表示与处理(信息=bit+上下文)
- 大多数用byte作为最小的可寻址存储器单位,比如最小的类型为byte类型。
- virtual memory: 程序把存储器视为一个非常大的字节数组,每个字节都有一个唯一的数字来标识,成为地址(address)
- 所有可能地址的集合称为virtual address sapce
- 字长(word size): 指明整数和指针数据的标称大小(nominal size),虚拟地址以这样的字来编码
DMA(Direct Memory Access)直接存储
- 使得外围设备可以通过DMA控制器直接访问内存,而不需要依于 CPU 的大量中断负载。
- DMA控制器
- DMA传输前,CPU要把总线控制权交给DMA控制器,结束后再交回给CPU。
- DMA控制器与CPU分时使用内存的三种方式:
- 停止CPU访内存: DMA传输时,CPU闲置,外围I/O存取慢,内存快,得不到充分利用
- 周期挪用;
- DMA与CPU交替访内存。
- 根本原因:四者权衡:I/O设备读写周期,CPU工作周期,内存存取周期,DMA控制权转移。
进程:操作系统对运行程序的一种抽象,一个系统上,多个进程都好像独占硬件,称之为并发执行
- context switching: 一个进程的指令和另一个进程的指令交替进行。
- 需要保存进程运行的所有状态信息:PC,寄存器,主存内容
- 虚拟存储器(虚拟存储空间)
- 为每个进程抽象出一个存储器,好像每个进程都独占存储器,