Optimal Page Replacement Algorithm in Python
Data in an operating system is present in the form of chunks of memory called pages. Pages are brought in and out of the main memory as they are demanded by the operating system for processing. Pages which are most frequently used are kept in the primary memory, on the other hand, those that are not used frequently are sent back to the secondary memory.
Program in python
#programming code for Optimal Page Replacement Algorithm #entering the number of frames print(“Enter the number of frames: ”, end = “”) storage = int(input()) f, fault, pf = , 0, ‘No’ #entering the referencing string print(“Fill the reference string”, end =””) string = list(map(int, input().strip().split())) print(“\nString|Frame -> t”, end =’’) #calculating the number of requests for i in range (storage) print(I, end= ‘ ‘) print(“Fault\n ↓\n”) occurrence = [None for i in range(storage)] #calculating the number of faults for i in range (len(s)); if s[i] not in f; if len(f)< storage f.append(s[i]) else: for x in range(len(f)); if f[x] not in s[i+1]: f[x] = s[i] break else: occurrence[x] = s[i+1:].index(f[x]) else: #calculating the fault rate if[occurance.index(max(occurence))] = s[i] fault += 1 pf= ‘Yes’ else: pf = ‘No’ print(“ %d\t\t” %s[i], end= ‘’) for x in f: print (x, end = ‘ ’) for x in range (storage – len(f)): print(‘ ’, end = ‘ ’) for x in range (storage – len(f)): print (‘ ’, end = ‘ ’) print (“%s” %pf ) print(“\n Total number of requests: %d\n Total number of page faults: %d, Fault Rate: %0.2f%%"%(len(s),fault,(fault/len(s))*100)”))
Enter the number of frames: 3 Fill the reference string: 3 2 1 5 3 9 Total number of requests: 6 Total number of page faults: 2 Fault rate: 2