第一章 计算机系统漫游
主要内容
全面精炼的概括了本书的内容,也就是“计算机系统概述”,包括:
1.解释计算机系统中“信息”的概念:就是二进制位;
2.解释源程序(以C源程序为例)到可执行程序的过程:预处理 → 编译 → 汇编 → 链接
3.通过可执行程序被shell加载执行流程,讲解了计算机的硬件组成: 总线、I/O设备、主存、处理器。
4.高级缓存的作用以及计算机存储设备的体系结构——金字塔层次结构。
5.解释了操作系统、应用进程、计算机硬件三者之间的关系:操作系统管理硬件,为应用程序提供简单一致的机制来控制复杂而又大相径庭的硬件。
6.并发与并行、抽象。
1.1 信息就是位+上下文
系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据,都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。
1.2 程序被其他程序翻译成不同的格式
Linux中.c文件编译过程即是如此,gcc
命令的“ESc”对应生成文件的“iso”,具体过程如下:
gcc -E main.c -o main.i //预编译
gcc -S main.c -o main.s //生成汇编代码
gcc -c main.c -o main.o //-c为小写,生成目标文件
gcc main.o -o main //生成可执行文件
1.3 了解编译系统如何工作是大有益处的
- 优化程序性能
- 理解链接时出现的错误
- 避免安全漏洞
1.4 处理器读并解释储存在内存中的指令
- 系统的硬件组成
总线、I/O设备、主存、处理器
- hello world
代码和数据加载到主存后,处理器开始执行hello程序的main函数,将
hello world\n
字符串中的字节从主存复制到寄存器文件,在从寄存器文件中复制到显示设备,最终显示在屏幕上。
1.5 高速缓存至关重要
cache memory(高速缓存存储器)及调页算法对程序性能有极大影响。
1.6 存储设备形成层次结构
金字塔结构
1.7 操作系统管理硬件
操作系统通过基本的抽象概念实现两个基本功能:
1.防止硬件被失控的硬件滥用
2.向应用程序提供简单一致的机制来控制复杂而又通常大小不相同的低级硬件设备。
- 文件是对I/O设备的抽象表示。
- 虚拟内存是对主存和磁盘I/O设备的抽象表示。
- 进程是对处理器、主存和I/O设备的抽象表示。
1.8 系统之间利用网络通信
现代系统经常通过网络和其他系统连接到一起,网络可以视为一个I/O设备。
- 使用telnet服务器在远程主机上运行hello程序
1.用户在键盘上输入hello
——客户端向telnet服务器发送字符串“hello”服务器向shell发送字符串“hello”,shell运行hello程序并将输出发送给telnet服务器。
2.telnet服务器向客户端发送输出的字符串“hello world\n”
3.客户端在显示器上打印字符串“hello world\n”
1.9 重要主题
- Amdahl定律
加速比
S = 1/{1-(α)+α/k}
,α是系统某部分执行所需时间与系统执行某应用程序所需时间的比例,这部分性能提升比例为k。 - 并发和并行
并发指同时间段:线程级并发指多处理器或超线程(同时多线程)
并行指同一时刻:指令级并行指流水线或超标量处理器
- 计算机系统中抽象的重要性
同1.7。
原文地址:https://www.cnblogs.com/jsjliyang/p/9826718.html