SlideShare una empresa de Scribd logo
1 de 49
CAPÍTULO I: GESTIÓN DE MEMORIA   3.1 Antecedentes 3.2 Espacio de direcciones físico y lógico.  3.3 Requisitos de Gestión de Memoria 3.3.1 Reubicación 3.3.2 Protección 3.3.3 Compartición
Antecedentes de la Gestión de Memoria ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción a la Gestión de Memoria ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Clasificación de la memoria según Tecnología de Manufactura
Jerarquía de la Gestión de Memoria Las memoria rápidas son caras. Las memorias grandes son lentas.
Jerarquía de la Gestión de Memoria Relación de Capacidad vs Costo
Jerarquía de Memoria Memoria  R eal : La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.  Por lo general esta memoria es de mayor costo que la memori a  secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cach é  es más rápida que la principal, pero su costo es a su vez mayor.
Jerarquía de Memoria Memoria virtual : 1.  El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusión de tener m á s memoria RAM de la que realmente hay en el sistema. 2.  Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que por lo tanto, pueden usar el espacio de direcciones completo..
Gestor de Memoria ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Espacio de direcciones lógico y físico   ,[object Object],[object Object],[object Object],[object Object]
Espacio de direcciones lógico y físico
TRADUCCIÓN DE DIRECCIONES   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TRADUCCIÓN DE DIRECCIONES   Traducción(IdProc, dir_lógica)      dir_física
TRADUCCIÓN DE DIRECCIONES ,[object Object],[object Object],[object Object],[object Object],[object Object]
TRADUCCIÓN DE DIRECCIONES   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UNIDAD DE MANEJO DE MEMORIA   ,[object Object],[object Object],[object Object],[object Object]
UNIDAD DE MANEJO DE MEMORIA ,[object Object]
INTERCAMBIO   Un proceso puede estar continuamente modificando su estado, lo cual implica que muchas veces un mismo proceso está en memoria principal para luego pasar a memoria auxiliar o secundaria, y volver a memoria principal para continuar su ejecución. Este proceso de retirada e incorporación de los procesos de y a la memoria se denomina Intercambio o swapping.   El objetivo del intercambio es dar cabida a la ejecución de m á s aplicaciones de las que pueden residir simultáneamente en la memoria del sistema: Por lo que el intercambio c onsiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario, para cargar otro previamente almacenado, no permite a un proceso utilizar m á s memoria RAM de la que realmente existe en el sistema.
INTERCAMBIO   El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imágenes de me m oria de todos los usuarios.
INTERCAMBIO   Las funciones que un intercambiador debe cumplir son:   -           Selección de los procesos para retirarlos de memoria. -           Selección de procesos para incorporarlos a memoria. Gestión y asignación del espacio de intercambio.
REUBICACIÓN La reubicación se refiere se refiere al hecho de cargar y ejecutar un  programa en una posición arbitraria de memoria. Existen dos tipos de reubicación: -  Reubicación estática : cuando un proceso que ha sido bajado a memoria secundaria al ser cargado nuevamente ocupará el mismo lugar en memoria principal donde se ubicaba al inicio; aún cuando el área esté ocupado deberá esperar para poderse colocar. Este esquema no ofrece muchas ventajas.  
REUBICACIÓN Reubicación dinámica:   cuando el proceso se va ha subir en memoria principal puede ser colocado en cualquier partición libre.  En este caso es necesario realizar un reasignación de direcciones cada vez que el programa se ejecute. Este esquema resulta costoso por el hardware que se utiliza, así como aumenta el tiempo de acceso a memoria.
PROTECCIÓN *  Para garantizar seguridad, el hardware puede trabajar con un par de registros base/límite.
PROTECCIÓN * Registrar los derechos de acceso en la propia memoria - A cada dirección se le añade un número de bits para identificar al propietario - Problema: costoso - Mejora:  Asociar estos bits a bloques de memoria física - Comprobación: tiempo de ejecución - SO => Clave “maestra” única que le da acceso sin restricciones a todos los bloques de memoria
COMPARTICIÓN * Utilizar particiones de memoria compartidas (comunes) ¿Protección? - Registros base/límite: requeriría conjuntos separados de pares de registros base/limite dedicados para acceder a los espacio de memoria privado y compartido. - Implica la existencia de algún mecanismo que indique en cada acceso que conjunto de registros emplear * Claves de protección: requeriría controlar los bloques compartidos para que en los conmutaciones de contexto se cambien las claves de protección - Necesidad de llevar la cuenta de que bloques están siendo .compartidos y ¿por quién?
ASIGNACIÓN CONTIGUA Cuando  hablamos de asignación contigua significa que cada objeto lógico es colocado en un conjunto de posiciones de memoria con direcciones estrictamente consecutivas.   Un espacio de memoria se divide generalmente en dos: una parte destinada para el Sistema Operativo residente y otra destinada a  proceso del usuario; tal como se ve en la siguiente figura:
ASIGNACIÓN CONTIGUA Existen dos esquemas de manejo:      Asignación con una sola partición:  En este caso, en el espacio correspondiente a los procesos de usuario se carga un solo proceso a la vez; estos procesos se los conoce como procesos transitorios.  El sistema operativo gasta poco tiempo y esfuerzo en gestionar la memoria de este modo.  Básicamente el SO necesita llevar la cuenta de las posiciones primera y última disponibles para la asignación de procesos transitorios. Cuando un proceso transitorio termina, el SO puede cargar otro para que se ejecute.  El SO debe asegurarse que el tamaño de la imagen de procesos a cargar esté dentro de los límites de la memoria disponible, caso contrario se no se puede cargar el proceso.
ASIGNACIÓN CONTIGUA El proceso anuncia su terminación y transfiere el control al SO invocando el servicio TERMINAR (EXIT) o su equivalente ; en cuyo momento puede cargarse otro proceso que esté esperando. Un monitor monoproceso raramente soporta protección entre procesos de usuario, ya que en cada momento sólo permite que haya un único proceso residente en memoria. Sin embargo es deseable proteger el código del sistema operativo para que no sea deteriorado por el proceso transitorio en ejecución, sino está protegido, el sistema puede caerse frecuentemente y necesitar ser arrancado de nuevo cuando se ejecutan programas de usuario sin depurar. Este tipo de asignación fue usada en PCs basadas en DOS.
ASIGNACIÓN CONTIGUA Asignación con múltiples particiones:  La técnica anterior permita la ejecución de un solo proceso de usuario a la vez. Sin embargo, lo que se requiere generalmente es que existan varios procesos en memoria.    Uno de los esquemas consiste en dividir la memoria en varias particiones de tamaño fijo, ubicando un proceso en cada partición.  La división puede realizarse de manera estática y dinámica.
ASIGNACIÓN DE MEMORIA PARTICIONADA ESTÁTICA Se divide a la memoria principal en un conjunto de regiones no sobrepuestas llamadas particiones. Las particiones se efectúan en algún momento antes de ejecutar los programas de usuario y desde ahí las particiones permanecen fijas. El número de particiones distintas representan un límite superior al número de procesos activos en el sistema. A este valor se le puede denominar grado de multiprogramación.
ASIGNACIÓN DE MEMORIA PARTICIONADA ESTÁTICA Principios de Operación: -   Cualquier proceso cuyo tamaño sea menor o igual que el tamaño de una partición puede ser cargado . -   Si todas las particiones están ocupadas, el Sistema Operativo puede intercambiar un proceso fuera de una partición   Un programa puede ser demasiado grande para caber en una partición. El programador debe entonces diseñar el programa con soporte para overlays  ( uso de la memoria principal es ineficiente).  Un programa, cualquiera sea su tamaño ocupa una partición entera. Esto es llamado  fragmentación interna .  El esquema de particiones no iguales disminuye el problema pero no lo elimina.
TABLA DE DESCRIPCIÓN DE PARTICIONES El Sistema Operativo maneja una estructura en la cual se señala que partes de la memoria están disponibles y cuáles ocupadas; ésta estructura se conoce como  TDP
TABLA DE DESCRIPCIÓN DE PARTICIONES Las particiones se asignan a procesos nuevos y a procesos que han  sido suspendidos y retirados de memoria y nuevamente están activos.   Puesto que en algún momento dado existe un conjunto de espacios libres o huecos de diferentes tamaños dispersos en memoria. De ahí surge un problema, como asignar  memoria a un proceso de tamaño n a partir de una lista de huecos libres. Esto se puede resolver a través de los siguientes algoritmos:   -  Primer ajuste : asignar el primer hueco que tenga el tamaño suficiente. - Mejor ajuste:  asignar el hueco más pequeño que tenga tamaño suficiente. -  Peor ajuste : asignar el hueco más grande.
TABLA DE DESCRIPCIÓN DE PARTICIONES EEjemplo:  A partir del siguiente mapa de memoria, debemos ubicar el Pn= 70Kb utilizando los tres algoritmos mencionados
TABLA DE DESCRIPCIÓN DE PARTICIONES PPrimer Ajuste   Mejor Ajuste  Peor Ajuste
ASIGNACIÓN ESTÁTICA Los algoritmos más utilizados son: Primer Ajuste y  Mejor Ajuste. La elección entre estos dos métodos implica escoger entre la velocidad de ejecución y utilización de la memoria. Cabe indicar que ambos algoritmos deben buscar en las  entradas de la TDP para identificar la partición que se ajuste más exactamente. Las peticiones para asignar particiones pueden provenir de una de dos fuentes principalmente: 1) Las creaciones  de nuevos procesos.  2) Las reactivaciones de procesos retirados de memoria.
ASIGNACIÓN ESTÁTICA Existen situaciones que impiden que se pueda asignar memoria a un proceso, las más comunes son: 1) Ninguna partición es suficientemente grande para acomodar el nuevo proceso. 2) Todas las particiones están asignadas. 3) Algunas particiones están libres, pero ninguna de ellas es lo suficientemente grande para acomodar el proceso.
ASIGNACIÓN ESTÁTICA Protección: Un SO  debe estar protegido contra intervenciones no autorizadas de procesos de usuario y prohibir  el acceso inadvertido a áreas de de memoria asignadas a otros procesos. En los SO que utilizan registro base para la reubicación, una práctica habitual es utilizar registros límite (dirección virtual más alta de un programa) para la protección.
ASIGNACIÓN ESTÁTICA En el caso de que haya error se produce una llamada al SO. Los valores base y límite de cada proceso se guardan normalmente en su BPC; en cada conmutación de proceso estos registros son cargado con los valores requeridos por el nuevo proceso en ejecución. Otro método de protección es registrar los derechos de acceso en la propia memoria  a través de la utilización de claves mediante la cual pueden acceder sin restricciones a todos los bloques de memoria.
ASIGNACIÓN ESTÁTICA Compartición: El gestor de memoria debe permitir la compartición de memoria entre procesos cooperativos. Hay tres técnicas básicas de compartición en sistemas con partición fija de memoria: * Confiar los objetos compartidos al sistema operativo * Mantener múltiples copias de los objetos compartidos, una por cada partición participante. * Utilizar particiones de memoria compartidas.
ASIGNACIÓN ESTÁTICA Protección: Para garantizar seguridad, el hardware puede trabajar con un par de registros base/límite.
Protección ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PARTICIÓN DINÁMICA El n ú mero de particiones y su tamaño es variable, las cuales son creadas dinámicamente para que se acomoden a las necesidades de cada proceso solicitante. Cuando un proceso termine o sea retirado de memoria el gestor de memoria puede devolver el espacio vacante al fondo de áreas de memoria libres a partir del cual se efectúan las asignaciones de particiones. El gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria física o alcance el máximo grado de multiprogramación permitido.
PARTICIÓN DINÁMICA Principios de Operación: -  Cuando se le pide que carge una imagen de proceso, el módulo de gestión de memoria del SO intenta crear una partición adecuada para asignar al proceso solicitante.  -Para lo cual se debe localizar un área libre contigua de memoria que sea igual o mayor que el tamaño del proceso, si se encuentra un área libre adecuada. -El SO fabrica una partición a partir de ella para conseguir un ajuste exacto a las necesidades del proceso, el trozo restante de memoria libre, es devuelto al fondo de la memoria libre para ser usado posteriormente por el módulo asignación.  -   La partición se crea introduciendo su base, tamaño y estado (ASIGNADA) en la TDP.
PARTICIÓN DINÁMICA -  * Si no es posible asignarle un área libre adecuada, el SO devuelve una indicación de error. * Cuando un proceso termina o es retirado de memoria, el SO devuelve el espacio de la partición al fondo de la memoria libre e invalida la entrada correspondiente a la TDP. * Cuando una partición es creada se le atribuyen dirección, tamaño y base los cuales permanecen  inalterados hasta que exista la partición. * Las áreas libres de memoria se producen al terminar de usar particiones y con los restos generados por la creación de particiones. * Para la creación y asignación de particiones el SO  debe llevar la cuenta de las direcciones iniciales y el tamaño de cada área libre de memoria.
PARTICIÓN DINÁMICA -  A continuación se citan el proceso de creación de las particiones: * El sistema es inicializado declarando como libre toda la memoria disponible para asignación dinámica y marcando como no USADA todas las entradas de la TDP. *La lista de espacio libre contiene una sola entrada: toda la memoria disponible formando un solo bloque contiguo. Desde ese momento, la creación de una partición P de tamaño P_TAMAÑO se efectúa así: -Buscar en la lista de memoria libre un área libre L, tal que L_TAMAÑO ≥ P_TAMAÑO, en caso de no encontrar ninguna se termina con un error. - Calcular DIFE=L_TAMAÑO – P_TAMAÑO. Si DIFE ≤ c; donde c es una constante (pequeña), asignar entonces el área libre entera para crear la partición P haciendo P_TAMAÑO= L_TAMAÑO y P_BASE=L_BASE, ajustando los enlaces de los bloques adyacentes en la lista de memoria libre.
PARTICIÓN DINÁMICA -  Si DIFE > c; entonces asignar espacio a la partición P en el bloque L, haciendo P_BASE= L_BASE, en donde L_BASE= P_BASE + P_TAMAÑO, y L_TAMAÑO= L_TAMAÑO – P_TAMAÑO.  Encontrar una entrada no utilizada en la TDP y anotar en ella la base (P_BASE) y el tamaño (P_TAMAÑO). Cambiar el estado a asignada.  Anotar el número de entrada en la TDP en el bloque de control del proceso, T, para el cual se está creando la partición P.  Los  Algoritmos más habituales  para la selección de un área libre de memoria en la creación de una partición son:  * Primer Ajuste y su variante, siguiente ajuste. * Mejor Ajuste. * Peor Ajuste.
PARTICIÓN DINÁMICA -  El siguiente ajuste es una modificación del primer ajuste en donde el puntero a lista de memoria libre se guarda después de una asignación y se utiliza para comenzar a partir de él búsqueda de la asignación siguiente; en donde la siguiente búsqueda continúa en donde se quedó la última, en vez de comenzar siempre desde el principio de la lista de memoria libre. El primer ajuste y el mejor ajuste se encuentran entre los algoritmos más populares para asignación dinámica de memoria; así el primer ajuste recorre la mitad de la lista de memoria libre entera siendo más rápido pero no minimiza la memoria desaprovechada para una asignación determinada; en cambio el mejor ajuste es más lento y tiende a producir bloques de restos libres pequeños que puedan resultar demasiado pequeños para asignaciones posteriores.
PARTICIÓN DINÁMICA -   Las particiones pueden terminarse después de un intercambio o tras la finalización del proceso R de la siguiente forma: UPasar el bloque del control de R para localizar la entrada en TDP, TDP [BCP [R]],   que describe la partición P que va a ser anulada. Si el proceso R va a ser retirado de memoria, copiar su imagen en tiempo de ejecución desde la partición P al lugar designado en el archivo de intercambio. HHacer que el puntero [BCP[R]],  a la partición asignada tome el valor de NINGUNA. DDevolver P a la lista de memoria libre, e integrarla con las áreas libres vecinas si es posible. IInvalidar la entrada en TDP que describe la partición anulada.
COMPACTACIÓN -   La integración de áreas libres adyacentes cuando se devuelven bloques libres es un método normalmente utilizado para reducir la fragmentación, y consecutivamente la cantidad de memoria desaprovechada. La compactación de memoria es utilizada para solucionar la memoria fragmentada, la cual consiste en reubicar algunas o todas las particiones en un extremo de la memoria y así combinar los huecos en un área libre grande. La compactación puede realizarse siempre que sea posible o sólo cuando sea necesaria. Existen dos clases de traslados de las particiones: selectivo y global.

