6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria:...

63
6 Carga y ubicaci ´ on de programas en memoria. Direccionamiento f´ ısico y virtual. Introducci´ on a los Sistemas Operativos, 2019-2020 Pablo Gonz´ alez Nalda Depto. de Lenguajes y Sistemas Inform´ aticos EU de Ingenier´ ıa de Vitoria-Gasteiz, UPV/EHU 11 de marzo de 2020

Transcript of 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria:...

Page 1: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

6 Carga y ubicacion de

programas en memoria.

Direccionamiento fısico y virtual.

Introduccion a los Sistemas Operativos,

2019-2020

Pablo Gonzalez Nalda

Depto. de Lenguajes y Sistemas InformaticosEU de Ingenierıa de Vitoria-Gasteiz,

UPV/EHU

11 de marzo de 2020

Page 2: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Contenidos de la presentacion

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

2 / 63

Page 3: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

3 / 63

Page 4: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Conceptos basicos de la gestion del espacio

Conceptos basicos de la gestion del espacio:

Recursos: se deben repartir recursos: memoria,

almacenamiento y uso de elementos (CPUs).

Ordenador multiprocesador: conjunto de procesadores con un

espacio de direccionamiento de memoria fısica:

SMP (Shared-memory Multi-Processor)

Unidad de direccionamiento: cantidad de memoria que senala

una direccion de memoria, normalmente un byte(B).

Particionado variable o fijo: los elementos que se asignan a

diferentes procesos o cuentas usuarias son de

tamano uniforme o no.

4 / 63

Page 5: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Gestion del espacio

La gestion del espacio implica cantidad mınima de memoria

para asignar o liberar.

Parametros:

Objeto en particionado

particiones=de/peCapacidad de direccionamiento

E = 2b · d(E memoria total, b bytes y unidad de

direccionamiento de d bytes)

Eficiencia espacial

Efe = QM ;M ≤ E (ocupado entre disponible)

5 / 63

Page 6: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Gestion del espacio

Parametros:

Fragmentacion interna

FRi = (A−Q)/A (A tamano de un objeto.)

Fr. interna media

FRi(P ) = p/2de/pe , e� p

Fragmentacion externa

FRi = (M −A)/M,M −A > E (M ocupado)

6 / 63

Page 7: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Gestion del espacio

Mapas de bits:

Particionado fijo un bit por particion

Particionado variable un bit por unidad de direccionamiento

(¿por cada byte?)

Lista de huecos es necesaria en particionado variable para

representar el espacio libre.

Polıticas de asignacion de huecos:

First/next fit primer hueco, siguiente

Best fit el mas pequeno que quepa

Worst fit el mas grande libre

https://thumbsup2life.blogspot.com/2011/02/best-fit-first-fit-and-worst-fit-memory.html

7 / 63

Page 8: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Gestion de memoria

En la memoria: Sistema Operativo, librerıas compartidas de

carga dinamica, y programas.

Tareas del SO:

Carga y ubicacion

Gestion de mas de un programa en memoria

Carga bajo demanda de codigo compartido durante la

ejecucion: DLL

Programas que no caben completamente en memoria

Memoria compartida entre programas

Gestion de la memoria libre

8 / 63

Page 9: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Mecanismos para la gestion de memoria

Estudio incremental-historico.

Un programa en memoria o varios

Permanentes o no (en ejecucion se mueven fuera de RAM)

Contiguos o no (programa ordenado, consecutivo en RAM)

Enteros o no (partes del programa fuera de RAM)

Combinaciones:

Monitor residente Un programa permanente, contiguo y entero

Particionado Varios, permanentes, contiguos y enteros

Intercambio de procesos No permanentes

Paginacion y segmentacion No contiguos

Enlace dinamico y memoria virtual No contiguos y no enteros

9 / 63

Page 10: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Gestion del espacio

Gestion de memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Evaluacion del rendimiento de la gestion de

memoria

Temporal Perdida de eficiencia temporal en la

aplicacion de la polıtica, con o sin

hardware adicional

Espacial Eficiencia en el uso del espacio de

memoria (fragmentacion, compactacion)

10 / 63

Page 11: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

11 / 63

Page 12: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Sistemas primitivos

