el subsistema de memoriapersonales.upv.es/pabmitor/acso/files/arqcomp/cst/arqcomp t5.pdf · Öun...

46
Arquitectura de Computadores Tema 5: Subsistema de Memoria 1 1 Arquitectura de Computadores y Sistemas Operativos El subsistema de Memoria Departament d’Informàtica de Sistemes i Computadors E.P.S.Alcoi 2 Arquitectura de Computadores y Sistemas Operativos Bloque Temático II: Arquitectura de Computadores Tema 3: Introducción a la arquitectura de un computador Tema 4: Procesadores segmentados Tema 5: El subsistema de memoria Tema 6: El subsistema de Entrada/Salida Tema 7: Computadores Superescalares Tema 8: Multiprocesadores

Upload: others

Post on 02-Nov-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 1

1Arquitectura de Computadores y Sistemas Operativos

El subsistema de Memoria

Departament d’Informàtica de Sistemes i ComputadorsE.P.S.Alcoi

2Arquitectura de Computadores y Sistemas Operativos

Bloque Temático II: Arquitectura de Computadores

Tema 3: Introducción a la arquitectura de un computadorTema 4: Procesadores segmentadosTema 5: El subsistema de memoriaTema 6: El subsistema de Entrada/SalidaTema 7: Computadores SuperescalaresTema 8: Multiprocesadores

Page 2: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 2

3Arquitectura de Computadores y Sistemas Operativos

Gestión de la memoriaMemoria Virtual

Gestión de la Memoria

4Arquitectura de Computadores y Sistemas Operativos

Subdivisión de la memoria para hacer sitio a varios procesos. Hace falta repartir eficientemente la memoria para introducir tantos procesos como sea posible.

Gestión de la Memoria

Page 3: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 3

5Arquitectura de Computadores y Sistemas Operativos

Requisitos de la gestión de memoria

Reubicación:• El programador no conoce qué otros programas

residirán en la memoria en el momento de la ejecución.

• Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicación distinta a la anterior (reubicación).

• Se deben traducir las referencias a la memoria encontradas en el código del programa a las direcciones físicas reales.

6Arquitectura de Computadores y Sistemas Operativos

Direccionesascendentes

Informaciónde controldel proceso

Punto de entrada

al programa

Cima actualde pila

Instrucciónde bifurcación

Referencia de datos

Bloque de control de proceso

Programa

Datos

Pila

Figura 7.1. Requisitos de dirección para un proceso.

Page 4: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 4

7Arquitectura de Computadores y Sistemas Operativos

Requisitos de la gestión de memoria

Protección:• El código de un proceso no puede hacer

referencia a posiciones de memoria de otros procesos sin permiso.

• Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicación de un programa en la memoria principal.

• Debe comprobarse durante la ejecución:# El sistema operativo no puede anticiparse a todas

las referencias a la memoria que hará un programa.

8Arquitectura de Computadores y Sistemas Operativos

Requisitos de la gestión de memoria

Compartimiento:• Permite el acceso de varios procesos a la misma

zona de la memoria principal. • Es mejor permitir a cada proceso (persona) que

acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.

Page 5: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 5

9Arquitectura de Computadores y Sistemas Operativos

Requisitos de la gestión de memoria

Organización lógica:• La mayoría de los programas se organizan en

módulos.• Los módulos pueden escribirse y compilarse

independientemente.• Pueden otorgarse distintos grados de protección

(sólo lectura, sólo ejecución) a los módulos.• Compartir módulos.

10Arquitectura de Computadores y Sistemas Operativos

Requisitos de la gestión de memoria

Organización física:• La memoria disponible para un programa y sus

datos puede ser insuficiente:# La superposición permite que varios módulos sean

asignados a la misma región de memoria.• El programador no conoce cuánto espacio habrá

disponible.

Page 6: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 6

11Arquitectura de Computadores y Sistemas Operativos

Particiones estáticas

Particiones de igual tamaño:• Cualquier proceso cuyo tamaño sea menor o igual

que el tamaño de la partición puede cargarse en cualquier partición libre.

• Si todas las particiones están ocupadas, el sistema operativo puede sacar un proceso de una partición.

• Un programa puede que no se ajuste a una partición. El programador debe diseñar el programa mediante superposiciones.

12Arquitectura de Computadores y Sistemas Operativos

Particiones estáticas

El uso de la memoria principal es ineficiente. Cualquier programa, sin importar lo pequeño que sea, ocupará una partición completa. Este fenómeno se denomina fragmentación interna.

Page 7: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 7

13Arquitectura de Computadores y Sistemas Operativos

Sistema operativo8M

