`

读书笔记(1)深入理解计算机系统

 
阅读更多

一、计算机体系结构

1、冯·诺依曼体系结构(储存程序型电脑)

       (1)采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中。

       不可编程的计算机器(计算器,学习机,非智能手机),不提供API,仅内含固定用途的程序,只能读数据

       (2)存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。

       (3)指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无数据类型的标志,它的数据类型由操作码确定。

       (4)通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。

       (5)以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。

       (6)数据以二进制表示。

       (2)顺序执行程序.

       

2、哈佛结构: 将程序资料与普通数据分开储存,两个硬盘,两个内存... 

 

3、CPU(Central Processing Unit)

       ALU(Arithmetic and Logic Unit):

              算术逻辑单元(ALU)、

              累加器

              状态寄存器

              通用寄存器组

       CU(Control Unit):

              IR(Instruction Register):存放指令

              PC(Program Counter):存放下一条指令所在单元的地址

              ID(Instruction Decoder)指令译码器

              OC(Operation Controller)

       寄存器,高速缓存,数据状态控制总线

 

二、操作系统

1、操作系统内核,提供三个抽象:

       文件对I/O设备的抽象,虚拟存储器对主存和硬盘的抽象,进程对处理器主存I/O设备的抽象

       文件:字节序列。文件是个抽象,使得程序统一对待各种I/O设备,包括网络       

2、操作系统在CPU寄存器,主存,I/O设备间拷贝数据,形成了存储层次结构:

       CPU寄存器,芯片的高速缓存SRAM-->芯片外的高速缓存SRAM-->主存DRAM-->本地硬盘/网络分布式文件系统。

       拷贝次数越少,越好,netty,零拷贝

       

       

三、信息的表示与处理(信息=bit+上下文)

1、大多数用byte作为最小的可寻址存储器单位,比如最小的类型为byte类型。

2、virtual memory: 程序把存储器视为一个非常大的字节数组,每个字节都有一个唯一的数字来标识,成为地址(address)

所有可能地址的集合称为virtual address sapce

3、字长(word size): 指明整数和指针数据的标称大小(nominal size),虚拟地址以这样的字来编码

4、DMA直接存储

       DMA:Direct Memory Access(存取)

              使得外围设备可以通过DMA控制器直接访问内存,而不需要依于 CPU 的大量中断负载。

       DMA控制器

              DMA传输前,CPU要把总线控制权交给DMA控制器,结束后再交回给CPU。

       DMA控制器与CPU分时使用内存的三种方式:

              (1)停止CPU访内存: DMA传输时,CPU闲置,外围I/O存取慢,内存快,得不到充分利用

              (2)周期挪用;

              (3)DMA与CPU交替访内存。

              根本原因:四者权衡:I/O设备读写周期,CPU工作周期,内存存取周期,DMA控制权转移。

       

进程:操作系统对运行程序的一种抽象,一个系统上,多个进程都好像独占硬件,称之为并发执行       

       context switching: 一个进程的指令和另一个进程的指令交替进行。

       需要保存进程运行的所有状态信息:PC,寄存器,主存内容

       

虚拟存储器(虚拟存储空间)

       为每个进程抽象出一个存储器,好像每个进程都独占存储器,       

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics