Está en la página 1de 32

Tema 3.

Organizacin y Gestin de Memoria


1. Conceptos generales 2. Organizacin de la Memoria Virtual 3. Gestin de la Memoria Virtual 4. Aspectos de implementacin en Linux

Bibliografa: [Sta05] W. Stallings, Sistemas Operativos. Aspectos Internos y Principios de Diseo (5/e), Prentice Hall, 2005. [Car07] J. Carretero et al., Sistemas Operativos (2 Edicin), McGraw-Hill, 2007 [Lov10] R. Love, Linux Kernel Development (3/e), Addison-Wesley Professional, 2010. [Mau08] W. Mauerer, Professional Linux Kernel Architecture, Wiley, 2008. 1

Objetivos
! ! ! !

! ! !

Conocer las distintas formas en las que el sistema operativo puede organizar y gestionar la memoria fsica Saber en qu consiste y para qu se utiliza el mecanismo de intercambio (swapping) Entender qu es la Memoria Virtual y por qu se utiliza Conocer los mecanismos de paginacin, segmentacin y segmentacin paginada y cmo se llevan a cabo en un sistema con memoria virtual Comprender qu es la propiedad de localidad y su relacin con el comportamiento de un programa en ejecucin Conocer la teora del conjunto de trabajo y el problema de la hiperpaginacin Conocer aspectos de implementacin en Linux de los conceptos anterioes
2

1.CONCEPTOS GENERALES Jerarqua de Memoria


Dos principios sobre memoria: " Menor cantidad, acceso ms rpido, mayor coste por byte # Mayor cantidad, acceso ms lento, menor coste por byte As, los elementos frecuentemente accedidos se ponen en memoria rpida, cara y pequea; el resto, en memoria lenta, grande y barata. CPU Registros Cach Hardware Bus de memoria
3

Memoria Principal Bus de E/S

Memoria Auxiliar

Conceptos sobre Cachs


! ! ! ! !

Cach - copia que puede ser accedida ms rpidamente que el original Idea: hacer los casos frecuentes eficientes, los caminos infrecuentes no importan tanto Acierto de cach: item en la cach Fallo de cach: item no en cach; hay que realizar la operacin completa Tiempo de Acceso Efectivo (TAE) = Probabilidad_acierto * coste_acierto + Probabilidad_fallo * coste_fallo Funciona porque los programas no son aleatorios, explotan la localidad ! principio de localidad
4

Objetivos a conseguir
! !

Organizacin: cmo est dividida la memoria? Gestin: Dado un esquema de organizacin, qu estrategias se deben seguir para obtener un rendimiento ptimo?
Estrategias de asignacin Estrategias de sustitucin (determinacin de qu zona de memoria elegir para ser sustituida por otra) Estrategias de bsqueda

Proteccin
El SO de los procesos de usuario Los procesos de usuario entre ellos
5

Carga absoluta y Reubicacin


Carga absoluta
Asignar direcciones fsicas al programa en tiempo de compilacin
Programa Fuente Compilador (y Encuadernador)
X Programa Ejecutable N
direcciones absolutas

Reubicacin
Capacidad de cargar y ejecutar un programa en un lugar arbitrario de la memoria

0 Programa Ejecutable
direcciones lgicas o relativas

Memoria Principal

S.O.
Cargador X N

Cargador

?
es necesario reubicarlo
6

Reubicacin esttica
Decisin de dnde ubicar el programa en tiempo de carga
0 1000
MOVE A, 100 Programa ejecutable con direcciones lgicas

El compilador genera direcciones lgicas (relativas)


M
MOVE A, 1100

1000 + M

direccin fsica = direccin de comienzo + direccin lgica


Memoria Principal
7

Reubicacin dinmica
El compilador genera direcciones lgicas (relativas) La traduccin de direcciones lgicas a fsicas se hace en tiempo de ejecucin b
R.Base

CPU
Direccin Lgica b

Direccin Fsica

MOVE A, 100

Hardware

b+M

direccin fsica = registro base + direccin lgica

Memoria Principal
8

Proteccin en asignacin contigua


Reubicacin esttica
0
Memoria Principal

S.O.
Particin 1 Particin 2 R.Base

a b

CPU c
R.Lmite

c
Particin 3

d
Particin 4

Reubicacin dinmica

e
Particin 5

Intercambio (Swapping)
! !

! !

Intercambiar procesos entre memoria y un almacenamiento auxiliar El almacenamiento auxiliar debe ser un disco rpido con espacio para albergar las imgenes de memoria de los procesos de usuario El factor principal en el tiempo de intercambio es el tiempo de transferencia El intercambiador tiene las siguientes responsabilidades:
Seleccionar procesos para retirarlos de MP Seleccionar procesos para incorporarlos a MP Gestionar y asignar el espacio de intercambio
10

Localizacin del espacio de intercambio


!

Se mantiene un archivo de intercambio global con la informacin de intercambio de todos los procesos Existe un archivo de intercambio para cada proceso Problema: Necesita ms espacio en disco, los accesos son ms lentos

11

2. ORGANIZACION DE LA MEMORIA VIRTUAL


$ Concepto de memoria virtual % Paginacin & Segmentacin ' Segmentacin paginada

12

2.1 Concepto de memoria virtual


!

