fdghjhgfdsdfghjhgfdsa

 #include <stdio.h>


int main() {

    int frames, pages, count = 0, pageFaults = 0;

    int reference[100], temp[10], time[10];

    int flag1, flag2, i, j, pos, minimum;


    printf("Enter Total number of frames: ");

    scanf("%d", &frames);


    printf("Enter number of Pages: ");

    scanf("%d", &pages);


    printf("Enter Reference string:\n");

    for (i = 0; i < pages; ++i) {

        scanf("%d", &reference[i]);

    }


    for (i = 0; i < frames; ++i) {

        temp[i] = -1; // Initialize frames as empty (-1)

    }


    for (i = 0; i < pages; ++i) {

        flag1 = flag2 = 0;


        // Check if the page is already in any frame

        for (j = 0; j < frames; ++j) {

            if (temp[j] == reference[i]) {

                flag1 = flag2 = 1;

                time[j] = count++; // Update the recent use time

                break;

            }

        }


        if (flag1 == 0) {

            // Check for an empty frame

            for (j = 0; j < frames; ++j) {

                if (temp[j] == -1) {

                    pageFaults++;

                    temp[j] = reference[i];

                    time[j] = count++;

                    flag2 = 1;

                    break;

                }

            }

        }


        // If no empty frame and page is not present, replace least recently used page

        if (flag2 == 0) {

            pos = 0;

            minimum = time[0];

            for (j = 1; j < frames; ++j) {

                if (time[j] < minimum) {

                    minimum = time[j];

                    pos = j;

                }

            }

            temp[pos] = reference[i];

            time[pos] = count++;

            pageFaults++;

        }


        // Display the current state of frames

        for (j = 0; j < frames; ++j) {

            if (temp[j] == -1)

                printf("-1 ");

            else

                printf("%d ", temp[j]);

        }

        printf("\n");

    }


    printf("\nMy Student ID = BC123123123\n");

    printf("Total Page Faults = %d\n", pageFaults);


    return 0;

}


Post a Comment

0 Comments