Professional Documents
Culture Documents
Lab 10 Assignment
Lab 10 Assignment
EXAMPLE 1 :
#include<iostream>
#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
sem_t mutex;
sem_wait(&mutex);
cout<<"\nEntered..\n";
//critical section
sleep(4); //signal
cout<<"\nJust Exiting...\n";
sem_post(&mutex);
}
int main()
pthread_t t1,t2;
pthread_create(&t1,NULL,thread,NULL); //(id,null,function,argument)
sleep(2);
pthread_create(&t2,NULL,thread,NULL);
pthread_join(t2,NULL);
sem_destroy(&mutex);
return 0;
OUTPUT :
EXAMPLE 2 :
#include<iostream>
#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
char buff[20];
sem_t mutex;
{ //wait
sem_wait(&mutex);
cout<<"\nEntered..\n";
//critical section
sleep(4);
cout<<"\nThread1..\n";
//signal
cout<<"\nJust Exiting...\n";
sem_post(&mutex);
sem_wait(&mutex);
cout<<"\nEntered..\n";
//critical section
sleep(4);
cout<<"\nThread2..\n";
cout<<buff;
//signal
cout<<"\nJust Exiting...\n";
sem_post(&mutex);
int main()
pthread_t t1,t2;
sleep(2);
pthread_create(&t2,NULL,thread2,NULL);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
sem_destroy(&mutex);
return 0;
OUTPUT :
LAB ASSIGNMENT :
#include<iostream>
#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
char buff[20];
sem_t mutex;
int random[20];
{ //wait
sem_wait(&mutex);
cout<<"\nEntered..\n";
//critical section
sleep(4);
cout<<"\nThread1..\n";
srand (time(0));
cout<<"Random numbers"<<endl;
for(int i=0;i<20;i++)
random[i]=rand()%20+1;
cout<<random[i]<<" ";
//cout<<"\nJust Exiting...\n";
sem_post(&mutex);
//wait
sem_wait(&mutex);
//critical section
cout<<endl;
sleep(4);
cout<<"Sqaure"<<endl;
for(int i=0;i<20;i++)
cout<<(random[i]*random[i])<<" ";
//signal
cout<<"\nJust Exiting...\n";
sem_post(&mutex);
int main()
pthread_t t1,t2;
sleep(2);
pthread_create(&t2,NULL,thread2,NULL);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
sem_destroy(&mutex);
return 0;
OUTPUT: