Está en la página 1de 24

Tema 5: Gestin de Memoria

Introduccin

Introduccin
Programa necesita estar en memoria para poder
j
(modelo
(
V. Newman))
ser ejecutado

Gestores de memoria real


Memoria Virtual
Ejemplos: Unix/W_NT

Niveles de gestin: proceso, regiones y zonas


Espacio lgico Vs fsico
per process
region table

Kernel region table

u area

Kernel
process table

main memory

Formato del ejecutable

C b
Cabecera

Fichero Ejecutable
Nmero mgico
Contador de programa inicial
....................
Tabla de secciones

1000
Cdigo

Cdigo
Datos con v.i.
Datos sin v.i.
......................
T. Smbolos

Creacin del mapa del ejecutable

Despl.
1000
5000
-----........

Tam.
4000
1000
500
........

8000 1000

5000

Secciones

Datos con valor inicial

................
8000

Tabla de smbolos

ELF (executable and linking format)

mapa del sistema

Reubicacin esttica

Memoria
0
4
8
12
16
20
24
28
32
36
....

LOAD R1, #1000


LOAD R2, #2000
LOAD R3, /1500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /12
.................

Sistema Operativo

Memoria

10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........

LOAD R1, #11000


LOAD R2, #12000
LOAD R3, /11500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /10012
.................

Tema 5: Gestin de Memoria

Reubicacin dinmica

Memoria

Procesador
PC
8
R. Instruccin
LOAD R3, /1500

HW traduccin
10000
1500

11500

10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........

LOAD R1, #1000


LOAD R2, #2000
LOAD R3, /1500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /12
.................

Gestor de memoria: Particiones

Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

Particiones Fijas (MFT)

Particiones variables (MVT)

MVT: Algoritmos de asignacin


Satisfacer una peticin de entre n_huecos libres:

OS

OS

OS

OS

process 5

process 5

process 5

process 5

process 9

process 9

process 8
process 2

process 10
process 2

process 2

process 2

First-fit: Asigna el primer hueco lo


suficientemente grande.
Best-fit: Asigna el hueco que mejor se ajusta
al tamao del proceso. (gestin de huecos
pequeos).
Worst-fit:Asigna el hueco ms grande
grande.
Bsqueda en la lista entera

First-fit y best-fit mejores que worst-fit

Proceso de compactacin

Manejo de memoria con mapas de bits

Mtodo de los colegas

Tema 5: Gestin de Memoria


Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

Espacio lgico Vs espacio fsico

Translacin de direcciones
(Paginacin)

MMU
Implementacin tabla de pginas

Tabla de pginas en registros, memoria


asociativa.

(PTBR) en memoria.
Mtodos hbridos

Implementacin de la Tabla de Pginas

Reduccin de la TP
Direccin lgica de 32 bits (Tamao de pgina
de 4K) :
Nmero de pgina de 20 bits.
Offset de 12 bits.
Jerarquizar la direccin de pgina
Tabla
T bl d
de pginas
i
iinvertida
id
Tabla de pginas en MV

Esquema de dos niveles de TP


(1/3)

Tabla de pginas: hash e


invertida (3/3)

Esquema de n- niveles de TP (2/3)

Comparticin de pginas

Segmentacin

Tema 5: Gestin de Memoria


Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

Esquema que soporta el modelo de regin


Un programa es una coleccin de segmentos. Un segmento es
una unidad lgica que puede ser:
programa principal,
procedure,
funcin,
variables locales, variables globales,
pila,
il
tabla de smbolos

Estructura datos para un proceso (1/3)

per process
region table

Regiones (2/3)

Region

Per Proc Region Tables


(Virtual Addresses)
Kernel region table
Process
A

u area

Text

8K

Data 16K

Stack32K

a
Text

4K

Process
Data 8K
B

Kernel
process table

main memory

Stack

32K

e
d

<Processes and Regions>

Pginas y tabla de pginas (3/3)

Visin lgica de la segmentacin

Per Proc Region Table


Page Tables(Physical Addresses)
Text

8K

empty

Data 32K
Stack 64K

137K
852K
87K

764K

541K

552K

433K

783K

727K

333K

986K

941K

897K

1096K

Virtual Addresses

.
.
.
.
.
.
.
.

2001K

.
.
.
.
.
.
.
.

3
4

2
3

.
.
.
.
.
.
.
.

<Mapping Virtual Addresses to Physical Address>

Traduccin de direcciones

Espacio de usuario

Espacio fsico de memoria

Direccin lgica => Direccin fsica

Comparticin de Segmentos

Traslacin de direcciones en MULTICS

Programas e.d. Mayor que la MP

Tema 5: Gestin de Memoria


Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

MFT MVT
MFT,
MVT, Paginacin
Paginacin, Segmentacin
Overlay
Carga dinmica
Enlace dinmico
Memoria Virtual

10

Overlay

Ensamblador de dos pasos

Mantener en memoria solamente aquellas


instrucciones y datos que son requeridas en cada
momento.
Implementado por el usuario, no necesita soporte
del S.O., (linker) estructura de overlays compleja.
Todas las secciones del mismo nivel recubribles
entre si tendrn la misma direccin origen

Carga dinmica
Una rutina no es cargada hasta que no es
llamada
Rutinas no utilizadas no se cargan
No requiere soporte del S.O.

Enlace dinmico
Concepto similar al de carga dinmica
Se pospone el enlace hasta tiempo de ejecucin
En el programa se almacena la referencia ( stub,
direccin de un programa que localiza la rutina
Carga slo una vez de la rutina

11

Tema 5: Gestin de Memoria

Memoria Virtual

Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

Manejo de Page Faults


Bit validez

12

Costo de los fallos de pgina


* Page Fault Rate 0 p 1.0
p g
- if p = 0 no fallos depgina
- if p = 1, cada referencia es un fallo
* Tiempo de acceso efectivo (EAT)
EAT = (1 p) x memory access
+ p (page fault overhead
+ [swap page out ]
+ swap page in
+ restart overhead)

Ejemplo de clculo de PF
* Tiempo
p de acceso a memoria = 1 microsegundo
g
* 50% del tiempo la pgina que est siendo
reemplazada ha sido modificada y hay que
swapped-out
* Swap Page Time = 10 msec = 10,000 msec
EAT = (1 p) x 1 + p (15000)
1 + 15000P
(in msec)

Problema del Restart/Continuar (2/2)


Problema del Restart/Continuar (1/2)
ADD A, B, C
1.- Bsqueda de la instruccin

Qu sucede cuando las instrucciones pueden


modificar mltiples direcciones?

2.- Bsqueda del operando A


3.- Bsqueda del operando B

Movem

4 Suma
4.S

Move
M
(R2) + , - (R3)

5.- Almacenamiento en C

13

Necesidad de reemplazamiento (1/2)

Algoritmos de reemplazamiento

Necesidad de reemplazamiento (2/2)

Algoritmos de reemplazamiento
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

Dos polticas definen el funcionamiento del sistema de memoria


Poltica de reemplazos:
Reemplazo local: Slo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
Reemplazo global: Puede usarse para reemplazo cualquier marco
Poltica de asignacin de espacio a los procesos:
Asignacin fija: El nmero de marcos de pgina para cada proceso
es fijo.
Asignacin dinmica: El nmero de marcos de pgina para cada
proceso es dinmico
Objetivo: al aumentar el nmero de pginas, disminuye el
nmero de fallos.

14

Polticas de reemplazo
Objetivo: Minimizar la tasa de fallos de pgina.
Cada algoritmo descrito tiene versin local y global:
Local: criterio se aplica a las pginas residentes del proceso
Global: criterio se aplica a todas las pginas residentes
Algoritmos a estudiar
A. FIFO
B. ptimo

C. LRU
D. Reloj (o segunda oportunidad)
E. Buffering de pginas
F. Retencin de pginas en memoria

Anomala de Belady

Algoritmo FIFO

Implementacin: Fcil
Pginas residentes en orden FIFO se expulsa la primera
No requiere hardware especial
En el caso de estrategia local se mantiene una lista de pginas por
cada proceso. En el caso global, basta con una nica lista
Problema:
Una pgina que lleva mucho tiempo residente puede seguir
accedindose frecuentemente.
Su criterio no se basa en el uso de la pgina.
Anomala de Belady: Se pueden encontrar ejemplos en que al
aumentar el nmero de marcos aumenta el nmero de fallos de
pgina

Algoritmo ptimo

Criterio: Pgina residente que tardar ms en accederse


Implementacin:
I l
t i Irrealizable,
I
li bl ya que supone disponer
di
de
d una
prediccin fiable del uso de las pginas en un futuro a medio plazo
Versin local y global
Inters para estudios analticos comparativos

15

Algoritmo LRU (last recently used)


Criterio: Basado en proximidad temporal de referencias: pgina
residente menos recientemente usada como pgina a eliminar
Implementacin:Posible implementacin con HW especfico y un Nota:
en su versin global, hay que considerar los contadores de las pginas
menos recientemente usadas teniendo en cuenta el tiempo lgico de
cada proceso

Algoritmo de segunda oportunidad o del reloj


Se trata de una modificacin del algoritmo FIFO, para evitar que una pgina
residente desde hace tiempo
p sea desalojada
j
pese a estar siendo usada. Para
p
ello se usa el bit de referencia Ref de las pginas, con lo que se detecta su
uso

Criterio:
Si la pgina elegida por FIFO no tiene activo el bit Ref, es la pgina
expulsada
Si lo tiene activo se da 2 oportunidad antes de expulsar: se desactiva el
bit Ref,
Ref se pone pgina al final de FIFO,
FIFO se aplica criterio a la siguiente
pgina

Implementacin: Se puede implementar el orden FIFO mediante una lista


circular con una referencia a la primera pgina de la lista: se visualiza como
un reloj donde la referencia a la primera pgina es la aguja del reloj

Algoritmo del reloj

Otros algoritmos de reemplazo

LFU
MFU
Algoritmos combinados (clases de
pginas)

16

Buffering de pginas

Criterio:Esta tcnica intenta evitar el problema con las pginas


modificadas.

Implementacin:
Mantiene una reserva de marcos libres. Cuando se produce un fallo de
pgina, siempre se usa un marco libre (es decir, en verdad no hay
reemplazo)
Cuando el nmero de marcos libres queda por debajo de cierto umbral
se activa un demonio de paginacin, que aplica repetidamente el
algoritmo de reemplazo:
Pginas no modificadas pasan a lista de marcos libres
Pginas modificadas pasan a lista de marcos modificados: cuando
se escriban a disco pasan a lista de libres; suelen escribirse en tandas
(lo que mejora el rendimiento)
Si se referencia una pgina mientras est en estas listas: se recupera
directamente de la lista (no hay E/S), lo que puede mejorar el
comportamiento de algoritmos poco eficientes

Poltica de asignacin de marcos de pgina


El SO deber decidir cuntos marcos de pgina asigna a cada proceso:
a) Asignacin Fija
b) Asignacin Dinmica
A) Asignacin fija
Nmero constante de marcos asignados al proceso. Puede
depender de las caractersticas del proceso: tamao, prioridad,...
No se adapta a las distintas fases de ejecucin. Como positivo, el
comportamiento del proceso es relativamente predecible
Slo tiene sentido usar estrategia de reemplazo local
La arquitectura impone el N mnimo de marcos de pgina:
mnimo nmero de marcos a asignar igual al nmero de referencias
que aparezca en la instruccin que ms fallos de pgina pueda
generar

Retencin de pginas en memoria


Criterio:No todas las pginas son reemplazables
Aplicacin:
Se aplica a pginas del propio S.O: si sus pginas estn fijas en
memoria, su gestin es ms sencilla
Tambin se aplica mientras se hace DMA sobre una pgina. La
pgina no ser reemplazable hasta que finalice la operacin sobre
ella
Implementacin: Algunos S.O. ofrecen a las aplicaciones un servicio
para fijar en memoria una o ms pginas de su mapa: adecuado
para procesos de tiempo real, aunque puede afectar al rendimiento
del sistema. En POSIX se trata del servicio mlock

Poltica de asignacin de marcos de pgina


B) Asignacin dinmica
El nmero de marcos asignados a un proceso es variable
dependiendo del comportamiento del proceso (y posiblemente de los
dems procesos).
Se adapta a las diferentes fases por las que puede pasar un proceso
Se pueden usar tanto estrategias de reemplazo global como local.
Asignacin dinmica + reemplazo local: el proceso va aumentando
o disminuyendo su conjunto residente dependiendo de su
comportamiento (comportamiento relativamente predecible)
Asignacin dinmica + reemplazo global: los procesos compiten
por el uso de las pginas entre ellos (comportamiento difcilmente
predecible)

17

Hiperpaginacin (thrashing)

Hiperpaginacin (thrashing)
Definicin:Tasa excesiva de fallos de pgina de un proceso o en el sistema,
debido a que el nmero de marcos de pgina asignados es insuficiente para
albergar el conjunto residente

Utilizacin de la UCP
P

Con asignacin fija. Hiperpaginacin en el proceso Pi si


conjunto residente de Pi < conjunto de trabajo Pi
Con asignacin variable. Hiperpaginacin en el sistema si
n marcos disponibles < conjuntos de trabajo de los procesos

Problema: decae el grado de uso de la CPU. Los procesos estn


casi siempre
en colas de dispositivo de paginacin.
Solucin: controlar la carga:
Disminuir el grado de multiprogramacin,
Suspender uno o ms procesos liberando sus pginas residentes

Cmo detectar esta situacin?

grado de multiprogramacin