Sistema operativo8M

(a) Particiones de igual tamaño

(a) Particiones de distinto tamaño

Figura 7.2. Ejemplo de partición estática en una memoria de 64Mb.

8M

8M

8M

8M

8M

8M

8M

2M4M

6M

8M

8M

12M

16M

14Arquitectura de Computadores y Sistemas Operativos

Algoritmo de ubicación con particiones

Particiones de igual tamaño:• Puesto que todas las particiones son de igual

tamaño, no importa la partición que se use.Particiones de distintos tamaños:• Pueden asignar cada proceso a la partición más

pequeña en la que quepa. • Hace falta una cola para cada partición.• Los procesos están asignados de forma que se

minimiza la memoria desaprovechada dentro de cada partición (se minimiza la fragmentacióninterna)

Page 8: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 8

15Arquitectura de Computadores y Sistemas Operativos

Sistemaoperativo

Sistemaoperativo

Procesosnuevos

Procesosnuevos

(a) Una cola de procesos por partición (b) Cola única de procesos

Figura 7.3. Asignación de memoria en partición estática.

16Arquitectura de Computadores y Sistemas Operativos

Particiones dinámicas

Las particiones son variables en número y longitud. Al proceso se le asigna exactamente tanta memoria como necesite. Finalmente, hay varios huecos en la memoria. Este fenómeno se denomina fragmentación externa. Se debe usar la compactación para desplazar los procesos que estén contiguos, de forma que toda la memoria libre quede junta en un bloque.

Page 9: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 9

17Arquitectura de Computadores y Sistemas Operativos

Sistemaoperativo

Sistemaoperativo

Sistemaoperativo

Sistemaoperativo

Proceso 1 Proceso 1Proceso 1

Proceso 2 Proceso 2

Proceso 3

Figura 7.4. Efectos de la partición dinámica.

8M

56M

20M 20M 20M

36M

14M 14M

22M 18M

4M

(a) (b) (c) (d)

18Arquitectura de Computadores y Sistemas Operativos

Figura 7.4. Efectos de la partición dinámica.

Sistemaoperativo

Sistemaoperativo

Sistemaoperativo

Sistemaoperativo

Proceso 1 Proceso 1

Proceso 3 Proceso 3Proceso 3Proceso 3

Proceso 4 Proceso 4Proceso 4

Proceso 220M20M 20M

14M

18M

4M

8M

6M

18M

4M 4M

18M

6M

8M 8M

6M

6M

18M

14M

4M

(e) (f) (g) (h)

Page 10: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 10

19Arquitectura de Computadores y Sistemas Operativos

Algoritmo de ubicación con particiones dinámicas

El sistema operativo debe decidir qué bloque libre se tiene que asignar al proceso. Algoritmo del mejor ajuste (best-fit):• Elige el bloque de tamaño más próximo al solicitado. • Proporciona en general los peores resultados. • Puesto que este algoritmo busca el hueco más

pequeño para el proceso, garantiza que el fragmento que se deja es lo más pequeño posible y, por lo tanto, se debe compactar más frecuentemente.

20Arquitectura de Computadores y Sistemas Operativos

Algoritmo de ubicación con particiones dinámicas

Algoritmo del primer ajuste (first-fit):• Es más rápido.• Normalmente habrá varios procesos cargados en el

extremo inicial de la memoria, que será necesario recorrer cuando se intente encontrar un bloque libre (el puntero en memoria queda en la posición en la que se ha ubicado el último bloque en memoria por lo que, en el algoritmo first-fit, hay que volver a recorrer la memoria desde el inicio).

Page 11: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 11

21Arquitectura de Computadores y Sistemas Operativos

Algoritmo de ubicación con particiones dinámicas

Algoritmo del siguiente ajuste (next-fit):• Lleva frecuentemente a la asignación de un

bloque de memoria de la última ubicación, donde se encuentra el bloque más grande.

• El bloque de memoria más grande se divide en fragmentos pequeños.

• Hará falta la compactación para obtener un bloque de memoria grande al final del espacio de memoria.

22Arquitectura de Computadores y Sistemas Operativos

Último bloque asignado (14K)

Primer ajuste

Mejor ajuste

Bloque asignado

Bloque libre

Siguiente ajuste

(a) Antes (b) Después

Figura 7.5. Ejemplo de una configuración de memoria antes y después de asignar un bloque de 16 Mbytes.

8M 8M

12M 12M

22M

18M

8M 8M

6M 6M

6M

2M

14M

36M

14M

20M

Page 12: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 12

23Arquitectura de Computadores y Sistemas Operativos

Sistema de colegas

