2. DEFINICION
Se denomina multiprogramación a la técnica
que permite que dos o más procesos ocupen
la misma unidad de memoria principal y que
sean ejecutados al "mismo tiempo" (pseudo-
paralelismo, en una única CPU sólo puede
haber un proceso a la vez) en la unidad
central de proceso o CPU.
3. VENTAJAS
La ya mencionada, varios procesos en ejecución.
Permite el servicio interactivo simultáneo a varios usuarios de
manera eficiente.
Aprovecha los tiempos que los procesos pasan esperando a
que se completen sus operaciones de E/S
Aumenta el uso de la 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.
4. INTERRUPCIONES
Una interrupción es simplemente un llamado forzoso a un procedimiento.
Algunas de las aplicaciones más importantes de las interrupciones son las siguientes:
1. En un ambiente de multiprogramación debe existir algún mecanismo que le permita al
sistema tomar el control después de un error en el programa de usuario, como por
ejemplo, una división por cero o desbordamiento. Esto puede lograrse por medio de
las interrupciones.
2. Un requisito indispensable para poder realizar eficientemente la multiprogramación es
que haya concurrencia entre el procesamiento central y las operaciones de
entrada/salida. Esto puede llevarse a cabo mediante las entradas/salidas
asincrónicas, cuya implantación está basado en el uso de interrupciones.
3. Cuando la computadora se usa como medio para controlar sistemas externos, es
indispensable que exista un mecanismo que permita comunicar al procesador la
existencia de eventos en dichos sistemas. El mecanismo que tradicionalmente se usa
para este fin es el e interrupciones.
4. Para poder realizar la multiprogramación eficientemente es necesario contar con un
medio que permita repartir el tiempo del procesador entre los diferentes usuarios, sin
que exista el peligro de que un programa permanezca usando el procesador por
mucho tiempo. Los relojes conjuntamente con las interrupciones, permiten solucionar
este problema.
5. LAS INTERRUPCIONES PUEDEN SER CLASIFICADAS EN
TRES GRUPOS DESDE EL PUNTO DE VISTA DE SU
FUNCIONALIDAD:
1. Interrupciones Asincrónicas: Son todas aquellas que ocurren de forma
simultánea con el procesamiento, por algún suceso que es externo e
independiente a la ejecución del proceso en curso, por agentes distintos al
procesador. Un ejemplo típico son las originadas por los periféricos.
2. Desvíos: Se refieren a las interrupciones debidas a programación causadas
por el procesador al ejecutar una instrucción, tienen carácter sincrónico
con respecto al procesamiento. Por ejemplo las interrupciones causadas
por división por cero, desbordamiento, error de protección de memoria.
3. Llamadas al Supervisor (SVC): Pueden activar al sistema operativo desde el
programa que se está ejecutando; estos se comunican con el sistema
operativo para solicitarle un servicio. Son conocidas también como
interrupciones por software.
6. CONCURRENCIA
PRINCIPIOS GENERALES DE LA CONCURRENCIA
En un sistema multiprogramador con un único procesador, los procesos se intercalan en el tiempo
aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce
una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la
eficiencia del procesamiento y en la estructuración de los programas.
La intercalación y la superposición pueden contemplarse como ejemplos de procesamiento
concurrente en un sistema monoprocesador, los problemas son consecuencia de la velocidad de
ejecución de los procesos que no pueden predecirse y depende de las actividades de otros
procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes
dificultades:
Compartir recursos globales es riesgoso
Para el sistema operativo es difícil gestionar la asignación óptima de recursos.
Las dificultades anteriores también se presentan en los sistemas multiprocesador.
El hecho de compartir recursos ocasiona problemas, por esto es necesario proteger a dichos recursos.
Los problemas de concurrencia se producen incluso cuando hay un único procesado