Aquesta és la l’última part de la pràctica, en què haureu
d’implementar la classe Processador. Un processador és
simplement un contenidor d’objectes de la classe Programa.
El mètode més important és executa(int t), que fa que
executi t unitats de temps dels programes que té encuats.
En realitat, una unitat de temps vol dir l’execució
d’una instrucció d’un programa (o, si us ho estimeu
més, una línia d’un programa). Tenint en compte que un
processador pot tenir més d’un programa encuat, com gestiona un
processador les t unitats de temps?
El processador té programes encuats en una cua de prioritat. La prioritat (d’un programa) és un enter més gran que zero: com més gran, més prioritari. Ara bé, pot ser que dos programes diferents en un processador tinguin la mateixa prioritat. En aquest cas, el programa més prioritari de tots dos serà el que tingui l’identificador de programa més gran (els identificadors són únics a cada programa dins d’un processador). Certament, és una manera arbitrària de trencar l’empat.
Per exemple, si tenim un programa P1 amb
l’id = 2 i prioritat = 100, un programa
P2 amb l’id = 4 i prioritat = 90
i un programa P3 amb l’id = 7 i
prioritat = 90, l’ordre de prioritat serà
P1, P3, P2. És a dir, el més prioritari serà
P1, després P3 i finalment
P2.
El que fa el processador amb les t unitats de temps és
el següent: agafa el programa més prioritari i l’executa, almenys,
t unitats de temps. Pot passar que el programa acabi i no
hagi consumit les t unitats. En aquest cas, el programa ja
ha acabat i el fa fora de la cua, i desencua el següent programa (per
prioritat) i mira d’executar-lo les unitats de temps que li queden. Això
ho va fent mentre li quedin programes i unitats de temps. Ara bé, també
podria ser que el programa hagués consumit totes les unitats de temps i
que, tanmateix, no hagi encara acabat. En aquest cas, el processador el
que farà és tornar a encuar aquest programa, però li rebaixarà la
prioritat en
unitats. Per exemple, si tenia prioritat
,
el reencuarà amb prioritat
.
Com que la prioritat sempre ha de ser
,
si aquesta rebaixa fa que la prioritat sigui negativa, li posarà
prioritat
.
Això farà que a la cua d’un processador hi hagi només programes que encara no han acabat. Recordem que cada vegada que executem una instrucció, retornarem l’estatus del programa, que indicarà si el programa ha acabat, i per quin motiu.
Us recordem que el registre STATUS pot tenir els
següents valors:
-1 Pila plena.
-2 Divisió per zero.
-3 Desempilar pila buida.
-5 Adreça fora de rang
-8 Error lectura dispositiu.
-9 Error escriptura dispositiu.
-10 Programa acabat.
Un programa acaba de manera normal si retorna , però pot tenir altres tipus d’incidències, i tornarà un estatus diferent de però també negatiu. En aquest cas, el programa també haurà acabat i haurà de sortir fora de la cua de prioritats del processador i no podrà ser reencuat.
Cada vegada que un programa acaba, cal escriure el contingut del seu dispositiu (això ho fem perquè la interfície dels programes ho simulem amb el dispositiu).
Bàsicament, heu d’implementar dos mètodes: el que ja hem esmentat
executa (int t), i el mètode
encuaPrograma(Programa& p), que, simplement, encua un
programa a la cua de prioritats.
Tingueu en compte que la gestió de les prioritats es fa mitjançant la
cua de prioritats PriorityQueue<T>, que encua per
prioritats. Ara bé, per a fer-ho ha de poder comparar dues instàncies
del tipus de la cua (en aquest cas, instàncies de la classe
Programa). Això ho fa assumint que tots els tipus
T amb què instanciem PriorityQueue<T>
tenen l’operació
bool T::compare(const T& t) const
implementada. Aquesta operació, que ja teníeu definida al problema
X55206 (Test de la classe Programa), ara agafa
sentit. Si bé en el problema X55206 no calia que tornés un
valor concret, ara sí que cal que torni cert/fals depenent de la
definició de prioritat que hem definit anteriorment. Si teniu aquesta
funció ben definida, segons el que hem explicat, llavors la gestió de la
prioritat és transparent i la fa la classe
PriorityQueue.
Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que
haureu d’utilitzar per a compilar:
Makefile, program.cpp, apart de les versions
*.old dels altres fitxers que heu d’acabar d’implementar i
BST.hpp. A més, per a fer aquesta part haureu de
penjar també les implementacions de les classes
Dispositiu memoriaBST i Programa,
a més del fitxer BST.cpp que heu fet en els passos
anteriors.
Quan pugeu la vostra solució al jutge, només cal que pugeu un tar construït així:
tar cf solution.tar memoriaBST.cpp memoriaBST.hpp BST.cpp dispositiu.cpp
dispositiu.hpp programa.cpp programa.hpp processador.cpp processador.hpp
Input
4 10 # 4: nombre de processadors # 10: nombre de dispositius # dos programes iguals en un mateix processador (id 0) # calcula la suma dels elements del dispositiu. DISPOSITIU 0 10 3 4 8 2 1 3 5 3 6 1 DISPOSITIU 1 20 4 5 8 21 23 1 6 43 67 2 43 53 91 32 44 2 4 23 67 43 INICI_PROGRAMA 0 0 80 0 MOU res 0 DISPBUIT 80 LLEGEIX x SUMA res x DESEMPILA res DISPBUIT 80 GOTO 30 ESCRIU res NOFARES FINAL_PROGRAMA INICI_PROGRAMA 1 0 60 1 MOU res 0 DISPBUIT 80 LLEGEIX x SUMA res x DESEMPILA res DISPBUIT 80 GOTO 30 ESCRIU res NOFARES FINAL_PROGRAMA ESCRIU_PROCESSADOR 0 EXECUTA 0 1000 ESCRIU_PROCESSADOR 0
Output
PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 0 PRIO: 80 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 1 PRIO: 60 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 1000 unitats PROC: 0 CARREGA 0 PRIORITAT 80 PROC: 0 EXECUTAT 54 PASSOS: 54 de 1000 STATUS -10 DISPOSITIU_ID: 0 : 36 PROC: 0 CARREGA 1 PRIORITAT 60 PROC: 0 EXECUTAT 104 PASSOS: 158 de 1000 STATUS -10 DISPOSITIU_ID: 1 : 582 PROCESSADOR: 0 #PROG: 0
Input
4 10 # dos programes en un mateix processador # calcula el màxim dels elements del dispositiu. DISPOSITIU 0 10 3 4 8 2 1 3 5 3 6 1 DISPOSITIU 1 20 4 5 8 21 23 1 6 43 67 2 43 53 91 32 44 2 4 23 67 43 INICI_PROGRAMA 0 0 80 0 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 1 0 60 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA ESCRIU_PROCESSADOR 0 EXECUTA 0 100 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 100 ESCRIU_PROCESSADOR 1 ESCRIU_PROCESSADOR 0 EXECUTA 0 100 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 100 ESCRIU_PROCESSADOR 1
Output
PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 0 PRIO: 80 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 1 PRIO: 60 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 100 unitats PROC: 0 CARREGA 0 PRIORITAT 80 PROC: 0 EXECUTAT 46 PASSOS: 46 de 100 STATUS -10 DISPOSITIU_ID: 0 : 8 PROC: 0 CARREGA 1 PRIORITAT 60 PROC: 0 EXECUTAT 54 PASSOS: 100 de 100 STATUS 0 PROGRAMA 1 PRIORITAT 60 a 50 PROCESSADOR: 0 #PROG: 1 PROGRAM ID: 1 PRIO: 50 PROC#: 0 AC: 0 PC: 30 STATUS: 0 STACK: 0/100 PROCESSADOR: 1 #PROG: 0 EXECUTA PROCESSADOR 1 amb 100 unitats PROCESSADOR: 1 #PROG: 0 PROCESSADOR: 0 #PROG: 1 PROGRAM ID: 1 PRIO: 50 PROC#: 0 AC: 0 PC: 30 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 100 unitats PROC: 0 CARREGA 1 PRIORITAT 50 PROC: 0 EXECUTAT 42 PASSOS: 42 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROCESSADOR: 0 #PROG: 0 PROCESSADOR: 1 #PROG: 0 EXECUTA PROCESSADOR 1 amb 100 unitats PROCESSADOR: 1 #PROG: 0
Input
4 10 # el mateix programa en diferents processadors # amb diferents prioritats. # calcula el màxim dels elements del dispositiu. DISPOSITIU 1 20 4 5 8 21 23 1 6 43 67 2 43 53 91 32 44 2 4 23 67 43 INICI_PROGRAMA 0 0 50 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 1 1 50 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 2 2 60 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 3 3 60 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 4 0 50 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 5 1 50 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 6 2 60 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA INICI_PROGRAMA 7 3 60 1 DISPBUIT 90 LLEGEIX resultat DISPBUIT 90 LLEGEIX y CMP resultat y MESGRAN 30 MOU resultat y GOTO 30 ESCRIU resultat NOFARES FINAL_PROGRAMA ESCRIU_PROCESSADOR 0 EXECUTA 0 10 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 10 ESCRIU_PROCESSADOR 1 ESCRIU_PROCESSADOR 2 EXECUTA 2 10 ESCRIU_PROCESSADOR 2 ESCRIU_PROCESSADOR 3 EXECUTA 3 10 ESCRIU_PROCESSADOR 3 ESCRIU_PROCESSADOR 0 EXECUTA 0 10 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 10 ESCRIU_PROCESSADOR 1 ESCRIU_PROCESSADOR 2 EXECUTA 2 10 ESCRIU_PROCESSADOR 2 ESCRIU_PROCESSADOR 3 EXECUTA 3 10 ESCRIU_PROCESSADOR 3 ESCRIU_PROCESSADOR 0 EXECUTA 0 100 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 100 ESCRIU_PROCESSADOR 1 ESCRIU_PROCESSADOR 2 EXECUTA 2 100 ESCRIU_PROCESSADOR 2 ESCRIU_PROCESSADOR 3 EXECUTA 3 100 ESCRIU_PROCESSADOR 3 ESCRIU_PROCESSADOR 0 EXECUTA 0 100 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 100 ESCRIU_PROCESSADOR 1 ESCRIU_PROCESSADOR 2 EXECUTA 2 100 ESCRIU_PROCESSADOR 2 ESCRIU_PROCESSADOR 3 EXECUTA 3 100 ESCRIU_PROCESSADOR 3 ESCRIU_PROCESSADOR 0 EXECUTA 0 100 ESCRIU_PROCESSADOR 0 ESCRIU_PROCESSADOR 1 EXECUTA 1 100 ESCRIU_PROCESSADOR 1 ESCRIU_PROCESSADOR 2 EXECUTA 2 100 ESCRIU_PROCESSADOR 2 ESCRIU_PROCESSADOR 3 EXECUTA 3 100 ESCRIU_PROCESSADOR 3
Output
PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 4 PRIO: 50 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 0 PRIO: 50 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 10 unitats PROC: 0 CARREGA 4 PRIORITAT 50 PROC: 0 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 4 PRIORITAT 50 a 40 PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 0 PRIO: 50 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 4 PRIO: 40 PROC#: 0 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 1 #PROG: 2 PROGRAM ID: 5 PRIO: 50 PROC#: 1 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 1 PRIO: 50 PROC#: 1 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 1 amb 10 unitats PROC: 1 CARREGA 5 PRIORITAT 50 PROC: 1 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 5 PRIORITAT 50 a 40 PROCESSADOR: 1 #PROG: 2 PROGRAM ID: 1 PRIO: 50 PROC#: 1 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 5 PRIO: 40 PROC#: 1 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 2 #PROG: 2 PROGRAM ID: 6 PRIO: 60 PROC#: 2 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 2 PRIO: 60 PROC#: 2 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 2 amb 10 unitats PROC: 2 CARREGA 6 PRIORITAT 60 PROC: 2 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 6 PRIORITAT 60 a 50 PROCESSADOR: 2 #PROG: 2 PROGRAM ID: 2 PRIO: 60 PROC#: 2 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 6 PRIO: 50 PROC#: 2 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 3 #PROG: 2 PROGRAM ID: 7 PRIO: 60 PROC#: 3 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 3 PRIO: 60 PROC#: 3 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 3 amb 10 unitats PROC: 3 CARREGA 7 PRIORITAT 60 PROC: 3 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 7 PRIORITAT 60 a 50 PROCESSADOR: 3 #PROG: 2 PROGRAM ID: 3 PRIO: 60 PROC#: 3 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 7 PRIO: 50 PROC#: 3 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 0 PRIO: 50 PROC#: 0 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 4 PRIO: 40 PROC#: 0 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 10 unitats PROC: 0 CARREGA 0 PRIORITAT 50 PROC: 0 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 0 PRIORITAT 50 a 40 PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 4 PRIO: 40 PROC#: 0 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 0 PRIO: 40 PROC#: 0 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 1 #PROG: 2 PROGRAM ID: 1 PRIO: 50 PROC#: 1 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 5 PRIO: 40 PROC#: 1 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 1 amb 10 unitats PROC: 1 CARREGA 1 PRIORITAT 50 PROC: 1 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 1 PRIORITAT 50 a 40 PROCESSADOR: 1 #PROG: 2 PROGRAM ID: 5 PRIO: 40 PROC#: 1 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 1 PRIO: 40 PROC#: 1 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 2 #PROG: 2 PROGRAM ID: 2 PRIO: 60 PROC#: 2 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 6 PRIO: 50 PROC#: 2 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 2 amb 10 unitats PROC: 2 CARREGA 2 PRIORITAT 60 PROC: 2 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 2 PRIORITAT 60 a 50 PROCESSADOR: 2 #PROG: 2 PROGRAM ID: 6 PRIO: 50 PROC#: 2 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 2 PRIO: 50 PROC#: 2 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 3 #PROG: 2 PROGRAM ID: 3 PRIO: 60 PROC#: 3 AC: 0 PC: 10 STATUS: 0 STACK: 0/100 PROGRAM ID: 7 PRIO: 50 PROC#: 3 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 3 amb 10 unitats PROC: 3 CARREGA 3 PRIORITAT 60 PROC: 3 EXECUTAT 10 PASSOS: 10 de 10 STATUS 0 PROGRAMA 3 PRIORITAT 60 a 50 PROCESSADOR: 3 #PROG: 2 PROGRAM ID: 7 PRIO: 50 PROC#: 3 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 3 PRIO: 50 PROC#: 3 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROCESSADOR: 0 #PROG: 2 PROGRAM ID: 4 PRIO: 40 PROC#: 0 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 0 PRIO: 40 PROC#: 0 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 100 unitats PROC: 0 CARREGA 4 PRIORITAT 40 PROC: 0 EXECUTAT 86 PASSOS: 86 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROC: 0 CARREGA 0 PRIORITAT 40 PROC: 0 EXECUTAT 14 PASSOS: 100 de 100 STATUS 0 PROGRAMA 0 PRIORITAT 40 a 30 PROCESSADOR: 0 #PROG: 1 PROGRAM ID: 0 PRIO: 30 PROC#: 0 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 PROCESSADOR: 1 #PROG: 2 PROGRAM ID: 5 PRIO: 40 PROC#: 1 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 1 PRIO: 40 PROC#: 1 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 1 amb 100 unitats PROC: 1 CARREGA 5 PRIORITAT 40 PROC: 1 EXECUTAT 86 PASSOS: 86 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROC: 1 CARREGA 1 PRIORITAT 40 PROC: 1 EXECUTAT 14 PASSOS: 100 de 100 STATUS 0 PROGRAMA 1 PRIORITAT 40 a 30 PROCESSADOR: 1 #PROG: 1 PROGRAM ID: 1 PRIO: 30 PROC#: 1 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 PROCESSADOR: 2 #PROG: 2 PROGRAM ID: 6 PRIO: 50 PROC#: 2 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 2 PRIO: 50 PROC#: 2 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 2 amb 100 unitats PROC: 2 CARREGA 6 PRIORITAT 50 PROC: 2 EXECUTAT 86 PASSOS: 86 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROC: 2 CARREGA 2 PRIORITAT 50 PROC: 2 EXECUTAT 14 PASSOS: 100 de 100 STATUS 0 PROGRAMA 2 PRIORITAT 50 a 40 PROCESSADOR: 2 #PROG: 1 PROGRAM ID: 2 PRIO: 40 PROC#: 2 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 PROCESSADOR: 3 #PROG: 2 PROGRAM ID: 7 PRIO: 50 PROC#: 3 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 PROGRAM ID: 3 PRIO: 50 PROC#: 3 AC: 0 PC: 50 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 3 amb 100 unitats PROC: 3 CARREGA 7 PRIORITAT 50 PROC: 3 EXECUTAT 86 PASSOS: 86 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROC: 3 CARREGA 3 PRIORITAT 50 PROC: 3 EXECUTAT 14 PASSOS: 100 de 100 STATUS 0 PROGRAMA 3 PRIORITAT 50 a 40 PROCESSADOR: 3 #PROG: 1 PROGRAM ID: 3 PRIO: 40 PROC#: 3 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 PROCESSADOR: 0 #PROG: 1 PROGRAM ID: 0 PRIO: 30 PROC#: 0 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 0 amb 100 unitats PROC: 0 CARREGA 0 PRIORITAT 30 PROC: 0 EXECUTAT 72 PASSOS: 72 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROCESSADOR: 0 #PROG: 0 PROCESSADOR: 1 #PROG: 1 PROGRAM ID: 1 PRIO: 30 PROC#: 1 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 1 amb 100 unitats PROC: 1 CARREGA 1 PRIORITAT 30 PROC: 1 EXECUTAT 72 PASSOS: 72 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROCESSADOR: 1 #PROG: 0 PROCESSADOR: 2 #PROG: 1 PROGRAM ID: 2 PRIO: 40 PROC#: 2 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 2 amb 100 unitats PROC: 2 CARREGA 2 PRIORITAT 40 PROC: 2 EXECUTAT 72 PASSOS: 72 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROCESSADOR: 2 #PROG: 0 PROCESSADOR: 3 #PROG: 1 PROGRAM ID: 3 PRIO: 40 PROC#: 3 AC: 0 PC: 70 STATUS: 0 STACK: 0/100 EXECUTA PROCESSADOR 3 amb 100 unitats PROC: 3 CARREGA 3 PRIORITAT 40 PROC: 3 EXECUTAT 72 PASSOS: 72 de 100 STATUS -10 DISPOSITIU_ID: 1 : 91 PROCESSADOR: 3 #PROG: 0 PROCESSADOR: 0 #PROG: 0 EXECUTA PROCESSADOR 0 amb 100 unitats PROCESSADOR: 0 #PROG: 0 PROCESSADOR: 1 #PROG: 0 EXECUTA PROCESSADOR 1 amb 100 unitats PROCESSADOR: 1 #PROG: 0 PROCESSADOR: 2 #PROG: 0 EXECUTA PROCESSADOR 2 amb 100 unitats PROCESSADOR: 2 #PROG: 0 PROCESSADOR: 3 #PROG: 0 EXECUTA PROCESSADOR 3 amb 100 unitats PROCESSADOR: 3 #PROG: 0