1、深入理解计算机系统 笔记,系统综述
1、系统的硬件组成
Figure1 Hardware organization of a typical system. CPU: Central Processing Unit, ALU: Arithmetic/Logic Unit, PC: Program counter, USB: Universal Serial Bus.
1)总线
贯穿整个系统的一组电子管道,它携带信息字节并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字(word)。各个系统中字长不尽相同,intel pentium系统的字长为4字节。
2)I/O设备
I/O设备是系统与外界的联系通道。
控制器是I/O设备本身中或是系统的主印刷电路板(主板)上的芯片组,而适配器则是一块插在主板插槽上的卡。
3)主存
临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。物理上来说,主存是由一组DRAM芯片组成的;逻辑上来说,存储器由一个线性的字节数据组成,每个字节都有自己惟一的地址(数组索引),这些地址以0开始的。一般来说,组成程序的每条机器指令都由不定量的字节构成。
4)处理器
CPU,是解释(或执行)存储在主存中指令的引擎。处理器的核心是一个被称为程序计数器(PC)的字长大小的存储设备(或寄存器)。在任何一个时间点上,PC都指向主存中的某条机器语言指令。
从系统加电,到断电,CPU一直不加思索的重复执行相同的基本任务:从程序计数器(PC)指向的存储器读取指令,解释指令中的位,执行指令指示的简单操作,然后更新程序计数器指向下一条指令(不一定与刚刚执行的指令相邻)。
2、层次结构的存储设备
Figure 2: The memory hierarchy
存储器分层结构的主要思想是:一个层次上的存储器作为下一层次上的存储器的高速缓冲。
3、操作系统提供的抽象表示
Figure 3: Abstractions provided by an operating system
操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象概念:文件是对I/O设备的抽象概念;虚拟存储器是对主存和磁盘的抽象概念;进程是处理器、主存和I/O设备的抽象概念。
1)进程是操作系统对运行程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像独占地使用硬件,我们称之为并发运行。实际上,是一个进程的指令和另一个进程的指令交错执行的,操作系统实现这种交错执行的机制称为上下文切换(context switching)。操作系统保存进程运行所需的所有状态信息,这些状态称为上下文(context )。
2)一个进程可由多个线程组成。每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。
3)虚拟存储器
虚拟存储器是抽象概念,它为每个进程提供一个假象,好像每个进程都在独占地使用主存。每个进程看到的存储器都是一致的,称之为虚拟地址空间。
Figure 4: Linux process virtual address space.
虚拟存储器,基本思想是把一个进程虚拟存储器的内容存储在磁盘上,然后用主存作为磁盘的高速缓冲。
4)文件
是字节序列。每个I/O设备,包括磁盘,键盘,显示器,网络,等可以看成是文件。
4、系统,是相互交织的硬件和系统软件的集合体。
<深入理解计算机系统(Computer Systems:A Programmer's Perspective)>