4.
Multiprogramación
Es 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” en la unidad central de proceso o CPU.
·
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.1.
Partición
de tamaño fijo
Si tenemos un sistema
operativo mono usuario la CPU
aprovecharía este aprovecharía
mínimamente el rendimiento ya que al ser un único proceso por vez, si el
sistema tiene una entrada o salida, el
tiempo de espera del sistema aumentaría considerablemente. En el grafico de continuación se verá una comparativa entre un sistema trabajando
con un computo intensivo y un sistema ralentizado por entradas y salidas
La programación de tamaño fijo consiste en crear una ilusión de simultaneidad dividiendo la memoria principal en bloques de tamaño fijo el cual crea una ilusión de simultaneidad
Para saber en qué parte de la memoria se encontraba cada programa se encargaban cada partición relacionarla con un programa y dividirlo en sus procesos
Para el SO. Resulta sencillo ya que todas las instrucciones de un mismo programan van a estar en la misma ubicación.
Este procedimiento es más complejo ya que hay que tener en cuenta el tamaño de todas las particiones del sistema (en memoria principal) y de cuales están libres en cada ciclo, pero también tiene una gran ventaja que le da al sistema una mayor flexibilidad para distintos tipos de procesos.
4.1.2.
Sistema de protección
Cuando se usa la
asignación contigua de memoria la protección suele implementarse con varios
registros de limites.
Los extremos de una
partición pueden ir delineados con 2 registros o, también, indicados por el
limite inferior o superior y el tamaño de la partición.
En el caso de que
vayan delineados por 2 registros:
En el caso de que
vayan indicados:
4.1.3.
Inconveniente de la
fragmentación
La fragmentación en
el almacenamiento es algo que ocurre en cualquier sistema de independientemente
de cómo se organice la memoria.
Normalmente este
inconveniente se produce cuando:
·
Los trabajos del usuario no llenan completamente sus
particiones designadas.
·
Una partición permanece sin usar porque es demasiado
pequeña para alojar un trabajo que está en espera.
4.2.
Partición
de tamaño variable
Cuando se usa una partición
de tamaño variable los procesos ocupan tanto espacio como necesitan, pero sin
superar el espacio disponible en la memoria.
En particiones
variables, no hay limites fijos de memoria, luego la partición de un trabajo es
un propio tamaño.
Se consideran
“esquemas de asignación contigua”, ya que un programa debe ocupar las
posiciones adyacentes de almacenamiento.
Una vez que los
procesos terminan dejan disponibles espacios de memoria principal entre los
cuales hay otros procesos, estos se pueden denominar “agujeros”.
Estos agujeros
pueden ser usados por otros procesos o trabajos y que cuantos estos terminan
dejan otros agujeros más pequeños. Esto de forma sucesiva provoca que los
agujeros sean cada vez más numerosos provocando un mayor desperdicio de
memoria.
Estos agujeros se
pueden combinar o fusionar, de forma que cuando un proceso termina y el
almacenamiento que libera tiene limites con otros agujeros, combina o fusiona
con todos los agujeros adyacentes formando uno solo.