El espacio entero disponible para la asignación se trata como un solo bloque de tamaño 2U

Si se hace una solicitud de tamaño s tal que 2U-1 < s <= 2U, entonces el bloque entero se asigna:• En otro caso, el bloque se divide en dos colegas de igual

tamaño. • Este proceso continúa hasta que el bloque más pequeño sea

mayor o igual que s.

24Arquitectura de Computadores y Sistemas Operativos

1 bloque de 1 megabyte

Solicitud de 100K

Solicitud de 240K

Solicitud de 64K

Solicitud de 256K

Solicitud de 75K

Liberación de B

Liberación de A

Liberación de C

Liberación de E

Liberación de D

Figura 7.6. Ejemplo del sistema de colegas.

Page 13: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 13

25Arquitectura de Computadores y Sistemas Operativos

Figura 7.7. Representación en árbol del sistema de colegas.

26Arquitectura de Computadores y Sistemas Operativos

Reubicación

Cuando el proceso se carga en la memoria, se determina la ubicación real (absoluta) de la memoria. Un proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones absolutas de la memoria durante su ejecución (a partir de la carga). La compactación también hará que un programa ocupe una partición distinta, lo que significa que las ubicaciones absolutas de la memoria cambien.

Page 14: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 14

27Arquitectura de Computadores y Sistemas Operativos

Direcciones

Dirección lógica:• Es una referencia a una posición de memoria

independiente de la asignación actual de datos a la memoria.

• Se debe hacer una traducción a una dirección física. Dirección relativa:• La dirección se expresa como una posición relativa a

algún punto conocido. Dirección física:• La dirección absoluta o la posición real en la memoria

principal.

28Arquitectura de Computadores y Sistemas Operativos

Dirección relativa

Direcciónabsoluta

Interrupción al sistema operativo

Registro base

Registro límite

Sumador

Comparador

Programa

Datos

Pila

Bloque de control de proceso

Imagen de un procesoen la memoria

principal

Figura 7.8. Soporte de hardware para la reubicación.

Page 15: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 15

29Arquitectura de Computadores y Sistemas Operativos

Registros utilizados durante la ejecución

Registro base:• Se carga con la dirección en la memoria principal

del proceso.Registro límite:• Indica la posición final del programa.

Estos valores deben asignarse cuando se carga el programa y cuando se carga el proceso.

30Arquitectura de Computadores y Sistemas Operativos

Registros utilizados durante la ejecución

Se añade el valor del registro base a la dirección relativa para obtener una dirección absoluta. La dirección obtenida se compara con el valor del registro límite. Si la dirección no está dentro de los límites, se generará una interrupción en el sistema operativo.

Page 16: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 16

31Arquitectura de Computadores y Sistemas Operativos

Paginación

La memoria principal se encuentra dividida en trozos iguales de tamaño fijo y cada proceso en pequeños trozos de tamaño fijo. Los trozos del proceso se denominan páginas y los trozos libres de memoria se denominan marcos. El sistema operativo mantiene una tabla de páginas para cada proceso:• Muestra la posición del marco de cada página del

proceso. • La dirección de la memoria consta de un número de

página y de un desplazamiento dentro de la página.

32Arquitectura de Computadores y Sistemas Operativos

Memoria principal Memoria principal Memoria principalNúmero de marco

(a) Quince marcos libres (b) Carga del proceso A (c) Carga del proceso B

Figura 7.9. Asignación de páginas de procesos a marcos libres.

Page 17: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 17

33Arquitectura de Computadores y Sistemas Operativos

Memoria principal Memoria principalMemoria principal

(d) Carga del proceso C (e) Descarga del proceso B (f) Carga del proceso D

Figura 7.9. Asignación de páginas de procesos a marcos libres.

34Arquitectura de Computadores y Sistemas Operativos

Tablas de páginas

Tabla de páginas delproceso A

Tabla de páginas delproceso B

Tabla de páginas delproceso C

Tabla de páginas delproceso D

Lista demarcoslibres

Figura 7.10. Estructuras de datos para el ejemplo de la Figura 7.9 en el instante de tiempo (f).

Page 18: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 18

35Arquitectura de Computadores y Sistemas Operativos

Segmentación

No es necesario que todos los segmentos de todos los programas tengan la misma longitud. Existe una longitud máxima de segmento.Un dirección lógica segmentada consta de dos partes, un número de segmento y un desplazamiento.Como consecuencia del empleo de segmentos de distinto tamaño, la segmentación resulta similar a la partición dinámica.

36Arquitectura de Computadores y Sistemas Operativos

Gestión de la memoriaMemoria Virtual

