segmentation
Thu Jun 06 2024 20:39:10 GMT+0000 (Coordinated Universal Time)
Saved by
@prabhas
#include<stdio.h>
int size, base[100], limit[100], offset, flag, n;
int main() {
printf("enter size of physical memory:");
scanf("%d", &size);
printf("enter no of segments:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("enter limit of segment %d\n", i);
scanf("%d", &limit[i]);
if (limit[i] > size) {
printf("\nlimit should not exceed physical memory\n");
i--;
continue;
}
}
for (int i = 0; i < n; i++) {
printf("enter base address of segment %d\n", i);
scanf("%d", &base[i]);
if (base[i] > size) {
printf("\nbase address should not exceed physical memory\n");
i--;
continue;
}
}
printf("segno\t\tbase\t\tlimit\n");
for (int i = 0; i < n; i++) {
printf("%d\t\t\t%d\t\t\t%d\n", i, base[i], limit[i]);
}
for (int i = 0; i < n; i++) {
printf("seg %d occupied physical memory from %d to %d\n", i, base[i], base[i] + limit[i] - 1);
}
do {
int j;
printf("enter segment no");
scanf("%d", &j);
printf("enter offset");
scanf("%d", &offset);
printf("phy address %d\n", base[j] + offset);
printf("to continue enter 1 else 0");
scanf("%d", &flag);
} while (flag != 0);
return 0;
}
content_copyCOPY
Comments