viernes, 24 de junio de 2016

Sistemas operativos Multiproceso

Sistemas operativos Multiproceso

Algunos sistemas ejecutan sólo un único proceso, otros sistemas ejecutan múltiples procesos a lavez. La mayoría de las computadoras están basadas en un único procesador, y un procesador puede ejecutar sólo una instrucción cada vez. Por lo tanto, como es posible que un único procesador ejecute procesos múltiples? La respuesta inmediata es que no lo hace de ese modo. El procesador ejecuta un proceso por un periodo pequeño de tiempo, y entonces se mueve al próximo proceso y así continuamente. Como el procesador ejecuta millones de instrucciones por segundo, da la impresión de que muchos procesos están siendo ejecutados al mismo tiempo.



En un sistema operativo que soporta más de un proceso a la vez, algún mecanismo debe ser usado para intercalar tareas. Hay dos maneras para hacer este cambio:

  • Escalonamiento por Cooperación: indica que una tarea que está siendo ejecutada actualmente dejará voluntariamente en algún momento el procesador y permitirá que otros procesos sean ejecutados.
  • Escalonamiento por Prioridades: significa que una tarea corriente será interrumpida y el procesador se dedica a otro proceso en estado de espera.

El problema del cambio por cooperación es que un proceso podría tardar y así denegar la ejecución de otros procesos. Un ejemplo de un sistema de cooperación es el Sistema Operativo Windows de 16 bits (antiguos). El escalonamiento por prioridades es mejor. Da respuestas a todos los procesos y ayuda a prevenir el “cuelgue” de los equipos. Windows Server es un ejemplo de tal sistema operativo.

Escalonamiento (Scheduling)

La decisión de cuál es el próximo proceso que debe ser ejecutado es llamado escalonamiento (scheduling), y puede ser hecho de una gran variedad de maneras. Los escalonamientos por cooperación generalmente son muy simples, ya que los procesos son organizados en una fila circular (ROUND ROBIN). Cuando el proceso actual termina, va hacia el fin de la fila. El proceso que queda primero en la fila es ejecutado, y todos los procesos se mueven un lugar hacia arriba en la fila. Eso provee una medida justa, pero no impide que un proceso monopolice el sistema.

El escalonamiento por prioridad usa un reloj en tiempo real que genera una interrupción a intervalos regulares (digamos, cada 1/100 de un segundo). Cada vez que una interrupción ocurre, el procesador se mueve a otra tarea. Los sistemas operativos que generalmente usan ese tipo de escalonamiento le atribuyen prioridades cada proceso, de tal manera que algunos pueden ser ejecutados más frecuentemente que otros.


0 comentarios:

Publicar un comentario