[C] format wyswietlanych wynikow

0

Witam,

mam następujący problem. Mam za zadanie napisać programy symulujące algorytmy przydziału procesora
metodami FCFS, SJF i RR i to nie jest dla mnie problem, tylko mam problem z formatem wyświetlanych wyników. Wyniki mają mieć postać taką jak w tym pliku: http://www.im.pwr.wroc.pl/~kik/SO/ZADANIA-2009/przyklady1.txt ale nie mam pomysłu jak to zrobić. Mógłby ktoś mi podsunąć jakiś pomysł?

pozdrawiam

0
struct ProcessInfo
{   pozostalyCzasPracy,
    sumaCzasowOczekiwania 
}

typedef ProcessInfo[] ProcessInfos

struct ProcessorState
{   currentJob : ProcessInfo,
    jobsToDo : ProcessInfos,
    jobsDone : ProcessInfos,
}

function zlepOpisProcesu(processinfo)
{   if(processinfo == null)
        return "[ ]";
    else
        return "[" + processinfo.pozostalyCzasPracy +"," + processinfo.sumaCzasowOczekiwania + "]";
}

function zlepOpisProcesow(processinfos)
{   if(processinfos.size() == 0)
        return "<>";
    temp = "";
    foreach(processinfo in processinfos)
        temp += zlepOpisProcesu(processinfo);
    return "<" + temp + ">";
}

function zlepOpisProcesora(processorstate)
{   temp = "W/Q/Z="
    temp+= zlepOpisProcesu(processorstate.currentJob) + "/";
    temp+= zlepOpisProcesow(processorstate.jobsToDo) + "/";
    temp+= zlepOpisProcesow(processorstate.jobsDone);
    return temp;
}

function makelogline(currenttime, processorstate_przed, zdarzenie, processorstate_po)
{   temp = "t=" + currenttime + " ";
    temp+= zlepOpisProcesora(processorstate_przed) + " ";
    temp+= zdarzenie + " ";
    temp+= zlepOpisProcesora(processorstate_po);
    return temp;
}

makelogline produkuje:

t=0 W/Q/Z=[ ]/<[5,0][7,0][3,0][1,0][4,0]>/<> START W/Q/Z=[1,0]/<[5,0][7,0][3,0][4,0]>/<>

do uzytku wszedzie, gdzie zmienia sie stan procesora, czyli:

  • dodano job'a (zdarzenie-In)
  • zmieniono/rozpoczeto wykonywanie job'a (zdarzenie-Start)
  • job'a sie skonczyl (zdarzenie-Stop)

przed i po- zdarzeniu nalezy zachowac stan procka na potrzeby logowania --- albo, przed zdarzeniem utworzyc polowe linijki loga, po zdarzeniu utworzyc reszte..

jesli masz inne struktury, dopasuj sobie analogicznie..
nie wiem co Ci wiecej powiedziec.. nie widze miejsca w ktorym mozesz miec jakikolwiek problem..

1 użytkowników online, w tym zalogowanych: 0, gości: 1