OneCompiler

OS18

112

#include <stdio.h>
int main() {
int n, m;
printf("Enter processes and resources: ");
scanf("%d %d", &n, &m);
int alloc[n][m], max[n][m], need[n][m];
printf("Enter allocation and max matrices:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d %d", &alloc[i][j], &max[i][j]);
need[i][j] = max[i][j] - alloc[i][j];}}
printf("Need matrix:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", need[i][j]);}
printf("\n");}
return 0;}

#2
#include <stdio.h>
int main() {
int n, faults = 0, i, j, page, farthest, index;
printf("Enter frames: "); scanf("%d", &n);
int ref[] = {12, 15, 12, 18, 6, 8, 11, 12, 19, 12, 6, 8, 12, 15, 19, 8};
int frames[n];
for (i = 0; i < n; i++) frames[i] = -1;
for (i = 0; i < 16; i++) {
page = ref[i];
int found = 0;
for (j = 0; j < n; j++) {
if (frames[j] == page) {
found = 1;
break;}}
if (!found) {
faults++; farthest = -1;
for (j = 0; j < n; j++) {
int foundInFuture = 0;
for (int k = i + 1; k < 16; k++) {
if (ref[k] == frames[j]) {
foundInFuture = 1;
if (k > farthest) {
farthest = k;
index = j;}
break;}}
if (!foundInFuture) {
index = j;
break;}}
frames[index] = page;
printf("Page %d -> Page Fault\n", page);}}
printf("Total Page Faults: %d\n", faults);
return 0;