public boolean isTasksetSchedulable() {
   boolean ret = true;
   for (Iterator<FixedPriorityProcessingLoad> iter = tasksetDecreasingPriority.iterator();
       iter.hasNext(); ) {
     FixedPriorityProcessingLoad task = iter.next();
     System.out.println(
         "FPTest: task period: "
             + task.getPeriod()
             + " wcet: "
             + cyclesToNanoseconds(task.getCycles())
             + " bw: "
             + task.getBandwidth());
     ret = ret && isTaskSchedulable(task);
   }
   return ret;
 }
 public boolean isTaskSchedulable(FixedPriorityProcessingLoad t) {
   long exectime_ns = cyclesToNanoseconds(t.getCycles());
   long responseTime = exectime_ns;
   long prevResponseTime;
   do {
     prevResponseTime = responseTime;
     responseTime = exectime_ns;
     // add all preemptions
     for (Iterator<FixedPriorityProcessingLoad> iter = tasksetDecreasingPriority.iterator();
         iter.hasNext(); ) {
       FixedPriorityProcessingLoad t1 = iter.next();
       // if we get to t we finish traversing higher-priority tasks
       if (t1.getUniqueID() == t.getUniqueID()) break;
       long numOfJobs = (long) Math.ceil((double) prevResponseTime / (double) t1.getPeriod());
       responseTime += numOfJobs * cyclesToNanoseconds(t1.getCycles());
     }
     // System.out.println("Response time current: " + responseTime + "prev:" + prevResponseTime);
   } while (responseTime != prevResponseTime && responseTime <= t.getDeadline());
   return (responseTime <= t.getDeadline());
 }