Administración de Memoria

74
ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II Tema III Administración de Memoria

description

Sistemas Operativos Administracion de Memoria

Transcript of Administración de Memoria

Page 1: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Tema IIIAdministración de Memoria

Page 2: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Jerarquía de las unidades de memoria

2

Memoria Cache

Almacenamiento Principal

Almacenamiento Secundario

Aumenta velocidadAumenta capacidad

Page 3: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asociación de direcciones

La asignación de la ubicación de un programa en memoria principalpuede ser realizada en varios tiempos:

Tiempo compilación (compile time): El programa será asignado aun lugar específico y conocido de la memoria física. Ladirecciones de memoria son referenciadas en forma absoluta(static relocation).Tiempo de carga (load time): La asignación del lugar de memoriadonde será cargado el programa es hecho al momento de lacarga. Las direcciones de memoria deben ser referenciadas enforma relativa (dynamic relocation).Tiempo de ejecución (execution time): Un programa puede variarsu ubicación en memoria física en el transcurso de la ejecución.

3

Page 4: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Tipos de direccionamiento

Direccionamiento físico (physical address): La unidad dememoria manipula direcciones físicas.Direccionamiento virtual (virtual address): Son lasdirecciones lógicas que se generan cuando existeasociación de direccionamiento en tiempo de ejecución.

Para la asociación de direccionamiento en tiempo decompilación o carga, las direcciones lógicas o físicascoinciden. No es así para la asociación en tiempo deejecución.

4

Page 5: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asignación de Memoria ContiguaPartición Estática

5

Descripción Ventajas Desventajas

La memoria principalse divide en unconjunto de particionesfijas diseñadas por eloperador del sistema.Un proceso se puedecargar en una particiónde menor o igualtamaño.Cada participaciónpodía usarse sólo porun proceso.

Sencilla deimplementar; pocasobrecarga del SO.

Empleo ineficiente dela memoria debido a lafragmentación interna;se requería unconocimiento precisode antemano de todaslas tareas a ejecutar enel sistema.

Page 6: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asignación de Memoria ContiguaEjemplo Partición Estática

6

Sistema Operativo8M

8M

8M

8M

8M

8M

8M

8M

Sistema Operativo8M

16M

12M

8M

8M

6M

4M

2M

Particiones de igual tamaño Particiones de distinto tamaño

Memoria de 64M

Page 7: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asignación de Memoria ContiguaEjemplo Partición Estática

7

Partición 1 = 100K

Partición 2 = 25K

Partición 3 = 25K

Partición 4 = 50K

200K disponibles

Memoria Principal

Lista de procesos:

Proceso 1 = 30KProceso 2 = 50KProceso 3 = 30K (espera)Proceso 4 = 25K

Fragmentación interna

Memoria Principal

Proceso 1 (30K)Partición 1

Proceso 4 (25K)Partición 2

Proceso 2 (50K)Partición 4

Partición vacía

Page 8: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asignación de Memoria ContiguaPartición Dinámica

8

Descripción Ventajas Desventajas

Las particiones secrean dinámicamente,de forma que cadaproceso se carga enuna partición deexactamente el mismotamaño que elproceso.

No hay fragmentacióninterna; uso máseficiente de la memoriaprincipal.

Uso ineficiente delprocesador debido a lanecesidad decompactación paracontrarrestar lafragmentación externa.

Page 9: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asignación de Memoria ContiguaEjemplo Partición Dinámica

9

Sistema Operativo

Proceso 1 (10K)

Proceso 2 (15K)

Proceso 3 (20K)

Proceso 4 (50K)

10K

20K

35K

55K

105K

Lista de procesos:

Proceso 1 = 10KProceso 2 = 15KProceso 3 = 20KProceso 4 = 50K

Asignación de memoria para el proceso que llega

Sistema Operativo

Proceso 2 (15K)

Proceso 3 (20K)

10K

20K

35K

55K

105K

Termina el Proceso 1

Termina el Proceso 4

Después de que terminan los Procesos 1 y 4

Después que han entrado los Procesos 5 y 6

Sistema Operativo

Proceso 2 (15K)

Proceso 3 (20K)

10K

20K

35K

55K

105K

Proceso 5 (5K) 15K

Proceso 6 (30K)

Llega el Proceso 5 (5K)Llega el Proceso 6 (30K)

85K

Page 10: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Asignación de Memoria ContiguaEjemplo Partición Dinámica

