深入理解计算机系统

读书笔记 《Computer System A Programmer's Perspective》

一、系统的硬件组成

1. 总线

贯穿整个系统的是一组电子管道,称作总线。通常总线被设计成传送定长的字节块,也就是字(word)。4个字节(32位),8个字节(64位)。

2. I/O设备

每个I/O设备都通过一个控制器或适配器与I/O总线相连,作用都是在I/O总线和I/O设备间传递信息。常用的IO设备:Usb控制器,图形适配器,磁盘控制器,网卡适配器等。

3. 主存

主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。主存是一组动态随机存储器(DRAM)。

4. 处理器

中央处理单元(CPU),是解释或执行存储在主存中指令的引擎。处理器的核心是一个大小为一个字的存储设备(寄存器),称为程序计数器。

二、存储器层次结构

在处理器和一个较大较慢的设备(例如主存)之间插入一个更小更快的存储设备(例如高速缓存)的想法已经成为一个普遍的观念。每个计算机的存储设备都被组织成了一个存储器层次结构,从上到下:

设备访问速度越来越慢

容量越来越大

每字节的造价越来越便宜

示例:

L0寄存器

L1高速缓存(SRAM)

L2高速缓存(SRAM)

L3高速缓存(SRAM)

主存(DRAM)

本地二级存储(本地硬盘)

远程二级存储(分布式文件系统、Web服务器)

存储器的层次结构的主要思想: 上一层的存储器作为低一层的存储器的高速缓存。

三、操作系统管理硬件

应用程序与硬件之间插入的一层软件。操作系统主要有两个基本功能

防止硬件被失控的应用程序滥用

向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备

操作系统通过几个基本的抽象概念来实现:

文件是对I/O设备的抽象

虚拟内存是对主存和磁盘I/O设备的抽象表示

进程则是对处理器、主存和IO设备的抽象表示

1. 进程

进程是操作系统对一个正在运行的程序的一种抽象。一个CPU看上去都像是在并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统这种交错执行的机制称为上下文切换。

2. 线程

一个进程实际可以由多个称为线程的执行单元组成,每个线程是一个控制流。

3. 虚拟内存

虚拟内存是一个抽象概念,它为每个进程提供了一种假象,即每个进程都在独占的使用主存。基本思想是把一个进程的虚拟内存的内容存储在磁盘上,然后用主存作为磁盘的高速缓存。

4. 文件

文件就是字节序列。每个I/O设备,磁盘、键盘、显示器、甚至网络都可以看成是文件。系统中所有的输入输出都是通过使用一组称为 UnixI/O的系统函数调用读写文件来实现的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容