Más contenido relacionado

La actualidad más candente

Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoriaguestaff6d2
 
Sistemas operacionais memória no linux
Sistemas operacionais   memória no linuxSistemas operacionais   memória no linux
Sistemas operacionais memória no linuxCarlos Melo
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - SemáforosJuan Rojas
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoriaBeatriz Pérez
 
Memory Management
Memory ManagementMemory Management
Memory ManagementSanthiNivas
 
5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivos5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivosRey JOaquin
 
OS Components and Structure
OS Components and StructureOS Components and Structure
OS Components and Structuresathish sak
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriaALASBLANKS
 
Memory management ppt coa
Memory management ppt coaMemory management ppt coa
Memory management ppt coaBharti Khemani
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadorascamiche97
 
Estructura de almacenamiento
Estructura de almacenamientoEstructura de almacenamiento
Estructura de almacenamientoAndrea Mendez
 
overview of physical storage media
overview of physical storage mediaoverview of physical storage media
overview of physical storage mediaAisu
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriapuracastillo
 

La actualidad más candente (20)

Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Sistemas operacionais memória no linux
Sistemas operacionais   memória no linuxSistemas operacionais   memória no linux
Sistemas operacionais memória no linux
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
Administración de la memoria
Administración de la memoriaAdministración de la memoria
Administración de la memoria
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Memory Management
Memory ManagementMemory Management
Memory Management
 
