Controlar y administrar los servicios y
peticiones de recursos y de hardware con respecto a uno o varios procesos, en
otras palabras, el kernel es el corazon del sistema operativo.
Interrupciones
Una interrupcion es un evento que
altera la secuencia en que el procesador ejecuta las instrucciones. La
interrupcion es generada por el hardware del sistema de computo.
Cuando ocurre una interrupcion:
- El
sistema operativo toma el control (es decir, el hardware pasa el control
al sistema operativo).
- El
sistema operativo guarda el estado del proceso interrumpido. En muchos
sistemas esta informacion se guarda en el bloque de control de proceso
interrumpido.
- El
sistema operativo analiza la interrupcion y transfiere el control a la
rutina apropiada para atenderla; en muchos sistemas actuales el hardware
se encarga de esto automaticamente.
- La
rutina del manejador de interrupciones procesa la interrupcion.
- Se
restablece el estado del proceso interrumpido (o del “siguiente proceso”).
- Se
ejecuta el proceso interrumpido (o el “siguiente proceso”).
Una interrupcion puede ser iniciada
especificamente por un proceso en ejecucion (en cuyo caso se suele denominar
trampa (trap), y se dice que esta sincronizada con la operacion del proceso) o
puede ser causada por algun evento que puede estar relacionado o no con el
proceso en ejecucion (en cuyo caso se dice que es asincrona con la operacion
del proceso). Los sistemas orientados hacia las interrupciones pueden
sobrecargarse. Si estas llegan con mucha frecuencia, el sistema no sera capaz
de atenderlas. En algunos sistemas orientados hacia el teclado, cada tecla
presionada almacena en la memoria un codigo de un byte y genera un interrupcion
para informar a la UCP que un caracter esta listo para ser procesado. Si la UCP
no puede procesar el dato antes de que se presione la siguiente tecla, se
pierde el primer caracter.
Despachador SCHEDULER
|
|
||||||||
Su mision es asignar los procesadores
centrales a los procesos. Es llamado cuando un proceso no puede seguir o
puede emplearse mejor en otra parte. Se activa en las situaciones siguientes:
Estas son causas especiales de
interrupcion, esto es, todas ellas consisten en interrupciones que alteran el
estado de algun proceso. El funcionamiento del dispatcher es el siguiente:
Para determinar el proceso mas
adecuado para ser ejecutado se ordenan los procesos ejecutables de acuerdo
con algun criterio de prioridad. Las prioridades de los procesos vienen dadas
y por tanto no son mision del dispatcher.
Se utilizara una cola ordenada de modo que en cabeza de la cola este el proceso mas adecuado, asi la mision del dispatcher es la de ejecutar el primer proceso de la cola que no este siendo ejecutado. Se puede tener en lugar de una cola, mas de una. Por ejemplo tres. Una para aquellos procesos a los que se les permiten dos segundos consecutivos de CPU. Otra para los que se les permiten 0,25 y otra para los que se les permite solo 0,02 segundos. Cada cola se sirve con el criterio de "el primero en llegar es el primero en ser servido". Las colas con menor tiempo tienen mayor prioridad. Los procesos se colocan inicialmente en la cola de menor tiempo. Si consume todo el tiempo asignado se transfiere a la siguiente cola en prioridad, asi sucesivamente.
Se consigue asi que los procesos que consumen menos tiempo de
procesador, reciban un proceso rapido, mientras que las tareas habituales uno
mas largo.
|
No hay comentarios:
Publicar un comentario