fifo

PHOTO EMBED

Thu Jun 06 2024 20:37:42 GMT+0000 (Coordinated Universal Time)

Saved by @prabhas

#include<stdio.h>
#include<stdlib.h>

int in[100], p[20], n, nf;

void getData();

void getData() {
    printf("enter number of seq:");
    scanf("%d", &n);
    printf("enter seq:");
    for (int i = 0; i < n; i++) {
        scanf("%d", &in[i]);
    }
    printf("enter no of frames:");
    scanf("%d", &nf);
}

int isHit(int x) {
    for (int i = 0; i < nf; i++) {
        if (x == p[i])
            return 1;
    }
    return 0;
}

void display() {
    printf("status:\n");
    for (int i = 0; i < nf; i++)
        if (p[i] != 9999)
            printf("%d ", p[i]);
    printf("\n");
}

void fifo() {
    int pgfault = 0;
    for (int i = 0; i < nf; i++)
        p[i] = 9999;

    for (int i = 0; i < n; i++) {
        printf("for %d\n", in[i]);
        if (isHit(in[i]) == 0) {
            int k;
            for (k = 0; k < nf - 1; k++)
                p[k] = p[k + 1];
            p[k] = in[i];
            pgfault++;
            display();
        } else {
            printf("page fault does not exist\n");
        }
    }
    printf("no of pgfaults:%d", pgfault);
}

int main() {
    getData();
    fifo();
}
content_copyCOPY