5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivos5.5 mecanismos de acceso a los archivos
5.5 mecanismos de acceso a los archivos
 
algoritmo de disco
algoritmo de disco algoritmo de disco
algoritmo de disco
 
OS Components and Structure
OS Components and StructureOS Components and Structure
OS Components and Structure
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Sjf srtf
Sjf   srtfSjf   srtf
Sjf srtf
 
Gestion-de-memoria
 Gestion-de-memoria Gestion-de-memoria
Gestion-de-memoria
 
Memory management ppt coa
Memory management ppt coaMemory management ppt coa
Memory management ppt coa
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Estructura de almacenamiento
Estructura de almacenamientoEstructura de almacenamiento
Estructura de almacenamiento
 
4.1 Individual Y 4.3.pptx
4.1 Individual Y 4.3.pptx4.1 Individual Y 4.3.pptx
4.1 Individual Y 4.3.pptx
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
overview of physical storage media
overview of physical storage mediaoverview of physical storage media
overview of physical storage media
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 

Destacado

Isummit loxa 2010 diapositivas
Isummit loxa 2010 diapositivasIsummit loxa 2010 diapositivas
Isummit loxa 2010 diapositivasJammil Ramos
 
Actitudes ante las discapacidades
Actitudes ante las discapacidadesActitudes ante las discapacidades
Actitudes ante las discapacidadesRonny Parra
 
