Este sistema operativo al igual que Linux, Windows NT y Amoeba permite la multiprogramación, en estos sistemas el procesador ejecuta cada programa durante decenas o centenares de milisegundos, para luego conmutar al programa siguiente. En cada instante el procesador está ejecutando un sólo programa, pero a lo largo de un espacio de tiempo puede haber ejecutado partes de diversos programas dando así la sensación de paralelismo. Para poder realizar esto necesitamos una buena planificación de cómo los procesos se ejecutarán en la CPU.
Un proceso es un programa en ejecución que comprende el valor actual del contador de programa, de los registros y de las variables. Conceptualmente cada proceso tiene su propio procesador virtual y la CPU va conmutando de un proceso a otro. Para que esta conmutación pueda darse el sistema dota a los procesos una serie de estados en los que pueden encontrarse. Estos estados en Minix son tres, pero como veremos más adelante en Windows NT son 6 y en Linux son 5. Estos estados son:
- En ejecución: el proceso esta usando el procesador.
- Bloqueado: el proceso está esperando a que ocurra un evento externo.
- Listo : el proceso está preparado para ser ejecutado, pero está parado.
Existen cuatro transiciones posible entre los diferentes estados que son:
- De ejecución a bloqueado
- De ejecución a listo
- De listo a ejecución
- De bloqueado a listo
La primera transición ocurre cuando un proceso no puede continuar, por ejemplo porque tiene que leer de un tubo en el que todavía no se ha escrito.
La segunda y tercera transición es el planificador el encargado de realizarlas, para realizar estas transiciones el planificador dota a cada proceso de un quantum de tiempo que indica el tiempo que cada proceso deberá estar en ejecución y cuando este tiempo a expirado realiza la transición 2 para "sacar" del procesador al proceso que se está ejecutando y después realiza la transición 3 para "meter" en el procesador a un proceso que está en el estado listo. La forma en que se realizan estas transiciones por parte del planificador la explicaré más adelante.
Por último la cuarta transición se produce cuando el proceso que estaba bloqueado recibe la información que precisaba para continuar ejecutando.
Para implementar este modelo de procesos el sistema operativo utiliza la tabla de procesos que posee una posición por cada proceso. Esta posición contiene información sobre el estado del proceso, su contador de programa, el puntero a pila, la memoria asignada, el estado de sus ficheros abiertos, información relativa a su planificación y a su utilización de los recursos, es decir, todo lo que hay que salvar para que cuando el proceso pasa de ejecución a listo después pueda volver a pasar a ejecución.
El planificador de Minix es el nivel más inferior del sistema operativo, todo el manejo de interrupciones así como el manejo y la parada de los procesos y la comunicación entre ellos están ocultos dentro del planificador. Es por esto que el planificador debe ser muy eficiente porque de él depende que el sistema operativo le saque el mayor rendimiento posible a la CPU.
No hay comentarios:
Publicar un comentario