操作系统课内实验报告
3.文件的基本操作不太懂,后来通过相关资料找到了源代码。 2.6.2实验收获
1.网络资源真的很丰富;
2.进一步加深了对Linux操作系统的认识;
3.对Linux下C语言有了新的认识,对其数据结构有了一定的理解。 2.6.3意见与建议
1.内容比较多,分析起来有点困难,希望增长学时; 2.加强沟通与合作; 3.希望得到更多的相关资源。
3.编程设计实现进程同步和通信
3.1实验目的
1.加深了解进程的概念,进程与程序的区别;
2.进一步理解并发执行的概念,进程互斥的概念,进程通信的基本概念; 3.加强对Linux系统编程的熟悉。
3.2实验内容
1.编制实现软中断通信的程序
使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上发出的中断信号(即按delete键),当父进程接收到这两个软中断的某一个后,父进程用系统调用kill()向两个子进程分别发出整数值为16和17软中断信号,子进程获得对应软中断信号,然后分别输出下列信息后终止:
Child process 1 is killed by parent !! Child process 2 is killed by parent !!
父进程调用wait()函数等待两个子进程终止后,输入以下信息,结束进程执行:
Parent process is killed!!
多运行几次编写的程序,简略分析出现不同结果的原因
25
操作系统课内实验报告
2.编制实现进程的管道通信的程序
使用系统调用pipe()建立一条管道线,两个子进程分别向管道写一句话:
Child process 1 is sending a message! Child process 2 is sending a message!
而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。
要求:父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息
3.3实验思想(或流程图)
1.进程软中断通信的算法流程图
图3.1进程软中断通信的算法流程图
26
操作系统课内实验报告
2.基于进程的管道通信的算法流程图
图3.2 .基于进程的管道通信的算法流程图 3.4实验步骤
1.设计流程图 2.编写代码 3.测试程序
3.5程序运行初值及运行结果分析
实验结果如下: 1. 软中断通信程序
27
操作系统课内实验报告
图3.3软中断通信程序结果
多次实验:
28