Diferencia entre revisiones de «Multiprogramación»

Contenido eliminado Contenido añadido
m Revertidos los cambios de 186.113.244.177 (disc.) a la última edición de Addbot
Cinevoro (discusión · contribs.)
Sin resumen de edición
Línea 1:
{{referencias}}
Se denomina '''multiprogramación''' a launa técnica quepor permitela que dos o más procesos[[Proceso ocupen(informática)|proceso]]s lapueden mismaalojarse unidaden dela [[Memoria de ordenador|memoria]] principal y seanser ejecutados alconcurrentemente "mismopor tiempo"el enprocesador unao [[CPU]] (en realidad estamos ante un '''pseudo-paralelismo''', dado que en una única CPU sólo puede haber un proceso ejecutándose a la vez). La idea detrás de esto es que, dadas las velocidades de procesamiento actuales, se crea una "sensación" de simultaneidad para el usuario del sistema.
 
Con la multiprogramación, la ejecución de los procesos (o [[Hilo (informática)|hilo]]s) se va solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en paralelo (simultáneamente). Se trata de un paralelismo simulado, dado que la CPU sólo puede trabajar con un proceso cada vez (el ''proceso activo''). De ahí que, en rigor, se diga que la CPU ejecuta «concurrentemente» (no simultáneamente) varios procesos; en un lapso de tiempo determinado, se ejecutarán alternativamente partes de múltiples procesos cargados en la memoria principal. <ref>{{cita libro|apellidos=Prieto Espinosa|nombre=Alberto|título=Introducción a la Informática|año=2002|editorial=McGraw-Hill|isbn=84-481-3217-3|páginas=476-482|ubicación=Madrid}}</ref>
Por ejemplo, cuando un proceso en ejecución llega al punto de tener que esperar por un dispositivo de E/S, el CPU quedará desocupado tanto y cuanto el proceso siga en espera y no retome su ejecución. Los sistemas que implementan multiprogramación evitan eso, ya que durante ese tiempo de espera pasan a ejecutar otro proceso teniendo así la CPU ocupada de forma constante.
 
En los antiguos sistemas monoprogramados, cuando un proceso en ejecución requería hacer uso de un dispositivo de E/S, el procesador quedaba ocioso mientras el proceso continuase en espera y no retomara su ejecución. En cambio, en un sistema multiprogramado, cuando un proceso <var>P</var><sub>x</sub> concluye o se bloquea (en espera de una [[Entrada/salida|operación de E/S]]), el [[Núcleo (informática)|núcleo]] del sistema operativo toma el control de la CPU para efectuar lo que se denomina un «[[cambio de contexto]]», a fin de dar turno a otro proceso <var>P</var><sub>y</sub> para que se ejecute. Nótese que cuando el proceso <var>P</var><sub>x</sub> recobre el turno, reanudará su ejecución justo en el punto exacto en que se interrumpió. Este mecanismo supone un mejor reparto de la [[carga de trabajo]] y un mayor aprovechamiento de la CPU, lo que redunda en un mayor rendimiento.
 
== Ventajas ==
Línea 9 ⟶ 11:
*Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S y por ende aumenta la eficiencia en el uso del CPU
*Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física
 
== Referencias ==
{{listaref}}
 
[[Categoría:Programación paralela]]