问题

  • 同时运行多个程序需要什么

有一种管理程序,以知道如何在程序之间切换
相对寻址
虚拟内存
系统空间,用户空间

Key Points

  • 计算机架构指的是计算机中各种组件的排列
  • 内存的架构改进

    5.1 基本架构元素

  • 冯·诺依曼架构

  • 哈佛架构

image.png
两种架构唯一的区别是内存的排列方式。
在其他条件相同的情况下,冯·诺依曼架构运行速度稍慢一点,因为它只有一条内存总线,不同同时访问指令和数据;哈佛架构则不存在这个问题,但是第二条内存总线的存在需要额外的硬件。

5.1.1 处理器核心

多核处理器

5.1.2 微处理器和微型计算机

  • 微处理器
  • 微型计算机
  • Soc(System on a Chip)

    5.2 过程、子程序和函数

    代码复用
    image.png

    5.3 堆栈 (Stacks)

  • 递归调用

5.4 中断

中断系统使用堆栈来保存中断程序中的位置。

5.5 相对寻址

  • 索引寄存器
  • 相对寻址

image.png

5.6 内存管理单元

MMU, Memory Management Unit
image.png
image.png

5.7 虚拟内存

操作系统使用 MMU 为用户程序提供虚拟内存。
image.png

  • LRU, Least recently used algorithm

    5.8 系统和用户空间

    好处:

  • 保护操作系统不受用户程序的影响,也保证了用户程序之间不互相影响

  • 由于用户程序不能接触某些东西,如MMU,操作系统可以控制对程序的资源分配
  • 系统空间也是处理硬件异常的地方

    5.9 存储器层次和性能

    image.png

    5.10 协处理器

  • DMA, Direct Memory Access

    5.11 在内存中排列数据

    image.png
    image.png

    5.12 运行程序

    重要的程序通常都是分段构建的。这样可以使多人同时处理同一个程序变得更容易。
    可执行和可链接格式(Executable and Linkable Format, ELF)
    image.png

    5.13 内存功耗

    在写代码时,要注意平衡功耗和性能。