10

Después que termina el Proceso 3

Sistema Operativo

Proceso 2 (15K)

10K

20K

35K

55K

105K

Proceso 5 (5K) 15K

Proceso 6 (30K)

Termina el Proceso 3

85K

Después que ha entrado el Proceso 7

Sistema Operativo

Proceso 2 (15K)

10K

20K

35K

55K

105K

Proceso 5 (5K) 15K

Proceso 6 (30K)

85K

Llega el Proceso 7 (10K)

Llega el Proceso 8 (30K) Proceso 7 (10K)45K

El Proceso 8 debe esperar

Page 11: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Condensación

El proceso de fusionar huecos adyacentes para formar unsolo hueco más grande se denomina condensación.

Mediante la condensación de huecos se pueden recuperarlos bloques contiguos de almacenamiento más grandesque sea posible.

11

Page 12: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Condensación

12

Sistema Operativo

OtrosUsuarios

Hueco de 2K

5K Usuario A

OtrosUsuarios

Sistema Operativo

OtrosUsuarios

Hueco de 2K

Hueco de 5K

OtrosUsuarios

El usuario A termina ylibera su almacenamiento

El SO combina los huecos adyacentes para formar un hueco único más grande

Sistema Operativo

OtrosUsuarios

Hueco de 7K

OtrosUsuarios

Page 13: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Compactación

La técnica de compactación del almacenamiento implicatrasladar todas las áreas ocupadas del almacenamiento aalgún extremo de la memoria principal.

Esto deja un gran hueco único de almacenamiento libre, enlugar de varios huecos pequeños característicos en lamultiprogramación con partición dinámica.

Todo el almacenamiento libre está contiguo, así que untrabajo en espera puede ejecutarse si sus necesidades dememoria son satisfechas por el único hueco resultante dela compactación.

13

Page 14: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Compactación

14

Sistema Operativo

En uso

Libre

En uso

Libre

En uso

Libre

Sistema Operativo

En uso

Libre

En uso

En uso

El SO coloca todos los bloques“en uso” juntos, dejando elalmacenamiento libre como unhueco único grande.

Page 15: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Inconvenientes de la Compactación

15

Consume recursos del sistema que podrían utilizarse enforma productiva.

El sistema debe detener todas sus actividades mientrasrealiza la compactación.

La compactación implica reubicar los trabajos que esténen el almacenamiento.

Page 16: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de ubicaciónPrimer Ajuste (First-Fit)

16

SistemaOperativo

Hueco de 16K

En uso

Hueco de 14K

En uso

Hueco de 5K

En uso

Hueco de 30K

a

b

c

d

e

f

g

h

Dirección inicial

Longitud

a 16K

c 14K

e 5K

g 30K

Solicitud de 13K

.

.

.

Colocar el trabajo en el primer hueco disponible en el que quepa.

Page 17: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de ubicaciónMejor Ajuste (Best-Fit)

17

SistemaOperativo

Hueco de 16K

En uso

Hueco de 14K

En uso

Hueco de 5K

En uso

Hueco de 30K

a

b

c

d

e

f

g

h

Dirección inicial

Longitud

e 5K

c 14K

a 16K

g 30K

Solicitud de 13K

.

.

.

Colocar el trabajo en el menor hueco disponible en el que quepa.

Page 18: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de ubicaciónPeor Ajuste (Worst-Fit)

18

SistemaOperativo

Hueco de 16K

En uso

Hueco de 14K

En uso

Hueco de 5K

En uso

Hueco de 30K

a

b

c

d

e

f

g

h

Dirección inicial

Longitud

g 30K

a 16K

c 14K

e 5K

Solicitud de 13K

.

.

.

Colocar el trabajo en el hueco disponible más grande en el que quepa.

Page 19: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Siguiente Ajuste (Next-Fit)

19

Una variante del algoritmo del Primer Ajuste es la delSiguiente Ajuste, el cual comienza la búsqueda de un huecodisponible en el lugar donde se terminó la búsquedaanterior.

Page 20: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo. Algoritmos de colocación en Partición Estática

20

Dadas las siguientes particiones de memoria de 100k, 500k,200k, 300k y 600k (en ese orden). ¿Cómo se colocarían lossiguientes procesos: 212k, 417k, 112k y 426k (en ese orden)en la memoria empleando los algoritmos de colocación:primer, mejor, peor y siguiente ajuste?

Page 21: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Páginación

La paginación es una forma de reubicación dinámica.

Si se usa un esquema de paginación, no hayfragmentación externa.

Cualquier marco libre se puede asignar a un procesoque lo necesite.

Puede haber cierta fragmentación interna.

21

Page 22: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación

22

La memoria física se divide en bloques de tamaño físicollamados marcos (frames).

La memoria lógica se divide en bloques del mismotamaño llamados páginas.

Los marcos tienen el mismo tamaño que las páginas.

Cuando se va a ejecutar un proceso, sus páginas secargan desde el almacenamiento secundario encualquier marco de memoria que esté disponible.

Page 23: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II 23

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

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Número de marco

Memoria Principal

(a) Quince marcos libres

0 A.0

1 A.1

2 A.2

3 A.3

4

5

6

7

8

9

10

11

12

13

14

(b) Carga del proceso A

0 A.0

1 A.1

2 A.2

3 A.3

4 B.0

5 B.1

6 B.2

7

8

9

10

11

12

13

14

(c) Carga del proceso B

Memoria Principal

Memoria Principal

Page 24: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II 24

Ejemplo (continuación)

0 A.0

1 A.1

2 A.2

3 A.3

4 B.0

5 B.1

6 B.2

7 C.0

8 C.1

9 C.2

10 C.3

11

12

13

14

Número de marco

Memoria Principal

0 A.0

1 A.1

2 A.2

3 A.3

4

5

6

7 C.0

8 C.1

9 C.2

10 C.3

11

12

13

14

0 A.0

1 A.1

2 A.2

3 A.3

4 D.0

5 D.1

6 D.2

7 C.0

8 C.1

9 C.2

10 C.3

11 D.3

12 D.4

13

14

Memoria Principal

Memoria Principal

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

Page 25: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Tabla de Páginas

La dirección lógica tiene la estructura:

Número de página ( p ).Desplazamiento en la página ( d ).

El número de página se utiliza como índice de la Tablade Páginas.

La Tabla de Páginas contiene la dirección base de cadapágina en la memoria física.

Esta dirección se combina con el desplazamiento en lapágina para definir la dirección de memoria física que seenvía a la unidad de memoria.

25

Page 26: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Modelo de Paginación

26

Página 0

Página 1

Página 2

Página 3

Página 0

Página 2

Página 1

Página 3

0

1

2

3

4

5

6

7

Memoria Lógica

Tabla de Páginas

Memoria Física

Número de

Página

Número de

Marco

0 1

1 4

2 3

3 7

Page 27: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo1 . Traducir dirección lógica a dirección física

27

Página 0

Página 2

Página 1

Página 3

0

1

2

3

4

5

6

7

Memoria Lógica

Tabla de Páginas

Memoria Física

Número de

Página

Número de

Marco

0 1

1 4

2 3

3 7

0 a

1 b

2 c

3 d

4 e

5 f

6 g

7 h

8 i

9 j

10 k

11 l

12 m

13 n

14 o

15 p

Tamaño de página = 4 bytesMemoria física = 32 bytes

(8 páginas)

Dirección lógica 0:página = 0 desplazamiento = 0página 0 marco 1

Dirección física 20:

marco * tamaño_página + desplazamiento

1 * 4 + 0 = 4

Page 28: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Tenemos una dirección de n + m bits, en la que los n bits mássignificativos son el número de página y los m bits menossignificativos son el desplazamiento.

Para traducir la dirección, tenemos que:

Extraer el número de página de los n bits más significativos de ladirección lógica.Emplear el número de página como índice en la tabla de páginasdel proceso para encontrar el número de marco k.El comienzo de la dirección física del marco es k x 2m y ladirección física del byte referenciado es este número más eldesplazamiento.La dirección física se construye concatenando el número demarco con el desplazamiento.

28

Traducción de dirección lógica a dirección física

Page 29: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Se emplean direcciones de 16 bits y el tamaño de la página

es de 1K=1024 bytes. Tenemos que:

Con un tamaño de página de 1K se necesitan 10 bitspara el campo de desplazamiento, dejando 6 bits para elnúmero de página.

De acuerdo con lo anterior, un programa puede estarformado por un máximo de 26 = 64 páginas de 1Kb cadauna.

29

Ejemplo 2 . Traducir dirección lógica a dirección física

Page 30: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Si tenemos la dirección virtual 1502 su representación enbinario es 0000010111011110.

De acuerdo con lo anterior tenemos que:

Desplazamiento 10 bits

Número de página 6 bits

Por lo tanto, la dirección virtual 1502 tiene:

Número de página : 1 (000001)

Desplazamiento : 478 (0111011110)

30

Ejemplo 2 (continuación)

Page 31: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II 31

Ejemplo 2 (continuación)

0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0

Dirección lógica de 16 bits

N° página de 6 bits Desplazamiento de 10 bits

0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0

0 000101

1 000110

2 011001

Tabla de páginas del

proceso

Dirección física de 16 bits

Suponiendo que la página reside en el marco de memoria principal6 cuya representación en binario es 000110. Su dirección física es6622.

Page 32: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Segmentación

La segmentación es otro modo de subdividir elprograma.

El programa y los datos asociados se dividen en unconjunto de segmentos.

No es necesario que todos los segmentos de todos losprogramas tengan la misma longitud, aunque existe unalongitud máxima de segmento.

Un programa puede ocupar más de una partición yéstas no tienen por qué estar contiguas.

32

Page 33: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Segmentación

La segmentación elimina la fragmentación interna, perosufre de fragmentación externa. Sin embargo, serámenor debido a que los procesos se dividen en unconjunto de partes más pequeñas.

A diferencia de la paginación, la segmentación esvisible para el programador y se ofrece como unaventaja para la organización de programas y datos.

El principal inconveniente es que el programador debeser consciente de la limitación del tamaño máximo delos segmentos.

33

Page 34: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Tabla de Segmentos

Cada entrada de la tabla tiene una base de segmento y un límitede segmento.

La base contiene la dirección física inicial donde el segmentoreside en la memoria física.

El límite especifica la longitud del segmento.

Una dirección lógica consta de:

o Número de segmento, s.

o Desplazamiento del segmento, d.

El desplazamiento d de la dirección lógica debe estar entre 0 y ellímite del segmento.

Si el desplazamiento es válido, se suma a la base del segmentopara producir la dirección del byte deseado de la memoria física.

34

Page 35: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo1 . Traducir dirección lógica a dirección física

35

Segmento 0

Segmento 3

Segmento 2

Segmento 4

Segmento 1

1400

2400

3200

4300

4700

5700

6300

6700

Límite Base

0 1000 1400

1 400 6300

2 400 4300

3 1100 3200

4 1000 4700

Subrutina

Pila

Tabla de símbolos

Programa Principal

segmento 0

segmento 3

segmento 4

segmento 1 segmento 2

espacio de direcciones lógico

Segmento 2 tiene 400 bytes de longitud e inicia en la posición4300.Una referencia al byte 53 del segmento 2 se transforma en la

posición 4300 + 53 = 4353Una referencia al byte 852 del segmento 3 se transforma en la

posición 3200 + 852 = 4052Una referencia al byte 1222 del segmento 0 causaría una

transferencia por trampa al SO, debido a que el segmento 0 sólotiene 1000 bytes de longitud.

Page 36: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Tenemos una dirección de n + m bits, en la que los n bits más significativosson el número de segmento y los m bits menos significativos son eldesplazamiento.

Para traducir la dirección, tenemos que:

Extraer el número de segmento de los n bits más significativos de ladirección lógica.Emplear el número de segmento como índice en la tabla de segmentos delproceso para encontrar la dirección física de comienzo del segmento.Comparar el desplazamiento, expresado por los m bits menos significativos,con la longitud del segmento. Si el desplazamiento es mayor que lalongitud, la dirección no es válida.La dirección física buscada es la suma de la dirección física de comienzodel segmento más el desplazamiento.

36

Traducción de dirección lógica a dirección física

Page 37: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Si tenemos que n = 4 y m = 12, el máximo tamaño delsegmento es 212 = 4096.

Se desea obtener la dirección física de la dirección lógica4848.

37

Ejemplo 3. Traducir dirección lógica a dirección física

Page 38: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II 38

Ejemplo 3 (continuación)

0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0

Dirección lógica de 16 bits = 4848

N° página de 4 bits Desplazamiento de 12 bits

0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0

0 001011101110 0000010000000000

1 011110011110 0010000000100000

Tabla de segmentos del proceso

Dirección física de 16 bits = 8224

+

Longitud Base

Page 39: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Memoria Virtual

Ofrecer a los procesos mayor espacio en memoria delque existe físicamente, el sistema emplea espacio enalmacenamiento secundario (típicamente, disco duro), através de un esquema de intercambio (swap) guardandoy trayendo páginas enteras.

La memoria virtual es gestionada de forma automática ytransparente por el sistema operativo.

Con la memoria virtual, la cantidad de memoriadisponible para procesamiento de procesos puede sermucho mayor que la memoria física disponible.

39

Page 40: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación por demanda

La paginación sobre demanda significa que, paracomenzar a ejecutar un proceso, el SO carga solamentelas páginas que se requieren para comenzar laejecución. Esto demanda acceso de alta velocidad a laspáginas.

A lo largo de la ejecución, sólo carga a memoria laspáginas cuando van a ser utilizadas e incluso puedeocurrir que las páginas que no sean requeridas, nuncaserán siquiera, cargadas a memoria.

40

Page 41: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación por demanda en Memoria Virtual

Los elementos que debe contener la Tabla deCorrespondencia de Páginas (TCP) son:

41

Bit de residencia de

página

Dirección enmemoria

secundaria

Número de marco de página

r s p’

r=0 si la página no está en memoria principalr=1 si la página está en memoria principal

Page 42: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación por demanda en Memoria VirtualTraducción por Correspondencia Directa

Éste método permite encontrar la dirección real (direcciónfísica) a partir de la dirección virtual, utilizando laestructura de la TCP.

La dirección virtual tiene la estructura:

V = (p, d)

Donde

p = número de página

d = desplazamiento

42

Page 43: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación por demanda en Memoria VirtualErrores

Error de página: Cuando una página no está enmemoria principal: r = 0.

Error por desbordamiento: Cuando el desplazamientoes mayor o igual que el tamaño de la página.

43

Page 44: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo. Paginación por demanda en Memoria Virtual

Tenemos dos procesos A y B, cada uno con su Tabla deCorrespondencia de Páginas.

44

r s p’

0 520 5

1 410 20

1 235 11

0 450 8

1 210 5

0 135 14

0 280 10

r s p’

1 320 8

1 100 4

0 70 12

0 300 11

0 720 10

La memoria física inicia a partir de ladirección 500 y el tamaño de lapágina es de 20. Obtener lasdirecciones físicas de las siguientesdirecciones virtuales, a partir de lasTCP’s de cada proceso:

a) P(A)v = (2, 18)

b) P(B)v = (1, 7)

c) P(A)v = (3, 5)

TCPProceso A

TCPProceso B

Page 45: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo (continuación)

45

Memoria Principal

Para encontrar la dirección física, ubicamos la dirección en memoria principalen donde está cargado el marco de memoria, donde se aloja la página (seobserva en la TCP en el campo p’) y le sumamos el desplazamiento.

a) P(A)v = (2,18)

Observando la TCP del Proceso A, la página 2 está cargada en el marco 11 yéste comienza en la dirección 720. Por lo tanto:

Dirección física = 720 + 18 = 738

b) P(B)v = (1,7)

Observando la TCP del Proceso B, la página 1 está cargada en el marco 4 yéste comienza en la dirección 580. Por lo tanto:

Dirección física = 580 + 7 = 587

c) P(A)v = (3,5)

Observando la TCP del Proceso A, la página 3 no está en memoria principal,ya que el valor del campo r es cero. Por lo tanto, hay un error de página.

5000

1

2

3

4

5

6

7

8

9

10

11

520

540

560

580

600

620

640

660

680

700

720

740

Page 46: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Segmentación por demanda en Memoria Virtual

Los elementos que debe contener la Tabla deCorrespondencia de Segmentos (TCS) son:

46

Bit de residencia del segmento

Dirección enmemoria secundaria

Longitud del segmento

Bits de protección

Direcciónbase del segmento

r s L r w x a s’r=0 si el segmento no está en memoria principalr=1 si el segmento está en memoria principal

Bits de protección (1 = si lo posee; 0 = no lo posee)r acceso de lecturaw acceso de escriturax acceso de ejecucióna acceso de adición

Page 47: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Segmentación por demanda en Memoria VirtualTraducción por Correspondencia Directa

Éste método permite encontrar la dirección real (direcciónfísica) a partir de la dirección virtual, utilizando laestructura de la TCS.

La dirección virtual tiene la estructura:

V = (s, d)

Donde

s = número de segmento

d = desplazamiento

47

Page 48: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Segmentación por demanda en Memoria VirtualErrores

