我目前遇到了我现在创建的程序有问题。我已经在寻找答案,但它与我想要发生的不同,因为这里给出的是字符串。C#中的FIFO字符串分配#
我们被要求创建一个FIFO分配,这里是程序作为控制台应用程序的流量预计:
输入no。页框:2
输入no。的页将被插入:要被插入4
页:插在帧1中断产生的
。
要插入的页面:B
插入帧2.产生中断。要被插入
页:甲
插入失败。 A是常驻页面。
要插入的页面:C
插入帧1.产生中断。
根据FIFO分配算法,如果插入新的不同页面,它将删除插入帧中的最早页面。如果该页面已经在框架中,则页面插入将被拒绝。
我已经做了一个,虽然我目前在试图找出如何找到数组中最早插入的元素。
我希望你能帮助我。我已经花了很多时间,但我不知道该怎么做。这里是我的代码。:
class Program
{
static void Main(string[] args)
{
int f, p, interrupt;
Console.WriteLine("Enter the number of frames: ");
f = Int32.Parse(Console.ReadLine());
string[] frame = new string[f];
Console.WriteLine("Enter the number of pages: ");
p = Int32.Parse(Console.ReadLine());
for (int i = 0; i < p; i++) {
Console.WriteLine("Page to be inserted: ");
string x = Console.ReadLine();
if (frame.Contains(x))
{
Console.WriteLine(x + " is a resident page.");
}
else {
frame[i] = x;
Console.WriteLine("Inserted in frame " + (i + 1) + ". Interrupt generated"));
interrupt +=1;
}
}
Console.ReadKey();
}
}
你能不能尝试使用队列为目的。它内置了FIFO处理功能。 http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx –
2013-05-08 15:51:15