Академический Документы
Профессиональный Документы
Культура Документы
ESPECIFICACION
FUNCION PRINCIPAL
VAR
RESP: BOOLEANO
Respuesta: CARACTER
(*Inicializa las tipos de interrupciones admitidos*)
llenarInterrupciones()
MIENTRAS (RESP)
LeerProcesos();
LeerInterrupciones();
ShortestJobFirst();
mostrarResultados();
(*podrhaber un men de opciones para agregar
mas procesos, e interrupciones, y la opcilankificar
de nuevo seria una mas de la lsita*)
ESCRIBIR ("Desea planificar de nuevo? S/N")
LEER (Respuesta)
SI (Respuesta = S )
RESP = VERDADERO
SINO
RESP = FALSO
FIN MIENTRAS
FIN PRINCIPAL
procesos e
INICIO
MAX_TIME = CALCULAR_STE() (*Calcula la suma de tiempos de ejecucion*)
PARA I = 1 HASTA MAX_TIME HACER
INICIO
(*Verifica el estado de las estructuras*)
INDICE_PROCESONUEVO = LLEGOUNPROCESO(I) (*if el i es igual al proceso.
tiempo de llegada*)
INDICE_TERMINADO = TERMINO_UN_PROCESO(I) (*if el i es igual al proceso.
tiempo de salida*)
INDICE_INTERRUPCION = HAYINTERRUPCION(I) (*busca si coincide el punto de
llegada de la interrupcion con el i*)
SI (INDICE_PROCESONUEVO <> -1) ENTONCES
ENCOLAR_EN_LISTOS (INDICE_PROCESO)
(*La cola contendrun m do que reordena cuando alguien entra*)
FIN SI
(*Si el proceso ha finalizado (si no hay ninguno devuelve -1 tambien)*)
(*SI (INDICE_TERMINADO = -1 Y INDICE_INTERRUPCION <> -1) ENTONCES
PEJECUCION = PLANIFICAR();
FIN SI*)
(* si no hay interrupcion*)
SI (INDICE_INTERRUPCION <> -1)
PROCESOS[INDICE_PEJECUCION].TIEMPOESPERATOTAL +=
INTERRUPCIONES[I].DURACION
PROCESOS[INDICE_PEJECUCION].TIEMPOESPERAACTUAL =
INTERRUPCIONES[I].DURACION
PROCESOS[INDICE_PEJECUCION].FALTA EJECUTAR =
PROCESOS[INDICE_PEJECUCION].TInicioEjecucion +
PROCESOS[INDICE_PEJECUCION].duracispan> - I
ENCOLAR_EN_ESPERA(INDICE_PEJECUCION)
PEjecucion = PLANIFICAR(I)
(* El m do debe buscar en la cola de listos el mas corto
RETORNAR
FIN PLANIFICAR
INDICE_PEJECUTAR