广州大学学生实验报告
1、 实验目的
1.1、掌握进程的概念,明确进程的含义 1.2、认识并了解并发执行的实质 2.1、掌握进程另外的创建方法
2.2、熟悉进程的睡眠、同步、撤消等进程控制方法 3.1、进一步认识并发执行的实质
3.2、分析进程竞争资源的现象,学习解决进程互斥的方法 4.1、了解守护进程 5.1、了解什么是信号
5.2、INUX系统中进程之间软中断通信的基本原理 6.1、了解什么是管道
6.2、熟悉UNIX/LINUX支持的管道通信方式 7.1、了解什么是消息 7.2、熟悉消息传送的机理
8.1、了解和熟悉共享存储机制
二、实验内容
1.1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。
1.2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……',父进程显示 'parent ……',观察结果,分析原因。
2.1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容 2.2、利用wait( )来控制进程执行顺序
3.1、修改实验(一)中的程序2,用lockf( )来给每一个进程加锁,以实现进程之间的互斥
3.2、观察并分析出现的现象
4.1、写一个使用守护进程(daemon)的程序,来实现: 创建一个日志文件/var/log/Mydaemon.log ;
每分钟都向其中写入一个时间戳(使用time_t的格式) ;
5.1、用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
Child process1 is killed by parent! Child process2 is killed by parent!
父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed!
5.2、用软中断通信实现进程同步的机理