示例#1
0
文件: Process.cs 项目: jreina/TinyOS
 /// <summary>
 /// Process Constructor
 /// </summary>
 /// <param name="processId">the readonly unique id for this Process</param>
 /// <param name="memorySize">the ammount of memory this Process and address</param>
 public Process(uint processId, uint memorySize)
 {
     PCB = new ProcessControlBlock(processId, memorySize);
 }
示例#2
0
        private static void pain()
        {
            IProcess p1 = new ProcessControlBlock {
                ArrivalTime = 5, BurstTime = 25, Name = "Process A"
            };
            IProcess p2 = new ProcessControlBlock {
                ArrivalTime = 1, BurstTime = 53, Name = "Process B"
            };
            IProcess p3 = new ProcessControlBlock {
                ArrivalTime = 3, BurstTime = 27, Name = "Process C"
            };
            IProcess p4 = new ProcessControlBlock {
                ArrivalTime = 4, BurstTime = 12, Name = "Process D"
            };
            IProcess p5 = new ProcessControlBlock {
                ArrivalTime = 2, BurstTime = 69, Name = "Process E"
            };

            /*
             #region FCFS
             * Console.WriteLine("# FCFS");
             * var fcfs = new FcfsQueue();
             * fcfs.Enqueue(p1);
             * fcfs.Enqueue(p2);
             * fcfs.Enqueue(p3);
             * fcfs.Enqueue(p4);
             * fcfs.Enqueue(p5);
             *
             * Console.WriteLine(fcfs);
             * fcfs.Order();
             * Console.WriteLine(fcfs);
             *
             * fcfs.Run();
             * Console.WriteLine(fcfs.Chart);
             * Console.WriteLine(fcfs.TotalRunTime);
             #endregion
             *
             #region SJF
             * Console.WriteLine("# SJF");
             * var sjf = new SjfQueue();
             * sjf.Enqueue(p1);
             * sjf.Enqueue(p2);
             * sjf.Enqueue(p3);
             * sjf.Enqueue(p4);
             * sjf.Enqueue(p5);
             *
             * Console.WriteLine(sjf);
             * sjf.Order();
             * Console.WriteLine(sjf);
             *
             * sjf.Run();
             * Console.WriteLine(sjf.Chart);
             * Console.WriteLine(sjf.TotalRunTime);
             #endregion
             */

            #region Round Robin

            Console.WriteLine("# RR");
            var rr = new RoundRobin(10);
            rr.Enqueue(p1);
            rr.Enqueue(p2);
            rr.Enqueue(p3);
            rr.Enqueue(p4);
            rr.Enqueue(p5);

            Console.WriteLine(rr);

            rr.Run();
            Console.WriteLine(rr.Chart);
            Console.WriteLine(rr.TotalRunTime);

            #endregion

            End();
        }