本课程旨在通过设计实现信号通信和进程控制的功能模块,深入理解操作系统的原理与机制。学生将掌握如何在实际项目中运用这些技术来提高程序效率和稳定性。
这是我的操作系统课程设计内容,包含许多参考材料以及不少原创部分,与大家分享:
1. 进程的创建:编写了一个程序,使用系统调用`fork()`来创建两个或多个子进程。当运行此程序时,在系统中会有一个父进程和若干个子进程同时活动。
2. 进程控制:在程序里利用`lockf()`这个系统调用来为每个进程加锁,从而实现它们之间的互斥操作。
3. 进程通信:
- 软中断通讯
- 在代码中使用了语句`signal(SIGINT, SIG_IGN)`和`signal(SIGQUIT, SIG_IGN)`, 并观察执行结果及分析其原因。
4. 捕获与重定义软中断:首先创建了一个服务函数function,然后通过调用`signal(sig, function)`来捕获并重新配置中断信号。
5. 使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
6. 尝试扩展程序使其成为基于信号或事件驱动的应用程序。前五个部分已经实现完毕,第六个由于难度较大未能完成。
源代码文件名为“sig_pre.c”,在Red Hat Linux环境下编译成功后得到可执行文件“sig_pre.exe”。另外附上一份报告书,其中的人名均为化名。