• Like
  • Save
Cap3
Upcoming SlideShare
Loading in...5
×
 

Cap3

on

  • 2,274 views

Sistemas Operativos

Sistemas Operativos

Statistics

Views

Total Views
2,274
Views on SlideShare
2,264
Embed Views
10

Actions

Likes
0
Downloads
16
Comments
0

1 Embed 10

http://www.slideshare.net 10

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cap3 Cap3 Presentation Transcript

    • CAPÍTULO III: ASIGNACIÓN NO CONTINUA     3.1 Paginación 3.1.1 Método Básico 3.1.2 Soporte Hardware 3.1.3 Protección 3.1.4 Compartición 3.2 Segmentación 3.2.1 Método Básico 3.2.2 Soporte Hardware 3.2.3 Protección 3.2.4 Compartición 3.3 Memoria Virtual 3.3.1 Método Básico 3.3.2 Soporte Hardware 3.3.3 Protección 3.3.4 Compartición 3.4 Segmentación con paginación
    • PAGINACIÓN
      • Página: Zona contigua de memoria de determinado tamaño . (Por motivos de eficiencia se suele trabajar siempre con tamaños potencia de 2. Ej:4 KB.)
      • Organización :
        • El mapa de memoria del proceso se considera dividido en páginas .
        • La memoria principal se considera dividida en marcos de página (tamaño de marco = tamaño de página).
        • Los marcos contendrán páginas de los procesos en ejecución
        • La tabla de páginas (TP) relaciona cada página con el marco que la contiene. El hardware de traducción (MMU) usa la tabla de páginas para traducir direcciones lógicas a físicas
        • Típicamente la MMU usa dos tablas de páginas (TP):
          • TP del usuario : Por ejemplo, direcciones lógicas que empiezan por 0
          • TP del sistema : Por ejemplo, direcciones lógicas que empiezan por 1. Estas sólo se podrán usar en modo sistema
    • PAGINACIÓN
        • Cada entrada de la tabla de páginas contendrá, además del número de marco asociado con la página:
          • Información de protección : tipo de acceso permitido RWX
          • Bit de página válida/inválida : para indicar si dicha entrada contiene una traducción asociada, es decir, si se corresponde realmente con un marco
          • Bit de página accedida ( Ref ) : activado cuando se accede
          • Bit de página modificada ( Mod ) : activado cuando se escribe
          • Bit de desactivación de caché : se usa cuando la entrada corresponde con direcciones de E/S
      • Tamaño de página : La elección de tamaño de página está condicionada por diversos factores, entre los que hay que conseguir equilibrio:
        • Potencia de 2 y múltiplo del tamaño del bloque de disco
        • mejor pequeño por:
          • Menor fragmentación
          • Se ajusta mejor al conjunto de trabajo
        • mejor grande por:
          • Tablas más pequeñas
          • Mejor rendimiento de dispositivos de E/S
        • Compromiso (entre 2K y 16K)
    • PAGINACIÓN
      • Dirección :Una dirección lógica se obtiene a partir de:
      • nº página + desplazamiento
      • Problema :
        • La paginación no ofrece una solución óptima . Lo ideal sería que cada palabra del mapa de memoria de un proceso pudiera ubicarse en cualquier dirección. Esta solución es inviable debido al coste de traducción
        • Al no ser así, con la paginación se asigna a cada proceso un número entero de marcos de página, aunque el espacio de su mapa de memoria no sea un múltiplo entero del tamaño de página. Por tanto, se irán generando huecos (memoria no aprovechada, en la última de las páginas que no se llena de forma completa). Este proceso se denomina fragmentación interna (implica que, en término medio, cada proceso desperdicia la mitad de una página)
    • PAGINACIÓN
    • PAGINACIÓN Problema : Fragmentación, la memoria asignada es mayor que la memoria requerida y por lo tanto, se desperdicia cierta cantidad de espacio T. Páginas Pr oceso 1 Página 0 Página 1 Página M Marco 2 Marco 3 Marco N .............. T. Páginas Pr oceso 2 Página 0 Página 1 Página P Marco 4 Marco 1 Marco 0 .............. Marco 0 Memoria Marco 1 Marco 2 Marco 3 Marco 4 Marco N Pág. 1 Pr. 2 ............ Pág. 0 Pr. 1 Pág. 1 Pr. 1 Pág. M Pr. 1 Pág. 0 Pr. 2 Pág. P Pr. 2
    • Paginación
      • Otras cuestiones :
        • En este esquema, el S.O. mantiene una tabla de páginas por cada proceso . Cuando se produce un cambio de contexto se indica a la MMU qué tabla de páginas usar
        • El S.O. mantiene una única tabla de páginas para sí mismo . Así, todos los procesos comparten el SO. Cuando un proceso se ejecuta en modo sistema accede directamente a su mapa y al del SO
        • S.O. mantiene tabla de marcos , como forma de mantener información de estado de la memoria principal. De cada marco se conoce su estado (libre, ocupado, etc)
        • S.O. mantiene tabla de regiones por cada proceso , indicando las características de cada región y qué rango de páginas pertenecen a cada región
      • Desperdicio de espacio : Mucho mayor gasto en tablas que con asignación contigua : es el precio de mucha mayor funcionalidad
    • Paginación
      • Implementación de la tabla de páginas :
        • Las tablas de páginas se mantiene normalmente en memoria principal . Problemas: eficiencia y gasto de almacenamiento
          • Eficiencia : cada acceso lógico requiere dos accesos a memoria principal, a la tabla de páginas + al propio dato o instrucción. Solución: caché de traducciones –› TLB
          • Gasto de almacenamiento : tablas muy grandes. Ejemplo: páginas 4K, dir. lógica 32 bits y 4 bytes por entrada, la tabla de páginas de cada proceso tendrá 4MB. Solución: tablas multinivel y tablas invertidas
      • Valoración :
        • Espacios independientes para procesos: mediante tablas de páginas
        • Protección : mediante tablas de páginas
        • Compartir memoria : entradas corresponden con mismo marco (bajo supervisión del SO dos procesos pueden compartir una página asociada al mismo marco)
        • Soporte de regiones : bits de protección, bit de validez: no se reserva espacio para huecos
        • Maximizar rendimiento : Si, al permitir esquemas de memoria más flexibles
        • Mapas de tamaño adecuado : sí, al permitir esquemas de memoria virtual
    • Segmentación
      • Con la paginación la MMU no dispone de información sobre las regiones de los procesos y sólo entiende de páginas. Por esta razón, el SO debe mantener una lista de las páginas que componen cada región , lo que supone varias desventajas:
        • Al crear una región hay que cuidar que todas las páginas asociadas tengan la misma información de control
        • Para poder compartir una región es preciso que las entradas de varios procesos apunten a los mismos marcos
      • Segmentación : es un esquema HW que intenta dar soporte directo a las regiones. En él se considera el mapa de memoria como compuesto por varios segmentos.
        • Se puede considerar que consisten en una generalización de los registros valla base y límite , pero usando un par de registros por cada segmento
    • SEGMENTACIÓN
    • Segmentación
      • Dirección :Una dirección lógica estará compuesta por un número de segmento y un desplazamiento en el mismo.
      • Traducción : La forma de realizar la traducción puede apreciarse en la imagen siguiente:
    • Segmentación
      • Tabla de segmentos :En este caso, la MMU usa una tabla de segmentos (TS).
      • Organización :
        • El SO mantiene una TS por proceso, de forma que en cada cambio de contexto se notifica a MMU cuál debe usar
        • Cada entrada de TS contiene (entre otros):
          • Registro base y límite del segmento
          • protección: RWX
      • Problema : Fragmentación Externa
        • En este esquema se produce fragmentación externa, ya que el almacenamiento de los segmentos se realiza de forma contigua .
        • El SO debe mantener una lista que le permita conocer qué zonas de memoria están libres y cuáles ocupadas: es decir, estructuras de datos que identifiquen huecos y zonas asignadas
    • Segmentación
      • Valoración :
        • Espacios independientes para procesos : mediante su propia TS, que crea un espacio lógico independiente
        • Protección : mediante TS, ofreciendo espacios disjuntos de memoria
        • Compartir memoria : bajo control del SO es posible que dos o más procesos tengan un segmento asociado a la misma zona de memoria
        • Soporte de regiones : bits de protección
        • Maximizar rendimiento : No lo maximiza, por la fragmentación externa
        • Mapas de tamaño adecuado : No cumple este objetivo porque no permite implementar eficientemente un sistema de memoria virtual
      • Por tanto, tal y como se ha presentado se usa en muy pocos SO reales
    • Segmentación
      • Valoración :
        • Espacios independientes para procesos : mediante su propia TS, que crea un espacio lógico independiente
        • Protección : mediante TS, ofreciendo espacios disjuntos de memoria
        • Compartir memoria : bajo control del SO es posible que dos o más procesos tengan un segmento asociado a la misma zona de memoria
        • Soporte de regiones : bits de protección
        • Maximizar rendimiento : No lo maximiza, por la fragmentación externa
        • Mapas de tamaño adecuado : No cumple este objetivo porque no permite implementar eficientemente un sistema de memoria virtual
      • Por tanto, tal y como se ha presentado se usa en muy pocos SO reales
    • Memoria Virtual
      • La memoria virtual (MV) permite ejecutar programas de capacidad superior a la memoria que físicamente tiene el computador.
      • Además, la memoria virtual permite aumentar el número de procesos en la memoria principal, en ejecución concurrente.
      • En definitiva presenta al usuario una memoria principal aparente mayor que la memoria física real.
      • Para implantar la memoria virtual suele utilizarse una de las siguientes técnicas:
        • Gestión de memoria por páginas,
        • Gestión de memoria segmentada,
        • Gestión de memoria segmentada/paginada
    • Memoria Virtual
      • En un sistema de MV se tiene en disco el proceso completo, que se considera por la CPU troceado en páginas o segmentos, dependiendo del método. Únicamente se cargan en la memoria principal la página o páginas (o segmentos, en su caso) que en ese momento intervengan en el proceso, intercambiando páginas entre disco y memoria principal cuando sea necesario.
      • 􀂉 La memoria virtual parte de la idea de que las instrucciones de un programa que se ejecutan sucesivamente (en un corto intervalo detiempo) están en direcciones muy próximas ( principio de localidad temporal ),y en que los programas suelen estar redactados con gran linealidad (es decir, no suelen abundar los saltos entre posiciones de memoria distantes) ( principio de localidad espacial ).En otras palabras los programas se ejecutan secuencialmente y los saltos (sobre todo a grandes distancias) son poco probables.
    • Memoria Virtual
      • La gestión de MV segmentada es más compleja que la del tipo de paginación, ya que los segmentos son de tamaño variable y son más difíciles de gestionar; las páginas, por el contrario, son de capacidad constante y preestablecida. Por ello lo habitual es utilizar gestión de memoria por paginación, o por segmentos paginados.
      • En el caso de que el control de un programa llegue a una instrucción (o requiera un dato) de una página que no esté en memoria, se dice que se produce un fallo de página y el SO debe cargar en memoria la página correspondiente.
      • La MV con paginación combina las técnicas de paginación e intercambiabilidad. Por lo general se utiliza un método de intercambiabilidad "perezosa": únicamente se lleva a memoria una página cuando es necesaria para algún proceso (demanda de página), de esta forma el número de procesos en ejecución concurrente puede aumentar.
    • Memoria Virtual
      • Políticas de Reemplazo
      • Objetivo : Minimizar la tasa de fallos de página.
      • Cada algoritmo descrito tiene versión local y global:
        • Local : criterio se aplica a las páginas residentes del proceso
        • Global : criterio se aplica a todas las páginas residentes
        • Algoritmos a estudiar
        • Óptimo
        • FIFO
        • Reloj (o segunda oportunidad)
        • LRU
        • B uffering de páginas
        • Retención de páginas en memoria
    • Memoria Virtual
      • FIFO :se sustituye la página que lleve más tiempo en memoria. Implementación: con un contador, C, asociado a cada marco que se incrementa cada vez que se efectúe un acceso a memoria. Se pone a 0 cuando se carga una nueva página.
      • LRU :se sustituye la página que lleve más tiempo sin usar. Se basa en el principio de localidad temporal ya que supone que la página utilizada hace mayor tiempo, es menos probable que se use próximamente. Implementación: con un contador, C, asociado a cada marco de página, que se incrementa cada vez que se efectúe un acceso a memoria; y se pone a 0 cada vez que se accede a su página.
      • NRU Se sustituye la página que menos se haya utilizado recientemente.
      • Implementación: Se utiliza una variable R (“referido”) asociada a cada marco, que se pone a 1 cuando se referencia el marco. De vez en cuando (20ms, por ejemplo) se ponen a cero todas las variables R.
    • Memoria Virtual
      • Algoritmo del reloj
        • Un puntero va recorriendo los distintos marcos de página.
        • En cada fila de la tabla de marcos se incluye un bit (0 ó 1) de referido (R).
        • Cuando se introduce una página, el bit se pone a 0 (R=0).
        • Si se accede a un marco, se hace R=1, y no se avanza el puntero
        • Si se produce un fallo de página: se analiza el R al que apunta el puntero
          • Si R=0, se reemplaza la página y se avanza una posición el puntero
          • Si R=1, se cambia a R=0, y así sucesivamente se avanza el puntero hasta encontrar un R=0.
    • Memoria Virtual
      • EJEMPLO (algoritmos de reemplazo):
        • 􀂃 Memoria con 3 marcos de página, e inicialmente vacía.
        • 􀂃 Se hacen referencia sucesiva a las siguientes páginas: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2