Beispiel #1
0
        private void IncreaseTime()
        {
            GlobalTime++;

            foreach (Process p in Ready)
            {
                p.tEsp++;
            }

            bool DeInterrupt = false;

            foreach (Process p in Blocked)
            {
                p.tEsp++;
                p.tBlR = 8 - p.tBlo++;
                if (p.tBlo >= 8)
                {
                    DeInterrupt = true;
                    p.tBlo      = 0;
                }
            }

            if (DeInterrupt)
            {
                var topBlo = Blocked.Peek();
                mW.tblBlocked.Rows.RemoveAt(0);
                mW.tblReady.Rows.Add(topBlo.Id, topBlo.TME, topBlo.tRst);
                Deinterrupt();
            }
        }