Monitor residente: un programa, como MS-DOS

registro barrera o similar

direccionamiento absoluto, ubicacion fija

Particionado: Registros que limitan cada programa

reubicacion en tiempo de carga, estatica o dinamica

particionado fijo (numero maximo de programas, fragm.

interna) o variable (fragm. externa, reubicacion dinamica

para compactar)

12 / 63

Page 13: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

13 / 63

Page 14: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Estados y cambio de contexto (avance del tema 7)

14 / 63

Page 15: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Estados y cambio de contexto (avance del tema 7)

15 / 63

Page 16: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Intercambio de procesos o swapping de procesos

Mover programas de RAM a almacenamiento durante el

tiempo de ejecucion para dejar espacio libre en RAM. Aplicable

a procesos que no estan en ejecucion (esperan E/S, eventos o

recurso de CPU).

En ingles: swapper, swap-in, swap-out

Bloqueado y preparado tanto dentro como fuera de memoria⇒planificacion a medio plazo

Criterios de planificacion

bloqueado o preparado

prioridad del proceso

tamano del programa, mas hueco pero mas movimiento

tiempo en memoria

16 / 63

Page 17: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Solucion de problemas

Existe pendiente una operacion de DMA sobre un bufer

ubicado en la memoria de programa.

Si ese programa se elige para sacar de la RAM:

impedir swap-out del proceso con DMA pendientes

E/S sobre buferes del sistema (residentes)

17 / 63

Page 18: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

18 / 63

Page 19: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Librerıas de Enlace Dinamico, DLL / .so

Los metodos para tener programas mas grandes que la RAM

disponible: solapamientos (overlays), enlace dinamico (DLL o

.so (shared object)) y memoria virtual.

El mecanismo del enlace dinamico necesita una llamada al

sistema que cargue las rutinas y que gestione la memoria.

Beneficios actuales de las DLL (si se usa memoria virtual):

tamano en disco y en RAM: una repeticion de la rutina

solo se carga una vez para todos los programas, mayor

rapidez de carga

se cargan cuando se necesitan, los programas se inician

mas rapidamente

se actualizan mas facilmente los programas si se

actualizan la librerıas

19 / 63

Page 20: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Cargador

Ubicacion en tiempo de

carga

Inconvenientes de la

ubicacion estatica

Reubicacion dinamica

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

20 / 63

Page 21: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Cargador

Ubicacion en tiempo de

carga

Inconvenientes de la

ubicacion estatica

Reubicacion dinamica

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Carga de un programa en Memoria. Cargador

Funciones del Cargador:

Lee el fichero ejecutable

Lo ubica en un espacio libre de la memoria:

1 Busca un espacio consecutivo libre en memoria

2 Copia el codigo del programa

3 Copia los datos Inicializados

4 Reserva espacio para la pila y las memoria dinamica

Comienza con la primera instruccion del programa:

1 Inicializa los registros de la CPU (PC, PSW, SP, . . . ).

El SO tiene que llevar contabilidad/gestion del uso de la

memoria:

Conocer el espacio libre

Zona de memoria que ocupa un programa

Debe liberar esa memoria cuando el programa termine

21 / 63

Page 22: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Cargador

Ubicacion en tiempo de

carga

Inconvenientes de la

ubicacion estatica

Reubicacion dinamica

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Reubicacion en tiempo de carga

1 int Global1, x, Resul;main(){

4 Global1 = 35;x = 3;Resul = Global1 + x*x;

7 escribir(Resul);}void escribir(int R)

10 {printf("El resultado es %d\n", R);}

2000: Global1:2004: x:

3 2008: resul:PROC main2012: PUSH r30

6 2016: MOV r30,r312020: MOV r1, 352024: ST r1, 2000

9 2028: MOV r1, 32032: ST r1, 20042036: LD r2, 2000

12 2040: LD r3 ,20042044: MULT r4, r3,r32048: ADD r5, r2,r4

15 2052: ST r5, 20082056: PUSH r52060: CALL 2132

18 ...;;;;main

21 2128: RETPROC escribir2132: PUSH r30 ;; escribir

24 ...2252: RET

22 / 63

Page 23: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Cargador

Ubicacion en tiempo de

carga

