Professional Documents
Culture Documents
h>
#include<stdlib.h>
#include<sys/wait.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
int status;
pid_t pid = fork();
if (pid == 0) {
printf("hello from child\n");
exit(17);
}
else
{
wait(&status);
printf("hello from parent\n");
printf("Child exit status code is %d\n",
WEXITSTATUS(status));
}
printf("exiting program\n");
return 0;
}
#include<semaphore.h>
#include<stdio.h>
#include<pthread.h>
# include<bits/stdc++.h>
using namespace std;
int readcount=0,writecount=0,sh_var=5,bsize[5];
sem_t x,y,z,rsem,wsem;
pthread_t r[3],w[2];
sem_wait(&z);
sem_wait(&rsem);
sem_wait(&x);
readcount++;
if(readcount==1)
sem_wait(&wsem);
sem_post(&x);
sem_post(&rsem);
sem_post(&z);
cout << "\nupdated value :" << sh_var;
sem_wait(&x);
readcount--;
if(readcount==0)
sem_post(&wsem);
sem_post(&x);
}
sh_var=sh_var+5;
sem_post(&wsem);
sem_wait(&y);
writecount--;
if(writecount==0)
sem_post(&rsem);
sem_post(&y);
}
int main()
{
sem_init(&x,0,1);
sem_init(&wsem,0,1);
sem_init(&y,0,1);
sem_init(&z,0,1);
sem_init(&rsem,0,1);
pthread_join(r[0],NULL);
pthread_join(w[0],NULL);
pthread_join(r[1],NULL);
pthread_join(r[2],NULL);
pthread_join(r[3],NULL);
pthread_join(w[1],NULL);
pthread_join(r[4],NULL);
return(0);
}
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
int main()
{
int fd,n;
char buff[50];
fd=open("newFile",O_CREAT|O_RDWR,0777);
n=read(0,buff,50);
write(fd,buff,n);
write(1,buff,n);
lseek(fd,9,SEEK_SET);
read(fd,buff,8);
write(1,buff,8);
printf("\n");
return 0;
}
question 2
#include<stdio.h>
#include<conio.h>
#include<stdbool.h>
struct semaphore
int mutex;
int rcount;
int rwait;
bool wrt;
};
s->rwait++;
}
else
s->rcount++;
s->mutex--;
return ;
if(s->mutex==1)
s->mutex--;
s->wrt=1;
return ;
else
printf("\nReader Removed.\n");
s->rcount--;
s->mutex++;
}
return ;
else
printf("\nWriter Removed\n");
s->mutex++;
s->wrt=0;
if(s->rwait!=0)
s->mutex-=s->rwait;
s->rcount=s->rwait;
s->rwait=0;
int main()
while(1)
system("cls");
intch;
scanf("%d",&ch);
switch(ch)
{
system("pause");