《深入理解计算机系统》读书笔记(一)计算机系统漫游(绪论)
前言
开始阅读《深入理解计算机系统》这本经典书籍
本节是第一章
计算机系统漫游
可以看做整本书的绪论
整本书有800多页
1、信息就是位+上下文
这本书致力于让读者了解在系统上执行hello程序时
系统发生了什么以及为什么会这样
hello程序的生命周期从一个源程序hello.c开始
当然,这个hello.c就是个由ASCII码构成的文本文件
以字节序列的方式储存在文件中
2、程序被其他程序翻译为不同格式
编译系统
- 预处理:cpp读取hello.c里的系统头文件,得到hello.i源程序
- 编译:ccl将hello.i翻译为汇编语言程序hello.s
- 汇编:as将hello.s翻译为机器语言,打包成可重定位目标程序,保存在二进制文件hello.o
- 链接:dl处理函数合并,如printf函数在printf.o中,得到可执行文件hello
3、了解编译系统如何工作大有益处
了解编译系统如何工作能
- 优化程序性能,第3,5,6章
- 理解链接时出现的错误,第7章
- 避免安全漏洞,第3章
4、处理器读并解释内存中的指令
输入命令后,shell将字符读入寄存器,再放入内存
利用DMA(第6章)数据不通过处理器直接从磁盘到达主存
代码和数据加载到主存,处理器开始执行hello程序
将hello,world字符从主存复制到寄存器,再从寄存器复制到显示
5、高速缓存至关重要
处理器和主存的读取速度差距持续增大
cache(高速缓存存储器)作为暂时集结区
- 处理器上的L1容量可以达到数万字节
- 通过特殊总线连接到处理器的L2可达到数百万字节
- 更厉害的系统有三级,即L3
6、存储设备形成层次结构
主要思想:上一层作为下一层的高速缓存
7、操作系统管理硬件
进程
操作系统对一个正在运行的程序的抽象
并发使用的上下文切换,由内核管理
第8章详细阐述
线程
一个进程由多个线程组成
每个线程共享同样的代码和全局数据
多线程通常可以使得程序运行更快
虚拟内存
这是一个假象:每个进程都独占的使用主存
每个进程看到的内存都是一致的,称为虚拟地址空间
文件
文件就是字节序列
8、系统之间利用网络通信
从一个系统的角度来看
网络可视为一个I/O设备
系统读取从其他机器发来的数据,复制到主存
第11章详细阐述
9、几个重要概念
amdahl定律
并发和并行
并发:同时具有多个活动
并行:用并发来使系统运行更快
抽象
文件:对I/O的抽象
虚拟内存:对程序存储器的抽象
进程:对正在运行的程序的抽象
结语
预计到月底读完