From c0b0249697d21e58514c525e61b905f32f815fe5 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Thu, 1 Jul 2010 08:21:00 +0000 Subject: [PATCH] bug fixes and extensions --- Robust/TransSim/FlexScheduler.java | 8 ++++++++ Robust/TransSim/Plot.java | 15 +++++++++++++++ Robust/TransSim/TransSim.java | 19 +++++++++++++++---- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/Robust/TransSim/FlexScheduler.java b/Robust/TransSim/FlexScheduler.java index 589413e5..db3ab9da 100644 --- a/Robust/TransSim/FlexScheduler.java +++ b/Robust/TransSim/FlexScheduler.java @@ -120,6 +120,7 @@ public class FlexScheduler extends Thread { int policy; boolean[] aborted; long shorttesttime; + long earliesttime=-1; long starttime=-1; Hashtable rdobjmap; Hashtable wrobjmap; @@ -158,6 +159,10 @@ public class FlexScheduler extends Thread { return commitcount; } + public long getEarliestTime() { + return earliesttime-starttime; + } + public long getTime() { return shorttesttime-starttime; } @@ -400,6 +405,9 @@ public class FlexScheduler extends Thread { Event nev=new Event(currtime+nexttrans.getTime(0), nexttrans, 0, ev.getThread(), nexttransnum); currentevents[ev.getThread()]=nev; eq.add(nev); + } else { + if (earliesttime==-1) + earliesttime=currtime; } } diff --git a/Robust/TransSim/Plot.java b/Robust/TransSim/Plot.java index 3fb4edc1..877ad06f 100644 --- a/Robust/TransSim/Plot.java +++ b/Robust/TransSim/Plot.java @@ -9,6 +9,12 @@ public class Plot { String cmdstr="plot "; Hashtable series; boolean first=true; + boolean percent; + public Plot(String filename, boolean percent) { + this(filename); + this.percent=percent; + } + public Plot(String filename) { try { command=new PrintWriter(new FileOutputStream(filename+".cmd"), true); @@ -48,7 +54,16 @@ public class Plot { Series s=(Series)it.next(); s.close(); } + command.println("set style data linespoints"); + command.println("set terminal postscript enhanced eps \"Times-Roman\" 18"); + command.println("set key left"); + command.println("set output \""+filename+"linear.eps\""); command.println(cmdstr); + if (!percent) { + command.println("set log y"); + command.println("set output \""+filename+"log.eps\""); + command.println(cmdstr); + } command.close(); } } \ No newline at end of file diff --git a/Robust/TransSim/TransSim.java b/Robust/TransSim/TransSim.java index 22bc2590..edf81ab0 100644 --- a/Robust/TransSim/TransSim.java +++ b/Robust/TransSim/TransSim.java @@ -22,7 +22,8 @@ public class TransSim { int deadlockdepth=10; Plot p=new Plot("plot"); - Plot pa=new Plot("plotabort"); + Plot pe=new Plot("plotearliest"); + Plot pa=new Plot("plotabort",true); Plot ps=new Plot("plotstall"); Plot pb=new Plot("plotbackoff"); Plot pat=new Plot("plotaborttime"); @@ -37,6 +38,9 @@ public class TransSim { for(int j=0;j