示例#1
0
 public ClockFile(string fileName, string shapePath)
 {
     using (STFReader stf = new STFReader(fileName, false))
     {
         Clocks = new ClockList(stf, shapePath);
     }
 }
示例#2
0
文件: Clock.cs 项目: vichoste/PageSim
        /// <summary>
        /// Executes the algorithm.
        /// </summary>
        /// <param name="virtualMemory">Virtual memory to use</param>
        /// <param name="pageSequence">Page sequence to use</param>
        /// <returns>Amount of misses</returns>
        public int Execute(VirtualMemory virtualMemory, string[] pageSequence)
        {
            var missCount = 0;
            var i         = 0;
            var clockList = new ClockList(virtualMemory.PageCount);

            foreach (var page in pageSequence)
            {
                Console.WriteLine("==========================================================");
                Console.WriteLine($"CLK Solicitud del procesador para ingresar página {page}");
                Console.WriteLine($"Memoria disponible: {virtualMemory.GetCurrentFreeCapacity()} [KB]");
                // While the virtual memory is not full
                if (i < virtualMemory.PageCount)
                {
                    virtualMemory[i++] = page;
                    Console.WriteLine($"Página {page} agregada a la memoria virtual en la posición {i}");
                    clockList.InsertPage(page);
                    Console.WriteLine($"Página {page} insertada en la lista circular");
                    continue;
                }
                // While the virtual memory is full and we have a miss
                if (virtualMemory.FindPage(page) == -1)
                {
                    Console.WriteLine("(i) Miss (i)");
                    var pageToReplace = clockList.ReplacePage(page);
                    Console.WriteLine($"Página {pageToReplace} reemplazada por {page} en la lista circular");
                    Console.WriteLine($"Página a reemplazar: {pageToReplace}");
                    var indexToReplace = virtualMemory.FindPage(pageToReplace);
                    Console.WriteLine($"Posición a reemplazar dentro de la memoria virtual: {indexToReplace}");
                    virtualMemory[indexToReplace] = page;
                    missCount++;
                }
                else
                {
                    Console.WriteLine("(i) Hit (i)");
                }
            }
            return(missCount);
        }
示例#3
0
 /// <summary>
 /// �����л� �����б� ���ص�������ͼ��
 /// </summary>
 public void Deserialize()
 {
     ClockList cl = new ClockList();
     try
     {
         cl = (ClockList)fSer.FileDeserialize(SERPATH);
     }
     catch (Exception)
     {
         fSer.FileSerialize(SERPATH, cl);
     }
     list = cl.List;
     for (int i = 0; i < list.Count; i++)
     {
         Clock c = list[i];
         c.STime = STR17;
         if (c.State == ON)
             AutomatismStartClock = true;
         list[i] = c;
     }
     BindList();
     btnPlaySound.Tag = PLAY;
 }
示例#4
0
 public void RemoveClock(object obj)
 {
     ClockList.Remove((Clock)obj);
 }
示例#5
0
 public void AddClock(object obj)
 {
     ClockList.Add(new Clock());
 }
示例#6
0
 /// <summary>
 /// 关闭窗口时  序列化闹钟列表
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
 {
     ClockList cl = new ClockList();
     cl.List = list;
     fSer.FileSerialize(SERPATH, cl);
 }