tercera unidad :3

17
*INSTITUTO TECNOLOGICO DEL ISTMO* NOMBRE DEL PROFESOR: JACINTO TOLEDO TORRES TEMA : UNIDAD 3 MATERIA: SISTEMAS OPERATIVO GRUPO: GRADO: “O” INTEGRANTES DEL EQUIPO: IRIS DEL CARMEN ROSADO RODRÍGUEZ DIANA LAURA DOMÍNGUEZ VELÁZQUEZ JULIO HELEONAY TORRES ESTEVA

Upload: irisdelc

Post on 11-Aug-2015

36 views

Category:

Education


0 download

TRANSCRIPT

*INSTITUTO TECNOLOGICO DEL ISTMO*

NOMBRE DEL PROFESOR: JACINTO TOLEDO TORRES

TEMA : UNIDAD 3

MATERIA: SISTEMAS OPERATIVO

GRUPO: GRADO:“O” 3°

INTEGRANTES DEL EQUIPO:

IRIS DEL CARMEN ROSADO RODRÍGUEZ

DIANA LAURA DOMÍNGUEZ VELÁZQUEZ

JULIO HELEONAY TORRES ESTEVA

*ADMINISTRACIÓN DE MEMORIA*

El Administrador De Memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.

Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.

Las técnicas que existen para la carga de programas en la memoria son: partición fija, que es la división de la memoria libre en varias partes (de igual o distinto tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso.

Entre las principales operaciones que desarrolla la administración de memoria se encuentran la reubicación, que consiste en trasladar procesos activos dentro y fuera e la memoria principal para maximizar la utilización del procesador; la protección, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de códigos y datos, con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.

Características de la memoria real o física y de la memoria virtual

Memoria real o física: Capacidad, que representa el volumen global de información (en bits) que la

memoria puede almacenar.

Tiempo de acceso, que corresponde al intervalo de tiempo entre la solicitud de lectura/escritura y la disponibilidad de los datos.

Tiempo de ciclo, que representa el intervalo de tiempo mínimo entre dos accesos      sucesivos.

Rendimiento, que define el volumen de información intercambiado por unidad de      tiempo, expresado en bits por segundo.

No volatilidad, que caracteriza la capacidad de una memoria para almacenar datos      cuando no recibe más electricidad.

Existen dos tipos de memorias RAM: SRAM Y      DRAM.

Memoria virtual: Es una combinación entre hardware especial y el sistema operativo hace uso de la memoria

principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador.

Este método es invisible a los procesos.

Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU.

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este esquema.

La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.

 La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria.

*DIAGRAMA DE LA JERARQUÍA DE LA MEMORIA*

*ESTRATEGIAS DE ALMACENAMIENTO*JERARQUÍA DE ALMACENAMIENTO

Cuando el diseñador se plantea lo que es la gestión de memoria del sistema debe tener en cuenta que la memoria es unos de los recursos críticos del sistema, es crítica porque un programa al ejecutarse debe estar cargado en M. entonces cuanta más memoria tengamos o mejora la optimicemos más programas podremos guardar en ella.

¿Qué quiere un diseñador? Que sea barata, gran capacidad y muy rápida.

Pero no se pueden conseguir las tres cosas.

A mayor capacidad el tiempo de acceso es mucho mayor, es más lenta.

Se observa que ha mayor capacidad menor coste por bit, comparamos Módulo de memoria y disco duro, no cuesta lo mismo un disco duro de 8 gigas que 8 gigas de memoria Ram.

A menor tiempo de acceso, si queremos memoria más rápida, el coste se nos dispara.

Los diseñadores del sistema no pueden tener un solo tipo de memoria donde alojar todoas las memorias, existe una jerarquía de memoria.

Esa jerarquía intenta solucionar esos inconvenientes a la hora de diseñar el esquema de memoria.

En esa jerarquía podemos ver que se cumplen una seria de condiciones:

Al bajar de nivel aumenta la capacidad de la memoria.

Al bajar de nivel disminuye el coste por bit.

El registro es el más caro, luego la cache...

Al bajar de nivel se observa que el tiempo de acceso aumenta. Acceder a un disco óptico es más lento que a un disco magnético.

Si seguimos bajando de nivel, disminuye la frecuencia de acceso:no es lo mismo que el tiempo que es el tiempo que trae el dato, es el nº de veces que accede a esa memoria.

Esta es la clave del funcionamiento de la jerarquía de memoria, esa disminución de frecuencia se debe sobre todo a lo que se llama como principio de localidad o cercanía de referencia.

Sin embargo ese conjunto va cambiando a lo largo del tiempo.

Ese principio lo que establece es que un proceso durante su funcionamiento hacer referencia a muchas funciones, pero durante un breve espacio de tiempo el proceso hace referencia a un pequeño grupo de referencias.

Direcciones

simbólicas

Direcciones

relativas

Direcciones

absolutas

i

j

PROGRAM

JUMP I

LOAD J

DATA

0

400

1200

PROGRAM

JUMp 400

LOAD 1200

DATA

1024

1424

2224

PROGRAM

JUMP 1424

LOAD 2224

DATA

El proceso está definido por la imagen que si recordamos tenía: El Bloque de control de procesos

Datos relativas Instrucciones Referencias a datos fisicas

Referencias a instrucciones: lógicas o simbólicas:

La PilasSi se observa, consta de datos e instrucciones que tienen referencias a memoria, referencias a datos y referencias a sus propias instrucciones.

Esas referencias, o direcciones, en realidad pueden ser de tres tipos:Lógicas, relativas o absolutas.

Dir simbólicas: no tienen nada que ver con la posterior ubicación física de ese dato, son normalmente las direcciones que emplea el programador.

Dir relativa: vienen expresadas respecto a un conjunto determinado, normalmente al principio del programa.

Estas direciones normalmente son las que utiliza el cargador y el enlazador.

JUMP 400: desde el principio saltar 400.

Dir. absolutas o físicas: son las que realmente ocupan de memoria real, de memoria física.

Son las que realmente se usan en ejecución, el programa solo entiende de direcciones físicas, para ellos necesitamos hacer una traducción de las simbólicas y relativas a las físicas.

Esa traducción de direcciones, también conocida como ligadura de direcciones se puede hacer en distintos instantes, en cualquiera de las fases que hemos vistos, por las que pasa el programa a proceso.

Tiempo de compilación

Tiempo de carga

Tiempo de ejecución.

Traducción en tiempo de compilación

En tiempo de compilación o enlazado, observar que lo que tenemos que hacer es generar ya un módulo de carga con direcciones físicas, eso implica que el programador, el cargador o el enlazador tenga que tener conocimiento de la gestión de memoria, qué partes están libres y qué partes están ocupadas.

Por otro lado, el modo de carga que se genera, solamente se puede ejecutar en la zona que se haya especificado, no puede cambiar de lugar, si varía de zona tiene que volver a compilarlo de nuevo.

Si un proceso sale de memoria y luego entra de nuevo debe ser en la misma zona de memoria.

Para solventar esos problemas la otra manera es que se realice en tiempo de carga.

Traducción en tiempo de carga

En tiempo de carga por un lado elimina que el programador conozca como se está gestionando la memoria.

En este caso la gestión de memoria la va a realizar el cargador que decide donde va a ubicar el proceso, pero estamos en lo mismo de antes. Puede que yo introduzca el programa en memoria física, y ya tenga las direcciones físicas, por lo que no puedo cambiarlo de sitio.

Si un proceso se suspende, cuando se vuelve a activar se situa en la misma zona de memoria.

Traducción en tiempo de ejecución

En el último momento.

Cuando yo vaya a ejecutar la instrucción es cuando se va a traducir la dirección.

Este esquema es un método muy flexible, porque el proceso puede estar ubicado en cualquier parte, ya que es justo cuando voy a ejecutarlo es cuando lo traduzco.

Esa traducción necesita la ayuda del hardware, y tampoco es un hardware muy complejo, el criterio concedía el hardware necesario para realizar esa traducción en tiempo de ejecución.

dirección base límite

dirección dirección

relativa absoluta si

CPU + <= Memoria

no

error de direccionamiento

El programa que está ubicado en memoria sólo tiene direcciones relativas, entonces las CPU va generando todas la direcciones relativas, y nosotros le sumamos el contenido de un registro hardware que contiene el inicio donde está ubicado el proceso, entonces obtenemos la dirección absoluta, posteriormente podemos comparar esa Dir. absoluta con otro registro hardware que lo que contiene es el límite de la zona de memoria ocupada por el proceso, si está dentro del límite podremos acceder a memoria, si está fuera del límite provocaremos un error de direccionamiento.

Observar que con dos registros hardware y una suma y comparación podemos realizar la traducción

Proporciona un mecanismo de protección de la memoria porque si se pasa del límite que tiene cada proceso daríamos un error de direccionamiento.

Con este esquema el proceso lo puedo poner en cualquier parte de la memoria, porque la traducción la hago justo cuando lo voy a ejecutar.

Cada vez que cambiemos de proceso o de contesto, esos registros límite y base deben actualizarse, y deben almacenarse en el BCP para que cada vez que cambiemos de proceso tengamos un valor válido.

*FUNCIONES DEL ADMINISTRADOR DE MEMORIA*

Debe conocer:

Qué zonas de la memoria están libres y qué zonas ocupadas.

Introducir los procesos en memoria.

Se encarga de asignar y desasignar memoria a los procesos conforme vayan necesitando y liberando.

Debe controlar el intercambio entre Mp y Ms.

Además de esas funciones, el administrador de memoria debe cumplir 3 requisitos:

Protección:

No solo debe proteger la zona de memoria del proceso, sino de la memoria del sistema operativo u otro proceso.

Compartición de memoria:

cuando se ejecutan dos procesos iguales, debe permitir que dos procesos compartan la memoria.

Reubicación:

Un proceso puede cambiar de zona de memoria durante su ejecución.

Este requisito tiene sentido evidentemente es sistema multiprogramado.

En un sistema mono programado no tiene sentido porque si solo hay un proceso, ¿para qué lo voy a cambiar de sitio.

Distintos esquemas de asignación de memoria

Esquemas de gestión de memoria

∞Asignación completa y contigua: el proceso se ejecuta en una zona continua

Máquina desnuda

Mono programación

∞Particiones múltiples: Particiones fijas

Sistema compañero

Particiones variables.

∞Asignación completa y no contigua: Paginación

Segmentación

Segmentación-paginación

∞Asignación parcial y no contigua: Memoria Virtual

∞ Asignación completa y contigua:

El proceso se ejecuta en una zona continua

Máquina desnuda: Es un sistema donde no hay S.O y no hay gestor de Memoria, quien lleva la cuenta es el propio programador.

Suelen ser pequeños microprocesadores, señales de humo, dedicados a una sola cosa.

∞ Mono programación: La Memoria. dividida en dos partes:

Una parte en el S.O. en un extremos de la memoria, zona alta o baja, y el resto se deja para procesos de usuarios, ejemplos dos.

La elección de donde se debe encontrar el S.O. vendrá dada por donde se encuentra el vector de interrupciones, lo normal es situarlo junto al vector de interrupciones, parte alta o baja, algunos sistemas prefieren separarlo.

Es un sistema simple que requiere de una protección del S.O, que el proceso de usuario no pueda acceder al S.O. Para ello necesita un registro hardware, ya sea un único registro o dos registros.

*A QUE SE LE LLAMA PAGINACIONES*La paginación es uno de los esquemas de manejo de memoria en donde un computador puede almacenar y recuperar datos de un dispositivo de almacenamiento secundario para su uso en la memoria principal. En el esquema de manejo de memoria de paginación, el sistema operativo recupera datos desde un dispositivo de almacenamiento secundario en bloques de un mismo tamaño llamados páginas. La principal ventaja de paginación sobre la segmentación de memoria es que permite al espacio de dirección física de un proceso ser no contiguo. Antes de la paginación, los sistemas debían poner programas en almacenamiento de forma contigua, lo que causaba varios problemas de almacenamiento y fragmentación.

El método básico para implementar paginación consiste en dividir la memoria física en bloques de tamaño fijo llamados frames (marcos) y dividir la memoria lógica en bloques de mismo tamaño llamados Pagés (páginas). Cuando un proceso se va a ejecutar, sus páginas son cargadas en cualquier marco de la memoria de almacenamiento secundario. Este esta dividido en bloques de tamaño fijo del mismo tamaño de los marcos en memoria.

Hardware de Paginación.

El tamaño de pagina (como el marco de página) es definido por hardware. El tamaño de una pagina es típicamente una potencia de 2, variando entre 512 B y 16 MB por pagina, dependiendo de la arquitectura del computador. La selección de una potencia de 2 como tamaño de página hace la traducción de una dirección lógica a un número de pagina y offset de página algo fácil. Si el tamaño del espacio de dirección lógica es 2^m y el tamaño de página 2^n unidades de dirección (bytes o palabras), entonces los m-n bits de mayor orden de la dirección lógica designan el número de pagina, y los n bits de menor orden designan el offset de página.

Esquema Hardware de paginación.

Cualquier dirección generada por la CPU es divida en dos partes: un número de página (p) y un offset de página (d). El número de pagina es usado como índice en una tabla de página. La tabla de página contiene las direcciones base de cada pagina en la memoria física. Esta dirección base es combinada con el offset de página para definir la dirección de memoria física que es enviada a la unidad de memoria.