Se vern a continuacin algunas estrategias de control de la carga de trabajo:

A.
B.
C.

Estrategia del conjunto de Trabajo


Estrategia de administracin basada en la frecuencia de fallos de pgina
Estrategia de control de carga para algoritmos de reemplazo globales

Localidad

Tema 5: Gestin de Memoria


Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

Denning (68)
- Localidad espacial /temporal
- Referencias localizadas
- un programa evoluciona de localidad en localidad

Conjunto de trabajo (Working set)


{Pginas} que hace referencia activa
Balance set

18

Estrategia del conjunto de trabajo

Patrn de acceso

Modelo de Working-Set

Objetivo: Determinar el conjunto de trabajo de cada proceso, es decir, las


pginas usadas por el proceso en las ltimas N referencias

Proceso:
Si el conjunto de trabajo decrece se liberan marcos.
Si el conjunto de trabajo crece se asignan nuevos marcos.
Si no hay marcos disponibles se suspender algn(os) proceso(s), que se
reactivan cuando haya marcos suficientes

Condicin: Si el SO es capaz de detectar el conjunto de trabajo de cada


proceso, puede especificarse una estrategia de asignacin dinmica con
reemplazo local

Implementacin: Difcil, ya que precisara una MMU especfica que controlara


las pginas accedidas por cada proceso.

Aproximacin: Estrategia basada en frecuencia de fallos de pgina (PFF),


controlando la tasa de fallos de pgina de cada proceso

Implementacin del Working Set

working-set window nmero fijo de pginas


referenciadas
Example: 10,000 instruciones

WSSi (working set of Process Pi) =

nmero total de pginas referenciadas en (vara en el


tiempo)
if demasiado pequeo no cabe la localidad
if demasiado largo varias localidades
if = todo el programa

Aproximacin con intervalo por timer + a reference bit


Ejemplo: = 10,000
Timer interrumpe cada 5000 unidades de tiempo.
Guarda en memoria 2 bits for cada pgina.
Cuando el timer interrumpe copia and fija los valores
de todos los reference bits a 0.
Si uno de los bits = 1 page in working set.

Porqu no es del todo exacto?


Mejora = 10 bits y una interrupcin cada 1000 unidades de
tiempo.

19

Frecuencia de Fallo de Pgina (PFF)

Control de carga y reemplazo global


Algoritmos de reemplazo global no controlan hiperpaginacin
Incluso el ptimo!
Necesitan cooperar con un algoritmo de control de carga

Establece aceptable page-fault rate.


If actual rate demasiado bajo, proceso pierde frame.
If actual rate demasiado alto, proceso gana frame.

Ejemplo: UNIX 4.3 BSD


Reemplazo global con algoritmo del reloj
Variante con dos manecillas
Uso de buffering de pginas
demonio
demonio de paginacin
paginacin controla n
n de marcos libres
Si nmero de marcos libres < umbral
demonio de paginacin aplica reemplazo
Si se repite con frecuencia la falta de marcos libres:
Proceso swapper suspende procesos

Otras consideraciones (2/3)

Otras consideraciones (1/3)

Prepaginacin
Tamao de la pgina

fragmentacin
Tamao de la tabla
I/O overhead
localidad

Estructura del programa


int A[][] = new int[1024][1024];
Cada fila es almacenada en una pgina
Program 1
for (j = 0; j < A.length; j++)
for (i = 0; i < A.length; i++)
A[i,j] = 0;
1024 x 1024 page faults
Program 2

for (i = 0; i < A.length; i++)


for (j = 0; j < A.length; j++)
A[i,j] = 0;

1024 page faults

20

Otras consideraciones:
Archivos proyectados en memoria (2/3)
En qu consiste?
Recordemos que en un sistema con MV se hacen corresponder las
entradas
d de
d la
l TP con bloques
bl
d un archivo
de
hi ejecutable.
j
bl
La tcnica de la proyeccin permite usar esta misma idea, pero
con cualquier archivo.
El S.O. permite que un programa solicite la correspondencia de
una zona de su mapa de memoria con los bloques de un archivo
cualquiera (ya sea completo o en parte).
En la solicitud el programa indicar el tipo de acceso que desea
para las pginas asociadas al archivo.
Servicio:
La generalizacin de la tcnica de memoria virtual permite ofrecer
a los usuarios una forma alternativa de acceder a los
archivos.

Gestin de memoria Linux


Incluye todas caractersticas habituales en sistemas modernos:

Memoria virtual
Mapa del proceso dinmico
Bibliotecas dinmicas
Archivos proyectados

Modelo de memoria independiente del procesador


