Simulació d'un SO X58154


Statement
 

pdf   zip   tar

html

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 10 unitats. Per exemple, si tenia prioritat 47, el reencuarà amb prioritat 37. Com que la prioritat sempre ha de ser ≥ 0, si aquesta rebaixa fa que la prioritat sigui negativa, li posarà prioritat 0.

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 −10, però pot tenir altres tipus d’incidències, i tornarà un estatus diferent de −10 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
Public test cases
  • 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
    
    
  • Information
    Author
    Language
    Catalan
    Official solutions
    Make
    User solutions
    Make