Memoria Virtual El tamao del programa, los datos y la pila puede exceder la cantidad de memoria fsica disponible para l. Se usa un almacenamiento a dos niveles: Memoria Principal ( partes del proceso necesarias en un momento dado Memoria Secundaria ( espacio de direcciones completo del proceso
13

Concepto de memoria virtual (y II)


Es necesario: saber qu se encuentra en memoria principal una poltica de movimiento entre MP y MS Adems, la memoria virtual resuelve el problema del crecimiento dinmico de los procesos puede aumentar el grado de multiprogramacin
14

Unidad de Gestin de Memoria


!

La MMU (Memory Management Unit) es un dispositivo hardware que traduce direcciones virtuales a direcciones fsicas Este dispositivo est gestionado por el SO! En el esquema MMU ms simple, el valor del registro base se aade a cada direccin generada por el proceso de usuario al mismo tiempo que es enviado a memoria El programa de usuario trata slo con direcciones lgicas; ste nunca ve direcciones reales
15

Unidad de Gestin de Memoria (y II)


! Adems de la traduccin, el MMU deber: - detectar si la direccin aludida se encuentra o no en MP - generar una excepcin si no se encuentra en MP

Tarjeta del procesador

CPU
direccin virtual

Memoria

Controlador de disco

MMU
direccin fsica

BUS

16

2.2 Paginacin
! !

El espacio de direcciones fsicas de un proceso puede ser no contiguo La memoria fsica se divide en bloques de tamao fijo, denominados marcos de pgina. El tamao es potencia de dos, de 0.5 a 8 Kb El espacio lgico de un proceso se divide en bloques del mismo tamao, denominados pginas Los marcos de pginas contendrn pginas de los procesos
17

Paginacin (y II)
!

Las direcciones lgicas, que son las que genera la CPU se dividen en nmero de pgina (p) y desplazamiento dentro de la pgina (d)
p d

Las direcciones fsicas se dividen en nmero de marco (m, direccin base del marco donde est almacenada la pgina) y desplazamiento (d)
m d
18

Paginacin (y III)
!

Cuando la CPU genere una direccin lgica ser necesario traducirla a la direccin fsica correspondiente, la tabla de pginas mantiene informacin necesaria para realizar dicha traduccin. Existe una tabla de pginas por proceso Tabla de ubicacin en disco (una por proceso) ubicacin de cada pgina en el almacenamiento secundario Tabla de marcos de pgina, usada por el S.O. y contiene informacin sobre cada marco de pgina
19

Contenido de la tabla de pginas


Una entrada por cada pgina del proceso: ! Nmero de marco (direccin base del marco) en el que est almacenada la pgina si est en MP ! Bit de presencia o bit vlido ! Bit de modificacin ! Modo de acceso autorizado a la pgina (bits de proteccin)
n marco
N de pgina

presencia

modificacin proteccin

46

01
20

Ejemplo: contenido de la tabla de pginas


Memoria secundaria Pag1
1 2 3 4 5 6 7 8 9 10 11 Num. Pagina 12 10 21 1 ... ... 5 10 1 ... 9 0 ... 3 8 0 ... 6 7 1 ... 6 0 ... 5 0 ... 2 4 1 ... 1 3 1 ... 2 0 ... 8 1 ... 1 Pag2 Pag3 Pag4 Pag5 Pag6 Pag7 Pag8 Pag9 Pag10 Pag11 pag12 N de Bit de Marco presencia Num. Marco

Tabla de Paginas
Pag3 Pag4

Memoria Fsica

Pag10 Pag7 Pag1 Pag12

Esquema de traduccin
Direccin virtual N. pagina
DESPLAZAMIENTO Presencia =1

no
FALTA DE PAGINA

si
RBTP
N. de marco presencia modificacin pro.

Acceso autorizado?

no
m 1

si

excepcin violacin de privilegios Actualizar bit de modificacin? (si/no)

TABLA DE PAGINAS
Tabla de Ubicacin en Disco

m DESPLAZAMIENTO Direccin real


Dir. TUD 22

Falta de pgina
1. Bloquear proceso 2. Encontrar la ubicacin en disco de la pgina solicitada (tabla de ubicacin en disco) 3. Encontrar un marco libre. Si no hubiera, se puede optar por desplazar una pgina de MP 4. Cargar la pgina desde disco al marco de MP 5. Actualizar tablas (bit presencia=1, n marco, ...) 6. Desbloquear proceso 7. Reiniciar la instruccin que origin la falta de pgina
23

Implementacin de la Tabla de Pginas


! !

La tabla de pginas se mantiene en memoria principal El registro base de la tabla de pginas (RBTP) apunta a la tabla de pginas (suele almacenarse en el PCB del proceso) En este este esquema: cada acceso a una instruccin o dato requiere dos accesos a memoria: uno a la tabla de pginas y otro a memoria un problema adicional viene determinado por el tamao de la tabla de pginas
24

Tamao de la Tabla de Pginas


!

Ejemplo: Direccin virtual: 32 bits. Tamao de pgina = 4 Kbytes (212 bytes).

) tamao del campo desplazamiento = 12 bits ) tamao nmero de pgina virtual = 20 bits ) N de pginas virtuales = 220 = 1,048,576!
!

Solucin para reducir el tamao de la TP: Paginacin multinivel


25

Paginacin multinivel
!

Esta solucin opta por paginar las tablas de pginas La particin de la tabla de pginas permite al SO dejar particiones no usadas sin cargar hasta que el proceso las necesita. Aquellas porciones del espacio de direcciones que no se usan no necesitan tener tabla de pgina
26

Paginacin a dos niveles


! !

Lo que hacemos es paginar la tabla de pginas. La direccin lgica se divide en: nmero de pgina (n bits): un nmero de pgina p1 (=k) desplazamiento de pgina p2 (=n-k) desplazamiento de pgina d (m bits) As una direccin lgica es de la forma:
p1
27

p2

Esquema de paginacin a dos niveles


p1 p2 ... ... ... ... ... Tabla de pginas de primer nivel Tablas de pginas de segundo nivel ... Memoria fsica d

28

Ejemplo: Esquema de paginacin a dos niveles