Inconvenientes de la

ubicacion estatica

Reubicacion dinamica

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Reubicacion en tiempo de carga

2000: Global1:2004: x:

3 2008: resul:PROC main2012: PUSH r30

6 2016: MOV r30,r312020: MOV r1, 352024: ST r1, 2000

9 2028: MOV r1, 32032: ST r1, 20042036: LD r2, 2000

12 2040: LD r3 ,20042044: MULT r4, r3,r32048: ADD r5, r2,r4

15 2052: ST r5, 20082056: PUSH r52060: CALL 2132

18 ...;;;;main

21 2128: RETPROC escribir2132: PUSH r30 ;; escribir

24 ...2252: RET

23 / 63

Page 24: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Cargador

Ubicacion en tiempo de

carga

Inconvenientes de la

ubicacion estatica

Reubicacion dinamica

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Inconvenientes de la ubicacion estatica

Inconvenientes de la ubicacion estatica:

1 Tiempo invertido en el proceso de reubicacion ralentiza la

fase de carga.

2 El programa una vez reubicado NO SE PUEDE MOVER.

Puede generar fragmentacion de la memoria.

Podrıamos solventar estos problemas si la reubicacion se

realizara en el momento de acceder a memoria, en cada

referencia.

24 / 63

Page 25: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Cargador

Ubicacion en tiempo de

carga

Inconvenientes de la

ubicacion estatica

Reubicacion dinamica

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Reubicacion dinamica

La reubicacion dinamica consiste en calcular en cada acceso a

memoria RAM la direccion que corresponde a una direccion

logica del programa.

El resultado es que cada programa gestiona todo su espacio de

direcciones y el hardware recoloca cada una de sus partes en la

RAM.

25 / 63

Page 26: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

26 / 63

Page 27: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Paginacion y segmentacion

Paginacion y segmentacion: asignacion de memoria no

contigua, solo es necesario tener memoria libre.

Se dividen los programas en trozos, del mismo (paginas) o de

distinto tamano (segmentos).

Direccionamiento virtual: una direccion logica (@l) se traduce

en una @ fısica (@f) en tiempo de ejecucion, por lo que es una

reubicacion dinamica.

Los programas pueden usar el direccionamiento virtual para

compartir codigo o datos para ahorrar memoria y tiempo de

carga.

paginacion

27 / 63

Page 28: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Esquema: programas no contiguos en memoria

28 / 63

Page 29: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Esquema: paginacion, de paginas a marcos

29 / 63

Page 30: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Esquema de traduccion de pagina a marco

Paginacion lineal. Hay muchos mas esquemas en la Red: buscad

imagenes memory address translation30 / 63

Page 31: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Esquema de traduccion PAE

Physical Address Extension: 32-bit x86 processors are limited to 64 GB of RAM in Physical Address