Gestión de la Memoria

Page 19: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 19

37Arquitectura de Computadores y Sistemas Operativos

Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas durante la ejecución: • Un proceso puede cargarse y descargarse de la

memoria principal de tal forma que ocupe regiones diferentes.

Un proceso puede dividirse en varias partes y no es necesario que estas partes se encuentren contiguas en la memoria principal durante la ejecución: • No será necesario que todas las páginas o todos los

segmentos de un proceso estén en la memoria durante la ejecución.

Estructuras de hardware y de control

38Arquitectura de Computadores y Sistemas Operativos

El sistema operativo comienza trayendo sólo unos pocos fragmentos del programa. El conjunto residente es la parte de un proceso que está realmente en la memoria principal. Si el procesador encuentra una dirección lógica que no está en la memoria principal, genera una interrupción que indica un fallo de acceso a la memoria. El sistema operativo pone al proceso interrumpido en estado Bloqueado.

Ejecución de un programa

Page 20: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 20

39Arquitectura de Computadores y Sistemas Operativos

El sistema operativo necesita traer a la memoria principal el fragmento del proceso que contiene la dirección lógica que provocó el fallo de acceso:• El sistema operativo emite una solicitud de Lectura

de E/S al disco. • El sistema operativo puede expedir otro proceso

para que se ejecute mientras realiza la operación de E/S.

• Una vez que el fragmento deseado se ha traído a la memoria principal y se ha emitido la interrupción de E/S, se devuelve el control al sistema operativo, que coloca el proceso afectado en el estado de Listo.

Ejecución de un programa

40Arquitectura de Computadores y Sistemas Operativos

Se pueden mantener más procesos en la memoria principal: • Se cargan sólo algunos fragmentos de un

proceso particular. • Con tantos procesos en la memoria principal es

muy probable que uno de los procesos esté en estado Listo en un instante determinado.

Es posible que un proceso sea más grande que toda la memoria principal.

Ventajas de dividir un proceso

Page 21: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 21

41Arquitectura de Computadores y Sistemas Operativos

Memoria real:• Memoria principal.

Memoria virtual:• Memoria situada en el disco.• Permite una multiprogramación muy efectiva y

releva al usuario de las rígidas e innecesarias restricciones de la memoria principal.

Tipos de memoria

42Arquitectura de Computadores y Sistemas Operativos

El sistema operativo expulsa un fragmento de un proceso justo antes de ser usado. El procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.

Hiperpaginación

Page 22: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 22

43Arquitectura de Computadores y Sistemas Operativos

Las referencias a los datos y al programa dentro de un proceso tienden a agruparse. Durante cortos periodos de tiempo se necesitarán sólo unos pocos fragmentos de un proceso. Sería posible hacer predicciones inteligentes sobre qué fragmentos de un proceso se necesitarán en un futuro cercano. El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar eficazmente.

Principio de cercanía

44Arquitectura de Computadores y Sistemas Operativos

Tiene que existir un soporte de hardware para la paginación y la segmentación. El sistema operativo debe incluir un software para gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal.

Soportes de la memoria virtual

Page 23: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 23

45Arquitectura de Computadores y Sistemas Operativos

Cada proceso tiene su propia tabla de página. Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal. Se necesita un bit para indicar si la página correspondiente está presente en la memoria principal o no lo está.

Paginación

46Arquitectura de Computadores y Sistemas Operativos

Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación para indicar si el contenido de la página se ha alterado desde que la página se cargó en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.

El bit de modificación en la tabla de páginas

Page 24: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 24

47Arquitectura de Computadores y Sistemas Operativos

Dirección virtual

Entrada de la tabla de páginas

(a) Sólo paginación

Número de página Desplazamiento

PP MM Otros bits de controlOtros bits de control Número de marcoNúmero de marco

Figura 8.2. Formatos típicos de gestión de memoria.

Entradas de la tabla de páginas

48Arquitectura de Computadores y Sistemas Operativos

N.º pág.

N.º marco

Figura 8.3. Traducción de direcciones en un sistema de paginación.

Despla-zamiento N.º marco Despla-

zamiento

Despla-zamiento

Dirección virtual

Registro

Tabla de páginas

N.º

pági

na Marcode

página

Puntero a tabla de páginas

Programa Mecanismo de paginación Memoria principal

Page 25: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 25

49Arquitectura de Computadores y Sistemas Operativos

La tabla de páginas completa puede ocupar una cantidad enorme de memoria principal. Para solucionar este problema, las tablas de páginas también se almacenan en la memoria virtual. Cuando un proceso se está ejecutando, al menos una parte de su tabla de páginas se encuentra en la memoria principal.

