程序和进程

程序和进程

2025 南京大学《操作系统原理》
程序和进程

程序 v.s. 进程

#include <unistd.h>

int main() {
    while (1) {
        write(1, "Hello, World!\n", 13);
    }
}
def main():
    while True:
        sys_write("Hello, World!\n")
  • 程序是状态机的静态描述
    • 描述了所有可能的程序状态
    • 程序 (动态) 运行起来,就成了进程 (进行中的程序)
2025 南京大学《操作系统原理》
程序和进程

操作系统上的进程

进程:程序的运行时状态随时间的演进

  • 除了程序状态,操作系统还会保存一些额外的 (只读) 状态
  • 我们可以探索:试图获取当前进程的各种信息

你只要用万能 Prompt 就可以了:

  • 我们有世界上最耐心、最细致、最专业的 AI
  • 我们编写一个 Linux C 程序,可以获取到哪些关于当前进程的信息?尽可能全面
    • 这些信息就是操作系统为进程维护的状态
    • 讲真:我不如 AI 做得好 😭
2025 南京大学《操作系统原理》
程序和进程

啊……我们开始编程了!

注意你的代码质量 ✅

  • 程序既是 “人类” 的,也是 “反人类” 的
  • 机器永远是对的
  • 未测代码永远是错的

但你们不会好好测试的 ❌

  • 你们甚至不知道有什么主流的 C 语言测试框架
    • 但看穿一切的 LLM 知道
    • 我们为大家的实验做了一个 “稍稍好用一些” 的库
2025 南京大学《操作系统原理》