#include <stdio.h>
#include <semaphore.h>
#include <pthread.h>
pthread_mutex_t mutex;
sem_t wrt;
int cnt=1, numreader=0;
void *writer(void *wno){
sem_wait(&wrt);
cnt = cnt*2;
printf("Writer %d modified cnt to %dn", *((int*)wno), cnt);
sem_post(&wrt);
}
void *reader(void* rno){
pthread_mutex_lock(&mutex);
numreader++;
if (numreader==1)
sem_wait(&wrt);
pthread_mutex_unlock(&mutex);
printf("Reader %d read cnt as %dn", *((int*)rno), cnt);
pthread_mutex_lock(&mutex);
numreader--;
if (numreader==0)
sem_post(&wrt);
pthread_mutex_unlock(&mutex);
}
void main(){
pthread_t write[10], read[10];
pthread_mutex_init(&mutex, NULL);
sem_init(&wrt,0,1);
int...