Tablas de páginas

50Arquitectura de Computadores y Sistemas Operativos

Cada referencia a la memoria virtual puede generar dos accesos a la memoria:• Uno para obtener la entrada de la tabla de

páginas correspondiente. • Otro para obtener el dato deseado.

Para solucionar este problema, los esquemas de memoria virtual hacen uso de un cache especial para las entradas de la tabla de páginas:• Se trata de la buffer de traducción adelantada

(TLB, Translation Lookaside Buffer).

Buffer de traducción adelantada

Page 26: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 26

51Arquitectura de Computadores y Sistemas Operativos

Contiene aquellas entradas de la tabla de páginas usadas hace menos tiempo. Funciona del mismo modo que una memoria cache.

Buffer de traducción adelantada

52Arquitectura de Computadores y Sistemas Operativos

Dada una dirección virtual, el procesador examinaráprimero la TLB.Si la entrada de la tabla de páginas buscada estápresente (un “acierto en la TLB”), se obtiene el número de marco y se forma la dirección real.Si la entrada de la tabla de páginas no se encuentra (un “fallo en la TLB”), el procesador emplea el número de página como índice para buscar en la tabla de páginas del proceso y examinar la entrada correspondiente de la tabla de páginas.

Buffer de traducción adelantada

Page 27: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 27

53Arquitectura de Computadores y Sistemas Operativos

Primero comprueba que la página esté en la memoria principal: • Si no está, se produce un fallo en el acceso a la

memoria, llamado fallo de página. El procesador actualiza la TLB para incluir esta nueva entrada de la tabla de páginas.

Buffer de traducción adelantada

54Arquitectura de Computadores y Sistemas Operativos

Volver a la instrucción que falló

Rutina de gestiónde fallo de página

No

No

No

Comienzo

La CPU compruebala TLB

Acceder a la tablade páginas

Actualizar TLB

La CPU generala dirección física

La CPU generala dirección física

El SO ordenaa la CPU leer

la página del disco

La CPU activa el hardware de E/S

La página se transfiere del discoa memoria principal

Actualizar las tablasde páginas

Actualizar las tablasde páginas

¿Memoria llena?

Figura 8.8. Funcionamiento de la paginación con buffer de traducción adelantada (TLB) [FUTH87].

¿Está la entradade la tabla de página

en la TLB?

¿Está la página en memoria principal?

Page 28: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 28

55Arquitectura de Computadores y Sistemas Operativos

Dirección virtual Memoria principal Memoria secundaria

Buffer de traducción adelantada

Dirección real

Despla-zamiento

Despla-zamiento

Acierto de TLB

Fallo de TLB

Tabla de páginas

Despla-zamiento

Cargarpágina

Fallo de página

Nº. Pág.

N.º marco

Figura 8.7. Uso de un Buffer de Traducción Adelantada.

N.º pág. Despla-zamiento

56Arquitectura de Computadores y Sistemas Operativos

Cuanto menor sea el tamaño de página, menor será la cantidad de fragmentación interna. Cuanto menor sea la página, mayor será el número de páginas que se necesitan por proceso. Un número mayor de páginas por proceso significa que las tablas de páginas serán mayores. Esto puede significar que una gran parte de las tablas de páginas de los procesos activos deben estar en la memoria virtual. La memoria secundaria está diseñada para transferir eficazmente los bloques de datos de mayor tamaño, de manera que es propicia para tamaños de página mayores.

Tamaño de página

Page 29: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 29

57Arquitectura de Computadores y Sistemas Operativos

Si el tamaño de página es muy pequeño, estarán disponibles en la memoria principal un gran número de páginas para cada proceso. Después de un tiempo, todas las páginas de la memoria contendrán parte de las referencias más recientes del proceso. La tasa de fallos de página será menor. Cuando se incrementa el tamaño de la página, cada página individual contendrán posiciones cada vez más distantes de cualquier referencia reciente. La tasa de fallos será mayor.

Tamaño de página

58Arquitectura de Computadores y Sistemas Operativos

Figura 8.11. Comportamiento típico de la paginación en un programa.

Tas

a de

fallo

s de

pági

na

Tas

a de

fallo

s de

pági

na

(a) Tamaño de página (b) Número de marcos de página asignados

P = Tamaño del proceso completoW = Tamaño del conjunto de trabajoN = Número total de páginas del proceso

Page 30: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 30

59Arquitectura de Computadores y Sistemas Operativos

