sistemas operativos i - sistemas operativos...  sistemas operativos i unidad iii:...

Download SISTEMAS OPERATIVOS I - Sistemas Operativos...  SISTEMAS OPERATIVOS I Unidad III: Administraci³n

Post on 24-Sep-2018

267 views

Category:

Documents

5 download

Embed Size (px)

TRANSCRIPT

  • SISTEMAS OPERATIVOS I

    Unidad III: Administracin de Memoria

    Disponible en www.benito.org.mx

    Departamento de Sistemas yComputacin

    INSTITUTO TECNOLGICODE MORELIA

    M.C. Benito Snchez Rayasanchezraya@hotmail.com

    Versin: 20170522

  • 2

    CONTENIDO

    1. Sin abstraccin de memoria (Monoprogramacin)2. Espacios de direcciones

    1. Reubicacin y proteccin2. Intercambio (swapping)3. Administracin de memoria libre

    3. Memoria virtual1. Paginacin2. Tablas de pginas3. Aceleracin de la paginacin4. Tablas de pginas extensas

  • 3

    4. Algoritmos de reemplazo de pginas5. Cuestiones de diseo en paginacin6. Implementacin7. Segmentacin

  • 4

    1. SIN ABSTRACCIN DE MEMORIA (Monoprogramacin)

    Jerarquas de memoria: Registros La memoria ms rpida y pequea Cach Pequea, rpida, cara y voltil. RAM Mediana, regular costo, regular

    velocidad, y voltil. D. Duro Enormes, lentos, baratos y

    permanente. Parte del SO que administra la jerarqua de

    memoria se llama: Administrador de Memoria (MMU).

  • Antes los programas vean y manejaban toda la memoria fsica: En Mainframe, minicomputadoras y primeras PCs Por lo mismo, no era posible ejecutar ms de un

    programa a la vez5

  • 6

    MMU: Mantener las reas de memoria usadas y vacas. Asignar memoria a los procesos cuando la requieren. Liberarla cuando finalicen los procesos. Administrar los intercambios entre la memoria principal y el

    disco. Cuando la primera es pequea, y no alberga a todos los

    procesos.

    Intercambio y paginacin Carga y descarga de procesos entre la memoria y el disco.

  • 7

    Monoprogramacin, sin intercambio ni paginacin Ejecutar un programa a la vez.

    Compartir la memoria entre el programa y el SO. En la figura de la siguiente diapositiva se ilustran

    tres variaciones: En la primera variante se usaba en mainframes y

    minicomputadoras. La segunda, en sistemas de bolsillo y sistemas integrados. La tercera, se emple en PCs, era tpico de MSDOS. En

    ROM esta el BIOS. Se teclea un comando, el SO carga el programa de

    disco a memoria, lo ejecuta, al finalizar, se prepara para cargar un nuevo programa y sobreescribir la memoria

  • 8a) SO en la parte baja de la RAM. b) SO parte alta de la ROMc) Controladores de dispositivos en ROM y el resto en RAM.

    Mainframe y Minicomputadoras

    PDAs y Sistemas empotrados

    Primeras PCs y MSDOS

  • 9

    2. ESPACIOS DE DIRECCIONES

  • 10

    2.1.Reubicacin y proteccin

    Reubicacin: Cuando se enlaza (cdigo+procedimientos+bibliotecas) un

    programa: El enlazador requiere saber en que parte de la memoria iniciar el

    programa. Ejemplo:

    Hay particiones de 100 K El SO esta en los primeros 100 K Un programa se carga en la particin 1 La primer lnea del programa es una llamada a la biblioteca que se

    encuentra en la direccin 50 de dicha aplicacin. Esta direccin saltar a la direccin absoluta 50, cuando debera

    ser a la direccin 100+50 Si se cargase en la particin 2, debera ser 200+50, en lugar de 50.

  • 11

    El anlisis anterior es el problema de la reubicacin

    Una posible solucin sera que si el programa: Se carga en la particin 1, sumar 100 a sus direcciones Se carga en la particin 2, sumar 200 a sus direcciones As sucesivamente

    OS/MFT de IBM trabajaba bajo este esquema.

  • 12 Problema de relocalizacin

    x

  • Solucin de la IBM 360 reubicacin esttica Consista en modificar el programa a medida que se

    cargaba en la memoria Es decir, si se cargaba en la direccin 16384, dicho

    valor se le sumaba a todas las direcciones de memoria durante el proceso de carga Hacia lenta la carga de los programas Requiere informacin adicional para los

    programas ejecutables, y saber que direcciones sern reubicables.

    En software empotrado aun se usa. Todos las aplicaciones se conocen de antemano No se pueden instalar ms aplicaciones13

  • 14

    La proteccin: Consiste en proteger de accesos de algunos

    procesos a reas de memoria que no les pertenecen.

    En este nivel todas las direcciones son absolutas. De ah el riesgo latente.

  • 15

    IBM protegi sus equipos 360 de la siguiente manera:

    Dividir la memoria en bloques de 2 KB. Asignar cdigos de proteccin de 4 bits a cada bloque. En la palabra de estado del programa (PSW) se

    colocaban los 4 bits de proteccin del bloque del proceso en ejecucin.

    Solo el SO poda modificar los bits de la PSW. El hardware de la IBM 360 detectaba cuando un

    proceso intentaba acceder a un bloque cuyos bits difieren de los de la palabra de estado (PSW).

  • 16

    Otra solucin a la reubicacin y proteccin: Equipar la mquina con dos registros especiales de hardware:

    Base y lmite Al rea de memoria que delimitan se le llama espacio de

    direcciones de un proceso Al calendarizar un trabajo

    El registro base almacenaba la direccin donde iniciaba la particin en donde se cargo el trabajo.

    El registro lmite guardaba la longitud de la particin. Cada que se genera una direccin se le suma el registro base. El hardware protege de otros usuarios la modificacin de los

    registros.

    El espacio de direcciones depender si es un SO de 32 o 64 bits

  • 17

    Ejemplo: Si el registro base tiene la direccin 100 Una llamada CALL 50, se transformara en una llamada CALL 100+50. Esto sin modificar la instruccin en si. Como era el caso de la primera

    opcin. Tambin se debe estar verificando el registro lmite para evitar

    desbordamientos. A esto se le llamaba reubicacin dinmica Una desventaja: Hara una suma y una comparacin cada vez que

    se accese a la memoria Ejemplos:

    La CDC 6600 usaba este esquema. Intel 8088 en IBM-PC usaba solo el registro base.

  • 32764

    En todas las instrucciones de direccionamiento se le suma el registro base

    Ya no se usa.Al menos en su versinbsica.

    18

  • 19

    2.2. Intercambio (swapping)

    En un sistema de procesamiento por lotes es muy fcil organizar la memoria en particiones fijas.

    En sistemas interactivos no siempre se pueden tener en memoria los programas activos.

    En un equipo de uso normal suele haber entre 60-100 procesos, solo al encender la computadora (Linux y Windows)

    Los programas excedentes se mantienen en disco y se traern en forma dinmica a la memoria para su ejecucin.

    Esto se puede solucionar con: Intercambio

    Traer a la memoria un proceso entero y ejecutarlo por un rato y volver a guardarlo en disco. (en disco, no ocupan memoria)

    Memoria virtual Permite que los programas se ejecuten, aunque solo una parte de

    ellos este en memoria principal.

  • 20Cambios en la asignacin de memoria por la carga y descarga de procesos. Lo sombreado es memoria vaca.

  • 21

    En a): Solo el proceso A esta en memoria Despus se crean o se traen a memoria los

    procesos B y C. En d): A se intercambia al disco. Luego llega D y B sale. Al final se vuelve a traer a memoria A.

    Ahora qued en un lugar distinto, es preciso reubicar las direcciones que contiene, ya sea:

    Por hardware (Durante la ejecucin del programa) Por software (En el momento del intercambio)

    Los registros base y limite, funcionaran en este caso

  • 22

    Aqu las particiones son variables en cantidad y tamao, conforme van llegando los procesos Esto complica su control.

    Compactacin de memoria: Cuando el intercambio crea muchos huecos, se

    trata de crear un solo hueco pero de mayor tamao, desplazndolo hacia abajo en la medida de lo posible.

    No es comn (requiere mucho tiempo CPU) Ejemplo:

    Una mquina con 1 GB puede copiar 4 bytes en 20 nseg, se requeriran aprox 5 seg para compactar toda la RAM

    En discos duros ya no es necesario:Se optimizan automticamente cada cierto tiempo

  • 23

    Cunta memoria darle a un proceso? Si los procesos son de tamao fijo:

    Se asigna lo que requiera. Si los segmentos de datos suelen crecer

    Ejemplo: Asignacin dinmica Si hay un hueco adyacente, se le podr asignar. Moverse a un rea de memoria mas grande. Si no hay, bajar otros procesos a disco, para

    abrir espacio Si un proceso no puede crecer en Ram, y el

    rea de intercambio en disco esta llena: Se suspende hasta que haya espacio.

  • 2.3. Administracin de memoria libre

    24

    Hay 2 discos de 100 GB cada uno. Uno formateado con FAT32 y otro con NTFS.A cul disco le cabe ms informacin til?

    Intentar formatear una unidad USB en dossistemas de archivos.

  • 25

    a) Administracin de memoria con mapas de bits

    Forma de administrar la memoria dinmica. La memoria se divide en unidades de asignacin A cada unidad de asignacin le corresponde un bit Bit en 0 desocupada, en 1 asignada. Tamao de la unidad de asignacin:

    Tamaos pequeos, mayor mapa de bits Tamaos grandes, mapa de bits pequeo.

    Habra desperdicio de memoria por el proceso en su ltimo bloque (sino es mltiplo exacto de la unidad de asignacin)

  • 26

    Ejemplo: Con una unidad de asignacin pequea de 4 bytes, 32 bits

    requerirn 1 bit del mapa. Una memoria de 32n bits utilizar n bits del mapa, por lo

    que el mapa de bits ocupar slo 1/33 de la memoria.

  • 27

    El tamao de asignacin solo depender del total de memoria libre.

    Un inconveniente sera que al subir un proceso ms a memoria, se tendra que recorrer todo el mapa de bits en busca de k bits consecutivos en 0, lo cual sera lento.

  • 28

    b) Administracin de memoria con listas enlazadas

    Consiste en mantener una lista enlazada de

Recommended

View more >