Diferencia entre revisiones de «Solución del ejercicio 4 de paginación»
De Wiki de Sistemas Operativos
m |
|||
(No se muestran 7 ediciones intermedias de 3 usuarios) | |||
Línea 1: | Línea 1: | ||
− | C) Si las páginas | + | '''A)'''Razone si las direcciones de memoria 0xabc10008 y 0xabc100aa pertenecen al mismo marco. ¿Y las direcciones 0xabc1fa00 y 0xabc2fa08? |
+ | En las direcciones de memoria 0xabc10008 y 0xabc100aa, como el tamaño de pagina es de 4 Kbytes = 2<sup>12</sup>, podemos diferenciar dos partes: | ||
+ | - Número de página física (primeros 20 bits) | ||
+ | - Desplazamiento (12 bits siguientes) | ||
+ | En un tamaño de palabra de 32 bits (20+12). | ||
+ | Para comprobar si pertenecen al mismo marco miramos si el número de página física es el mismo, y en las dos direcciones que nos | ||
+ | dan lo es:___abc10___ | ||
+ | Mientras que en las direcciones 0xabc1fa00 y 0xabc2fa08 podemos ver que no es el mismo marco: ___abc1f___ no es igual a ___abc2f___ | ||
+ | |||
+ | '''B)'''¿De cuántas páginas físicas dispone el sistema? | ||
+ | Si tenemos 256 Kbytes de tamaño de memoria, es decir, 2<sup>18</sup>, y 4 Kbytes de tamaño de página, 2<sup>12</sup>: | ||
+ | 2<sup>18</sup>(del tamaño de memoria) / 2<sup>12</sup>(del tamaño de página) = 2<sup>6</sup> páginas físicas, porciones de una zona de memoria. | ||
+ | |||
+ | |||
+ | ''C)'' Si las páginas fueran de 1 KByte, ¿pertenecen las direccion 0xabc10008 y 0xabc800aa al mismo marco? Razone la respuesta. | ||
+ | |||
- Bits de marco = '''22 bits de marco''' | - Bits de marco = '''22 bits de marco''' | ||
- Bits de desplazamiento = '''10 bits de desplazamiento'''. | - Bits de desplazamiento = '''10 bits de desplazamiento'''. | ||
+ | |||
0xabc10008 -> Marco: abc10 y los dos primeros bits de 0 = 00 | 0xabc10008 -> Marco: abc10 y los dos primeros bits de 0 = 00 | ||
0xabc800aa -> Marco: abc80 y los dos primeros bits de 0 = 00 | 0xabc800aa -> Marco: abc80 y los dos primeros bits de 0 = 00 | ||
Línea 9: | Línea 25: | ||
'''Desglose de direcciones''' | '''Desglose de direcciones''' | ||
− | + | ┌───────────────────────────┬────────────┐ | |
− | + | 0xabc10008:│1010 1011 1100 '''0001''' 0000 00│00 0000 1000│ | |
− | + | 0xabc800aa:│1010 1011 1100 '''1000''' 0000 00│00 1010 1010│ | |
− | + | └───────────────────────────┴────────────┘ | |
− | + | ''marco'' ''desplazamiento'' | |
+ | |||
+ | ''D)'' Indique el tamaño máximo de la tabla de páginas de un proceso suponiendo que cada entrada ocupa 8 bytes. | ||
+ | Para calcular el tamaño máximo de la tabla de de páginas de un proceso: | ||
+ | - ''Número de páginas máximo'': 64 páginas (2<sup>6</sup>) | ||
+ | - ''Tamaño de entrada'': 8 bytes(2<sup>3</sup>) | ||
+ | '''Tamaño máximo''': número de páginas máximo * tamaño de entrada = 2<sup>6</sup> * 2<sup>3</sup> = '''512 bytes''' |
Revisión actual del 18:58 19 dic 2017
A)Razone si las direcciones de memoria 0xabc10008 y 0xabc100aa pertenecen al mismo marco. ¿Y las direcciones 0xabc1fa00 y 0xabc2fa08?
En las direcciones de memoria 0xabc10008 y 0xabc100aa, como el tamaño de pagina es de 4 Kbytes = 212, podemos diferenciar dos partes: - Número de página física (primeros 20 bits) - Desplazamiento (12 bits siguientes) En un tamaño de palabra de 32 bits (20+12). Para comprobar si pertenecen al mismo marco miramos si el número de página física es el mismo, y en las dos direcciones que nos dan lo es:___abc10___ Mientras que en las direcciones 0xabc1fa00 y 0xabc2fa08 podemos ver que no es el mismo marco: ___abc1f___ no es igual a ___abc2f___
B)¿De cuántas páginas físicas dispone el sistema?
Si tenemos 256 Kbytes de tamaño de memoria, es decir, 218, y 4 Kbytes de tamaño de página, 212: 218(del tamaño de memoria) / 212(del tamaño de página) = 26 páginas físicas, porciones de una zona de memoria.
C) Si las páginas fueran de 1 KByte, ¿pertenecen las direccion 0xabc10008 y 0xabc800aa al mismo marco? Razone la respuesta.
- Bits de marco = 22 bits de marco - Bits de desplazamiento = 10 bits de desplazamiento. 0xabc10008 -> Marco: abc10 y los dos primeros bits de 0 = 00 0xabc800aa -> Marco: abc80 y los dos primeros bits de 0 = 00 Aunque los dos últimos bits coincidan, la primera parte no, por lo tanto no son del mismo marco. Desglose de direcciones ┌───────────────────────────┬────────────┐ 0xabc10008:│1010 1011 1100 0001 0000 00│00 0000 1000│ 0xabc800aa:│1010 1011 1100 1000 0000 00│00 1010 1010│ └───────────────────────────┴────────────┘ marco desplazamiento
D) Indique el tamaño máximo de la tabla de páginas de un proceso suponiendo que cada entrada ocupa 8 bytes.
Para calcular el tamaño máximo de la tabla de de páginas de un proceso: - Número de páginas máximo: 64 páginas (26) - Tamaño de entrada: 8 bytes(23) Tamaño máximo: número de páginas máximo * tamaño de entrada = 26 * 23 = 512 bytes