深入理解计算机系统--笔记

来源:互联网 发布:centos kvm 多主机 编辑:程序博客网 时间:2024/05/22 04:43

一、计算机体系结构

  • 冯·诺依曼体系结构(储存程序型电脑)
    1. 采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中。
    2. 不可编程的计算机器(计算器,学习机,非智能手机),不提供API,仅内含固定用途的程序,只能读数据
    3. 存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。
    4. 指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无数据类型的标志,它的数据类型由操作码确定。
    5. 通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。
    6. 以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。
    7. 数据以二进制表示。
    8. 顺序执行程序.
  • 哈佛结构: 将程序资料与普通数据分开储存,两个硬盘,两个内存…

  • CPU(Central Processing Unit)

    1. ALU(Arithmetic and Logic Unit):
      • 累加器
      • 状态寄存器
      • 通用寄存器组
    2. CU(Control Unit):
      • IR(Instruction Register):存放指令
      • PC(Program Counter):存放下一条指令所在单元的地址
      • ID(Instruction Decoder)指令译码器
      • OC(Operation Controller)
      • 寄存器,高速缓存,数据状态控制总线

二、操作系统

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

    1. 文件对I/O设备的抽象,字节序列,使得程序统一对待各种I/O设备,包括网络
    2. 虚拟存储器对主存和硬盘的抽象
    3. 进程对处理器的抽象

      • 操作系统在CPU寄存器,主存,I/O设备间拷贝数据,形成了存储层次结构:
    4. CPU寄存器,芯片的高速缓存SRAM–>芯片外的高速缓存SRAM–>主存DRAM–>本地硬盘/网络分布式文件系统。
    5. 拷贝次数越少,越好,netty,零拷贝

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

  • 大多数用byte作为最小的可寻址存储器单位,比如最小的类型为byte类型。
  • virtual memory: 程序把存储器视为一个非常大的字节数组,每个字节都有一个唯一的数字来标识,成为地址(address)
  • 所有可能地址的集合称为virtual address sapce
  • 字长(word size): 指明整数和指针数据的标称大小(nominal size),虚拟地址以这样的字来编码
  • DMA(Direct Memory Access)直接存储

    1. 使得外围设备可以通过DMA控制器直接访问内存,而不需要依于 CPU 的大量中断负载。
    2. DMA控制器
      • DMA传输前,CPU要把总线控制权交给DMA控制器,结束后再交回给CPU。
    3. DMA控制器与CPU分时使用内存的三种方式:
      • 停止CPU访内存: DMA传输时,CPU闲置,外围I/O存取慢,内存快,得不到充分利用
      • 周期挪用;
      • DMA与CPU交替访内存。
      • 根本原因:四者权衡:I/O设备读写周期,CPU工作周期,内存存取周期,DMA控制权转移。
  • 进程:操作系统对运行程序的一种抽象,一个系统上,多个进程都好像独占硬件,称之为并发执行

  • context switching: 一个进程的指令和另一个进程的指令交替进行。
  • 需要保存进程运行的所有状态信息:PC,寄存器,主存内容
  • 虚拟存储器(虚拟存储空间)
  • 为每个进程抽象出一个存储器,好像每个进程都独占存储器,
原创粉丝点击