Diferencia entre revisiones de «Planificación en sistemas multiprocesadores»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(aclaraciones)
Línea 1: Línea 1:
En los [http://1984.lsi.us.es/wiki-ssoo/index.php/Tipos_de_Sistemas_Operativos sistemas multiprocesadores] disponemos de n (n>=2) procesadores, siendo los criterios de planificación los mismos seguidos hasta ahora pero contando con más de un procesador.
+
Los sistemas multiprocesadores son aquellos que disponen de 2 o más procesadores. Hasta el momento hemos aplicado los criterios de planificación considerando un único procesador. Con más de un procesador, tenemos que decidir a qué procesador se asignan cada uno de los procesos en ejecución. Hay dos estrategia de asignación de un proceso a un procesador en un sistemas multiprocesadores, que son:
Hay que considerar que la asignación del proceso a un procesador puede ser
 
* '''Estática''': el proceso es asignado a un determinado procesador desde que empieza su ejecución hasta que termina. El criterio es ejecutado una sola vez para cada proceso (antes de su ejecución).
 
* '''Dinámica''': en la que se permite la migración (cambio) de procesador o balanceo de carga ya que los procesos no están vinculados con un único procesador. Si el sistema tiene la memoria principal compartida la migración de procesador no cuesta nada, sin embargo en sistemas con memorias separadas la migración tiene un coste añadido.
 
  
Se utiliza principalmente la estática debido al principio de localidad espacio y temporal, cuando un proceso se carga en un procesador se carga en caché los datos más frecuentes accedidos por el proceso. Si cambiamos de procesador a dicho proceso habría que cargar de nuevo los datos en la caché del otro procesador.
+
* ''Asignación estática'': Cuando un proceso pasa a estado activo por primera vez, se le asigna un determinado procesador al que se asocia hasta fin de ejecución. Por tanto, un proceso tiene que pasar a estado activo empleando el mismo procesador hasta fin de ejecución. Dicho de otra manera, no es posible migrar procesos de un procesador a otro incluso si hay procesadores ociosos.
  
Ejemplo de planificación en sistemas multiprocesadores con dos CPU:
+
* ''Asignación dinámica'': En este caso, nuestros procesos pueden pasar a estado activo cambiando de procesador si el último procesador en el que se ejecutó está ocupado y existe algún procesador libre. Este método de asignación permite la migración de procesos de un procesador a otro, llevando a cabo un balanceo de carga de procesos entre los procesadores existentes. No obstante, la migración de un proceso de un procesador a otro es costosa. Por tanto, '''siempre que sea posible''' se intentará permanecer en el mismo procesador para no incurrir en la penalización asociada a los fallos de caché que resultan de la migración de procesos.
  
[[Archivo:Ejemplo de multiprocesador.png]]
+
Los planificadores de los sistemas operativos modernos aplican una ''asignación híbrida'' de manera que emplean asignación estática la mayor parte del tiempo. Sin embargo, si el número de procesos asociados a un procesador supera en N unidades al de otro, se procede a migrar procesos al procesador con menor número de procesos para balancear la carga de trabajo.
 +
 
 +
El alto coste en la migración de procesos entre procesadores se debe a la penalización asociada a los fallos en la caché. Cada procesador generalmente dispone de una pequeña memoria asociativa de acceso rápido, también conocida como caché, en la que se almacenan los datos accedidos recientemente. Si migramos un proceso de procesador se tienen que cargar de nuevo los datos en la caché del nuevo procesador, reduciendo el rendimiento del sistema.
  
 +
A continuación, un ejemplo de planificación en sistemas multiprocesadores con dos CPUs:
  
Duda: aquí la penalización pa desempatar no nos dice nada, ¿no?... ambos procesos tienen 1 de índice cuando empatan... asi que, ¿por qué se tomó esa decision?¿  --[[Usuario:Danplaseg|Danplaseg]] 19:36 6 nov 2011 (UTC)
+
[[Archivo:Ejemplo de multiprocesador.png]]
  
Duda: En el instante 1, el proceso A agota su quantum de una unidad. Sin embargo, continúa ejecutándose otra unidad más. ¿Se trata de una errata? Pienso que el ejecicio está resuelto con q = 2.
+
Fíjese que tras el instante de tiempo 1, el proceso A continúa en el CPU 1 pues es el proceso B se asignó al CPU 2.

Revisión del 18:14 11 nov 2011

Los sistemas multiprocesadores son aquellos que disponen de 2 o más procesadores. Hasta el momento hemos aplicado los criterios de planificación considerando un único procesador. Con más de un procesador, tenemos que decidir a qué procesador se asignan cada uno de los procesos en ejecución. Hay dos estrategia de asignación de un proceso a un procesador en un sistemas multiprocesadores, que son:

  • Asignación estática: Cuando un proceso pasa a estado activo por primera vez, se le asigna un determinado procesador al que se asocia hasta fin de ejecución. Por tanto, un proceso tiene que pasar a estado activo empleando el mismo procesador hasta fin de ejecución. Dicho de otra manera, no es posible migrar procesos de un procesador a otro incluso si hay procesadores ociosos.
  • Asignación dinámica: En este caso, nuestros procesos pueden pasar a estado activo cambiando de procesador si el último procesador en el que se ejecutó está ocupado y existe algún procesador libre. Este método de asignación permite la migración de procesos de un procesador a otro, llevando a cabo un balanceo de carga de procesos entre los procesadores existentes. No obstante, la migración de un proceso de un procesador a otro es costosa. Por tanto, siempre que sea posible se intentará permanecer en el mismo procesador para no incurrir en la penalización asociada a los fallos de caché que resultan de la migración de procesos.

Los planificadores de los sistemas operativos modernos aplican una asignación híbrida de manera que emplean asignación estática la mayor parte del tiempo. Sin embargo, si el número de procesos asociados a un procesador supera en N unidades al de otro, se procede a migrar procesos al procesador con menor número de procesos para balancear la carga de trabajo.

El alto coste en la migración de procesos entre procesadores se debe a la penalización asociada a los fallos en la caché. Cada procesador generalmente dispone de una pequeña memoria asociativa de acceso rápido, también conocida como caché, en la que se almacenan los datos accedidos recientemente. Si migramos un proceso de procesador se tienen que cargar de nuevo los datos en la caché del nuevo procesador, reduciendo el rendimiento del sistema.

A continuación, un ejemplo de planificación en sistemas multiprocesadores con dos CPUs:

Ejemplo de multiprocesador.png

Fíjese que tras el instante de tiempo 1, el proceso A continúa en el CPU 1 pues es el proceso B se asignó al CPU 2.