Memoria secundaria
Tablas de pag. 2 Nivel
1 2 Pag 1 de la TP 3 4 5 Pag 2 de la TP 7 8 Pag 3 de la TP 10 Pag12 Num. Marco 29 9 6 2 1 2 8 1 Pag1 Pag2 Pag3 Pag4 Pag5 Pag6 Pag7 Pag8 4 1 2 5 3 4 10 Pag9 Pag10 Pag11 pag12 Num. de pag de la TP 3 7 3 6 2 -1 3 1 2 4

Memoria Fsica
Pag3 Pag4 Pag1_TP Pag10 Pag7 Pag3_TP Pag1

Tabla de pag. 1 Nivel

Pginas compartidas
Memoria
! Una copia de cdigo de solo lectura (reentrante) compartido entre varios procesos. Ej. editores, compiladores, sistemas de ventanas

ed 1 ed 2 ed 3 data 1
Proceso P1

3 4 6 1
Tabla de pginas para P1

ed 1 ed 2 ed 3

ed 1 ed 2 ed 3 data 2
Proceso P2

3 4 6 7
Tabla de pginas para P2

data 3
Proceso P3

3 4 6 2
Tabla de pginas para P3

0 1 2 3 4 5 6 7 8 9

data 1 data 3 ed 1 ed 2 ed 3 data 2

30

2.3 Segmentacin
!

Esquema de organizacin de memoria que soporta mejor la visin de memoria del usuario: un programa es una coleccin de unidades lgicas -segmentos-, p. ej. procedimientos, funciones, pila, tabla de smbolos, matrices, etc. S1 S2 S3 S3 S2 Memoria fsica
31

S1 S4

S4 Espacio de usuario

Tabla de Segmentos
!

Una direccin lgica es una tupla: <nmero_de_segmento, desplazamiento> La Tabla de Segmentos aplica direcciones bidimensionales definidas por el usuario en direcciones fsicas de una dimensin. Cada entrada de la tabla tiene los siguientes elementos (aparte de presencia, modificacin y proteccin): base - direccin fsica donde reside el inicio del segmento en memoria. tamao - longitud del segmento. 32

Implementacin de la Tabla de Segmentos


!

La tabla de segmentos se mantiene en memoria principal El Registro Base de la Tabla de Segmentos (RBTS) apunta a la tabla de segmentos (suele almacenarse en el PCB del proceso) El Registro Longitud de la Tabla de Segmentos (STLR) indica el nmero de segmentos del proceso; el n de segmento s, generado en una direccin lgica, es legal si s < STLR (suele almacenarse en el PCB del proceso)
33

Esquema de traduccin
Direccin virtual
N. Segmento

d
si
presencia modif.

d>t

no

Presencia =1

no
FALTA DE SEGMENTO

Excepcin acceso indebido


pro.

si

RBTS
D. base tamao

Acceso autorizado?

no

si
S t 1

Excepcin violacin de privilegios


Actualizar bit de modificacin? (si/no)

TABLA DE SEGMENTOS
Tabla de Ubicacin en Disco

S + d Direccin real
Dir. TUD 34

2.4 Segmentacin Paginada (No entran problemas)


!

La variabilidad del tamao de los segmentos y el requisito de memoria contigua dentro de un segmento complica la gestin de MP y MS Por otro lado, la paginacin simplifica eso pero complica ms los temas de comparticin y proteccin (stos van mejor en segmentacin) . Algunos sistemas combinan ambos enfoques, obteniendo la mayora de las ventajas de la segmentacin y eliminando los problemas de una gestin de memoria compleja 35

Esquema de traduccin
+ s p si d<t s t Tabla de Pginas del segmento s Tabla de Segmentos m presente? si m d direccin fsica
s : direccin base de la Tabla de Pginas del segmento s
36

d direccin virtual d

+ RBTS

3. Gestin de la Memoria Virtual


$ Introduccin % Algoritmos de sustitucin & Comportamiento de los programas ' Hiperpaginacin (Thrashing) * Algoritmos de asignacin y sustitucin
37

3.1 Introduccin
! !

