计算机系统漫游 —— 深入理解计算机系统笔记

2016-09-19  本文已影响67人  moubuns

计算机系统由硬件和系统软件组成

系统是硬件和软件相互交织的集合体

理解编译过程的目的

系统的硬件组成

总线:

贯穿系统的电子管道,携带信息字节并在各个部件间传递。
传送定长的字节块——字(Word).
字节长是一个基本的系统参数。如4个字节,8个字节

I/O 设备

输入/输出设备是系统与外部世界的联系通道。
每个I/O设备通过一个控制器或适配器与I/O总线相连。
控制器—>主板芯片组
适配器->主板插槽上的卡

主存

临时存储设备,用来存放程序和程序处理的数据
物理:DRAM
逻辑:线性字节数组

处理器 CPU

执行主存指令的引擎
不断执行指令

高速缓存

减少主存与CPU的直接数据访问
高速缓存用来存放近期可能会需要的信息
物理:SRAM

存储器层次结构

存储器
寄存器
L1
L2
L3
DRAM
SSD
HDD

从上倒下访问速度越来越慢

OS管理硬件

操作系统

OS: 应用程序与硬件之间的中间层

进程

对正在运行的程序的一种抽象。
CPU一个核只能执行一个进程,当新的进程需要执行时,会进行上下文切换。

上下文: 操作系统保持跟踪进程运行情况所需的所有状态信息

线程

每个线程运行在进程的上下文中,共享同样的代码和全局数据。
多用于网络服务器并发处理请求。

虚拟存储器

给每个进程提供一层独占主存的抽象。

虚拟地址空间
内存虚拟内核存储器 OS内核
在运行时动态的扩展大小
共享库 共享代码库
在运行时动态的扩展大小
程序代码和数据 可执行文件

文件

字节序列
I/O设备都可以认为是文件。
网信也可以视为文件

并发和并行

Concurrency 并发

超线程,同时多线程,允许一个CPU执行多个控制流的技术,简单的说就是当A线程取数据的时候,B线程立马执行,在单个周期上进行判断应该执行那个线程,如果没有超线程技术,则需要在多个时钟周期内切换

Parallelism 并行

抽象

抽象时计算机领域的重要概念

文件对I/O抽象
虚拟存储器对程序存储器抽象
进程对运行的程序抽象
虚拟机对计算机的抽象

Hello World程序运行的过程

源文件通过编译系统经过如下步骤生成源程序
文本->预处理->编译->汇编-> 连接->源程序
.c -> .i -> .s -> o -> binary

通过Shell运行,程序加载到主存,从main开始执行,通过指令Hello World执行如下步骤显示到屏幕上
主存->寄存器->显示设备

源程序: 由0和1组成的位(bit)序列,8个位被组织成一组,为1个字节,每个字节表示程序中某个文本字符。

区分不同数据对象的唯一方法是根据这些数据对象的上下文

Shell: 命令行解释器

Compilation System

上一篇 下一篇

猜你喜欢

热点阅读