Diferencia entre revisiones de «Multiprocesamiento simétrico»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 201.170.211.77 a la última edición de RoyFocker
Línea 4: Línea 4:
La arquitectura SMP (Multi-procesamiento simétrico, también llamada UMA, de ''Uniform Memory Access''), se caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria. Todos los microprocesadores compiten en igualdad de condiciones por dicho acceso, de ahí la denominación "simétrico".
La arquitectura SMP (Multi-procesamiento simétrico, también llamada UMA, de ''Uniform Memory Access''), se caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria. Todos los microprocesadores compiten en igualdad de condiciones por dicho acceso, de ahí la denominación "simétrico".


Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del [[sistema operativo]], estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.
Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del [[sistema operativo]], estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.

Una [[computadora]] SMP se compone de microprocesadores independientes que se comunican con la memoria a través de un [[bus]] compartido. Dicho ''bus'' es un recurso de uso común. Por tanto, debe ser arbitrado para que solamente un microprocesador lo use en cada instante de tiempo. Si las computadoras con un solo microprocesador tienden a gastar considerable tiempo esperando a que lleguen los datos desde la memoria, SMP empeora esta situación, ya que hay varios parados en espera de datos.


== Conceptos relacionados ==
== Conceptos relacionados ==


*Arquitectura [[NUMA]]
*

Multiproceso simétrico, una de las formas más fáciles y baratas de aumentar el rendimiento del hardware es poner más de una CPU en la placa. Esto se puede realizar haciendo que CPUs diferentes tengan trabajos diferentes (multiproceso asimétrico) o haciendo que todos se ejecuten en paralelo, realizando el mismo trabajo (multiproceso simétrico o SMP). El hacer multiproceso asimétrico requiere un conocimiento especializado sobre las tareas que la computadora debe ejecutar, lo que no está a nuestro alcance en un sistema operativo de propósito general como Linux. En cambio el multiproceso simétrico es relativamente fácil de implementar.

Por relativamente fácil, quiero decir exactamente eso; no que sea realmente fácil. En un entorno de multiproceso simétrico, las CPU comparten la misma memoria, y como resultado, el código que corre en una CPU puede afectar a la memoria usada por otra. Ya no puedes estar seguro de que una variable que has establecido a un cierto valor en la línea anterior todavía tenga el mismo valor; la otra CPU quizás haya estado jugando con ella mientras no mirábamos. Obviamente, es imposible programar algo de esta manera.

En el caso de la programación de procesos esto no suele ser un problema, porque un proceso normalmente sólo se ejecutará en una CPU a la vez. El núcleo, sin embargo, podría ser llamado por diferentes procesos ejecutándose en CPUs diferentes.

En la versión 2.0.x, esto no es un problema porque el núcleo entero está en un gran `spinlock'. Esto significa que si una CPU está dentro del núcleo y otra CPU quiere entrar en él, por ejemplo por una llamada al sistema, tiene que esperar hasta que la primera CPU haya acabado. Esto es lo que hace el SMP en Linux; es seguro, pero terriblemente ineficiente.

En la versión 2.2.x, varias CPUs pueden estar dentro del núcleo al mismo tiempo. Esto es algo que los escritores de módulos deben tener en cuenta.

[[Categoría:Arquitectura de computadoras]]
[[Categoría:Programación paralela]]
[[Categoría:Siglas de informática]]

[[cs:Symmetric multiprocessing]]
[[de:Symmetrisches Multiprozessorsystem]]
[[el:Συμμετρική πολυεπεξεργασία]]
[[en:Symmetric multiprocessing]]
[[fr:Symmetric multiprocessing]]
[[it:Multiprocessore simmetrico]]
[[ja:対称型マルチプロセッシング]]
[[ko:대칭형 다중 처리]]
[[nl:SMP]]
[[pl:Wieloprocesorowość symetryczna]]
[[pt:Multiprocessamento simétrico]]
[[ru:Симметричная мультипроцессорность]]
[[sv:Symmetric Multiprocessing]]
[[zh:对称多处理机]]

Revisión del 18:20 15 sep 2009

SMP es la sigla de Symmetric Multi-Processing, multiproceso simétrico. Se trata de un tipo de arquitectura de ordenadores en que dos o más procesadores comparten una única memoria central.

Explicación detallada

La arquitectura SMP (Multi-procesamiento simétrico, también llamada UMA, de Uniform Memory Access), se caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria. Todos los microprocesadores compiten en igualdad de condiciones por dicho acceso, de ahí la denominación "simétrico".

Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.

Una computadora SMP se compone de microprocesadores independientes que se comunican con la memoria a través de un bus compartido. Dicho bus es un recurso de uso común. Por tanto, debe ser arbitrado para que solamente un microprocesador lo use en cada instante de tiempo. Si las computadoras con un solo microprocesador tienden a gastar considerable tiempo esperando a que lleguen los datos desde la memoria, SMP empeora esta situación, ya que hay varios parados en espera de datos.

Conceptos relacionados

Multiproceso simétrico, una de las formas más fáciles y baratas de aumentar el rendimiento del hardware es poner más de una CPU en la placa. Esto se puede realizar haciendo que CPUs diferentes tengan trabajos diferentes (multiproceso asimétrico) o haciendo que todos se ejecuten en paralelo, realizando el mismo trabajo (multiproceso simétrico o SMP). El hacer multiproceso asimétrico requiere un conocimiento especializado sobre las tareas que la computadora debe ejecutar, lo que no está a nuestro alcance en un sistema operativo de propósito general como Linux. En cambio el multiproceso simétrico es relativamente fácil de implementar.

Por relativamente fácil, quiero decir exactamente eso; no que sea realmente fácil. En un entorno de multiproceso simétrico, las CPU comparten la misma memoria, y como resultado, el código que corre en una CPU puede afectar a la memoria usada por otra. Ya no puedes estar seguro de que una variable que has establecido a un cierto valor en la línea anterior todavía tenga el mismo valor; la otra CPU quizás haya estado jugando con ella mientras no mirábamos. Obviamente, es imposible programar algo de esta manera.

En el caso de la programación de procesos esto no suele ser un problema, porque un proceso normalmente sólo se ejecutará en una CPU a la vez. El núcleo, sin embargo, podría ser llamado por diferentes procesos ejecutándose en CPUs diferentes.

En la versión 2.0.x, esto no es un problema porque el núcleo entero está en un gran `spinlock'. Esto significa que si una CPU está dentro del núcleo y otra CPU quiere entrar en él, por ejemplo por una llamada al sistema, tiene que esperar hasta que la primera CPU haya acabado. Esto es lo que hace el SMP en Linux; es seguro, pero terriblemente ineficiente.

En la versión 2.2.x, varias CPUs pueden estar dentro del núcleo al mismo tiempo. Esto es algo que los escritores de módulos deben tener en cuenta.