Múltiples tamaños de página proporcionan la flexibilidad necesaria para usar una TLB eficazmente. Las páginas grandes se pueden utilizar para traducir instrucciones de programa. Las páginas de pequeño tamaño se pueden emplear para las pilas de los hilos. La mayoría de los sistemas operativos favorecen el uso de un solo tipo de página.

Tamaño de página

60Arquitectura de Computadores y Sistemas Operativos

Tabla 8.2. Ejemplos de tamaños de páginas.

Computadora Tamaño de página

Atlas 512 palabras de 48 bits

Honeywell-Multics 1.024 palabras de 36 bits

IBM 370/XA y 370/ESA 4 Kbytes

Familia VAX 512 bytes

IBM AS/400 512 bytes

DEC Alpha 8 Kbytes

MIPS de 4 Kbytes a 16 Mbytes

UltraSPARC de 8 Kbytes a 4 Mbytes

Pentium de 4 Kbytes a 4 Mbytes

Power Pc 4 Kbytes

Ejemplos de tamaños de páginas

Page 31: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 31

61Arquitectura de Computadores y Sistemas Operativos

Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Simplifica la gestión de estructuras de datos crecientes. Permite modificar y recopilar los programas independientemente.Se presta a la compartición entre procesos. Se presta a la protección.

Segmentación

62Arquitectura de Computadores y Sistemas Operativos

Segmento correspondiente de la memoria principal. Cada entrada de la tabla de segmentos contiene la longitud del segmento. Se necesita un bit para indicar si el segmento correspondiente está presente en la memoria principal. Otro bit de control necesario es un bit de modificación que indique si el contenido del segmento correspondiente ha sido modificado desde que se cargó por última vez en la memoria principal.

Tablas de segmentos

Page 32: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 32

63Arquitectura de Computadores y Sistemas Operativos

Dirección virtual

Entrada del segmento de tabla

Número de segmento Desplazamiento

PP MM Otros bits de controlOtros bits de control LongitudLongitud Base de segmentoBase de segmento

Figura 8.2. Formatos típicos de gestión de memoria.

(b) Sólo segmentación

Entradas de las tablas de segmentos

64Arquitectura de Computadores y Sistemas Operativos

La paginación es transparente al programador. La paginación elimina la fragmentación externa. La segmentación es visible para el programador. La segmentación permite gestionar estructuras de datos que pueden crecer, la modularidad y el soporte de la compartición y la protección. Cada segmento se divide en varias páginas de tamaño fijo.

Paginación y segmentacióncombinadas

Page 33: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 33

65Arquitectura de Computadores y Sistemas Operativos

Dirección virtual

Entrada de la tabla de segmentos

Nº. segmento

PP MM

LongitudLongitud Base de segmentoBase de segmentoOtros bits de controlOtros bits de control

Número de páginaNúmero de página Despla-zamientoDespla-

zamientoNúmero de segmentoNúmero de segmento

Otros bits de controlOtros bits de control Número de marcoNúmero de marco

Entrada de la tabla de páginas

Figura 8.2. Formatos típicos de gestión de memoria.

(c) Segmentación y paginación combinadas

P = Bit de presenciaM = Bit de modificación

Paginación y segmentacióncombinadas

66Arquitectura de Computadores y Sistemas Operativos

Memoria principalDirección

Distribuidor

Proceso A

Proceso B

Proceso C

Ningún acceso permitido

Instrucción de salto (no permitida)

Referencia a datos(permitida)

Referencia a datos (no permitida)

Figura 8.14. Relaciones de protección entre segmentos.

Page 34: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 34

67Arquitectura de Computadores y Sistemas Operativos

Política de lectura:• Está relacionada con la decisión de cuándo se debe

cargar una página en la memoria principal. • Con la paginación por demanda, se trae una página

a la memoria principal sólo cuando se hace referencia a una posición en dicha página:

# Cuando un proceso se ejecute por primera vez, se producirán muchos fallos de página.

• Con la paginación previa, se cargan más páginas de las necesarias:

# Es más eficiente traer a la memoria un número de páginas contiguas.

Políticas de lectura

68Arquitectura de Computadores y Sistemas Operativos

Política de ubicación:• Qué página se va a reemplazar.• La página que se va a reemplazar tiene que

ser la que tenga una menor posibilidad de ser referenciada en un futuro cercano.

• La mayoría de las políticas intentan predecir el comportamiento futuro en función del comportamiento pasado.

Políticas de reemplazo

Page 35: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 35

69Arquitectura de Computadores y Sistemas Operativos

Bloqueo de marcos:• Cuando un marco está bloqueado, la página

cargada en ese marco no puede ser reemplazada.

• La mayoría del núcleo del sistema operativo estáen marcos bloqueados.

