Skip to content

Latest commit

 

History

History
18 lines (18 loc) · 1.69 KB

一段代码从程序到执行经历怎么样的过程(程序在计算机中是如何运行起来的).md

File metadata and controls

18 lines (18 loc) · 1.69 KB
  1. 编写代码
    • 程序员使用文本编辑器或集成开发环境(IDE)编写源代码,实现所需功能。
  2. 编译器编译
    • 源代码经过编译器(Compiler)翻译为目标代码,目标代码可以是机器码、字节码或其他形式。编译器将源代码转换为可执行程序的指令集。
  3. 链接器链接
    • 如果程序由多个源文件组成,链接器(Linker)将这些源文件中的目标代码链接在一起,生成一个可执行文件。
  4. 加载器加载
    • 当用户运行程序时,操作系统的加载器(Loader)负责将可执行文件装入内存。加载器解析可执行文件的头部信息,创建进程控制块(PCB),分配内存空间等。
  5. 程序执行
    • CPU根据程序计数器(Program Counter)指向的地址,逐条执行内存中的指令。指令集包括算术运算、逻辑运算、条件跳转等操作。
  6. 内存访问
    • 程序执行过程中,访问的数据和指令都存储在内存中。CPU通过内存管理单元(MMU)将虚拟地址映射为物理地址,实现对内存的读写操作。
  7. 系统调用
    • 程序可能需要与操作系统进行交互,如请求IO操作、创建新进程等。此时,程序通过系统调用进入内核态执行相应的系统服务。
  8. 异常处理
    • 在程序执行过程中,可能发生各种异常情况,如除零错误、内存访问越界等。操作系统会捕获这些异常并进行相应的处理,如终止进程或给出错误提示。
  9. 结束执行
    • 程序执行完毧后,操作系统回收资源,释放进程占用的内存空间,并通知用户程序执行完毕