Esempio n. 1
0
 public Job release(int id) {
   if (Am.getJob(id) != null) {
     return Am.DequeueJob(id);
   } else {
     if (A1in.getJob(id) != null) {
       return A1in.DequeueJob(id);
     } else {
       // ERROR!
       // job is neither in Am nor A1in, so why are we here???!
       assert (false);
       return null;
     }
   }
 }
Esempio n. 2
0
  public void Request(int id) {
    Job reclaimed = null;

    if (Am.getJob(id) != null) {
      Am.EnqueueJob(0, Am.DequeueJob(id));
    } else {
      if (A1out.getJob(id) != null) {
        reclaimed = Reclaim(id);
        Am.EnqueueJob(0, reclaimed);
      } else {
        if (A1in.getJob(id) != null) {
          // do nothing
        } else {
          reclaimed = Reclaim(id);
          A1in.EnqueueJob(0, reclaimed);
        }
      }
    }
  }
Esempio n. 3
0
 public Job RemoveFromA1out(int id) {
   return A1out.DequeueJob(id);
 }
Esempio n. 4
0
 public Job RemoveFromA1in(int id) {
   return A1in.DequeueJob(id);
 }
Esempio n. 5
0
 public Job RemoveFromAm(int id) {
   return Am.DequeueJob(id);
 }