Você está na página 1de 4

Administracin de memoria Su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no,

as como administrar el intercambio entre la memoria principal y el disco en los casos. La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, as como algunos datos a emplear. Que es un apuntador Es una variable cuyo valor es una direccin de memoria Mecanismos de asignacin Un mecanismo de asignacin determina la cantidad de bloques (particiones) que sern administrados en la memoria. (Una particin, mltiples particiones) Estrategias de asignacin Una estrategia de asignacin de memoria determina el lugar donde ser cargado un nuevo proceso en base a un criterio. 1. PRIMER AJUSTE. El SO asigna el primer bloque de memoria libre con espacio suficiente para satisfacer la informacin. 2. MEJOR AJUSTE. El so busca el bloque de memoria que represente el menor desperdicio segn el requerimiento. 3. PEOR AJUSTE. El so asigna el bloque ms grande que encuentre. Mtodos de asignacin de memoria SEGMENTACIN. Este mtodo consiste en la asignacin de bloques de memoria de tamao variable, llamados segmentos. El tamao de cada segmento ser el requerido segn la peticin, por ejemplo el tamao del proceso a cargar. PAGINACION La paginacin consiste en considerar el espacio de direcciones lgicas de cada proceso como un conjunto de bloques de tamao consistente llamados pginas. Cada direccin lgica manejada para un proceso estar conformada por un par de valores OPCIONES DE IMPLEMENTACION DE LA TABLA DE PAGINAS 1. - La tabla de pginas se implementa completamente en hardware. VENTAJA: Se obtiene una alta velocidad de acceso a memoria. DESVENTAJA: Resulta problemtica cuando la tabla de pginas debe ser grande. 2. - Implementar la tabla de pginas en la memoria principal. VENTAJA: La tabla de pginas puede crecer segn se requiera. DESVENTAJA: La velocidad de leer a memoria es relativamente baja, dado que cada referencia a memoria involucra 2 accesos. MEMORIA VIRTUAL. Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente.

TECNICAS DE CARGA. Demanda de pgina. Consiste en iniciar la ejecucin de los procesos sin paginas cargadas, estas se irn cargando conforme el proceso las demande. Pre-paginacin. Consiste en que el so predice cuales paginas se ocuparan durante la ejecucin de un proceso ALGORITMOS DE DESCARGA (REEMPLAZO). MIN. Consiste en descargar la o las paginas que no se necesitaran en el periodo de tiempo mas largo en e l futuro. FIFO. Consiste en tener un contador de tiempo para cada pagina para descargar las mas viejas. LRU (Least Recently Used). Consiste en descargar las paginas menos usadas (recientemente) Tablas de hash es una estructura de datos que socia llaves o claves con valores. La operacin principal que soporta de manera eficiente es la bsqueda: permite el acceso a los elementos almacenados a partir de una clave generad. Ventajas : Acceso directo insercion y busqueda Desventaja: Necesita una taza de ocupacin No mayor al 75% (desperdicio de memoria) Redimencionar es complejo y costoso Las operaciones bsicas implementadas en las tablas hash son: insercin(llave, valor) bsqueda(llave) que devuelve valor borrar(llave). Para usar una tabla hash se necesita: Una estructura de acceso directo (normalmente un array). Una estructura de datos con una clave Una funcin resumen (hash) cuyo dominio sea el espacio de claves y su imagen (o rango) los nmeros naturales. Funcin de hash: Funcion que en base a un valor de entrada cualquiera devuelve siempre el mismo valor numrico en rango establecido. Ventajas e inconvenientes de las tablas hash Una tabla hash tiene como principal ventaja que el acceso a los datos suele ser muy rpido si se cumplen las siguientes condiciones: Una razn de ocupacin no muy elevada (a partir del 75% de ocupacin se producen demasiadas colisiones y la tabla se vuelve ineficiente). Una funcin resumen que distribuya uniformemente las claves. Si la funcin est mal diseada, se producirn muchas colisiones. Los inconvenientes de las tablas hash son: Necesidad de ampliar el espacio de la tabla si el volumen de datos almacenados crece. Se trata de una operacin costosa.

Dificultad para recorrer todos los elementos. Se suelen emplear listas para procesar la totalidad de los elementos. Desaprovechamiento de la memoria. Si se reserva espacio para todos los posibles elementos, se consume ms memoria de la necesaria; se suele resolver reservando espacio nicamente para punteros a los elementos. Resolucin de colisiones Si dos llaves generan un hash apuntando al mismo ndice, los registros correspondientes no pueden ser almacenados en la misma posicin. Encadenamiento separado o Hashing abierto En la tcnica ms simple de encadenamiento, cada casilla en el array referencia una lista de los registros insertados que colisionan en la misma casilla. Direccionamiento abierto o Hashing cerrado Las tablas hash de direccionamiento abierto pueden almacenar los registros directamente en el array. sondeo lineal: en el que el intervalo entre cada intento es constante (frecuentemente 1). sondeo cuadrtico: en el que el intervalo entre los intentos aumenta linealmente (por lo que los ndices son descritos por una funcin cuadrtica). doble hasheo: en el que el intervalo entre intentos es constante para cada registro pero es calculado por otra funcin hash.

algoritmo hash- insertar nombre hash (char *nombre) { int a=Atoi(nombre) //hash cerrado con sondeo lineal return a mod 1000, } Insertar (char *nombre) { int Nhash=hash(nombre) while (tabla hash(Nhash)!=NULL) { Hash=Nhash+1; //manejo decoliciones } Tabla de hash[Nhash]=Nombre { Void main() { Char tabla hash (1000); Char *VLeido; Prinft(ingrese alores) While { Sacanf (/s,&VLeido) } } Bsqueda por nombre Busque (char *Nombre) { Int + hash=hash[Nombre] While (tabla hash[Nhash]!=nombre) { If (tabla hash[NHash]=NULL) { Retun No existe } Nhash =Nhas+1; } } Return Nhash { Tabla hash [Nhash]=NULL }