Académique Documents
Professionnel Documents
Culture Documents
Sin embargo nunca hay suficiente memoria principal para contener todos los programas y estructuras de datos. Una de las tareas principales del SO es gestionar la memoria que supone cargar y descargar bloques desde y hacia el almacenamiento secundario.
Localidad Temporal: Tras referenciar una posicin de memoria en t, probablemente vuelva a ser referenciada en t + t:
Formacin de ciclos. Subrutinas. Pilas.
Reubicacin dinmica:
- Direccin fsica: la que llega a la memoria. - Direccin lgica o virtual: la generada por la CPU. - El MMU (Unidad de Manejo de Memoria) es el dispositivo que traduce direcciones virtuales a fsicas.
Escuela Universitaria de Informtica (Segovia) 10
Consecuencia:
Tamao de un proceso limitado al tamao de la memoria fsica.
Carga dinmica:
Las rutinas no se cargan hasta que se invocan (hasta que el programa llame a alguna rutina del mismo), mientras tanto permanecen en disco.
Escuela Universitaria de Informtica (Segovia)
11
El programa se descompone en mdulos separados (recubrimientos), que se cargan en un rea de memoria al efecto. Si se carga un recubrimiento, borra al que se encontraba ya cargado. El programa de usuario es responsable de cargar recubrimientos segn se necesiten.
Escuela Universitaria de Informtica (Segovia)
13
14
Mejoras:
Varios procesos en memoria. Intercambio un proceso mientras se ejecuta otro.
Criterios para gestionar el espacio de intercambio (poltica de gestin del rea de swap).
Escuela Universitaria de Informtica (Segovia) 15
16
17
Organizacin fsica:
La memoria disponible para un programa y sus datos puede ser insuficiente:
Mediante superposicin varios mdulos son asignados a la misma regin de memoria.
18
19
20
21
22
23
24
25
26
27
29
30
31
32
33
34
35
36
Direccin relativa:
La direccin se expresa como una posicin relativa a algn punto conocido.
Direccin fsica:
La direccin absoluta o la posicin real en la memoria principal.
Escuela Universitaria de Informtica (Segovia)
37
3.3 Paginacin.
Paginacin:
Solucin al problema de la fragmentacin externa. Idea fundamental:
Dividir la memoria fsica (principal) en bloques iguales de tamao fijo relativamente pequeos llamados marcos. La memoria lgica (procesos) se divide en bloques del mismo tamao llamados pginas. Ejecucin: Las pginas se cargan desde el almacenamiento auxiliar a un marco de memoria que est disponible.
38
3.3 Paginacin.
Soporte hardware para la paginacin:
Cada direccin generada por la CPU se divide en:
Nmero de pgina p: ndice de la tabla de pginas. Desplazamiento en la pgina d.
39
3.3 Paginacin.
Soporte hardware para la paginacin:
La direccin base de cada pgina (nmero de pgina) se combina con el desplazamiento para definir la direccin de memoria fsica. El SO controla la utilizacin de memoria mediante una tabla de marcos de pgina. El tamao de la pgina y del marco est definido por el hardware y suele ser una potencia de dos que vara entre los 512 B y los 16 MB. Cuando se utiliza paginacin las direcciones relativas y lgicas y coinciden. La paginacin puede producir fragmentacin interna.
Escuela Universitaria de Informtica (Segovia) 40
3.3 Paginacin.
Inconveniente: Fragmentacin interna.
Sucede cuando las necesidades de memoria de un proceso no coinciden con los tamaos de las pginas. Tamao de las pginas?
Pequeo:
Mejora la fragmentacin interna. Aumenta el tamao de la tabla de pginas.
Grande:
Peor desde el punto de vista de la fragmentacin interna. Tamao de las tablas de pginas menor. La E/S de disco es ms eficiente cuando la cantidad de datos transferidos es mayor.
3.3 Paginacin.
Estructura de la tabla de pginas:
Cada SO tiene sus propios mtodos para almacenar la TDP. Denominador comn:
Una tabla de pginas para cada proceso.
42
3.3 Paginacin.
Implementacin en hardware de la tabla de pginas:
Una TDP se implementa en el hardware como un conjunto de registros. Esquema de registros:
Problema: El empleo de registros para la TDP es satisfactorio si la tabla es razonablemente pequea. Solucin:
Mantener la TDP en memoria. Registro base de la tabla de pginas que apunta a la TDP: Cambio de contexto: ms rpido (slo cambiar el valor de este registro). Gran inconveniente: tiempo de traduccin. Escuela Universitaria de Informtica (Segovia)
43
3.3 Paginacin.
Implementacin en hardware de la tabla de pginas:
Solucin: usar un TLB (Translation Lookahead Buffer, o tabla de registros asociativos).
Pequeo cach especial en hardware. Cada registro consta de dos partes: clave y valor. Funcionamiento:
Se presenta una clave y, si encuentra alguna coincidencia, devuelve el valor correspondiente.
44
3.3 Paginacin.
TLB:
45
3.3 Paginacin.
TLB:
Funcionamiento: acceso posicin i
Obtiene el nmero de pgina donde se encuentra i. Si est en TLB => Obtenemos el marco de pgina donde se encuentra. Sino, acceso a la TDP y actualizar TLB.
Si TLB llena => Sustitucin de una de las existentes.
Tasa de aciertos:
Porcentaje de las veces que un nmero de pgina se encuentra en los registros asociativos. Buenas tasas de aciertos: 80% - 98%
3.3 Paginacin.
Proteccin:
Las pginas pueden tener asignados bits de proteccin (ej. lectura, escritura, ejecucin). Bit de validez/no validez
Indica si la pgina correspondiente est en el espacio de direcciones lgico del proceso y por tanto es vlida.
47
3.3 Paginacin.
Comparticin:
Varios procesos podran tener la misma memoria fsica apuntada en sus respectivas TDPs. La comparticin de cdigo exige que el cdigo sea reentrante, es decir, no puede modificarse a s mismo.
48
3.3 Paginacin.
Paginacin multinivel:
Sistemas modernos => espacio de direcciones lgico muy grande (232 a 264) => la TDP crece demasiado. Problema: tamao de la TDP.
Por ejemplo, si el tamao de pgina es de 4k, un proceso podra requerir hasta 4Mb de espacio fsico para la TDP. Solucin: paginar la TDP teniendo varios niveles de pginas (ej: 80336).
49
3.3 Paginacin.
Paginacin multinivel:
1. La MMU toma la parte asociada al n de pgina del primer nivel. 2. Busca de entrada de la TDP: Obteniendo el 2 nivel. 3. Busca la entrada de 2 nivel: Obtiene el marco de pgina. 4. Indexa el byte dentro del MP de memoria fsica.
Escuela Universitaria de Informtica (Segovia)
50
3.3 Paginacin.
Tabla de pginas invertida:
Problema: tamao que puede llegar a ocupar la TDP, ya que la TDP puede contener millones de entradas que podran consumir grandes cantidades de memoria. Idea: usar una tabla de pginas invertida.
Tiene una entrada por cada marco real de la memoria. Cada entrada consiste en la direccin virtual de la pgina almacenada en esa posicin de memoria real => slo hay una tabla de pginas en el sistema y slo tiene una entrada por cada pgina de memoria fsica.
3.4 Segmentacin.
Segmentacin:
Memoria como una coleccin de segmentos de tamao variable. Un espacio de direcciones lgico es una coleccin de segmentos, cada uno de ellos con nombre y longitud. Una direccin contiene el nombre del segmento y un desplazamiento. No es necesario que todos los segmentos de todos los programas tengan la misma longitud. Existe una longitud mxima de segmento. Como consecuencia del empleo de segmentos de distinto tamao, la segmentacin resulta similar a la particin dinmica.
Escuela Universitaria de Informtica (Segovia)
52
3.4 Segmentacin.
Hardware de segmentacin:
1. La MMU toma la parte asociada al n de segmento se busca en la TDS. 2. Se verifica si el desplazamiento est dentro de los lmites. 3. Indexa el byte dentro de la memoria fsica. Sumando el desplazamiento base.
Escuela Universitaria de Informtica (Segovia) 53
3.4 Segmentacin.
Hardware de segmentacin:
Una direccin lgica tiene dos partes:
Nmero de segmento: s => ndice de la tabla de segmentos. Desplazamiento dentro del segmento: d => entre 0 y el lmite (longitud) del segmento.
54
3.4 Segmentacin.
Implementacin de la TDS:
La tabla de segmentos se puede colocar en registros rpidos o en memoria. (Una TDS que se mantiene en registros se puede consultar rpidamente). Si los programas manejan muchos segmentos, podemos tener un registro base de la tabla de segmentos, que apunta a la tabla de segmentos. Se puede usar un conjunto de registros como cach de entradas de la TDS.
55
3.4 Segmentacin.
Ventajas de la segmentacin:
Proteccin y compartimiento:
Se puede establecer proteccin a nivel de segmentos: los segmentos de cdigo no se modifican. Un segmento puede compartirse haciendo que alguna entrada de la TDS de dos procesos distintos apunten al mismo segmento de memoria. La segmentacin produce fragmentacin externa. Puede utilizarse paginacin para encontrar memoria suficiente, o intentar ejecutar otros procesos ms pequeos, aunque tengan menor prioridad.
56
3.4 Segmentacin.
Tcnica combinada: Segmentacin paginada.
Paginacin y segmentacin pueden combinarse (ej. 80386) con el fin de aprovechar las ventajas que ofrecen ambas polticas por separado.
Segmentacin: Flexibilidad y facilidad para la organizacin lgica. Paginacin: Mejorar el problema de la fragmentacin (importante para segmentos muy grandes).
3.4 Segmentacin.
Segmentacin paginada: Esquema de traduccin.
1. La MMU toma la parte asociada al n de Segmento y lo busca en la TDS. 2. Se verifica que el desplazamiento est dentro de los lmites. 3. Se obtiene la TDP de la TDS y se determina el MP. 4. Indexa el byte dentro del MP de la memoria fsica.
58