using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main(string[] args)
string requestedPagesInput;
string[] pageRequested = new string[0];
string[] frameNumbers = new string[0];
Console.WriteLine("M4: FL- ACT2 - LRU");
Console.WriteLine("Baranda, Regine V.");
Console.Write("Enter No. of Frames: ");
inputFrames = Console.ReadLine();
if (Int32.TryParse(inputFrames, out frames) == true)
Console.WriteLine("M4: FL- ACT2 - LRU");
Console.WriteLine("Baranda, Regine V.");
Console.WriteLine("No. of Frames: {0}", frames);
Console.Write("Enter No. of Pages: ");
inputPages = Console.ReadLine();
if (Int32.TryParse(inputPages, out pages) == true)
pageRequested = new string[pages];
for (int i = 0; i < pages; i++)
Console.WriteLine("M4: FL- ACT2 - LRU");
Console.WriteLine("Baranda, Regine V.");
Console.WriteLine("No. of Frames: {0} ", frames);
Console.WriteLine("No. of Pages: {0} ", pages);
Console.Write("Enter No. of Requested Pages ({0}/{1}): ", i + 1, pages);
requestedPagesInput = Console.ReadLine();
pageRequested[i] = requestedPagesInput;
Console.WriteLine("ntive and zero values are not allowed. Please enter a valid input.");
Console.WriteLine("Press enter key to continue...");
Console.WriteLine("Please enter a numeric value only.");
Console.WriteLine("Press enter key to continue...");
Console.WriteLine("ntive and zero values are not allowed. Please enter a valid input.");
Console.WriteLine("Press enter key to continue...");
Console.WriteLine("Please enter a numeric value only.");
Console.WriteLine("Press enter key to continue...");
Console.WriteLine("------------------------------------------------------");
for (int i = 0; i < frames; i++)
Console.Write("Frame{0}" + " ", i + 1);
Console.WriteLine(" PageFault");
frameNumbers = new string[frames];
for (int i = 0; i < frameNumbers.Length; i++)
string[] sameValue = new string[3];
while (request < pageRequested.Length)
for (int i = 0; i < frameNumbers.Length; i++)
for (int j = 0; j < frameNumbers.Length; j++)
if (frameNumbers[j] == "-1")
for (int k = 0; k < frameNumbers.Length; k++)
if (frameNumbers[k] == pageRequested[request])
if (frameNumbers[i] == "-1")
frameNumbers[i] = pageRequested[request];
sameValue[0] = pageRequested[request - 3];
sameValue[1] = pageRequested[request - 2];
sameValue[2] = pageRequested[request - 1];
for (int i = 0; i < sameValue.Length; i++)
for (int j = 0; j < sameValue.Length; j++)
if (sameValue[i] == sameValue[j])
for (int i = 0; i < frameNumbers.Length; i++)
if (request < pageRequested.Length - 1)
for (int j = 0; j < frameNumbers.Length; j++)
if (frameNumbers[j] == pageRequested[request])
if (frameNumbers[i] == pageRequested[request - less])
frameNumbers[i] = pageRequested[request];
if (frameNumbers[i] == pageRequested[request - less])
frameNumbers[i] = pageRequested[request];
Console.Write("{0} ==== |", pageRequested[request]);
foreach (var values in frameNumbers)
Console.Write(values + " ");
Console.Write(" " + " ");
Console.WriteLine("------------------------------------------------------");
Console.WriteLine("No. of Page Faults = {0}", pageFaults);
Console.WriteLine("No. of Page Hits = {0}", pageHits);