Untitled
unknown
ada
2 years ago
1.5 kB
3
Indexable
sem grupos[1..4] = 0; semllego_grupo[1..4] = 0; sem examenes_listos [1..100] = 0; notas[1..100] = 0; sem hay_Examen = 0; contador_grupo[1..4] = 0; mutex_grupo[1..4] = 1; barrera_grupo[1..4] = 0; cola cola cola cola2 Process Coordinador(ID: 1..4){ int id_alumno= 0; Examen examen; P(llego_grupo[ID]) //espera la barrera de los 25 for i= 1 to 25 push(cola[ID], new examen()) for i= 1 to 25 V(hay_examen[ID]) // avisa que pueden recoger el examen los de ese concurso for i= 1 to 25 P(termino_examen[ID]) // espera q termine P(mutex_profes[ID]) id_alumno = pop(cola[ID], id_alumno , examen) ; V(mutex_profes[ID]) Int nota = corrige_examen(examen) notas[id_alumno] = nota //pongo la nota V(examenes_listos[id_alumno]) } Process NoDocentes(ID:1..100){ mi_grupo= elegir_grupo() //yase cual es mi grupo P(mutex_grupo[mi_grupo]) contador_grupo[mi_grupo]++ if contador_grupo[mi_grupo] == 25 for i= 1 to 25 do begin V(barrera_grupo[mi_grupo]) V(llego_grupo[mi_grupo]); V(mutex_grupo[mi_grupo]); P(barrera_grupo[mi_grupo]); //ya pasamos la barrera P(hay_examen[mi_grupo]); P(mutex_grupo[mi_grupo]) Examen = pop(cola[mi_grupo]) V(mutex_grupo[mi_grupo]) resuelvo_examen(examen) P(mutex_grupo[mi_grupo]) push(cola2[mi_grupo], id, examen); V(mutex_grupo[mi_grupo]) V(termino_examen[mi_grupo]) // Aviso q hay un examen para corregir P(examenes_listos[ID]); reviso_mi_nota(notas[ID]); //me puedo ir }
Editor is loading...