Gestin de Memoria Virtual con paginacin Criterios de clasificacin respecto a: Polticas de asignacin: Fija Variable Polticas de bsqueda: Paginacin por demanda Paginacin anticipada Polticas de sustitucin: Sustitucin local Sustitucin global
38

Introduccin (y II)
!

Independientemente de la poltica de sustitucin utilizada, existen ciertos criterios que siempre deben cumplirse: Pginas limpias frente a sucias
se pretende minimizar el coste de transferencia

Pginas compartidas
se pretende reducir el n de faltas de pgina

Pginas especiales
algunos marcos pueden estar bloqueados (ejemplo: buferes de E/S mientras se realiza una transferencia)
39

Asignacin fija
!

Asignacin por igual Se asignan el mismo nmero de marcos a todos los procesos Si hay m marcos, y n procesos. A cada proceso se se asignan m/n marcos
!

Asignacin proporcional por tamao Asigna segn tamao del proceso si=tamao de pi S = si m = nmero total de marcos la asignacin, ai, para pi es: ai = (si / S)*m
40

Paginacin por demanda frente a anticipada


!

Las ventajas de la paginacin por demanda son: Se garantiza que en MP solo estn las pginas necesarias en cada momento La sobrecarga de decidir qu pginas llevar a MP es mnima Las ventajas de la paginacin anticipada son: Se puede optimizar el tiempo de respuesta para un proceso pero los algoritmos son ms complejos y se consumen ms recursos
41

Rendimiento de la paginacin por demanda


! Sea p la tasa de falta de pgina; p=0 no hay faltas de pginas, p=1, toda referencia es una falta. Por tanto, 0 ! p ! 1 ! TAE = (1 - p) * acceso_a_memoria + p * (sobrecarga_falta_de_pgina + [sacar_fuera_una_pgina] + traer_la_pgina + sobrecarga_de_rearranque)

42

Influencia del tamao de pgina


!

!
43

Cuanto ms pequeas Aumento del tamao de las tablas de pginas Aumento del n de transferencia MP+Disco Reducen la fragmentacin interna Cuanto ms grandes Grandes cantidades de informacin que no sern usadas estn ocupando MP Aumenta la fragmentacin interna Bsqueda de un equilibrio

3.2 Algoritmos de sustitucin


!

Podemos tener las siguientes combinaciones asignacin fija y sustitucin local asignacin variable y sustitucin local asignacin variable y sustitucin global Veremos distintos algoritmos de sustitucin y nos basaremos (por simplicidad) en que se utiliza una poltica de asignacin fija y sustitucin local Cadena de referencia, " = r1,r2,r3,...,ri, ..., : secuencia de nmeros de pginas referenciadas por un proceso durante su ejecucin
44

A) Algoritmo Optimo
!

Se sustituye la pgina que no ser objeto de ninguna referencia posterior o que se referencie ms tarde 1,2,3,4,1,2,5,1,2,3,4,5 111111111144 22222222222 3333333333 444555555 * * * * * *
45

4 marcos de pgina Problema: debemos tener un conocimiento perfecto de la cadena de referencia Se utiliza para medir cmo de bien se comportan otros algoritmos Faltas de pginas: 6

B) Algoritmo FIFO
!

Se sustituye la pgina por orden cronolgico de llegada a MP (la pgina ms antigua) 1,2,3,4,1,2,5,1,2,3,4,5 111111555544 22222211115 3333332222 444444333 * * * * * * ** **
46

4 marcos de pgina Faltas de pgina: 10 Sufre de la Anomala de Belady: ms marcos no implican menos faltas de pginas

C) Algoritmo LRU
!

Se sustituye la pgina que fue objeto de la referencia ms antigua (Least Recently Used) 4 marcos de pgina Faltas de pgina: 8 Implementacin del algoritmo: 1,2,3,4,1,2,5,1,2,3,4,5 111111111115 22222222222 3333555544 444444333 * * * * * * * *
47