Entorno gráfico en Java
Entorno gráfico en JavaEntorno gráfico en Java
Entorno gráfico en JavaRonny Parra
 
Lenguaje de programacion C++ 3
Lenguaje de programacion C++ 3Lenguaje de programacion C++ 3
Lenguaje de programacion C++ 3David
 
Esquema de particiones
Esquema de particionesEsquema de particiones
Esquema de particionesPnfi Unermb
 
Algoritmo congruencial aditivo
Algoritmo congruencial aditivoAlgoritmo congruencial aditivo
Algoritmo congruencial aditivoJammil Ramos
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: AppletsRonny Parra
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CRonny Parra
 

Destacado (10)

Isummit loxa 2010 diapositivas
Isummit loxa 2010 diapositivasIsummit loxa 2010 diapositivas
Isummit loxa 2010 diapositivas
 
Actitudes ante las discapacidades
Actitudes ante las discapacidadesActitudes ante las discapacidades
Actitudes ante las discapacidades
 
Entorno gráfico en Java
Entorno gráfico en JavaEntorno gráfico en Java
Entorno gráfico en Java
 
Lenguaje de programacion C++ 3
Lenguaje de programacion C++ 3Lenguaje de programacion C++ 3
Lenguaje de programacion C++ 3
 
Esquema de particiones
Esquema de particionesEsquema de particiones
Esquema de particiones
 
