Seg y pag en diapositivas
Upcoming SlideShare
Loading in...5
×
 

Seg y pag en diapositivas

on

  • 1,188 views

trabajos de Segmentacion y Paginacion

trabajos de Segmentacion y Paginacion

Statistics

Views

Total Views
1,188
Slideshare-icon Views on SlideShare
1,188
Embed Views
0

Actions

Likes
0
Downloads
32
Comments
1

0 Embeds 0

No embeds

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

11 of 1

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

    Seg y pag en diapositivas Seg y pag en diapositivas Presentation Transcript

    • APELLIDO Y NOMBRE : Márquez Maria Segmentaciòn y Paginaciòn
    • Es una técnica distinta que pretende acercarse más al punta de vista del usuario. El programador codificara los programas de un solo espacio simbólico y el sistema operativo los segmentara automáticamente. Esquema Toda dirección lógica se expresara mediante Dos valores: 1) Nº de segmento (s) 2) Desplazamiento dentro de segmento (d). La segmentaron del programa realizara el compilador. Segmentación
      • Desde el punto de vista del usuario y los compiladores, un proceso esta 'naturalmente' dividido en secciones: texto, data, stack, heap.
      • Dando a cada una de estas secciones espacios de direccionamientos distintos, se simplifica la tarea del compilador, y mantiene la división natural.
      • Es más fácil:
        • permitir al stack y al heap crecer dinámicamente.
        • compartir info entre programas.
      • proteger programas
      Segmentación
      • El SO mantiene una tabla de segmentos: La tabla es propia de cada programa. Se guardan las direcciones base y límite del segmento y otra información como 'tipo de acceso'.
      • En paginación, los compiladores no tienen que saber si el sistema esta usando paginación o no, ya que siempre crean un continuo de direcciones lógicas. En segmentación, en cambio, los compiladores deben saber si tienen que generar direcciones utilizando segmentos diferentes, tienen que saber por ejemplo que parte de la dirección lógica define el segmento.
      Implementación de la Segmentación El hardware tiene que soportar protección de memoria por registros base/limite. Las direcciones lógicas determinan el segmento y el offset dentro del segmento y al igual que en paginación, se divide la dirección en dos: una parte define el segmento y otra el offset.
      • Al igual que en paginación, también se puede guardar la tabla de segmentos en registos o en memoria. Si es en memoria, existe un registro especial que indica dónde comienza la tabla de segmentos (STBR: Segment Table Base Register).
      • Si el SO esta diseñado para usar muchos segmentos (extraño), se debe proveer algún sistema similar a TBL para optimizar el acceso a la tabla de segmentos.
      • En segmentación, la división lógica de la memoria permite definir segmentos RO de texto y compartirlos entre diferentes programas. En paginación pura es mas complicado, ya que una misma página podría tener parte de texto y parte de data...
      • Lo mismo para con la protección. Es simple proteger segmentos, ya que tienen la dimensión exacta de lo que queremos proteger.
      • A diferencia de paginación:
      • obalización de la información : los usuarios lo
      • utilizan como recurso corporativo que carece
      • de dueños específicos.
      • Cada segmento ocupa un espació físico contiguo en memoria -> puede habar fragmentación externa.
      • Los segmentos son de longitud variable
    • Es una forma de disminuir la fragmentación externa. Además, hasta ahora el swapping debía hacerse con los procesos completos. Con paginación, un proceso puede ser llevado parcialmente al disco. Regla del 90/10: Un proceso ocupa el 90% del tiempo accediendo a 10% de su memoria. Es usada por casi todas las arquitecturas de hardware y por los SO. Las direcciones lógicas no se disponen continuamente en la memoria física. Consiste en dividir la memoria física en secciones de memoria, llamadas marcos, y dividir la memoria lógica en secciones del mismo tamaño, llamadas páginas. Paginación
    • El tamaño es fijo, y determinado por el hardware (4kb, 2Mb y 4Mb en i386) Cuando se crea un proceso, se le asigna el número de páginas y frames necesarios. Las direcciones lógicas del proceso son un rango continuo de números, pero estas se mapean de forma (probablemente) discontinua en memoria física. Cualquier marco puede ser asignado a cualquier página. Se elimina la fragmentación externa. Se acota la fragmentación interna (~1/2 página por proceso). Ejemplos extremos. Grafico de páginas y marcos: Asignaciones no continuas.
      • Cómo hacemos para mapear un continuo de direcciones lógicas a la memoria física?
      • Los procesos usan direcciones continuas de memoria: direcciones virtuales ó lógicas . Van de 0 al tamaño del proceso.
      • Esta dirección virtual definirá una página y el offset en la página.
      • El SO pedirá al hardware que asigne un marco a las páginas usadas.
      • Una tabla en la MMU asocia las páginas con los marcos.
      • Gráfico de traducción dirección lógica -> Tabla -> dirección física. Sección de offset no traducida. Tamaño de la sección de offset, por qué? 2^N
      • Es una forma (compleja) de relocalización dinámica.
      • Es transparente al proceso.
      • El SO es responsable de mantener la Tabla de Páginas.
      • Tamaño típicos de página: entre 512 y 8192 bytes. (Definida por el hardware). Siempre 2^N. (Ejemplo)
      Hardware en Paginación
    • Diferencias entre Paginación y Segmentación
      • La segmentación produce una División lógica del espacio de direcciones
      • del programa. La paginación es una división física.
      B) Las paginas tienen una dimensión FIJA determinada por la arquitectura de la maquina, los segmentos pueden tener cualquier dimensión determinada por el usuario. C)La división de las direcciones en nº de paginas y de palabra es una función del HW (al sobrepasar nº de palabra incrementa en uno el nº de pagina) La división de nº de segmentos y desplazamiento es una división lógica
    • Esquema
    • Caracteristicas comúnes de la Segmentación y la Paginación En el modo protegido del i386 se cuenta con dos ventajas en la administración de memoria: paginación y segmentación. La segmentación brinda la posibilidad de "aislar" módulos de memoria (código, datos, pila), para que diferentes tareas puedan correr sobre el mismo procesador sin interferir una con otra. La paginación brinda la posibilidad de tener en memoria pequeñas partes de los módulos en función de lo requerido. La paginación puede utilizarse para brindar "aislamiento" entre diferentes tareas.
      • Cuando operamos en modo protegido, alguna forma de segmentación debe ser utilizada, debido a que la segmentación no tiene la posibilidad de habilitarla o no, en cambio la paginación si.
      • Estos dos mecanismos, pueden ser configurados para soportar un único proceso (o tarea), multitarea, o sistemas multiprocesa-miento que utilicen memoria compartida.
      • La segmentación brinda un mecanismo para la división del espacio de memoria direccionable por el procesador (llamado ESPACIO DE DIRECCIONAMIENTO LINEAL) en espacios de direcciones protegidos más pequeños (llamados SEGEMENTOS).
      • Los segmentos pueden ser usados para almacenar CODIGO, DATOS o PILA, para un proceso o estructuras de datos del sistema (como TSS's o LDT's). Si mas de un proceso corre en un procesador, a cada uno de ellos se le puede asignar su propio juego de segmentos. El procesador fuerza los limites entre estos segmentos, y asegura que un proceso no interfiera con la ejecución del otro escribiendo en los segmentos de memoria que no le fueron asignados.
      • La segmentación también brinda la posibilidad de tipificar los segmentos, para evitar que ciertas operaciones no se puedan realizar en ciertos tipos de segmentos (por ejemplo escribir en un segmento de código).
      • Todos los segmentos de un sistema deben ubicarse dentro del espacio de direccionamiento lineal del procesador. Para ubicar un byte en un segmento en particular, se requiere de una DIRECCION LOGICA (a veces llamada puntero lejano). Una dirección lógica consta de un SELECTOR de segmento y un desplazamiento dentro del mismo. Un selector de segmento es un IDENTIFICADOR UNICO del segmento, el mismo se lo ubica a través de un desplazamiento dentro de la tabla de descriptores de segmentos (por ejemplo la GDT, global descriptor table), en dicha posición se encontrara una estructura del sistema, reconocida por el procesador como descriptor de segmento, conteniendo la BASE del segmento (ubicación del primer byte del segmento dentro del espacio direccionable lineal de memoria), su LIMITE (tamaño del segmento), sus permisos de acceso y nivel de privilegio, y tipo de segmento.
      • El desplazamiento, de la dirección lógica, es sumado a la base definida en el descriptor del segmento, el cual es parte de la dirección lógica, formando así la dirección lineal.
      • Si no se utiliza paginación la dirección lineal es mapeada directamente a la DIRECCION FISICA de memoria. La dirección física de memoria es el rango de direcciones que el procesador es capaz de generar a través de su bus de direcciones. Comúnmente en un sistema multitarea se define un espacio de direccionamiento lineal mas grande, conviene poder abarcarlo en espacio físico de direccionamiento, para ello es necesario algún método para "virtual izar" el espacio lineal. Esta virtualización es manejada por el mecanismo de paginación del procesador.
      La paginación soporta un entorno de "memoria virtual", en donde un gran espacio de memoria lineal es simulado con un pequeño espacio de memoria física (RAM y ROM) y un sector de disco. Cuando se utiliza paginación, los segmentos son divididos en páginas, cada una, comúnmente de 4K, las cuales son almacenadas o en el espacio de memoria física, o en el disco.
    • ESQUEMA
      • El sistema operativo mantiene un directorio de páginas, y un juego de tablas de páginas, para tener un seguimiento de las mismas. Cuando un proceso o una tarea intenta acceder a una dirección del espacio de memoria lineal, el procesador consulta el directorio de páginas y las tablas para transformar la dirección lineal en una dirección del espacio físico de memoria, y luego realiza la operación requerida (lectura/escritura) en la ubicación deseada. Si la pagina solicitada no se encuentra en el espacio de direccionamiento físico, el procesador interrumpe la ejecución del programa (generando una EXCEPCION page fault). El sistema operativo obtiene la página del disco y la ubica en el espacio de direccionamiento físico para luego continuar con la ejecución del proceso o tarea interrumpida. Cuando la paginación es implementada correctamente en el sistema operativo, el swapping de páginas entre el espacio físico de direccionamiento y el disco, es transparente para el correcto funcionamiento del proceso o tarea. Hasta los procesos escritos para las arquitecturas de Intel de 16 bits, pueden ser paginados (transparentemente) cuando corren en el modo virtual-8086.
      Caracteristicas comúnes de la Segmentación y la Paginación
    •