con contadores con pila Mayor coste

Implementaciones de LRU
!

LRU con contador


Cada entrada de la tabla de pginas tiene un contador. Cada vez que se referencia la pgina, se copia el tiempo del reloj en el contador Cuando necesitamos cambiar una pgina, se miran todos los contadores y se elige la que tiene el menor tiempo

LRU con pila


Los nmeros de pginas se mantienen en una pila (lista doblemente enlazada). Cuando se referencia una pgina se mueve a la cima de la pila (cambio de seis punteros como mximo) No hay que hacer bsqueda para la sustitucin de una pgina, se sustituye la del fondo de la pila
48

D) Algoritmo del reloj


! ! !

Cada pgina tiene asociado un bit de referencia R Inicialmente R= 0; en cada referencia el hardware lo pone a 1 Los marcos de pgina se representan por una lista circular y un puntero a la pgina visitada hace ms tiempo 3 Seleccin de una pgina: ref.=1 0
pgina 3 pgina 1 pgina 4

1. Consultar marco actual 2. Es R=1? Si: R=0; ir al siguiente marco y volver al paso 1 No: seleccionar para sustituir e incrementar posicin

ref.=0
pgina 2

ref.=1

2 ref.=1
49

Comparacin
n faltas de pg.
RELOJ LRU OPTIMO FIFO

n marcos asignados

Conclusin: Influye ms la cantidad de MP disponible que el algoritmo de sustitucin usado


50

3.3 Comportamiento de los programas


! !

Viene definido por la secuencia de referencias a pgina que realiza el proceso Importante para maximizar el rendimiento del sistema de memoria virtual (TLB, alg. sustitucin, ...)
Pginas referenciadas

Tiempo
51

Propiedad de localidad
!

Distintos tipos Temporal: Una posicin de memoria referenciada recientemente tiene una probabilidad alta de ser referenciada en un futuro prximo (ciclos, rutinas, variables globales, ...) Espacial: Si cierta posicin de memoria ha sido referenciada es altamente probable que las adyacentes tambin lo sean (array, ejecucin secuencial, ...)

52

Conjunto de Trabajo
!

Observaciones:
Mientras el conjunto de pginas necesarias puedan residir en MP, el n de faltas de pgina no crece mucho Si eliminamos de MP pginas de ese conjunto, la activacin de paginacin crece mucho

! Conjunto de trabajo (Working Set) de un proceso es el conjunto de pginas que son referenciadas frecuentemente en un determinado intervalo de tiempo

WS(t,) = pginas referenciadas en el intervalo de tiempo (t - , t]


53

Conjunto de Trabajo: propiedades


!

Propiedades
Los conjuntos de trabajo son transitorios No se puede predecir el tamao futuro de un conjunto de trabajo Difieren unos de otros sustancialmente

npg. ws2 ws1

ws3 tiempo
54

Teora del Conjunto de Trabajo


!

Un proceso slo puede ejecutarse si su conjunto de trabajo est en memoria principal Una pgina no puede retirarse de memoria principal si est dentro del conjunto de trabajo del proceso en ejecucin

55

3.4 Hiperpaginacin
!

Productividad

Si un proceso no tiene suficientes pginas, la tasa de faltas es alta bajo uso de la CPU el SO incrementa el grado de multiprogramacin ms faltas de pginas Hiperpaginacin = el sistema operativo est ocupado en resolver faltas de pgina

Conducta esperada

Conducta real

Grado de multiprogramacin
56

Hiperpaginacin (y II)
!

Formas de evitar la hiperpaginacin:


Asegurar que cada proceso existente tenga asignado un espacio en relacin a su comportamiento , Algoritmos de asignacin variables Actuar directamente sobre el grado de multiprogramacin , Algoritmos de regulacin de carga

57

3.5 Algoritmos de asignacin y sustitucin variables:


A) Algoritmo Optimo
!