Error de segmento: Cuando un segmento no está enmemoria principal: r = 0.

Error por desbordamiento: Cuando el desplazamientoes mayor o igual que la longitud del segmento.

Error de protección de segmento: Cuando se solicita unaoperación que no esta permitida. Éste error se detectacomprobando los bits de protección, y si ocurre secancela la ejecución del proceso.

48

Page 49: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Segmentación por demanda en Memoria VirtualEjemplo

49

Dirección física

r s L r w x a s’

100 0 1024 10 1 0 0 1 532

101 1 1035 45 1 1 1 0 1150

102 1 532 28 0 1 1 0 1200

103 0 1150 37 0 1 0 0 45

104 1 1200 36 0 1 0 1 118

105 1 45 20 0 0 1 0 2005

106 0 118 70 1 1 0 1 2310

107 1 2005 55 0 1 0 1 324

108 0 2310 100 1 1 1 1 1501

109 0 324 35 0 0 0 0 1708

110 1 1501 62 0 1 0 0 1810

111 1 1708 48 1 1 0 1 1340

112 1 1810 30 1 0 0 0 1492

113 0 1340 80 1 1 1 1 1232

114 1 1492 27 1 0 0 0 750

115 1 1237 75 0 1 0 1 824

116 0 750 62 0 1 1 0 1024

117 1 824 46 1 1 0 1 1035

Tenemos la siguiente TCS para los Procesos A, B y C.

El Proceso A inicia a partir de la dirección física 100.

El Proceso B inicia a partir de la dirección física 112.

El Proceso C inicia a partir de la dirección física 105.

Page 50: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación Combinadas

50

El espacio virtual de direcciones de un proceso se divide ensegmentos que se administran a nivel de páginas. Por otra parte,la memoria principal se divide en marcos.

Un segmento estará compuesto de un número entero depáginas. Los segmentos deben ser de un tamaño tal que seamúltiplo del tamaño de la página, el caso más crítico es que elsegmento sea del tamaño de la página.

El intercambio de información se hace a nivel de páginas, por lotanto no es necesario que todas las páginas de un segmentoestén al mismo tiempo en memoria principal.

Las páginas que son contiguas en memoria virtual no tienenporque ser contiguas en memoria principal.

Page 51: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación Combinadas

La dirección virtual estará dada por:

V = (s, p, d)

donde:s Número de segmentop Número de páginad Desplazamiento

51

Page 52: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación Combinadas: Tablas

52

ProcesoNo.

ApuntadorTabla de Mapa de Segmentos

0

1

2

n

SegmentoNo.

ApuntadorTabla de Mapa de Páginas

0

1

2

SegmentoNo.

ApuntadorTabla de Mapa de Páginas

0

1

2

3

SegmentoNo.

ApuntadorTabla de Mapa de Páginas

0

1

2

3

4

PáginaNo.

Número de marco

0 7

1 4

PáginaNo.

Número de marco

0 3

1 11

2 -

PáginaNo.

Número de marco

0 8

1 13

PáginaNo.

Número de marco

0

1

2

1 Sistema Operativo

3 Proceso 0/Seg 1/Pág 0

4 Proceso 0/Seg 0/Pág 1

5

6

7 Proceso 0/Seg 0/Pág 0

8 Proceso 1/Seg 0/Pág 0

9

10

11 Proceso 0/Seg 1/Pág 1

12

13 Ptoceso 1/Seg 0/Pág 1

14

Tabla de Procesos

Tabla de Mapa de Segmentos

Proceso 0

Proceso 1

Proceso n

Tabla de Mapa de Páginas

Proceso 0/Segmento 0

Proceso 0/Segmento 1

Proceso 1/Segmento 0

Proceso 1/Segmento 1

Memoria Principal

Page 53: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación CombinadasEjemplo

53

Segmento 0 r m1 s’ l r w x a

Segmento 1 r m1 s’ l r w x a

Segmento 2 r m1 s’ l r w x a

Tabla de Segmentos del Proceso A

Página 0 r m2 p’

Página 1 r m2 p’

Página 2 r m2 p’

Tabla de Páginas del Segmento 2 del Proceso A

Formato de un elemento de la Tabla de Segmentos:

Formato de un elemento de la Tabla de Páginas:

r m1

s’ lr, w, x, a

bit de residencia del segmento en memoria principal.dirección de almacenamiento secundario.dirección real del comienzo de su tabla de páginas.longitud del segmento (número de páginas).bits de protección (1 si lo posee, 0 no lo posee).r acceso de lectura, w acceso de escritura, x acceso de ejecución, a acceso de adición.

r m2

p’

bit de residencia de página en memoria principal.dirección de almacenamiento secundario.dirección real del comienzo del marco de página.

Page 54: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación CombinadasTraducción directa

54

Registro base Proceso A

Seg 0 r … l Dirección inicial TP s’

Seg 1 r … l s’

Seg 2 r … l s’

Tabla de SegmentosProceso A

Dirección inicialTabla de Segmentos

+

No. Segmento

sNo. Página

pDesplazamiento

d

>

Excepción

+Pág 0 r … Marco

p’

Pág 1 r … p’

Pág 2 r … p’

Tabla de Páginasdel Seg 0

Dirección Virtual

V = (s, p, d)

Dirección Física

R = p’ + d

Marcop’ d

Page 55: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación CombinadasTraducción asociativa (TLB, Translation Lookaside Buffer)

¿Entrada hallada?

No. Segmento

sNo. Página

pDesplazamiento

d

NúmeroSegmento

NúmeroPágina

NúmeroMarco

s p p’

TLB

Dirección Virtual

V = (s, p, d)

Dirección Física

R = p’ + d

Marcop’ d

Accedera

MemoriaPrincipal

Error de Página

SI NO

55

Page 56: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo 1. Paginación y Segmentación Combinadas

56

Segmento TP DirecciónInicial TP

0 0 0

1 1 1024

2 2 2048

3 3 3072

Página NúmeroMarco

DirecciónInicial p’

0 10 10240

1 4 4096

2 11 11264

3 17 17408

Página NúmeroMarco

DirecciónInicial p’

0 10 10240

1 4 4096

2 11 11264

3 17 17408

Página NúmeroMarco

DirecciónInicial p’

0 6 6144

1 14 14336

2 8 8192

3 12 12288

Página NúmeroMarco

DirecciónInicial p’

0 18 18432

1 13 13312

2 5 5120

3 9 9216

NúmeroSegmento

NúmeroPágina

Dirección Inicialp’

0 0 10240

0 1 4096

0 2 11264

0 3 17408

Segmento Página Desplazamiento

2 1 625TP0

TP1

TP2

TP3

TLB

Dirección Virtual

14336 625

Dirección Real

R = 14336 + 625 = 14961

Page 57: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ejemplo 2. Paginación y Segmentación CombinadasTLB

57

Segmento TP DirecciónInicial TP

0 0 0

1 1 1024

2 2 2048

3 3 3072

Página NúmeroMarco

DirecciónInicial p’

0 10 10240

1 4 4096

2 11 11264

3 17 17408

Página NúmeroMarco

DirecciónInicial p’

0 10 10240

1 4 4096

2 11 11264

3 17 17408

Página NúmeroMarco

DirecciónInicial p’

0 6 6144

1 14 14336

2 8 8192

3 12 12288

Página NúmeroMarco

DirecciónInicial p’

0 18 18432

1 13 13312

2 5 5120

3 9 9216

NúmeroSegmento

NúmeroPágina

Dirección Inicialp’

0 0 10240

0 1 4096

0 2 11264

0 3 17408

Segmento Página Desplazamiento

0 3 709TP0

TP1

TP2

TP3

TLB

Dirección Virtual

17408 709

Dirección Real

R = 17408 + 709 = 18117

Page 58: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación CombinadasErrores

58

Error de pérdida de segmento

Ninguna de las páginas del segmento esta en memoria principal.Este error se detecta comprobando el bit de residencia r de latabla de segmentos y se soluciona creando la tabla de páginaspara dicho segmento y cargando la página referenciada enmemoria principal.

Error de pérdida de página

Alguna de las páginas del segmento al que pertenece la páginareferenciada está en memoria principal, pero la página en cuestiónno. Esto se detecta comprobando el bit de residencia r de la tablade páginas para el citado segmento y se soluciona cargando dichapágina desde el almacenamiento secundario.

Page 59: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Paginación y Segmentación CombinadasErrores

59

Error de desbordamiento de segmento

Se hace referencia a una página que no posee el segmento (severifica si p ≤ l) y por lo tanto se aborta la ejecución del proceso.

Error de pérdida de página

Cuando los bits de protección indican que la operación solicitadano está permitida, se cancela la ejecución del proceso.