Capitulo3
Capitulo3Capitulo3
Capitulo3
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Algoritmo congruencial aditivo
Algoritmo congruencial aditivoAlgoritmo congruencial aditivo
Algoritmo congruencial aditivo
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: Applets
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 

Similar a Sistemas Operativos

Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Administracion de memoria
Administracion de memoriaAdministracion de memoria
Administracion de memoriatatyseli
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
tercera unidad :3
tercera unidad :3tercera unidad :3
tercera unidad :3irisdelc
 
Gestion de-memoria-copia
Gestion de-memoria-copiaGestion de-memoria-copia
Gestion de-memoria-copiaBlanca Bailon
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoriajhoax
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptLuis619096
 
Administracion de memoria en una PC
Administracion de memoria en una PCAdministracion de memoria en una PC
Administracion de memoria en una PCSimón Aranguren
 
Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoriacoffeejimenez
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfipuracastillo
 
Grupo1 Hhh
Grupo1 HhhGrupo1 Hhh
Grupo1 Hhhbetzi.15
 

Similar a Sistemas Operativos (20)

Memoria en los SO
Memoria en los SOMemoria en los SO
Memoria en los SO
 
Trabajo tema 6 memoria
Trabajo tema 6 memoriaTrabajo tema 6 memoria
Trabajo tema 6 memoria
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Administracion de memoria
Administracion de memoriaAdministracion de memoria
Administracion de memoria
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Tc2 paso3
Tc2 paso3Tc2 paso3
Tc2 paso3
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
tercera unidad :3
tercera unidad :3tercera unidad :3
tercera unidad :3
 
Gestion de-memoria-copia
Gestion de-memoria-copiaGestion de-memoria-copia
Gestion de-memoria-copia
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Unidad3
Unidad3Unidad3
Unidad3
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.ppt
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Administracion de memoria en una PC
Administracion de memoria en una PCAdministracion de memoria en una PC
Administracion de memoria en una PC
 
4679923.ppt
4679923.ppt4679923.ppt
4679923.ppt
 
Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoria
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfi
 
Grupo1 Hhh
Grupo1 HhhGrupo1 Hhh
Grupo1 Hhh
 

Más de Jammil Ramos

Más de Jammil Ramos (9)

Modelos de Simulacion
Modelos de SimulacionModelos de Simulacion
Modelos de Simulacion
 
Paper Ingenieria Web
Paper Ingenieria WebPaper Ingenieria Web
Paper Ingenieria Web
 
Marius Rubiralta 1 Parte
Marius Rubiralta 1 ParteMarius Rubiralta 1 Parte
Marius Rubiralta 1 Parte
 
Articulo Open Innovation
Articulo Open InnovationArticulo Open Innovation
Articulo Open Innovation
 
Ventajas
VentajasVentajas
Ventajas
 
Open Innovation
Open InnovationOpen Innovation
Open Innovation
 
Open
OpenOpen
Open
 
PaginacióN Y SegmentacióN
PaginacióN Y SegmentacióNPaginacióN Y SegmentacióN
PaginacióN Y SegmentacióN
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
 