Paginacin con tres niveles
Capa inferior adapta HW real a este modelo

Dispositivos y archivos como soporte de mem. secundaria


Algorimo de reemplazo: versin modificada del reloj
Gestin de mem. dinmica del S.O. mediante versin de buddy

Archivos proyectados en memoria


Mapa de memoria
Cdigo

Tabla de pginas

Datos con valor inicial

...........................
Datos sin valor inicial

1pg.
Archivo

RW A Bloque 0 (arch.)
...........................
ltima pg.
Archivo RW A Bloque N (arch.)
...........................

Archivo
Bloque 0
Bloque 1

10240
Bloque 2
Archivo Proyectado
.............

Bloque N
Pila

Menos llamadas al sistema lo que se traduce en una notable mejora de los


tiempos de acceso.
Se evitan copias intermedias de la informacin ya que el S.O. transfiere
directamente la informacin entre la regin de memoria y el archivo.
Se facilita la programacin, ya que una vez proyectado se accede al archivo
como si fuera una estructura de datos en memoria

Tema 5: Gestin de Memoria


Introduccin
Gestores de memoria todo e.d. en MP
Ed. Contgo
MFT / MVT
Contigidad artificial
Paginacin
Segmentacin
Gestores de memoria donde e
e.d.
d > MP
Overlay, carga dinmica, enlace dinmico
Memoria Virtual
Implementacin
Modelo de WS y PFF
Ejemplos Unix/W_NT

21

Modelo de memoria de un objeto W_NT (1/3)

00000000

Traduccin de memoria virtual W_NT(2/3)

Selec tor de
tabla de pginas

Programas
de
usuario
7FFFFFFF
80000000

Modo
usuario

Entrada de la
tabla de pginas

Byte dentro
de la pgina

nico
por
proceso
Direc torio
de
pginas

Memoria
compartida

Modo
usuario

C0000000

Modo
ncleo

Sistema
operativo

nicos
por
sistema

FFFFFFFF

Tablas
de
pginas

Marc os
de pgina

Gestin de pginas de memoria W_NT (3/3)

Principio subyacente de la MV, aplicable


a cualquier nivel de la jerarqua.

10
Conjuntos
de
trabajo
de los
procesos

5
1

9
2
3

22

Ejemplo: Distributed Shared Memory

ps (process status)

Informacin sobre el estado de los


procesos del sistema
Es una de las herramientas ms importantes
empleadas en tareas de monitorizacin
Tiene una gran cantidad de parmetros
$ ps aur
USER
PID %CPU %MEM VSZ RSS
miguel
29951 55.9 0.1 1448 384
carlos
29968 50.6 0.1 1448 384
xavier
30023 0.0 0.5 2464 1492

vmstat (virtual memory statistics)


Paging (paginacin), swapping, interrupciones, cpu
La primera lnea no sirve para nada
% vmstat n 1
procs
r b w swpd
0 0 0
868
0 0 0
868
0 0 0
868
0 0 0
868
0 0 0
868
0 0 0
868

TTY
pts/0
pts/0
pts/0

STAT
R
R
R

START
09:16
09:32
09:27

TIME
0:11
0:05
0:00

COMMAND
tetris
tetris
ps aur

Parmetros de sar

Gran cantidad de parmetros


Varan
V de
d unas versiones
i
a otras
t
del
d l monitor
it

6
free
8964
8964
8964
8964
8964
8968

buff
60140
60140
60140
60140
60140
60140

memory
swap
cache si
so
342748
0
0
342748
0
0
342748
0
0
342748
0
0
342752
0
0
342748
0
0

bi
23
0
0
0
0
0

io
bo
7
14
0
0
2
18

system
in
cs
222 199
283 278
218 212
175 166
182 196
168 175

us
1
0
6
3
0
3

sy
4
7
2
3
7
8

cpu
id
95
93
93
94
93
89

Procesos: r (runnable), b (I/O blocked), w (swapped out)


Bloques por segundo transmitidos: bi (blocks in), (blocks out)
KB/s entre memoria y disco: si (swapped in), so (swapped out)
in (interrupts por second), cs (context switches)

-u
-B
-c
-b
-d
-I
-n
-q
-r
-w
-W
-x PID

Utilizacin del procesador


Paginacin de la memoria virtual
Creacin de procesos
Transferencias con la entrada/salida
Transferencias para cada disco
Sistema de interrupciones
Conexin de red
Carga media del sistema
Sistema de memoria
Cambios de contexto
Intercambio (swapping)
Estadsticas sobre un proceso

23

Prestaciones: Cambio parmetros en el kernel

24

También podría gustarte