5. 程序和进程

在编程课 (和 Online Judge) 中,我们都是编写 “一个程序”,从 main 函数开始,执行到 return 结束。操作系统一定赋予了我们 “创建进程” 的能力——不然操作系统里那么多程序是怎么跑起来的呢?

本讲内容:创建、销毁进程的系统调用 API,以及如何用它们构建最基本的多进程程序。

5.1 程序和进程

💬
Prompt: 我发现随着进程的创建,进程的 pid 是递增的;而 pid 是有限的 (32-bit 整数),这是否意味着会循环导致 pid 重用?

5.2 进程 (状态机) 管理

💬
Prompt: 讲一讲 Windows 系统用于创建和终止进程的 API,解释每个参数的含义。

5.3 总结

Take-away Messages: 操作系统通过进程抽象为应用程序提供了独立的执行环境。进程是操作系统中最基本的资源分配单位,它包含程序本身的状态和操作系统内部的状态。操作系统提供了一系列系统调用 (如 Linux 中的 fork、exec、wait 和 exit,Windows 中的 CreateProcess 和TerminateProcess) 来创建、管理和终止进程。

课后习题/编程作业

📚阅读材料

教科书 Operating Systems: Three Easy Pieces

  • 第 3 章 - Dialogue
  • 第 4 章 - Processes
  • 第 5 章 - Process API
🖥️编程

愉快地在大语言模型的帮助下开始课程实验!但记得遵守实验须知中的 AIGC Policy。我们鼓励日常学习中使用大语言模型解释概念、命令行工具、API 等 (请谨慎求证) 并获取方法指导 (如使用什么工具调试、如何调试、有何技巧),记得那个改变全人类的 Prompt。但同时,为了必要的训练,MiniLab 仅限单个 API 使用的生成,禁止将自然语言需求翻译成代码。