En cada referencia, busca qu pgina (en memoria real) no es referenciada en el intervalo de tiempo: [t, t + V ] y sta es la desplazada. V: Tamao de la ventana para cada proceso Requiere un conocimiento a priori de la cadena de pginas referenciadas (irrealizable)

C,C,D,B,C,E,C,E,A,D
En la figura se representan las pginas del proceso que estn en MP Proceso de 5 pginas V =4 En t=0 slo la pgina D reside en MP

- - - - - - - - - A - - - - B - - - - - -CCCCCCC - - DDDD - - - - - - D - - - - - - EEE - * * * * *


58

B) Algoritmo basado en el modelo del WS


Parmetro del algoritmo: ancho de ventana V En cada momento t en que se hace referencia a una posicin de memoria, se determina el conjunto de trabajo de la siguiente forma: WS = pginas referenciadas en el intervalo (t - V, t] solo estas pginas se mantienen en memoria principal

59

En t=-2 se referencia E En t=-1 se referencia D En t_0 se referencia A, y WS={A,D,E} Comenzamos a ejecutar el algoritmo en t=1

Ejemplo de algoritmo basado en el WS con V = 4

(t-V, t] WS= Valores de t: Secuencia de pgs que se referencian: A B C D E * = Hay FP E D C D E * C D C A C A C A D A -2 -1 0 1 ADE EDAC DAC 2

(-3,1]

(-2,2] (-1,3] (0,4] ACD 3 CDB 4

(-1,5] (2,6] DBCE DBCE 5 6

(3,7] BCE 7

(5,9 (4,8] ] (6,10] CE 8 ECA CEAD 9 10

A A B C D D B C D B C D E * * E E E * B C C C

D A

C D E *

60

(Frecuencia de Falta de Pgina)


Definicin: Intervalo entre dos faltas de pgina = Tiempo actual tiempo de la falta de pgina anterior
IF intervalo > valor umbral L (es un parmetro del algoritmo) THEN //el proceso tiene demasiados marcos de pgina, hay que quitarle. se retiran de memoria principal todas las pginas no referenciadas entre el momento actual y el momento de la falta de pgina anterior ELSE // demasiadas faltas de pgina, el proceso tiene pocos marcos. se asigna al proceso un marco de pgina ms para albergar la pgina que ha originado esta falta de pgina LA VELOCIDAD DE FP SIRVE PARA CONOCER SI EL N DE MARCOS 61 ASIGNADOS AL PROCESO ES GRANDE O PEQUEO

C) Algoritmo FFP

En t=-2 se referencia E En t= -1 se referencia A En t=0 se referencia D Comenzamos a ejecutar el algoritmo en t=1

Ejemplo de algoritmo FFP con valor L = 2

Se aade C Intervalo entre... Intervalo de tentre esta esta FP y la anterior: Valores de tiempo: Pginas que se referencian: A B C D E * = Hay FP E * * * D C D E * C D E C D E * A A D C -2 -1 0 1 1 C A 2 D A B C D B C D 3 B 3 4 C 5 > L? NO SI

Se aade E NO SI

Se aade D NO

2 6 E C 7 E 8 A A B C D E * B C D E B C D E E * C C D E * 9 D A 10

62

En t=-2 se referencia E En t= -1 se referencia A En t=0 se referencia D Comenzamos a ejecutar el algoritmo en t=1

Ejemplo de algoritmo FFP con valor L = 2

Se aade C Intervalo entre... Intervalo de tentre esta esta FP y la anterior: Valores de tiempo: Pginas que se referencian: A B C D E * = Hay FP * * * * * * * * E E E E E E E E E D D D D D D D D D D C C C C C C C C C C B B B B B A A A A A A D C C D B C E C E A D -2 -1 0 1 2 3 4 5 6 7 8 9 10 1 3 2 > L? NO SI NO SI NO

Se aade E

Se aade D

63

También podría gustarte