操作系统实验报告三-16281028

实验三 同步与通信

实验目的

  1. 系统调用的进一步理解。
  2. 进程上下文切换。
  3. 同步与通信方法。

实验题目

  1. 通过fork的方式,产生4个进程P1,P2,P3,P4,每个进程打印输出自己的名字,例如P1输出“I am the process P1”。要求P1最先执行,P2、P3互斥执行,P4最后执行。通过多次测试验证实现是否正确。

实验结果

  在P2和P3之间加互斥锁,P2和P3互斥访问临界资源并执行,随后当P2或P3至少一个进程完成时,执行fork产生P4进程。

代码:

#include 
#include 
#include 
#include 
#include 
#include 

int main(void){
pthread_mutex_t mutex;
pthread_mutex_init(&mutex,NULL);

pid_t pid1 = fork();
if(pid1 == 0){
	printf("I am the process P1\n");
	return 0;
}

waitpid(pid1, NULL, 0);	
pid_t pid2 = fork();
if(pid2 == 0){
	pthread_mutex_lock(&

你可能感兴趣的:(操作系统实验报告,daima)