深入理解计算机系统 C1 计算机系统漫游

1.1信息就是位+上下文

文本文件:只由ascii码构成的文件。
二进制文件:除文本文件之外的文件。
*系统中所有的信息都是由一串比特表示的,区分不同数据对象的唯一方式是上下文。在不同上下文中,同样的字节序列可能表示不同的数据对象。

1.2 程序被其他程序翻译成不同格式

编译系统:预处理器、编译器、汇编器、链接器。在这里插入图片描述

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

1.4.1系统的硬件组成

在这里插入图片描述

  1. 总线:贯穿整个系统的电子管道,携带信息字节并在各个部件间传递,通常被设计成传送定长的字节块(字)。不同机器的字长不尽相同。
  2. I/O设备:示例系统中的键盘鼠标、显示器和磁盘。每个I/O设备都通过一个控制器适配器与总线相连。两者的功能都是在I/O总线和I/O设备之间传递信息。区别在于控制器是I/O设备本身或者系统主板上的芯片组,而适配器则是一块插在主板插槽上的卡。
  3. 主存:一个临时存储设备,用于在处理器执行程序时存放程序和程序处理的数据。物理上由一组动态随机存取存储器芯片组成。
  4. 处理器:中央处理单元(CPU),是解释或执行存储在主存中指令的引擎。处理器的核心是大小为一个字的存储设备(或寄存器),程为程序计数器。任何时候程序计数器都指向主存中的某条机器语言指令。(相当于指针?)
    指令执行模型:由指令集架构决定。处理器不断执行程序计数器指向的指令,再更新程序计数器,使其指向下一条指令(不一定和前一条指令在物理上相邻)。
    指令:围绕着主存,寄存器文件和算术/逻辑单元进行。寄存器文件由一些单个字长的寄存器组成。算术/逻辑单元计算新的数据和地址值。

运行hello程序

  1. 在键盘上输入字符串./hello,shell程序将字符逐一读入寄存器,再将其存放到主存中。
  2. shell执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘复制到主存,其中包括“hello,world\n”字符串。
  3. 处理器开始执行hello中的机器语言指令,将“hello,world\n”字符串从主存复制到寄存器文件,再从寄存器文件复制到显示设备,显示在屏幕上。

1.5 高速缓存至关重要

程序花费了大量的时间把信息从一个地方挪到另一个地方
较大的存储设备要比较小的存储设备运行得慢。
为了更快速地处理信息,系统设计者采用了更小更快的高速缓存存储器用于存放处理器近期可能会需要的信息。L1和L2是用一种叫做静态随机访问存储器的硬件技术实现的。利用高速缓存的局部性原理,在高速缓存中存放可能经常访问的数据,使得大部分内存操作在快速的高速缓存中完成。

1.6 存储设备形成层次结构

在这里插入图片描述
在存储器层次结构中,从上至下,设备的访问速度越来越慢,容量越来越大,每字节的造价越来越便宜。
其中上一层的存储器作为第一层存储器的高速缓存。

1.7 操作系统管理硬件

在这里插入图片描述
应用程序并没有直接访问键盘、显示器、磁盘或者主存,而是依靠操作系统提供的服务来访问这些设备。所有应用程序对硬件的操作尝试都必须通过操作系统。
操作系统的两个基本功能:1. 防止硬件被失控的应用程序滥用。2. 向应用程序提供简单一致的机制来控制复杂而又大不相同的低级硬件设备。
操作系统通过几个基本的抽象概念来实现这两个功能,如图所示。

1.7.1 进程

进程:操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。
并发运行:一个进程的指令和另一个进程的指令是交错执行的。无论在单核还是多核系统中,CPU看起来都是在并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换

1.7.2 线程

一个进程实际上可以用多个称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。线程一般比进程更高效,线程之间比进程之间更容易共享数据。

1.7.3 虚拟内存

虚拟内存为每个进程提供了一个假象,即每个进程都在独占地使用内存。每个进程看到的内存都是一致的,称为虚拟地址空间。
在这里插入图片描述

1.7.4 文件

文件就是字节序列。每个I/O设备,甚至网络,都可以看成是文件。这个概念为应用程序提供了一个统一的视图用于看待系统中可能含有的各式各样的I/O设备。

系统之间利用网络通信

现代系统经常通过网络和其他系统连接到一起。

重要主题

1.9.1 Amdahl定律

若系统某部分执行时间与整个应用程序执行所需时间的比例为a,该部分性能提升比例为k,加速比应为在这里插入图片描述
Amdahl定律的主要观点:要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

1.9.2 并发和并行

并发:一个同时具有多个活动的系统
并行:用并发来使一个系统运行得更快。这一概念可以在计算机系统的多个抽象层次上运用。

  1. 线程级并发:在一个进程中执行多个控制流。
  2. 指令级并行:现代处理器可以同时执行多条指令。
  3. 单指令、多数据并行:一条指令产生多个可以并行执行的操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值