Exemplo n.º 1
0
 public void DeQueueTransact(Transact transact)
 {
     //var transact = _queue.Dequeue();
     CommonTime += transact.Time - transact.EntryTime;
     _queue.Remove(transact);
     //return transact;
 }
Exemplo n.º 2
0
        public void ProcessTransact(Transact transact)
        {
            Entries++;
            var time = _rand.Next();

            ProcTime      += time;
            transact.Time += time;
            Time           = transact.Time;
        }
Exemplo n.º 3
0
 public void EnQueueTransact(Transact transact)
 {
     transact.EntryTime = transact.Time;
     _queue.Add(transact);
     Entries++;
     if (_queue.Count > MaxCount)
     {
         MaxCount = _queue.Count;
     }
 }
Exemplo n.º 4
0
        private void PostProcess(Transact transact)
        {
            var r = _rand.Next();

            if (r == 0)
            {
                transact.Status = TransactStatus.ReProc;
                transact.Device = CompSystem.Memory;
            }
            else
            {
                transact.Status = TransactStatus.Finished;
                transact.Device = CompSystem.Memory;
            }
        }
Exemplo n.º 5
0
        public bool ProcessTransact(Transact transact)
        {
            if (transact.Status == TransactStatus.Prepared)
            {
                transact.Status = TransactStatus.Processed;
                EnQueueTransact(transact);
                return(true);
            }

            if (transact.Status == TransactStatus.ReProc)
            {
                transact.Time  += _rand.Next();
                transact.Status = TransactStatus.Processed;
                transact.Device = CompSystem.Processor;
                transact.Device.EnQueueTransact(transact);
                return(true);
            }

            if (transact.Status == TransactStatus.Finished)
            {
                transact.Status = TransactStatus.Released;
                ReleaseBlock();
                Time = transact.Time;
                return(true);
            }

            if (TakeBlock())
            {
                DeQueueTransact(transact);
                transact.Device = CompSystem.Processor;
                transact.Device.EnQueueTransact(transact);
                return(true);
            }
            else
            {
                if (transact.Time < Time)
                {
                    transact.Time = Time;
                }
                transact.Status = TransactStatus.Waiting;
                return(false);
            }
        }
Exemplo n.º 6
0
 public bool ProcessTransact(Transact transact)
 {
     if (Proc1.Time <= transact.Time)
     {
         DeQueueTransact(transact);
         Proc1.ProcessTransact(transact);
         PostProcess(transact);
         return(true);
     }
     if (Proc2.Time <= transact.Time)
     {
         DeQueueTransact(transact);
         Proc2.ProcessTransact(transact);
         PostProcess(transact);
         return(true);
     }
     transact.Time = (Proc1.Time < Proc2.Time) ? Proc1.Time : Proc2.Time;
     return(false);
 }
Exemplo n.º 7
0
 private void DeQueueTransact(Transact transact)
 {
     MemQueue.DeQueueTransact(transact);
 }
Exemplo n.º 8
0
 public void EnQueueTransact(Transact transact)
 {
     MemQueue.EnQueueTransact(transact);
 }
Exemplo n.º 9
0
 private void DeQueueTransact(Transact transact)
 {
     ProcQueue.DeQueueTransact(transact);
 }
Exemplo n.º 10
0
 public void EnQueueTransact(Transact transact)
 {
     ProcQueue.EnQueueTransact(transact);
 }
Exemplo n.º 11
0
 public void DeleteTransact(Transact transact)
 {
     _transacts.Remove(transact);
 }
Exemplo n.º 12
0
 public void AddTransact(Transact transact)
 {
     _transacts.Add(transact);
 }