Micro
Micro
Micro
#include<stdio.h>
int wait(int);
int signal(int);
void producer();
void consumer();
int main() {
int n;
while (1) {
scanf("%d", &n);
switch (n) {
case 1:
producer();
else
printf("BUFFER IS FULL");
break;
case 2:
consumer();
else
printf("BUFFER IS EMPTY");
break;
case 3:
exit(0);
break;
}}}
int wait(int s) {
return (--s);
int signal(int s) {
return (++s);
void producer() {
mutex = wait(mutex);
full = signal(full);
empty = wait(empty);
x++;
mutex = signal(mutex);
void consumer() {
mutex = wait(mutex);
full = wait(full);
empty = signal(empty);
x--;
mutex = signal(mutex);
}
Program:7
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<sys/types.h>
key_t key;
char *segptr;
perror("shmget");
exit(1);
} else {
system("ipcs -m");
perror("shmat");
exit(1);
strcpy(segptr, buff);
printf("DONE\n");
else
printf("Removed Successfully\n");
return 0;
}
Program: 8
#include<stdio.h>
#include<conio.h>
int max[100][100];
int alloc[100][100];
int need[100][100];
int avail[100];
int n, r;
void input();
void show();
void cal();
int main() {
int i, j;
input();
show();
cal();
getch();
return 0;
void input() {
int i, j;
scanf("%d", &n);
scanf("%d", &r);
scanf("%d", &max[i][j]);
scanf("%d", &alloc[i][j]);
} }
scanf("%d", &avail[j]);
}}
void show() {
int i, j;
printf("\t");
printf("\t");
if(i == 0) {
}}}}
void cal() {
int safe[100];
int i, j;
finish[i] = 0;
} }
8(3)
printf("\n");
while(flag) {
flag = 0;
int c = 0;
c++;
if(c == r) {
avail[k] += alloc[i][j];
finish[i] = 1;
flag = 1; }
printf("P%d->", i);
if(finish[i] == 1) {
i = n;
}}}}}
if(finish[i] == 1) {
c1++;
} else {
printf("P%d->", i);
}}
if(c1 == n) {
} else {
}}
Program: 9
#include<stdio.h>
#include<conio.h>
int max[100][100];
int alloc[100][100];
int need[100][100];
int avail[100];
int n, r;
void input();
void show();
void cal();
int main() {
int i, j;
input();
show();
cal();
getch();
return 0;
void input() {
int i, j;
scanf("%d", &n);
scanf("%d", &r);
scanf("%d", &max[i][j]);
} }
scanf("%d", &alloc[i][j]);
}}
scanf("%d", &avail[j]);
}}
void show() {
int i, j;
printf("\t");
printf("\t");
if(i == 0) {
printf("\n");
void cal() {
int i, j;
finish[i] = 0;
while(flag) {
flag = 0;
int c = 0;
c++;
if(c == r) {
avail[k] += alloc[i][j];
finish[i] = 1;
flag = 1;
printf("P%d->", i);
if(finish[i] == 1) {
i = n;
}}}}}}
j = 0;
flag = 0;
if(finish[i] == 0) {
dead[j] = i;
j++;
flag = 1;
if(flag == 1) {
printf("P%d\t", dead[i]);
} else {
Program: 10
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
unsigned long i = 0;
pthread_t id = pthread_self();
if(pthread_equal(id, tid[0])) {
} else {
return NULL;
int main(void) {
int i = 0;
int err;
while(i < 2) {
if (err != 0)
else
i++;
sleep(5);
return 0;