def pageFaults(incomingStream, n, frames):
print("Incoming \t pages")
s = set()
queue = Queue()
page_faults = 0
if len(s) < frames:
if incomingStream[i] not in s:
s.add(incomingStream[i])
page_faults += 1
queue.put(incomingStream)
else:
if incomingStream[i] not in s:
val = queue.queue[0]
queue.get()
s.remove(val)
s.add(incomingStream[i])
queue.put(incomingStream[i])
page_faults += 1
print(incomingStream
[i
], end="\t\t") for q_item in queue.queue:
print()
return page_faults
incomingStream = [7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1]
n = len(incomingStream)
frames = 3
page_faults = pageFaults(incomingStream, n, frames)
hits = n - page_faults
print("\nPage Faults: " + str(page_faults))
print("Hit: " + str(hits))
CmRlZiBwYWdlRmF1bHRzKGluY29taW5nU3RyZWFtLCBuLCBmcmFtZXMpOgogcHJpbnQoIkluY29taW5nIFx0IHBhZ2VzIikKIHMgPSBzZXQoKQogcXVldWUgPSBRdWV1ZSgpCiBwYWdlX2ZhdWx0cyA9IDAKIGZvciBpIGluIHJhbmdlKG4pOgogaWYgbGVuKHMpIDwgZnJhbWVzOgogaWYgaW5jb21pbmdTdHJlYW1baV0gbm90IGluIHM6CiBzLmFkZChpbmNvbWluZ1N0cmVhbVtpXSkKIHBhZ2VfZmF1bHRzICs9IDEKIHF1ZXVlLnB1dChpbmNvbWluZ1N0cmVhbSkKIGVsc2U6CiBpZiBpbmNvbWluZ1N0cmVhbVtpXSBub3QgaW4gczoKIHZhbCA9IHF1ZXVlLnF1ZXVlWzBdCiBxdWV1ZS5nZXQoKQogcy5yZW1vdmUodmFsKQogcy5hZGQoaW5jb21pbmdTdHJlYW1baV0pCiBxdWV1ZS5wdXQoaW5jb21pbmdTdHJlYW1baV0pCiBwYWdlX2ZhdWx0cyArPSAxCiBwcmludChpbmNvbWluZ1N0cmVhbVtpXSwgZW5kPSJcdFx0IikKIGZvciBxX2l0ZW0gaW4gcXVldWUucXVldWU6CiBwcmludChxX2l0ZW0sIGVuZD0iXHQiKQogcHJpbnQoKQogcmV0dXJuIHBhZ2VfZmF1bHRzCmluY29taW5nU3RyZWFtID0gWzcsIDAsIDEsIDIsIDAsIDMsIDAsIDQsIDIsIDMsIDAsIDMsIDIsIDFdCm4gPSBsZW4oaW5jb21pbmdTdHJlYW0pCmZyYW1lcyA9IDMKcGFnZV9mYXVsdHMgPSBwYWdlRmF1bHRzKGluY29taW5nU3RyZWFtLCBuLCBmcmFtZXMpCmhpdHMgPSBuIC0gcGFnZV9mYXVsdHMKcHJpbnQoIlxuUGFnZSBGYXVsdHM6ICIgKyBzdHIocGFnZV9mYXVsdHMpKQpwcmludCgiSGl0OiAiICsgc3RyKGhpdHMpKQo=
def pageFaults(incomingStream, n, frames):
print("Incoming \t pages")
s = set()
queue = Queue()
page_faults = 0
for i in range(n):
if len(s) < frames:
if incomingStream[i] not in s:
s.add(incomingStream[i])
page_faults += 1
queue.put(incomingStream)
else:
if incomingStream[i] not in s:
val = queue.queue[0]
queue.get()
s.remove(val)
s.add(incomingStream[i])
queue.put(incomingStream[i])
page_faults += 1
print(incomingStream[i], end="\t\t")
for q_item in queue.queue:
print(q_item, end="\t")
print()
return page_faults
incomingStream = [7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1]
n = len(incomingStream)
frames = 3
page_faults = pageFaults(incomingStream, n, frames)
hits = n - page_faults
print("\nPage Faults: " + str(page_faults))
print("Hit: " + str(hits))