如果你全力投身学习本书中的概念,完全理解底层计算机系统以及它对应用程序的影响,那么你会步入上成为为数不多的“大牛”的道路。

一、信息=位 上下文

<1>hello.c 这样只由 ASCII 字符构成的文件称为文本文件,其他的所有文件都称为二进制文件

<2>系统中所有的信息-包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据,都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如,在不同的上下文中,一个同样的字节序列可能表示一个整数、浮点数、字符串或者机器指令。

二、程序被其他程序翻译成不同的格式

hello.c文本文件会经过四个阶段的程序(预处理器、编译器、汇编器、链接器)生成一个目标程序(也叫可执行目标程序)

三、处理器读并解释存储在内存中的指令

CPU 在指令的要求下,可能会执行的操作。(一些简单操作的例子)

四、存储设备层级结构

计算机信息技术基础笔记(深入理解计算机系统-第1章)(1)

五、操作系统管理硬件

操作系统有两个基本功能:

操作系统通过几个基本的抽象概念(进程、虚拟内存和文件)来实现这两个功能。

1、进程

进程是操作系统对一个正在运行的程序的一种抽象。

从一个进程到另外一个进程的转换是由操作系统内核来管理的。内核是操作系统代码常驻内存的部分。当应用程序需要执行操作系统的某些操作时,比如读写文件,它就执行一条特殊的系统调用(System call)指令,将控制权传递给内核。然后内核执行被请求的操作并返回应用程序。

注意:内核不是一个独立的进程。相反,它是系统管理全部进程所有代码和数据结构的集合。

2、线程

每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。多线程比多进程之间更容易共享数据,也更高效。

3、虚拟内存

计算机信息技术基础笔记(深入理解计算机系统-第1章)(2)

图中的箭头,指的是存储空间动态扩展的方向。没有文字标识的空间是空白空间。

4、文件

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

文件这个抽象概念非常强大。例如:处理磁盘文件内容的程序员可以非常幸福,因为他们无需了解具体的不同德磁盘技术。

六、系统之间通过网络进行通信

我们一直把系统视为一个孤立的硬件和软件的集合体。实际上,现代系统经常通过网络和其他网络连接在一起,例如分布式系统。从一个单独的系统来看,网络可以视为I/O设备。系统可以从主存中复制一串数字到网络适配器。

七、重要主题1、Amdahl 定律

当我们对系统的某部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。

计算机信息技术基础笔记(深入理解计算机系统-第1章)(3)

2、并发和并行

1、并发是指两个进程或者两个线程交替执行。

2、并行是指在同一时刻(计算机同一时钟周期)内,2个进程或线程同时在执行。

3、计算机系统中抽象的重要性

计算机信息技术基础笔记(深入理解计算机系统-第1章)(4)

文件是对I/O设备的抽象;虚拟内存是对程序存储器的抽象;而进程是对一个正在运行的程序的抽象,指令集架构是对处理器的抽象,底层的硬件远比抽象描述的要复杂精细。API接口是对函数的抽象;虚拟机是对整个计算机的抽象。

,