Page 60: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Reemplazo de páginas

60

Cuando todos los marcos de memoria principal estan ocupados yes necesario traer una nueva página ocurre un error de página(fault page).Si hay un error de página se debe:

Encontrar la página demandada en memoria secundaria.Encontrar un marco libre o liberarlo usando un Algoritmo deReemplazo de Páginas.Cargar la página en memoria principal (page in).Transferir el control al proceso de usuario.

La política de reemplazo se encarga de seleccionar la página areemplazar de entre las que están actualmente en memoria.Se pretende utilizar el algoritmo que seleccione páginas quecausen la frecuencia de errores más baja.

Page 61: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Reemplazo de páginasCadena de referencias

61

Se tiene la siguiente cadena de referencias, donde el tamaño de lapágina es de 100 bytes:

0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103,0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105

Cadena de referencias:Sólo nos interesa el número de página.Si se referencia una página p, las referencias inmediatamentesucesivas a esa página nunca causarán error de página.Cadena de referencia simplificada:

1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1Con tres marcos habrá 3 errores y con un marco habrá 11errores.

Si el número de marcos aumenta, en general, el número de erroresde página disminuye.

Page 62: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasÓptimo

62

Se reemplaza la página que va a tardar más tiempo en

ser usada.

Genera la tasa de errores más baja.

Algoritmo imposible de implementar, puesto que requiere

que el SO tenga un conocimiento exacto de los sucesos

futuros.

Sirve como un estándar con el que comparar los otros

algoritmos.

Page 63: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasÓptimo

63

07 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Page 64: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasFIFO (first-in, first-out)

64

Es el más sencillo de entender e implementar.

Sustituye la página que lleva más tiempo en memoria.

Inconvenientes:Rendimiento pobre. Páginas frecuentemente usadaspueden ser sustituidas.Se puede producir la Anomalía de Belady: Aumenta elnúmero de errores de página al aumentar el númerode marcos.

Page 65: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasFIFO

65

07 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Page 66: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasFIFO

66

21 3 4 1 2 5 1 2 3 4 5

Page 67: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasFIFO Anomalía de Belady

67

21 3 4 1 2 5 1 2 3 4 5

Page 68: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasLRU

68

Algoritmo de aproximación al reemplazo óptimo.

Sustituye la página menos usada en el pasadoinmediato, es decir, debería de ser la página con menorprobabilidad de ser referenciada en un futuro cercano.

Carece de la anomalía de Belady.

La implementación requiere de hardware adicional:LRU con reloj contador.LRU con pila.

Page 69: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasLRU

69

07 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Page 70: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasReloj Global

70

Algoritmo de aproximación al LRU.

Se requiere:

1 bit de referencia (R, inicialmente a 0).Marcos candidatos en lista circular.Un apuntador (manecilla del reloj).

A partir de la posición actual de la manecilla, la acciónque se realiza depende del bit R:

Si la página tiene R=0, retira la página de la memoria.Si la página tiene R=1, se pone a R=0 (se le da unasegunda oportunidad) y avanza la manecilla.Se sustituye la primera página que encontramos conel R=0. Se avanza la manecilla.

Page 71: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasReloj Global

71

Página 9R =1

Página 19R =1

Página 1R =0

Página 45R = 0

Página 191R = 0

Página 13R =0

Página 67R =1

Página 33R =1

Página 222R =0

.

Página 9R =1

Página 19R =1

Página 1R =1

Página 45R =1

Página 191R =1

Página 556R = 0

Página 13R =0

Página 67R =1

Página 33R =1

Página 222R =0

.Apuntador al

siguiente marco

n - 1 0 n - 1 0

(a) Estado del buffer justo antes del reemplazode página

Primer marco en el buffercircular de marcos que soncandidatos para elreemplazo

1

2

3

4

56

7

8

1

2

3

4

56

7

8

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

Página 727R = 1

Page 72: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasReloj Global

72

La presencia del asterisco indica que el bit de usocorrespondiente es igual a 1.

La flecha indica la posición actual del apuntador.

32 2 1 5 2 4 5 3 2 5 2

Page 73: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Algoritmos de Reemplazo de páginasReloj Global

73

32 2 1 5 2 4 5 3 2 5 2

Page 74: Administración de Memoria

ING. YESENIA CARRERA FOURNIER SOFIUNAM SEMESTRE 2015-II

Ing. Yesenia Carrera Fournier

sofiunam at gmail dot com