本课程为华南理工大学计算机全英班专设,旨在通过全英文环境下的操作系统实验教学,强化学生对操作系统原理的理解与实践能力。
### Session 1
**目标:**
熟悉Windows环境下进程与线程的创建。
**要求:**
- **子任务1:** 创建一个名为“child”的控制台应用程序,在循环中每秒打印一次 “The child is talking at [系统时间]”。
- **子任务2:** 创建另一个控制台应用“parent”,它会生成并执行“child”进程。同时,“parent”自身也会每隔一秒打印一条消息:“The parent is talking at [系统时间]”。运行“parent”程序,并解释你看到的输出。
- **子任务3:** 编写一个名为winPS的应用,该应用可以显示所有正在运行的进程的信息(例如PID、可执行文件名和路径等)。
- **子任务4:** 在“mainThread”程序中使用“CreateThread”创建一个子线程。主线程与子线程都应每隔一秒打印一条消息:“[线程ID] + [系统时间]”。
### Session 2
**目标:**
在Windows上实现类似Linux/Unix的ps和kill命令。
**要求:**
- **子任务1:** Linux/Unix操作系统中存在“ps”(显示所有运行进程信息)和“kill”(终止进程)两个命令。基于Session 1的任务,创建可以在Windows环境中使用的“ps”和“kill”命令。“kill”的实现可以使用TerminateProcess函数。
### Session 3
**目标:**
学习如何通过信号量解决IPC问题。
**要求:**
- **任务3.1:** 使用信号量来解决理发店的排队等待问题。
- **任务3.2:** 利用信号量处理读写者优先级的问题,其中读者(和作者)具有更高的优先级。
### Session 4
标题: 升级Linux/Unix命令
**问题:**
编写一个名为“supershell”的程序,该程序接受另一个命令作为参数并执行它。例如,“./supershell cat /usr/greg/readme”将调用cat命令来操作文件/usr/greg/readme。在指定的命令执行完毕后,“supershell”应显示一些系统资源使用的统计信息。