• Estructuras de control.• Buffers de E/S.• El bloqueo se consigue asociando un bit de

bloqueo a cada marco.

Políticas de reemplazo

70Arquitectura de Computadores y Sistemas Operativos

Política óptima:• Selecciona para reemplazar la página que

tiene que esperar una mayor cantidad de tiempo hasta que se produzca la referencia siguiente.

• Es imposible de implementar porque requiere que el sistema operativo tenga un conocimiento exacto de los sucesos futuros.

Algoritmos básicos de reemplazo

Page 36: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 36

71Arquitectura de Computadores y Sistemas Operativos

Política de la usada menos recientemente (LRU):• Reemplaza la página de memoria que no ha

sido referenciada desde hace más tiempo. • Debido al principio de cercanía, ésta sería la

página con menor probabilidad de ser referenciada en un futuro cercano.

• Una solución sería etiquetar cada página con el momento de su última referencia.

Algoritmos básicos de reemplazo

72Arquitectura de Computadores y Sistemas Operativos

Política de primera en entrar primera en salir (FIFO):• Trata los marcos asignados a un proceso como un

buffer circular. • Las páginas se suprimen de la memoria según la

técnica de turno rotatorio (round-robin).• Es una de las políticas de reemplazo más sencillas

de implementar.• Se reemplaza la página que ha estado más tiempo en

la memoria. • Estas páginas pueden necesitarse de nuevo y en un

plazo de tiempo corto.

Algoritmos básicos de reemplazo

Page 37: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 37

73Arquitectura de Computadores y Sistemas Operativos

Política del reloj:• Requiere asociar un bit adicional a cada marco,

denominado bit de uso. • Cuando se carga una página por primera vez en un marco

de memoria, el bit de uso de dicho marco se pone a cero. • Cuando se hace referencia a la página posteriormente, el

bit de uso se pone a 1. • Cuando llega el momento de reemplazar una página, el

primer marco encontrado con el bit de uso a 0 es reemplazado.

• Durante la búsqueda para realizar reemplazos cada bit de uso a 1 se cambia a 0.

Algoritmos básicos de reemplazo

74Arquitectura de Computadores y Sistemas Operativos

Primer marco en el buffercircular de marcos que soncandidatos para el reemplazo

Página 9uso = 1

Página 19uso = 1

Página 191uso = 1

Página 1uso = 1

Página 45uso = 1

Página 13uso = 0

Página 67uso = 1

Página 33uso = 1

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.

(a) Estado del buffer justo antes del reemplazo de página

Puntero alsiguiente

marco

Página 556uso = 0

Página 222uso = 0

Page 38: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 38

75Arquitectura de Computadores y Sistemas Operativos

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.

(b) Estado del buffer justo después del siguiente reemplazo de página

Página 9uso = 1

Página 19uso = 1

Página 1uso = 0

Página 45uso = 0

Página 191uso = 0

Página 727uso = 0

Página 13uso = 0

Página 67uso = 1

Página 33uso = 1

Página 222uso = 0

76Arquitectura de Computadores y Sistemas Operativos

Almacenamiento intermedio de páginas:• La pista de la página reemplazada se asigna a

una de las dos listas siguientes: # La lista de páginas libres, si la página no ha sido

modificada. # La lista de páginas modificadas, si lo ha sido.

Algoritmos básicos de reemplazo

Page 39: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 39

77Arquitectura de Computadores y Sistemas Operativos

Asignación fija:• Otorga a cada proceso un número fijo de

páginas en las que ejecutar. • Cada vez que se produce un fallo de página en

la ejecución de un proceso, se debe reemplazar una de las páginas de dicho proceso.

Asignación variable:• Permite que el número de marcos asignados a

un proceso cambie a lo largo de su vida.

Tamaño del conjunto residente

78Arquitectura de Computadores y Sistemas Operativos

Es la combinación más sencilla de implementar.Ha sido adoptada por un buen número de sistemas operativos. Normalmente el sistema operativo mantiene unalista de marcos libres. Cuando se produce un fallo de página, se añade un marco libre al conjunto residente del proceso. Cuando no hay marcos libres, el sistema operativo debe elegir una página que esté en la memoria para reemplazar.

Asignación variable y alcance global

Page 40: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 40

79Arquitectura de Computadores y Sistemas Operativos

Cuando se carga un nuevo proceso en la memoria, se le asigna cierto número de marcos en función del tipo de aplicación, las necesidades del programa u otros criterios. Cuando se produce un fallo de página, se selecciona la página a reemplazar de entre las del conjunto residente del proceso que sufre el fallo. Se vuelve a evaluar la asignación de vez en cuando.

