Sei sulla pagina 1di 3

La memoria virtual en trminos sencillos

Vamos a comenzar con una aplicacin hipottica. El cdigo de mquina que conforma esta
aplicacin tiene un tamao de 10000 bytes. Tambin requiere otros 5000 bytes para el
almacenamiento de datos y para la memoria intermedia de E/S. Esto significa que para
ejecutar la aplicacin, deben haber ms de 15000 bytes de RAM disponible; un byte menos y la
aplicacin no ser capaz de ejecutarse.

Este requerimiento de 15000 bytes se conoce como el espacio de direcciones de la aplicacin.
Es el nmero de direcciones nicas necesarias para almacenar la aplicacin y sus datos. En las
primeras computadoras, la cantidad de RAM disponible tena que ser mayor que el espacio de
direcciones de la aplicacin ms grande a ejecutar; de lo contrario, la aplicacin fallara con un
error de "memoria insuficiente".

Un enfoque posterior conocido como solapamiento intent aliviar el problema permitiendo a
los programadores dictar cuales partes de sus aplicaciones necesitaban estar residentes en
memoria en cualquier momento dado. De esta forma, el cdigo requerido solamente para
propsitos de inicializacin poda ser sobreescrito con cdigo a utilizar posteriormente.
Mientras que el solapamiento facilit las limitaciones de memoria, era un proceso muy
complejo y susceptible a errores. El solapamiento tambin fallaba en solucionar el problema
de las limitaciones de memoria globales al sistema en tiempo de ejecucin. En otras palabras,
un programa con solapamiento requera menos memoria para ejecutarse que un programa sin
solapamiento, pero si el sistema no tiene suficiente memoria para el programa solapado, el
resultado final es el mismo un error de falla de memoria.

Con la memoria virtual el concepto del espacio de direcciones de las aplicaciones toma un
significado diferente. En vez de concentrarse en cuanta memoria necesita una aplicacin para
ejecutarse, un sistema operativo con memoria virtual continuamente trata de encontrar una
respuesta a la pregunta "qu tan poca memoria necesita la aplicacin para ejecutarse?".

Aunque inicialmente pareciera que nuestra aplicacin hipottica requiere de un total de 15000
bytes para ejecutarse, recuerde nuestra discusin anterior en la Seccin 4.1 el acceso a
memoria tiende a ser secuencial y localizado. Debido a esto, la cantidad de memoria requerida
para ejecutar la aplicacin en un momento dado es menos que 15000 bytes usualmente
mucho menos. Considere los tipos de accesos de memoria requeridos para ejecutar una
instruccin de mquina sencilla:

La instruccin es leda desde la memoria.

Se leen desde memoria los datos requeridos por la instruccin.

Despus de completar la instruccin, los resultados de la instruccin son escritos nuevamente
en memoria.

El nmero real de bytes necesarios para cada acceso de memoria varan de acuerdo a la
arquitectura del CPU, la instruccin misma y el tipo de dato. Sin embargo, an si una
instruccin requiere de 100 bytes de memoria por cada tipo de acceso de memoria, los 300
bytes requeridos son mucho menos que el espacio de direcciones total de la aplicacin de
15000 bytes. Si hubiese una forma de hacer un seguimiento de los requerimientos de memoria
de la aplicacin a medida que esta se ejecuta, sera posible mantener la aplicacin
ejecutndose usando menos memoria que lo que indicara su espacio de direcciones.

2.4.3 Interbloqueo (DeadLock). Es el bloqueo permanente de un conjunto de procesos que
compiten por losrecursos del sistema o bien se comunican unos con otros. A diferencia de
otrosproblemas de la gestin concurrente de procesos, para el caso general no existeuna
solucin eficiente. En esta seccin, se examinar la naturaleza del problemadel interbloqueo.
Todos los interbloqueos suponen demandas contradictorias de recursos porparte de dos o ms
procesos. Los dos ejes del diagrama representan el avance delos dos procesos en trminos de
instrucciones ejecutadas. El avance conjunto delos dos procesos se representa entonces con
una secuencia discreta de puntos enel espacio. Las lneas horizontales o verticales representan
el intervalo de tiempoen el que slo uno de los procesos est ejecutndose (intercalado); una
lneadiagonal significa ejecucin simultnea (solapamiento). Supngase que existe unpunto en
la ejecucin de cada proceso en el que se requiere el uso exclusivo deambos recursos, Rl y R2,
para continuar. En el ejemplo, llega un punto en el que elproceso Pl ha adquirido el recurso Rl
y el proceso P2 ha adquirido el recurso R2 ycada proceso necesita el otro recurso. Este es el
punto de interbloqueo. El interbloqueo se produce si cada proceso retiene un recurso y solicita
el otro.Puede parecer que es un error de programacin en lugar de un error del diseodel
sistema operativo. Sin embargo, se ha visto que el diseo de un programaconcurrente entraa
gran dificultad. Se producen interbloqueos como ste y lacausa est frecuentemente en la
compleja lgica del programa, lo que hace msdifcil su deteccin. Una posible estrategia para
resolver estos interbloqueos esimponer restricciones en el diseo del sistema sobre el orden
en el que se solicitanlos recursos.

Entrelazado
Entrelazado es una tcnica consistente en organizar la informacin digital de forma no contigua
para mejorar las prestaciones de un sistema.
El entrelazado (interleaving en ingls) es empleado principalmente en telecomunicaciones (por
ejemplo va satlite o ADSL), tecnologas multimedia, acceso a memoria y formatos de archivo. El
trmino "multiplexado" se utiliza a veces para referirse al entrelazado de una seal digital.
El entrelazado se emplea tambin para organizar estructuras de datos multidimensionales.
Entrelazado en transmisin de datos[editar]
El entrelazado es utilizado en transmisin digital de datos como tcnica para proteger la
informacin frente a los errores de rfaga (burst errors). Este tipo de errores ocasionales
afectan a varios bits seguidos, e invalidan las propiedades correctoras de error de los cdigos
redundantes que se emplean en la transmisin de datos. Al emplear tcnicas de entrelazado,
los errores de rfaga se ven distribuidos entre varias palabras, facilitando la labor correctora del
cdigo empleado.
En el siguiente ejemplo, empleamos un cdigo de correccin de errores muy simple,
consistente en repetir cuatro veces cada bit a transmitir. Este esquema de codificacin permite
corregir errores de un bit. Si el mensaje a enviar es "abcdefg", representando cada letra un bit,
el mensaje codificado ser "aaaabbbbccccddddeeeeffffgggg".
Si empleamos transmisin sin entrelazado:

Mensaje sin error:
aaaabbbbccccddddeeeeffffgggg
Mensaje con error de rfaga:
aaaabbbbccc____deeeeffffgggg
La palabra dddd ha sido desfigurada en tres de sus bits, de modo que o bien no podr ser
decodificada, o lo ser de forma incorrecta.
Empleando tcnica con entrelazado:
Mensaje sin error:
aaaabbbbccccddddeeeeffffgggg
Entrelazado:
abcdefgabcdefgabcdefgabcdefg
Transmisin con error de rfaga:
abcdefgabcd____bcdefgabcdefg
Desentrelazado:
aa_abbbbccccdddde_eef_ffg_gg
De cada palabra aaaa, eeee, ffff, gggg, slo se altera un bit, de modo que nuestro cdigo es
capaz de decodificar todo correctamente.
La principal desventaja del entrelazado es que introduce latencia al sistema, ya que tenemos
que esperar a la recepcin de todos los bits del mensaje para poder desentrelazar y emplear
las tcnicas de correccin de errores

Potrebbero piacerti anche