public void DeQueueTransact(Transact transact) { //var transact = _queue.Dequeue(); CommonTime += transact.Time - transact.EntryTime; _queue.Remove(transact); //return transact; }
public void ProcessTransact(Transact transact) { Entries++; var time = _rand.Next(); ProcTime += time; transact.Time += time; Time = transact.Time; }
public void EnQueueTransact(Transact transact) { transact.EntryTime = transact.Time; _queue.Add(transact); Entries++; if (_queue.Count > MaxCount) { MaxCount = _queue.Count; } }
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; } }
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); } }
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); }
private void DeQueueTransact(Transact transact) { MemQueue.DeQueueTransact(transact); }
public void EnQueueTransact(Transact transact) { MemQueue.EnQueueTransact(transact); }
private void DeQueueTransact(Transact transact) { ProcQueue.DeQueueTransact(transact); }
public void EnQueueTransact(Transact transact) { ProcQueue.EnQueueTransact(transact); }
public void DeleteTransact(Transact transact) { _transacts.Remove(transact); }
public void AddTransact(Transact transact) { _transacts.Add(transact); }