1.
Diferencia entre direcciones fisicas
y logicas de memoria y de ejemplos
DIFERENCIA DIRECCIÓN DE MEMORIA
|
|
Dirección Física
|
Dirección Lógica
|
●
Dirección que
percibe la unidad de memoria, es utilizado para acceder a las celdas de la
memoria RAM. se calcula en tiempo de ejecución mediante la MMU (Unidad de
Gestión de Memoria)
●
Una dirección
física o dirección absoluta, es una posición real en la memoria principal
●
Es la que llega
al chip de memoria
|
●
Es la dirección
que genera el proceso. También se conoce como dirección virtual.
●
Es una
referencia a una posición de memoria independiente de la asignación actual de
datos a la memoria
●
Es generada por
la CPU.
|
Las
direcciones fisicas y logicas son iguales en los esquemas de vinculación en
tiempo de compilación y de carga, pero difieren en el esquema de vinculación
en tiempo de ejecución
2.
Explique cuál es la diferencia entre fragmentación externa
e interna
●
Fragmentación interna: es
la memoria asignada que no se utiliza, se le asigna más memoria a un proceso
que no la necesita. Ésta se deriva del hecho de que mientras la memoria está
denominada en bytes, la unidad más pequeña disponible generalmente es mayor que
eso debido a las reglas de memoria de direccionamiento.
Por ejemplo: El sistema carga un programa que requiere de 50 MB y 19
bytes de memoria, puede que no sea capaz de iniciar el próximo programa a ese
20° byte, en lugar de iniciarlo al byte 24 o 28. Estas brechas resultan en
pequeñas áreas de memoria inutilizable, simplemente porque el sistema no puede
abordar todos y cada byte de memoria disponible para él.
Si bien pérdida de memoria por la fragmentación interna
generalmente es mucho menor que la pérdida por la fragmentación externa, estas
pequeñas cantidades todavía pueden sumarse con el tiempo.
●
Fragmentación Externa: Esto
ocurre cuando el primer bloque libre de memoria no es suficiente para que el
siguiente programa lo use.
Por ejemplo: Un sistema carga tres programas en la memoria, cada uno
ocupando 50 megabytes o MB. El segundo programa termina, dejando ese bloque de
50 MB libres. Si el siguiente programa a iniciar requiere de 100 MB, no sería
capaz de utilizar ese bloque de 50 MB de espacio libre, y el sistema le asigna
el siguiente intervalo de 100 MB libres. Esa brecha en la memoria utilizada se
mantendría sin uso hasta que algún programa requiere menos de 50 MB de memoria.
Con el tiempo, estos pequeños espacios pueden sumarse, y
un sistema se puede ejecutarse con memoria baja a pesar de las muchas pequeñas
áreas de memoria libre.
3.
Cual es la función de la Unidad de Manejo de Memoria (UMM)
Algunas de las
funciones de este dispositivo son:
●
La traducción de las
direcciones lógicas (o virtuales) a direcciones físicas (o reales)
●
La protección de la memoria
●
El control de caché
●
Manejar los accesos a la
memoria por parte de la Unidad de Procesamiento Central (CPU) o procesador.
4.
Explicar los algoritmos de asignación y dar un ejemplo
a.
Algoritmo del mejor ajuste (Best Fit):
Consiste en asignarle al proceso el hueco con menor
desperdicio interno, el hueco el cual al serle asignado el proceso deja menos
espacio sin utilizar.
■
Elige el bloque que tiene
el tamaño más cercano al
solicitado.
solicitado.
■
Peor rendimiento de todos.
■
Como se busca el bloque más
pequeño por proceso, se
produce el menor volumen de fragmentación, pero hay
que compactar más a menudo
produce el menor volumen de fragmentación, pero hay
que compactar más a menudo
Desventajas:
●
Su mayor inconveniente es
su orden de complejidad (orden lineal, O(n)) debido a que hay que recorrer todo
el mapa de bits o toda la lista de control
●
Otro problema es la
fragmentación externa, debido a que se asigna el menor hueco posible, el
espacio sobrante será del menor tamaño posible lo que da lugar a huecos de
tamaño normalmente insuficiente para contener programas.
Ejemplo
Estado de bloque de memoria
ANTES DE SOLICITUD
|
|
Dirección Inicial
|
Tamaño del bloque
de memoria
|
4075
|
105
|
5225
|
5
|
6785
|
600
|
7560
|
20
|
7600
|
205
|
10250
|
4050
|
15125
|
230
|
24500
|
1000
|
b.
Algoritmo del primer ajuste (First Fit):
Consiste en recorrer la lista de particiones hasta
encontrar un hueco suficientemente grande
■
Es el más rápido.
■
Puede haber muchos procesos
cargados en la zona inicial de la memoria, que debe ser examinada cuando se
busca un bloque libre.
Ventaja : Rápido y después de la liberación es fácil unir huecos
Desventaja: Fragmentación externa y huecos pequeños en al zona baja y
grandes en la alta.
Ejemplo:
c.
Algoritmo peor ajuste
Se busca el hueco con mayor desperdicio interno.El hueco
el cual al serle asignado el proceso deja más espacio sin utilizar, y se corta
de él el trozo necesario (así la porción sobrante será del mayor tamaño posible
y será más aprovechable).
Desventaja: Tiene el mismo inconveniente en cuanto a orden de
complejidad que el mejor ajuste (debido a la longitud de las búsquedas) y la
fragmentación no resulta demasiado eficiente.
d.
Algoritmo del siguiente ajuste (Next Fit):
Es una variante del anterior que comienza a buscar a
partir de la posición anterior, de forma que los huecos grandes se reparten por
igual en toda la memoria
■
A menudo se asigna un
bloque de memoria en la última parte de la memoria donde está el mayor bloque.
■
El mayor bloque de memoria
se parte en pequeños bloques.
■
Se necesita compactar para
obtener un bloque grande en la última zona final memoria.
Ejemplo: Suponiendo una memoria principal de 32 KB.
Solución:
5.
Diferencia entre paginación y segmentación y un ejemplo
a.
Paginación
Divide el programa en trozos pequeños del
mismo tamaño pero sin mirar lo que coge, así un programa solo puede
desperdiciar el fragmento final de su última página, lo que supone un ahorro de
memoria y más facilidad de acceso a puntos intermedios.
La paginación también es útil para pasar un programa que
está cargado en la RAM pero inactivo al disco duro, dejando espacio para otros
programas, y luego se recupera cuando haga falta.
Por ejemplo: si tu estás leyendo un pdf, y en un momento dado lo
minimizas y te pones a jugar a un juego, tu procesador probablemente pasará el
pdf a una zona reservada de tu disco duro para dejar espacio en la RAM al
juego, y cuando cierres el juego y vuelvas a abrir el pdf, la cpu volverá a
cargar el PDF en la RAM.
Esto lo notaras porque el pdf tardará un poco en cargarse, pero una vez cargado verás que puedes minimizarlo y volver a abrirlo de forma instantánea porque ya vuelve a estar en la RAM, que es una memoria un millón de veces más veloz que el disco duro.
Esto lo notaras porque el pdf tardará un poco en cargarse, pero una vez cargado verás que puedes minimizarlo y volver a abrirlo de forma instantánea porque ya vuelve a estar en la RAM, que es una memoria un millón de veces más veloz que el disco duro.
b.
Segmentación
divide
al programa en unidades lógicas, como subfunciones, arreglos, variables, etc. y
es de tamaño variable según lo que sea cada segmento. Así se consigue tener un
proceso dividido en trozos autocontenidos y fáciles de acceder, si hay que leer
o cambiar una parte de ese programa no hace falta tocar más que los segmentos
necesarios en vez de mirar todo el proceso entero.
Proporciona protección contra accesos no autorizados,
además un segmento puede ser compartido por varios procesos que usen código
común, evitando guardar dos veces lo mismo (librerías dinámicas) y accediendo a
él de forma concurrente.