SEGMENTACIÓN• Organiza a la memoria como una colección de unidades de  tamaño variables llamadas segmentos, el concepto de...
La tabla es apuntada por el STBR <segment table base  register> y la medida de ella se mantiene en STLR <segment  table le...
• Para los procesadores 8086-8088, un segmento es una porción  de memoria de 64Kb como máximo.• Un "Registro de Segmento" ...
PAGINACIÓN• A diferencia de la segmentación la paginación se hace contamaños de memoria fijos llamados "páginas".Gracias a...
•Consiste en dividir el proceso en páginas ycargarlas en marcos de memoria física a medidaque se van necesitando y en el p...
•Ejemplo. Supongamos que tenemos una máq. de 32 kb dememoria física y que puede generar direcciones de 16 bits, de 0a 64k ...
• Existen 2 notaciones: Direcciones absolutas, indicadas por  un hexadecimal de cinco dígitos, en el rango 00000-FFFFFh, o...
Próxima SlideShare
Cargando en…5
×

Unida ii 7a

1.096 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.096
En SlideShare
0
De insertados
0
Número de insertados
859
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unida ii 7a

  1. 1. SEGMENTACIÓN• Organiza a la memoria como una colección de unidades de tamaño variables llamadas segmentos, el concepto de segmentación es eficaz, pero no flexible; por este motivo, los procesadores 386 y posteriores poseen, la función de paginación.• La admón de memoria por segmentación se parece más a un programa, ya que tiene subrutinas, procedimientos, funciones, arreglos, stacks, y cada una de éstas estructuras tiene un identificador asociado y son de longitud variable. Una dirección específica dentro de ella se puede ver como un offset de la dirección de inicio.• La implementación consiste en transformar una dirección de 2 dimensiones <segment,offset> en una dirección física unidimensional, esta transformación se realiza a través de la tabla de páginas, donde cada entrada tiene la dirección física de inicio y la longitud <base,limit>.
  2. 2. La tabla es apuntada por el STBR <segment table base register> y la medida de ella se mantiene en STLR <segment table length register>Dada una dirección lógica(s,p,d) donde s es el numero del segmento, p el numero de pagina dentro del segmento y d es el desplazamiento dentro de la página. Si d supere el limite del segmento tendría un direccionamiento ilegal de lo contrario se obtiene la dirección real. 0 1400 Seg 0Subrutina S0 2400 Num. seg Base LongitudPrograma S1 principal 0 1400 1000 3200 Seg 3 Sqrt S2 1 6300 400 4300 2 4300 400 Seg 2 Pila S3 4700 3 3200 1100 5700 Seg 4 Tabla de S4simbolos 6300 Seg 1 Mem Virtual 6700 Tabla de segmentos Mem física
  3. 3. • Para los procesadores 8086-8088, un segmento es una porción de memoria de 64Kb como máximo.• Un "Registro de Segmento" señala el inicio de un segmento en la memoria mediante una dirección de 16 bits. Para obtener una dirección completa en un espacio de 1 Mb se multiplica esta dirección por 16; agregando cuatro 0 a la derecha de la dirección en binario. Un puntero de 16 bits indica un "desplazamiento" en relación con su comienzo.• Una dirección completa se indica en hexadecimales especificando: El segmento : el desplazamiento. Por ejemplo, para el segmento lB53, es decir, lB530 y con un desplazamiento 0100 a partir del comienzo de este segmento, la dirección será: 1B53:0100• La segmentación permite fragmentar los programas en particiones lógicas y aplicarles protecciones. Pero obliga a cargar la totalidad de un segmento en la memoria física, lo que no es sencillo si el segmento es importante; por otra parte, un segmento debe estar ordenado en forma continua en la memoria central. Esto implica que se perderán posibles "agujeros" eventualmente disponibles.
  4. 4. PAGINACIÓN• A diferencia de la segmentación la paginación se hace contamaños de memoria fijos llamados "páginas".Gracias a este concepto de paginación, el DOS 6 contiene en lamemoria superior (en la zona libre de los 384 Kb por encima de losprimeros 640 Kb) programas residentes y drivers, en lascomputadoras 386 y 486.Se reservan 128 Kb para la RAM video, en las direcciones OAOOOOa OBFFFE Asimismo, se reservan 128 Kb en la parte superior delprimer megabyte para el DOS, direcciones OEOOOO a100000, siempre en hexadecimales. Participación individual. FRAGMENTACION
  5. 5. •Consiste en dividir el proceso en páginas ycargarlas en marcos de memoria física a medidaque se van necesitando y en el primer marco vacioque se encuentre. 1 Pg.0-A 2 3 Pg.0-B 4 Pg.1-A 5 Pg.1-B 6 Pg.2-B 1 3 Pag 0 7 Pg.2-A Pag 1 Pag 0 4 5 Pag 1 8 Pg.3-A Pag 2 7 6 Pag 3 Pag 2 8 9 Tabla de pag Tabla de pagProceso A proceso B del proceso B Pag físicas del proceso A
  6. 6. •Ejemplo. Supongamos que tenemos una máq. de 32 kb dememoria física y que puede generar direcciones de 16 bits, de 0a 64k éstas son direcciones virtuales. Las paginas y los marcosdeben ser de igual tamaño, en nuestro ej. Serán de 4k. Por lotanto tengo 16 páginas virtuales y 8 marcos.1 El programa accede a la dirección 0 por la instrucción Movereg 0, la dirección 0 se manda a MMU que checa que la dir virtual0 queda en la pag. 0 (0-4095) y que el cuadro de pagina que lecorresponde es 2 (8192-12287).Por lo tanto se transforma a ladirección en 81922 La memoria advierte que hay una solicitud de memoria a ladirección 8192. En la tabla de pagina la correspondenciasiguiente es de 2 virtual a 6 física entonces Move Reg 8192 setransforma en Move reg 24576.3 la dirección virtual 20500 tiene 20 bytes desde el inicio de lapagina virtual 5 (20480-24575), en la tabla de paginas la paginavirtual 5 apunta al cuadro de pagina 3 por lo tanto se transformaen 12288+20= 12308.
  7. 7. • Existen 2 notaciones: Direcciones absolutas, indicadas por un hexadecimal de cinco dígitos, en el rango 00000-FFFFFh, o en direcciones segmentadas, que utiliza dos grupos de cuatro dígitos hexadecimales.• PC XT tenia un Bdir de 20 bits equivalente a 1.048.576. Sin embargo, el procesador 8088 solo tiene registros de 16 bits, por lo que solo puede contener 216 posiciones (65.536). La solución era expresar las direcciones mediante dos palabras de 16 bits, denominadas desplazamiento y segmento que pueden ser representadas mediante un hexadecimal de cuatro cifras en el rango 0000-FFFFh. Estas dos palabras pueden ser traducidas a una dirección de 20 bits mediante la operación denominada suma con desplazamiento.• Por ejemplo, el desplazamiento y el segmento es respectivamente ABCDh y E1FAh, entonces al desplazamiento se le pone un cero a la derecha ABCD0h (se transforma en un hexadecimal de 5 cifras). El valor obtenido se suma con el valor del segmento (E1FAh), así que la dirección resultante, sería B9ECAh. Para distinguirla de la anterior, esta última forma se denomina dirección absoluta

×