Sistemas Operativos

  • 1. CAPÍTULO I: GESTIÓN DE MEMORIA 3.1 Antecedentes 3.2 Espacio de direcciones físico y lógico. 3.3 Requisitos de Gestión de Memoria 3.3.1 Reubicación 3.3.2 Protección 3.3.3 Compartición
  • 2.
  • 3.
  • 4. Jerarquía de la Gestión de Memoria Las memoria rápidas son caras. Las memorias grandes son lentas.
  • 5. Jerarquía de la Gestión de Memoria Relación de Capacidad vs Costo
  • 6. Jerarquía de Memoria Memoria R eal : La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memori a secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cach é es más rápida que la principal, pero su costo es a su vez mayor.
  • 7. Jerarquía de Memoria Memoria virtual : 1. El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusión de tener m á s memoria RAM de la que realmente hay en el sistema. 2. Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que por lo tanto, pueden usar el espacio de direcciones completo..
  • 8.
  • 9.
  • 10. Espacio de direcciones lógico y físico
  • 11.
  • 12. TRADUCCIÓN DE DIRECCIONES Traducción(IdProc, dir_lógica)  dir_física
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. INTERCAMBIO Un proceso puede estar continuamente modificando su estado, lo cual implica que muchas veces un mismo proceso está en memoria principal para luego pasar a memoria auxiliar o secundaria, y volver a memoria principal para continuar su ejecución. Este proceso de retirada e incorporación de los procesos de y a la memoria se denomina Intercambio o swapping. El objetivo del intercambio es dar cabida a la ejecución de m á s aplicaciones de las que pueden residir simultáneamente en la memoria del sistema: Por lo que el intercambio c onsiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario, para cargar otro previamente almacenado, no permite a un proceso utilizar m á s memoria RAM de la que realmente existe en el sistema.
  • 18. INTERCAMBIO El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imágenes de me m oria de todos los usuarios.
  • 19. INTERCAMBIO Las funciones que un intercambiador debe cumplir son:   -          Selección de los procesos para retirarlos de memoria. -          Selección de procesos para incorporarlos a memoria. Gestión y asignación del espacio de intercambio.
  • 20. REUBICACIÓN La reubicación se refiere se refiere al hecho de cargar y ejecutar un programa en una posición arbitraria de memoria. Existen dos tipos de reubicación: -  Reubicación estática : cuando un proceso que ha sido bajado a memoria secundaria al ser cargado nuevamente ocupará el mismo lugar en memoria principal donde se ubicaba al inicio; aún cuando el área esté ocupado deberá esperar para poderse colocar. Este esquema no ofrece muchas ventajas.  
  • 21. REUBICACIÓN Reubicación dinámica: cuando el proceso se va ha subir en memoria principal puede ser colocado en cualquier partición libre. En este caso es necesario realizar un reasignación de direcciones cada vez que el programa se ejecute. Este esquema resulta costoso por el hardware que se utiliza, así como aumenta el tiempo de acceso a memoria.
  • 22. PROTECCIÓN * Para garantizar seguridad, el hardware puede trabajar con un par de registros base/límite.
  • 23. PROTECCIÓN * Registrar los derechos de acceso en la propia memoria - A cada dirección se le añade un número de bits para identificar al propietario - Problema: costoso - Mejora: Asociar estos bits a bloques de memoria física - Comprobación: tiempo de ejecución - SO => Clave “maestra” única que le da acceso sin restricciones a todos los bloques de memoria
  • 24. COMPARTICIÓN * Utilizar particiones de memoria compartidas (comunes) ¿Protección? - Registros base/límite: requeriría conjuntos separados de pares de registros base/limite dedicados para acceder a los espacio de memoria privado y compartido. - Implica la existencia de algún mecanismo que indique en cada acceso que conjunto de registros emplear * Claves de protección: requeriría controlar los bloques compartidos para que en los conmutaciones de contexto se cambien las claves de protección - Necesidad de llevar la cuenta de que bloques están siendo .compartidos y ¿por quién?
  • 25. ASIGNACIÓN CONTIGUA Cuando hablamos de asignación contigua significa que cada objeto lógico es colocado en un conjunto de posiciones de memoria con direcciones estrictamente consecutivas.   Un espacio de memoria se divide generalmente en dos: una parte destinada para el Sistema Operativo residente y otra destinada a proceso del usuario; tal como se ve en la siguiente figura:
  • 26. ASIGNACIÓN CONTIGUA Existen dos esquemas de manejo:     Asignación con una sola partición: En este caso, en el espacio correspondiente a los procesos de usuario se carga un solo proceso a la vez; estos procesos se los conoce como procesos transitorios. El sistema operativo gasta poco tiempo y esfuerzo en gestionar la memoria de este modo. Básicamente el SO necesita llevar la cuenta de las posiciones primera y última disponibles para la asignación de procesos transitorios. Cuando un proceso transitorio termina, el SO puede cargar otro para que se ejecute. El SO debe asegurarse que el tamaño de la imagen de procesos a cargar esté dentro de los límites de la memoria disponible, caso contrario se no se puede cargar el proceso.
  • 27. ASIGNACIÓN CONTIGUA El proceso anuncia su terminación y transfiere el control al SO invocando el servicio TERMINAR (EXIT) o su equivalente ; en cuyo momento puede cargarse otro proceso que esté esperando. Un monitor monoproceso raramente soporta protección entre procesos de usuario, ya que en cada momento sólo permite que haya un único proceso residente en memoria. Sin embargo es deseable proteger el código del sistema operativo para que no sea deteriorado por el proceso transitorio en ejecución, sino está protegido, el sistema puede caerse frecuentemente y necesitar ser arrancado de nuevo cuando se ejecutan programas de usuario sin depurar. Este tipo de asignación fue usada en PCs basadas en DOS.
  • 28. ASIGNACIÓN CONTIGUA Asignación con múltiples particiones: La técnica anterior permita la ejecución de un solo proceso de usuario a la vez. Sin embargo, lo que se requiere generalmente es que existan varios procesos en memoria.   Uno de los esquemas consiste en dividir la memoria en varias particiones de tamaño fijo, ubicando un proceso en cada partición. La división puede realizarse de manera estática y dinámica.
  • 29. ASIGNACIÓN DE MEMORIA PARTICIONADA ESTÁTICA Se divide a la memoria principal en un conjunto de regiones no sobrepuestas llamadas particiones. Las particiones se efectúan en algún momento antes de ejecutar los programas de usuario y desde ahí las particiones permanecen fijas. El número de particiones distintas representan un límite superior al número de procesos activos en el sistema. A este valor se le puede denominar grado de multiprogramación.
  • 30. ASIGNACIÓN DE MEMORIA PARTICIONADA ESTÁTICA Principios de Operación: -   Cualquier proceso cuyo tamaño sea menor o igual que el tamaño de una partición puede ser cargado . -   Si todas las particiones están ocupadas, el Sistema Operativo puede intercambiar un proceso fuera de una partición Un programa puede ser demasiado grande para caber en una partición. El programador debe entonces diseñar el programa con soporte para overlays ( uso de la memoria principal es ineficiente). Un programa, cualquiera sea su tamaño ocupa una partición entera. Esto es llamado fragmentación interna . El esquema de particiones no iguales disminuye el problema pero no lo elimina.
  • 31. TABLA DE DESCRIPCIÓN DE PARTICIONES El Sistema Operativo maneja una estructura en la cual se señala que partes de la memoria están disponibles y cuáles ocupadas; ésta estructura se conoce como TDP
  • 32. TABLA DE DESCRIPCIÓN DE PARTICIONES Las particiones se asignan a procesos nuevos y a procesos que han sido suspendidos y retirados de memoria y nuevamente están activos.   Puesto que en algún momento dado existe un conjunto de espacios libres o huecos de diferentes tamaños dispersos en memoria. De ahí surge un problema, como asignar memoria a un proceso de tamaño n a partir de una lista de huecos libres. Esto se puede resolver a través de los siguientes algoritmos:   - Primer ajuste : asignar el primer hueco que tenga el tamaño suficiente. - Mejor ajuste: asignar el hueco más pequeño que tenga tamaño suficiente. - Peor ajuste : asignar el hueco más grande.
  • 33. TABLA DE DESCRIPCIÓN DE PARTICIONES EEjemplo: A partir del siguiente mapa de memoria, debemos ubicar el Pn= 70Kb utilizando los tres algoritmos mencionados
  • 34. TABLA DE DESCRIPCIÓN DE PARTICIONES PPrimer Ajuste Mejor Ajuste Peor Ajuste
  • 35. ASIGNACIÓN ESTÁTICA Los algoritmos más utilizados son: Primer Ajuste y Mejor Ajuste. La elección entre estos dos métodos implica escoger entre la velocidad de ejecución y utilización de la memoria. Cabe indicar que ambos algoritmos deben buscar en las entradas de la TDP para identificar la partición que se ajuste más exactamente. Las peticiones para asignar particiones pueden provenir de una de dos fuentes principalmente: 1) Las creaciones de nuevos procesos. 2) Las reactivaciones de procesos retirados de memoria.
  • 36. ASIGNACIÓN ESTÁTICA Existen situaciones que impiden que se pueda asignar memoria a un proceso, las más comunes son: 1) Ninguna partición es suficientemente grande para acomodar el nuevo proceso. 2) Todas las particiones están asignadas. 3) Algunas particiones están libres, pero ninguna de ellas es lo suficientemente grande para acomodar el proceso.
  • 37. ASIGNACIÓN ESTÁTICA Protección: Un SO debe estar protegido contra intervenciones no autorizadas de procesos de usuario y prohibir el acceso inadvertido a áreas de de memoria asignadas a otros procesos. En los SO que utilizan registro base para la reubicación, una práctica habitual es utilizar registros límite (dirección virtual más alta de un programa) para la protección.
  • 38. ASIGNACIÓN ESTÁTICA En el caso de que haya error se produce una llamada al SO. Los valores base y límite de cada proceso se guardan normalmente en su BPC; en cada conmutación de proceso estos registros son cargado con los valores requeridos por el nuevo proceso en ejecución. Otro método de protección es registrar los derechos de acceso en la propia memoria a través de la utilización de claves mediante la cual pueden acceder sin restricciones a todos los bloques de memoria.
  • 39. ASIGNACIÓN ESTÁTICA Compartición: El gestor de memoria debe permitir la compartición de memoria entre procesos cooperativos. Hay tres técnicas básicas de compartición en sistemas con partición fija de memoria: * Confiar los objetos compartidos al sistema operativo * Mantener múltiples copias de los objetos compartidos, una por cada partición participante. * Utilizar particiones de memoria compartidas.
  • 40. ASIGNACIÓN ESTÁTICA Protección: Para garantizar seguridad, el hardware puede trabajar con un par de registros base/límite.
  • 41.
  • 42. PARTICIÓN DINÁMICA El n ú mero de particiones y su tamaño es variable, las cuales son creadas dinámicamente para que se acomoden a las necesidades de cada proceso solicitante. Cuando un proceso termine o sea retirado de memoria el gestor de memoria puede devolver el espacio vacante al fondo de áreas de memoria libres a partir del cual se efectúan las asignaciones de particiones. El gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria física o alcance el máximo grado de multiprogramación permitido.
  • 43. PARTICIÓN DINÁMICA Principios de Operación: - Cuando se le pide que carge una imagen de proceso, el módulo de gestión de memoria del SO intenta crear una partición adecuada para asignar al proceso solicitante. -Para lo cual se debe localizar un área libre contigua de memoria que sea igual o mayor que el tamaño del proceso, si se encuentra un área libre adecuada. -El SO fabrica una partición a partir de ella para conseguir un ajuste exacto a las necesidades del proceso, el trozo restante de memoria libre, es devuelto al fondo de la memoria libre para ser usado posteriormente por el módulo asignación. -  La partición se crea introduciendo su base, tamaño y estado (ASIGNADA) en la TDP.
  • 44. PARTICIÓN DINÁMICA -  * Si no es posible asignarle un área libre adecuada, el SO devuelve una indicación de error. * Cuando un proceso termina o es retirado de memoria, el SO devuelve el espacio de la partición al fondo de la memoria libre e invalida la entrada correspondiente a la TDP. * Cuando una partición es creada se le atribuyen dirección, tamaño y base los cuales permanecen inalterados hasta que exista la partición. * Las áreas libres de memoria se producen al terminar de usar particiones y con los restos generados por la creación de particiones. * Para la creación y asignación de particiones el SO debe llevar la cuenta de las direcciones iniciales y el tamaño de cada área libre de memoria.
  • 45. PARTICIÓN DINÁMICA -  A continuación se citan el proceso de creación de las particiones: * El sistema es inicializado declarando como libre toda la memoria disponible para asignación dinámica y marcando como no USADA todas las entradas de la TDP. *La lista de espacio libre contiene una sola entrada: toda la memoria disponible formando un solo bloque contiguo. Desde ese momento, la creación de una partición P de tamaño P_TAMAÑO se efectúa así: -Buscar en la lista de memoria libre un área libre L, tal que L_TAMAÑO ≥ P_TAMAÑO, en caso de no encontrar ninguna se termina con un error. - Calcular DIFE=L_TAMAÑO – P_TAMAÑO. Si DIFE ≤ c; donde c es una constante (pequeña), asignar entonces el área libre entera para crear la partición P haciendo P_TAMAÑO= L_TAMAÑO y P_BASE=L_BASE, ajustando los enlaces de los bloques adyacentes en la lista de memoria libre.
  • 46. PARTICIÓN DINÁMICA -  Si DIFE > c; entonces asignar espacio a la partición P en el bloque L, haciendo P_BASE= L_BASE, en donde L_BASE= P_BASE + P_TAMAÑO, y L_TAMAÑO= L_TAMAÑO – P_TAMAÑO. Encontrar una entrada no utilizada en la TDP y anotar en ella la base (P_BASE) y el tamaño (P_TAMAÑO). Cambiar el estado a asignada. Anotar el número de entrada en la TDP en el bloque de control del proceso, T, para el cual se está creando la partición P. Los Algoritmos más habituales para la selección de un área libre de memoria en la creación de una partición son: * Primer Ajuste y su variante, siguiente ajuste. * Mejor Ajuste. * Peor Ajuste.
  • 47. PARTICIÓN DINÁMICA -  El siguiente ajuste es una modificación del primer ajuste en donde el puntero a lista de memoria libre se guarda después de una asignación y se utiliza para comenzar a partir de él búsqueda de la asignación siguiente; en donde la siguiente búsqueda continúa en donde se quedó la última, en vez de comenzar siempre desde el principio de la lista de memoria libre. El primer ajuste y el mejor ajuste se encuentran entre los algoritmos más populares para asignación dinámica de memoria; así el primer ajuste recorre la mitad de la lista de memoria libre entera siendo más rápido pero no minimiza la memoria desaprovechada para una asignación determinada; en cambio el mejor ajuste es más lento y tiende a producir bloques de restos libres pequeños que puedan resultar demasiado pequeños para asignaciones posteriores.
  • 48. PARTICIÓN DINÁMICA -   Las particiones pueden terminarse después de un intercambio o tras la finalización del proceso R de la siguiente forma: UPasar el bloque del control de R para localizar la entrada en TDP, TDP [BCP [R]], que describe la partición P que va a ser anulada. Si el proceso R va a ser retirado de memoria, copiar su imagen en tiempo de ejecución desde la partición P al lugar designado en el archivo de intercambio. HHacer que el puntero [BCP[R]], a la partición asignada tome el valor de NINGUNA. DDevolver P a la lista de memoria libre, e integrarla con las áreas libres vecinas si es posible. IInvalidar la entrada en TDP que describe la partición anulada.
  • 49. COMPACTACIÓN -  La integración de áreas libres adyacentes cuando se devuelven bloques libres es un método normalmente utilizado para reducir la fragmentación, y consecutivamente la cantidad de memoria desaprovechada. La compactación de memoria es utilizada para solucionar la memoria fragmentada, la cual consiste en reubicar algunas o todas las particiones en un extremo de la memoria y así combinar los huecos en un área libre grande. La compactación puede realizarse siempre que sea posible o sólo cuando sea necesaria. Existen dos clases de traslados de las particiones: selectivo y global.