程序是怎么跑起来的

简介

CPU

  1. 程序运行流程
     graph TD
     A[高级语言编写程序] -->|编译| B[机器语言的EXE文件]
     B --> C[程序运行时,内存中生成EXE副本]
     C --> D[CPU解释并执行]
    
  2. CPU构成

  3. 机器语言 -> 汇编语言 -> 高级语言 函数的调用机制: 栈
  4. 程序在内存里的构成

数据

  1. 进制
  2. 移位运算

  3. 补码 = 反码 + 1 用来表示负数

    补码 + 源码 = 0

浮点数

  1. 构造 \(\pm m \times n^e\)

  2. 具体情况

  3. 如何保证小数无误差

内存

  1. 内存地址 指针
  2. 常见数据结构

磁盘

  1. 磁盘缓存

  2. 虚拟内存

  3. 动态链接和静态链接

    动态链接 程序运行时动态加载Library,多个应用共有一个DLL文件,从而节约内存,同时也可以通过只更新DLL,无需更新整个exe文件来更新程序。

  4. 物理构造

  5. 单位

    信息存储单位

    存储容量单位

  6. 压缩算法

    案例

    分类

    可逆 不可逆

运行环境

  1. 操作系统

    作用

    如何克服硬件和操作系统差异

    BIOS 启动操作系统

  2. 硬件

如何得到可执行文件(c语言)

  1. 编译 源代码 -> 目标文件

  2. 链接 目标文件 + 静态链接库 + 导入库 -> 可执行文件

  3. 执行 可执行文件 + 动态链接库

    EXE 文件中给变量以及函数分配了虚拟的内存地址

内存分区

操作系统和应用的关系

应用程序经过OS间接的控制硬件

通过汇编理解函数执行过程

CPU将内存中的指令和数据读出,存储到CPU内部的寄存器中进行处理。

随机数生成