Extension (PAE) mode (https://en.wikipedia.org/wiki/X86-64)

By: see https://en.wikipedia.org/wiki/File:X86_Paging_PAE_4K.svg

31 / 63

Page 32: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Soporte hardware

Hardware para traduccion de direcciones: MMU (unidad de

gestion de memoria en la CPU).

TLB (Translation Lookaside Buffer): cache de

traducciones para evitar un acceso a memoria para consultar la

tabla de paginas

Por cada pagina hay varios bits, de solo lectura y de no

ejecutable en cada entrada de la Tabla de Paginas de un

proceso.

32 / 63

Page 33: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Sistemas segmentados

Los segmentos son gestionados por el codigo del programa, no

es transparente al compilador/programadora.

tabla de

33 / 63

Page 34: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Sistemas segmentado-paginados

Los segmentos no estan contiguos y se dividen en paginas.

Virtual address space Physical address space

0x00000000

0x00010000

0x10000000

0x7���f

0x00000000

0x00���

page belonging to process

page not belonging to process

text

data

stack

34 / 63

Page 35: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

Sistemas segmentado-paginados

35 / 63

Page 36: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

36 / 63

Page 37: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Memoria virtual

La Memoria Virtual (MV) es un sistema de paginacion en el

que solo un subconjunto de las paginas estan en

memoria. El resto estan en almacenamiento: en un fichero o

una particion (swap) o en el fichero ejecutable.

Ventajas:

menor latencia, no hay que cargar el programa entero

para ejecutarse

se pueden ejecutar mas programas con menos memoria

por programa

total independencia de los programas con respecto al

hardware

37 / 63

Page 38: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Esquema de la memoria virtual

en los ejecutables las paginas del codigo y en swap los datos en

memoria del programa

38 / 63

Page 39: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Soporte hardware

Aparte del necesario para la paginacion, para la MV se

necesita:

bit de validez V: para cada pagina hay un bit en la tabla de

paginas que indica si la pagina esta en memoria o no.

interrupcion de fallo de pagina (FP): cuando se referenciaun byte de una pagina, la MMU consulta el bit de validez y

si es 0 ejecuta la rutina de atencion al FP para cargar la

pagina en memoria.

Opcionalmente, espacio en almacenamiento en disco.

39 / 63

Page 40: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Carga de programas

Carga de un programa:

El cargador inicia la tabla de paginas

carga ciertas paginas y marca el bit V a 1 para cada una

anota las posiciones en disco del resto de las paginas

(no cargadas) del ejecutable

Estrategias de carga:

carga por demanda, segun se van referenciando

prepaginacion de un cierto numero de paginas,

dependiendo de los recursos disponibles y del tamano del

programa

40 / 63

Page 41: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Procedimiento de acceso a RAM

Para cualquier acceso a memoria:

decodificar la @ logica y consultar la tabla de paginas

si la direccion fısica no es correcta, core dump

si no, si V es 1, acceso al marco indicado en la TP

si no, V es 0 por lo que hay fallo de pagina (FP)

para poder atenderla se revierte (rollback) la ejecucion de

las instrucciones de Lenguaje Maquina hasta un estado

consistente (procesadores segmentados o pipelined)

41 / 63

Page 42: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Rutina de atencion al FP

La rutina de atencion al fallo de pagina (FP) consiste en:

si hay marcos libres se carga la pagina

si no, el algoritmo de reemplazo elige una pagina vıctimaque quizas haya que escribir en disco

el proceso se bloquea hasta que termina la carga de

pagina por DMA, y pasa a ejecutarse otro proceso

al terminar la carga se actualiza la TP y el bit V, y el

proceso pasa a preparado

42 / 63

Page 43: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Rendimiento de la memoria virtual

tf es un acceso a disco, tm es un acceso a RAM y tv es un

acceso a memoria virtual

Consideremos tv = tm + p · (tf + tm)

Como tf >> tm simplificamos redondeando tv = tm + p · tf

Despejamos: p = ( tvtm− 1) · tmtf

Si queremos que la perdida de rendimiento sea de un 10 %, la

proporcion entre tv y tm debe ser 1,10

�eda: p < 0,1 · tmtf

Si el acceso a RAM es 105 veces mas rapido que a disco,

p < 106 que es una probabilidad muy baja de FP.

43 / 63

Page 44: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Rendimiento de la memoria virtual

Pero:

Sin FP, hay que cargar todo el ejecutable al principio

(equivalente a n FP)

localidad espacial⇒ muchos accesos a pocas paginas

antes de FP

el espacio de paginacion en disco ≈ tamano de RAM,

como mucho duplica

mientras se atiende el FP se ejecuta otro proceso

44 / 63

Page 45: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Polıticas de reemplazo de paginas

Algoritmos de reemplazo de paginasPage replacement algorithm

Criterios para la eleccion de pagina vıctima:

minimizar numero de fallos de pagina (FP), explotando la

localidad temporal de los programas

sencillez en procesamiento y hardware

Cada programa tiene su secuencia de referencias a memoria,

por lo que el salto de una secuencia a otra rompe la localidad

45 / 63

Page 46: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Polıticas optima y FIFO

La optima es seleccionar la pagina que va a tardar mas tiempo

en ser referenciada. Implica conocer el comportamiento futuro

del programa.

La polıtica FIFO es elegir la pagina que lleva mas tiempo

cargada en memoria (aunque sea usada a menudo). Al no usar

localidad no produce buenos resultados. Ademas produce la

anomalıa de Belady, en la que con ciertas secuencias de

referencias se aumenta la tasa de fallos al aumentar el numero

de marcos (es decir, mas FP con mas memoria)

46 / 63

Page 47: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Polıtica Usada menos recientemente (Least recentlyused, LRU)

LRU aprovecha la localidad temporal, al suponer que las

paginas que se acaban de usar es mas probable que se usen en

un futuro cercano.

La informacion sobre cada pagina hay que modificarla en cada

referencia, mientras que FIFO lo hace solo en la carga.

Es un algoritmo de pila, que no sufren la anomalıa de Belady.

Implementacion (muy costosa):

lista ordenada en funcion de la ultima referencia

contador global de referencias y un registro por marco

para almacenar el valor del contador en el momento del

acceso

47 / 63

Page 48: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Aproximacion a LRU

En el momento del acceso a la pagina se activa su bit dereferencia R.

Cuando se produce la interrupcion del reloj, al final del

intervalo de tiempo entre ticks de reloj en la rutina de atencion

al reloj se actualiza el contador del marco con el valor del

contador de ticks y se pone su bit de referencia R a 0.

Con esta aproximacion se pierde precision al no ordenar las

paginas accedidas por ultima vez en el mismo tick.

48 / 63

Page 49: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Segunda oportunidad y el algoritmo del reloj

Consisten ambas polıticas en la idea de que se usa FIFO pero se

elige la pagina mas antigua en memoria solo si su bit de

referencia esta a 0. Si esta activado, se pone a 0 y se coloca esa

pagina como recien cargada en memoria.

En el reloj, la FIFO se convierte en una lista circular en la que la

manecilla apunta a la pagina mas antigua. Si se ha

referenciado, pasa a apuntar la anterior.

49 / 63

Page 50: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

No usada recientemente, NRU

Se basa en los bits de referenciada R y de modificada M.

Recien cargada: R→ 0 y M→ 0

Lectura: R→ 1

Escritura: R→ 1 y M→ 1

Tick de reloj: R→ 0

Orden de eleccion: antes las no referenciadas

R M

0 0

0 1

1 0

1 1

En una misma categorıa se elige al azar.

Problema: justo despues del tick de reloj, todas las paginas

tienen la misma informacion, accedidas dentro del ultimo tick

o no.50 / 63

Page 51: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

No usada frecuentemente, NFU

Consiste en contar cuantas veces lleva referenciada, para elegir

la de la cuenta mas baja.

Al final del tick se incrementa el contador de cada marco si su

R esta activado.

No tiene en cuenta la localidad temporal. Paginas que se

usaron mucho se mantienen en memoria.

51 / 63

Page 52: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Envejecimiento

Consiste en almacenar la lista de los ultimos bits de referencia,

metiendo al final del tick por la izquierda en el registro el bit R.

Se comparan numericamente los registros.

52 / 63

Page 53: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Memoria virtual y multiprogramacion

Si el sistema es multiprogramado, las secuencias de referencias

se intercalan y la localidad temporal se rompe. Una pagina que

se ha referenciado recientemente no se va a usar pronto porque

se esta ejecutando otro programa.

Rango de asignacion

El rango de asignacion es el conjunto de paginas que se tienen

en cuenta al aplicar el algoritmo de reemplazo.

53 / 63

Page 54: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Rangos de asignacion

Rangos de asignacion:

global: referencias de todos los programas en una secuencia

unica. Se desecharan mas probablemente las paginas

de procesos que no estan en ejecucion.

local: el algoritmo de reemplazo se aplica sobre las paginas

del proceso que ha sufrido el fallo de pagina.

Es necesario repartir, asignar (ai) los marcos (M) entre

los procesos (N) para alojar parte de todas las paginas

del proceso (si, siendo S =∑

si todas las paginas

necesarias):

igual numero de paginas por proceso ai = M/Nigual proporcional al uso de memoria ai = si

S ·M

Solucion intermedia: definir maximos y mınimos.

54 / 63

Page 55: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Sobrepaginacion

Thrashing o sobrepaginacion

Lımite de numero de programas ejecutandose concurrente o

simultaneamente en el ordenador: uno por marco de memoria

Sin llegar a este lımite, si se tienen muchos programas, hay

pocas paginas por programa cargadas en memoria⇒

Probabilidad muy alta de producirse un fallo de pagina⇒ FP

⇒ el proceso se bloquea⇒ cambia la localidad⇒ otro FP⇒cırculo vicioso, realimentacion positiva⇒

todos los procesos acaban bloqueandose por FP⇒ CPU con

uso bajo⇒ pueden entrar a ejecucion mas procesos⇒ menos

memoria por proceso⇒ mas FP

55 / 63

Page 56: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Conjunto de trabajo o working set

Working Set

El conjunto de trabajo o working set (WS), es el subconjunto de

paginas de un programa que va a recibir casi todas las

referencias que genere el programa en un futuro cercano.

Por tanto, si se mantiene el WS en memoria, va a haber pocos

fallos de pagina. Por logica, el rango de asignacion es local, la

pagina vıctima se elige de entre las del programa.

Se limita el grado de multiprogramacion maximo al que

permite tener todos los WS en memoria:

N∑i=1

tam(WSi) ≤M

56 / 63

Page 57: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Calculo del Working Set

De la definicion de WS deducimos que hay que hacer una traza

de las ultimas referencias de un proceso en un tiempo ∆ o

ventana de tamano ∆.

El caso mas simple es que la ventana este compuesta de las

paginas con el bit de referencia activado en el ultimo tick de

reloj. Si se aplica envejecimiento se puede mejorar la busqueda

del WS.

Con la carga de paginas por demanda podrıa haber demasiados

fallos de pagina y llegar a la sobrepaginacion. Se soluciona con

la prepaginacion si no se llega a un numero de paginas del

proceso en memoria (buscar la carga del WS entero).

57 / 63

Page 58: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Fijacion de paginas en memoria

Es necesario hacer una pagina fija en memoria (no se puede

elegir como vıctima) mediante un bit de fijacion si:

se espera una operacion de DMA sobre un bufer que es

parte de esa pagina

esa pagina acaba de cargarse por FP y su proceso todavıa

no la ha usado

En el primer caso tambien se soluciona usando buferes de E/S

que gestione el sistema operativo, como en el intercambio de

procesos.

58 / 63

Page 59: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Paginas iniciadas a cero

Grandes zonas de datos que ocupan mas de una pagina no se

incluyen en crudo en el ejecutable.

El cargador marca estas paginas como invalidas y paginas

iniciadas a cero, con un bit especıfico.

Al usarla, la rutina de atencion al FP inicia una pagina llena de

ceros.

59 / 63

Page 60: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

Rangos de asignacion

Sobrepaginacion

Working Set

Casos especiales

¿Mas preguntas?

Copy-on-write

Inmediatamente despues de un fork todas las paginas se

comparten por padre e hijo y se marcan con un bit

denominado bit Copy-on-write (copia cuando se escriba). Las

tablas de paginas apuntan a las mismas paginas de codigo

hasta que un proceso sufre un exec.

En el momento de referenciar para escritura una pagina con el

bit activado se duplica la pagina para que cada programa

mantenga sus datos propios, dejando de compartir.

60 / 63

Page 61: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

1 Gestion del espacio y la memoria

2 Sistemas primitivos

3 Intercambio de procesos

4 Enlace dinamico

5 Cargador

6 Paginacion y segmentacion

7 Memoria virtual

8 ¿Mas preguntas?

61 / 63

Page 62: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

Contenidos

Gestion del

espacio y la

memoria

Sistemas

primitivos

Intercambio de

procesos

Enlace dinamico

Cargador

Paginacion y

segmentacion

Memoria virtual

¿Mas preguntas?

¿Mas preguntas?

¿Mas preguntas?

62 / 63

Page 63: 6 Carga y ubicación de programas en memoria ... Paginac, Memoria Virtual/ISO6.pdfEn la memoria: Sistema Operativo, librer´ıas compartidas de carga dinamica, y programas.´ Tareas

6 Carga y ubicacion de

programas en memoria.

Direccionamiento fısico y virtual.

Introduccion a los Sistemas Operativos,

2019-2020

Pablo Gonzalez Nalda

Depto. de Lenguajes y Sistemas InformaticosEU de Ingenierıa de Vitoria-Gasteiz,

UPV/EHU

11 de marzo de 2020