Clasificado en Apuntes de Informática de Otros cursos.
Escrito el 14 de Junio de 2009 en
Español y con un tamaño de 11.614 bytes.
desperdiciado al final de la ultima pag. fisica, cosa grave si el tamaño de pag. es grande) y fragmentacion d la tabla (espacio de MF desperdiciado en almacenar las tablas de paginas, cosa grave si el tamaño d pag. es pequeño) • El tamaño de pagina practico se situa entre 128 y 1024 palabras (entre 512 y 8192 bytes) siendo la ubicacion totalmente asociativo ALGORITMO DE CARGA - ¿cuando debe transferirse una pag. virtual desde la mem. secundaria a la primaria? --> Soluciones: 1) Carga por demanda: la pag. virtual se carga en la mem. principal cuando es referenciada y produce un fallo de pagina. Metodo simple y no sobrecarga el canal d paginacion. Usual en microprocesadores de 16 y 32 bits. 2) Precarga: como consecuencia d una fallo de pag. se carga en mem. principal la pagina fallada junto con otras adicionales. Es un metodo predictivo, se precargan aquellas paginas que producirian fallos en el futuro. Nº de paginas precargadas depende de la organizacion d la info. en la mem. secundaria, del tipo d interface entre la mem. principal y la secundaria, y del tamaño d la PMA y si es de tamaño cte. Normalmente se carga una sola pagina.ALGORITMO DE REEMPLAZO - controlado por el S.O. (aproximaciones teoricas: FIFO, LRU... . Aproximaciones practicas: LFU, NUR...) INCONVENIENTES PAGINADO- las paginas son d tamaño fijo y arbitrario: no tienen relacion con la estructura logica del programa. Puede haber datos en una pagina no relacionados con los demas. Ineficiencia por el principio d localidad (4.2) SISTEMAS SEGMENTADOS: sistema de mem. virtual q considera bloques d tamaño desigual, definidos en funcion d la estructura logica del codigo y datos del programa (procedimientos, funciones, arrays, matrices). Cada bloque se denomina segmento. La mayoria d la caracteristicas (conceptos) d los sistemas segmentados son similares a las d los sistemas paginados TRADUCCION DE DIRECCIONES - direcciones virtuales: (si,dj) si nº de segmento; dj desplazamiento • Tabla de segmentos: contiene info. pa traducir el nº d segmento a una dir. fisica d comienzo del segmento. Sus entradas contienen info. similar a la contenida en las entradas d las tablas d pagina, junto con la longitud del segmento • Fallo de segmento: referencia a un segmento no residente en la mem. principal • Tipos de traduccion: los mismos q en los sistemas paginados (directa asociativa o hibrida) con la diferencia d q el desplazamiento se SUMA (no se concatena) FALLOS DE SEGMENTO - es necesario determinar si hay espacio d mem. principal pa ubicar el segmento virtual fallado (este problema no existe en los sistemas paginados) --> Solucion: estructurar la mem. princiapl definiendo dos listas encadenadas similares (lista de segmentos reservados, lista d segmentos libres (LAVS) normalmente en orden ascendente d su posicion ESPACIO VIRTUAL VS PAGINADO - un sistema segmentado es un espacio bidimensional: los segmentos son bloques de dir. virtuales contiguas pero los segmentos no son contiguos entre si • Se produce una excepcion al intentar acceder a una posicion fuera del segmento COMPARTICION DE LOS SEGMENTOS - posibilidad d comparticion d segmentos: a) un segmento compartido es referenciado por 2 procesos mediante el mismo nº b) un segmento compartido es referenciado por 2 procesos mediante nº diferentes: esquema + versatil, implementado permitiendo una tabla d segmentos privada a cada proceso y puede necesitarse q el segmento compartido genere nºs d segmento dependientes del contexto ALGORITMOS DE CARGA Y UBICACION - el proceso de carga es similar a los sistemas paginados, siendo el proceso de ubicacion mas complejo • Los algortimos de ubicacion estan todos basados en la lista de LAVS (list of avaliable segments): A) FIRST-FIT: hace uso d la lista LAVS. El segmento solicitado no residente se coloca en el primer segmento libre d la mem. principal donde quepa (busqueda en orden ascendente d direcciones fisica). Si el procesador solicita el segmento S no residente d tamaño L se realizan las siguientes acciones: 1- Sea Q <-- FIRST (puntero inicial de LAVS) 2- Si TAMAÑO(Q) > L, S se coloca a partir d la dir. fisica Q+TAMAÑO(Q)-L. Se actualiza TAMAÑO(Q) a TAMAÑO(Q)-L, 3-Si TAMAÑO(Q)=L, S se coloca a partir d la dir. fisica Q. Se borra el segmento libre de LAVS. 4-Si TAMAÑO(Q)<L, se asigna Q<--SIGUIENTE(Q) y se va a 2 • Para evitar la formacion d segmentos libres demasiado pequeños, se cambian: 2-Si TAMAÑO(Q)>L+C... 3-Si L<=TAMAÑO(Q)<=L+C B) BEST-FIT: hace uso de la lista LAVS. El segmento solicitado no residente se coloca en el segmento libre d la mem. principal + pequeño donde quepa. El procedimiento d ubicacion es el mismo q el del algoritmo first-fit, pero previamente, se ordena la lista LAVS segun el orden creciente d los tamaños d los segmentos libres. Necesidad d ordenacion C) WORST-FIT: hace uno d la lista LAVS. El segmento solicitado no residente en mem. se coloca en el mayor d los segmentos libres d la mem. principal. El procedimiento d ubicacion es similar al del algortimo Best-fit salvo q la lista LAVS se ordena en orden decreciente d los tamaños d los segmentos libres.D) BINARY-BUDDY: tamaño de segmento y LAVS potencia entera d 2. Hace uso d la lista LAVS. Procedimiento d ubicacion --> se divide la lista LAVS en n listas (2n es el tamaño max. d los segmentos), la iesima lista encadena los segmentos libres de tamaño 2i (buddies), las n listas pueden restructurarse d 2 formas [ a) un segmento libre d la lista (i+1)-esima se divide en 2 segmentos iguales y se encadenan a la lista iesima; b) proceso inverso al a) ]. Desarrollo d un algoritmo d ubicacion basado en las n listas anteriores y sus dos mecanismos de reestructuracion COMPARACION DE LOS ALGORITMOS DE UBICACION - BestFit: minimiza el tamaño del segmento libre sobrante tras la ubicacion. Es la peor de las elecciones, genera muchos espacios libres pequeños q no seran d utilidad • WorstFit: basado en la idea d q tras la ubicacion, el segmento libre sobrante es suficientemente grande como para ser util • MAS EFICIENTES: FirtsFit y Binary Buddy • Inconvenientes asociados a la ubicacion: fragmentacion extera --> perdida d espacio de mem. fisica debido a la produccion de segmentos libres sobrantes d tamaño muy pequeños (inutiles) COMPACTACION O REEMPLAZO - cuando se solicita un segmento no residente, pueden darse 2 situaciones: que se encuentre un segmento libre d tamaño suficiente (ubicacion) o que no se encuentre tal segmento libre (compactacion o reemplazo) • Compactacion (garbage collection): se redisponen los segmentos libres d forma
contigua en una zona d la mem. fisica (se crea un unico segmento libre d gran tamaño) con los problemas d que hay un gran consumo d tiempo y q tiene asociada una actualizacion d las tablas d segmentos • Reemplazo: similar al reemplazo d los sitemas paginados. Unica diferencia--> debe tenerse en cuenta el tamaño d segmento solicitado. Problemas--> uso poco eficiente d la mem. fisica y el segmento reemplazado puede necesitarse en un futuro • La relacion entre compactacion y reemplazo no es simple: depende d cada situacion particular • Tamaño d los segmentos: los segmentos pueden ser desmesuradamente grandes --> Solucion: limitar el tamaño d los segmentos o paginar los segmentos (segmentacion con paginacion) SISTEMAS SEGMENTADOS CON PAGINACION - hoy en dia pocos sistemas usan segmentacion pura debido a los problemas para efectuar los reemplazos. Enfoque hibrido: segmentos paginados --> simplifica el reemplazo (no se precisa q la mem. d un segmento sea contigua y no es preciso cargar los segmentos enteros en memoria • Los segmentos se dividen en un nº entero d paginas --> segmentacion lineas (domina paginacion) o segmentacion nominal (domina segmentacion) • Direccion virtual: (si, pj, dk) espacio 3-dimensional --> si es el nº d segmento virtual, pj es el nº d pagna virtual, dk es el desplazamiento dentro d la pagina • PTS apunta a la tabla d segmentos del proceso en curso. Limite es el campo q indica el tamaño d cada segmento. Los bits d proteccion estan a nivel d paginas (no es necesario en segmentacion nominal) Flag indica la residencia en PMA de cada pagina • DOS traducciones: elevado coste temporal --> Soluciones: uso de TLB o uso d registros rapidos • El fallo d pagina se resuelve d la misma forma q en los sistemas puramente paginados --> Problema: fallo en el acceso a la tabla d paginas --> lentifica --> 2 fallos PAGINACION VS SEGMENTACION - PALABRAS POR DIR.: Paginacion: 1. Segmento: 2 (segmento y desplazamiento) • ¿VISIBLE AL RPOGRAMADOR? P: invisible a la aplicacion del programador. S: puede ser visible a la aplicacion del programador • REEMPLAZO DE UN BLOQUE: P: trivial (todos los bloques mismo tamaño). S: dificil (debe encontrar una parte no usada d mem. principal d tamaño variable y contigua) • USO INEFICIENTE DE MEMORIA: P: fragmentacion interna (porcion inutilizada d pagina). S: fragmentacion externa (partes no usadas d mem. principal) • TRAFICO DE DISCO EFICIENTE: P: si (ajusta tamaño d pagina para equilibrar tiempo d acceso y tiempo d transferencia). S: no siempre (pequeños fragmentos pueden transferir solo unos pocos bytes) **En los algoritmos de ubicacion en los ejemplos, los datos entre parentesis el 1º es la dir. q empieza el segmento libre y el 2º es su tamaño**
| Imprimir | |
| Karma: 8% |