深入理解计算机系统chapter1

本书一共分为三部分,12章节

部分1:程序结构和执行

部分2:在系统上运行

部分3:   程序间的相互通信

chapter1:计算机系统漫游

通过跟踪hello程序的生命周期来开始对系统的学习。

1.1信息就是位+上下文

hello的生命周期是从源程序开始的,程序员通过编辑文本文件,eg:hello.c

源程序有0,1组成的位组成,8个位一个字节,每个字节通过使用ASCII标准来表示文本符。

1.2程序被翻译成不同的格式

eg;hello在Unix(多任务,多用户)系统上从源文件到目标文件的编译过程

预处理:根据#开头的命令,修改原始的c程序,eg:碰到#include时告诉预处理器读取系统头文件的内容

并把它插入程序文本中得到.i结尾的另外一个c程序

编译:将.i文件翻译成.s,为汇编语言程序

汇编:将.s翻译成机器指令,将这些指令打包成 可重定位目标程序de 格式并且将结果存在.o的文件中(二进制文件)

链接:hello程序调用printf(存在于printf.o的单独的预编译好的目标文件中),而这个文件必须与一某种方式合并

到hello.o中,链接器就是负责处理这种合并。结果得到hello(可执行目标文件.exe)

1.3了解编译系统是如何工作的益处很大,具体在chapter7详细讲解

1.4处理器读并且解释存储在内存的指令

hello最后被存放在磁盘上,要想在Unix运行,将他的文件名输入到成为shell的应用程序中

shell是一个命令行解释器,他输出一个提示符等待输入一个命令行,然后执行这个命令。

1.4.1系统的硬件组成

eg:控制器是本身或者系统的主印制电路板

适配器是一块插在主板插槽上的卡

 下面是自己整理的简化笔记

 

1.

深入理解计算机系统chapter1_第1张图片

 

2.由于不断复制,导致花费大量时间,把信息从一个地方搬运到另外一个地方,所以出现高速缓存Cache

也就是在处理器和较大得存储设备(主存)之间插入一个更小更快的存储设备,用来存放近期需要的信息,加快信息的传递

利用局部性原理,大部分的内存操作都是在快速的高速缓存中进行的。

 

下面的L1和L2使用一种SRAM(随机访问存储器)硬件技术实现的

深入理解计算机系统chapter1_第2张图片

3.操作系统管理硬件

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

2.向应用程序提供简单的机制控制复杂的低级硬件设备。

通过三个抽象的实现这两个功能:进程,虚拟内存,文件。

深入理解计算机系统chapter1_第3张图片

4;进程

深入理解计算机系统chapter1_第4张图片

内核是系统管理全部进程所用的代码和数据结构的集合。

上下文切换

5.虚拟内存

是一个抽象概念,为每个进程提供假象,即每个进程都独占的使用主存,每个进程看到的内存是一致的成为虚拟地址空间

深入理解计算机系统chapter1_第5张图片

具体解释见p13.

6,文件

系统中的所有的输出输入都是使用一组UnixI/o的系统函数调用读写文件来实现的

7.通信

系统之间的通信,就是客户端和服务器端之间的联系

网络复制信息,eg:email,telnet,FTP,等

8.并发和并行

并发:线程级

并行:指令级

多线程

9,抽象,eg:java中的类

-》API->.....虚拟机,是对整个计算机的抽象

 

深入理解计算机系统chapter1_第6张图片

 

 

 

你可能感兴趣的:(深入理解计算机系统chapter1)