Asignación variable y alcance local

80Arquitectura de Computadores y Sistemas Operativos

Vaciado por demanda:• Una página se escribirá en la memoria

secundaria sólo cuando haya sido elegida para reemplazarse.

Vaciado previo:• Escribe las páginas modificadas por lotes.

Políticas de vaciado

Page 41: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 41

81Arquitectura de Computadores y Sistemas Operativos

La mejor solución es incorporar almacenamiento intermedio de páginas:• Las páginas reemplazadas pueden situarse en

dos listas: # Modificadas y no modificadas.

• Las páginas de la lista de modificadas pueden escribirse periódicamente por lotes.

• Una página de la lista de no modificadas pueden reclamarse, si se le hace de nuevo referencia o perderse, cuando se asigna su marco a otra página.

Políticas de vaciado

82Arquitectura de Computadores y Sistemas Operativos

Determina el número de procesos que pueden estar en la memoria principal.Cuando hay pocos procesos residentes en la memoria, habrá muchas ocasiones en las que todos los procesos estén bloqueados y se gastará mucho tiempo en el intercambio. Si hay demasiados procesos residentes, el resultado será la hiperpaginación.

Control de carga

Page 42: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 42

83Arquitectura de Computadores y Sistemas Operativos

Suspender un proceso implica liberar parte de la memoria que éste estaba ocupando. Hay varios criterios para suspender procesos:• Procesos con la prioridad más baja. • Procesos con fallos de página:

# Este proceso no tiene su conjunto de trabajo en la memoria principal, por lo que quedarábloqueado de todas formas.

• Último proceso activado:# Este es el proceso con menos posibilidades de

tener su conjunto de trabajo residente.

Suspensión de procesos

84Arquitectura de Computadores y Sistemas Operativos

• Proceso con el conjunto residente más pequeño:

# Este es el proceso que necesita el menor esfuerzo futuro para volver a cargar el conjunto residente.

• El proceso mayor:# Esta alternativa obtiene la mayor cantidad de

marcos libres. • Procesos con la mayor ventana de ejecución

restante.

Suspensión de procesos

Page 43: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 43

85Arquitectura de Computadores y Sistemas Operativos

Sistema de paginación:• Tabla de páginas.• Descriptor de bloques de disco.• Tabla de marcos de página.• Tabla de uso de intercambios.

Gestión de memoria en UNIX y Solaris

86Arquitectura de Computadores y Sistemas Operativos

Número de marco de página EdadCopia en es-

crituraNúmero de marco de página Edad Modifi-

caciónRefe-rencia Validez Protec-

ción

Número de dispositivo de intercambio

Número de bloque de dispositivo Tipo de almacenamiento

(a) Entrada de la tabla de páginas

(b) Descriptor de bloques de disco

Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.

Estructuras de datos

Page 44: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 44

87Arquitectura de Computadores y Sistemas Operativos

Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.

(c) Entrada de la tabla de marcos de página

(d) Entrada de la tabla de utilización del intercambio

Número de marco de página EdadDispositivo

lógicoEstado de la página

Contador dereferencias

Número debloque

Puntero a marcode página

Contador de referencias

Página/númerode unidad de

almacenamiento

Estructuras de datos

88Arquitectura de Computadores y Sistemas Operativos

Reemplazo de páginas:• Es un refinamiento de la política del reloj.

Asignador de memoria del núcleo:• La mayor parte de estos bloques son

significativamente más pequeños que el tamaño de página en las máquinas normales.

Gestión de memoria en UNIX y Solaris

Page 45: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 45

89Arquitectura de Computadores y Sistemas Operativos

Directorio de páginas.Directorio intermedio de páginas.Tabla de páginas.

Gestión de memoria en Linux

90Arquitectura de Computadores y Sistemas Operativos

Paginación en W2K:• Disponible.• Reservada.• Confirmada.

Gestión de memoria en Windows 2000

Page 46: El subsistema de Memoriapersonales.upv.es/pabmitor/acso/FILES/ArqComp/CST/ArqComp t5.pdf · ÖUn proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones

Arquitectura de Computadores

Tema 5: Subsistema de Memoria 46

91Arquitectura de Computadores y Sistemas Operativos

Región de 64 Kilobytespara la asignaciónde punteros NULL (inaccesible)

Figura 8.25. Espacio de direcciones virtuales por defecto en Windows 2000.

Región de 2 Gigabytespara el espacio de direcciones de usuario(no reservado, utilizable)

Región de 64 Kilobytespara la asignaciónincorrecta de punteros (inaccesible)

Región de 2 Gigabytespara el sistema operativo(inaccesible)