Está en la página 1de 34

Sistemas Operativos Profesor:

Ciclo 2018-1 Diaz Muñante Jorge


Memoria Real Memoria Virtual
Un solo
Multiprogramación
proceso
Multiprogramación
Particiones
Particiones fijas
variables

Segmentada
Varias
Paginada Segmentada + Paginada
1 Colas
colas
Particiones Particiones
Fijas Variables
Fragmentación Fragmentación
Interna Externa

Tamaño del Tamaño del


proceso limitado proceso limitado
por el tamaño de por el tamaño de
la partición la memoria real

Asignación de Memoria
Tamaño total del proceso
Manejo de errores

:: :: :: :: :: :: :: :: :: ::
E1 E2 E3 E4 E5 E1 E2 E3 E4 E5
E6 E7 E8 E9 E10 E6 E7 E8 E9 E10
E11 E12 E13 :: :: E11 E12 E13 :: ::
:: :: :: :: :: :: :: :: :: ::

En la practica rara vez se presentan todos los


errores en una misma ejecución.
4
Manejo de tablas, vectores u otra estructura de datos

:: :: :: :: :: :: :: :: :: ::
V1 V2 V3 V4 V5 V1 V2 V3 V4 V5
V6 V7 V8 V9 V10 V6 V7 V8 V9 V10
V11 V12 V13 V14 V15 V11 V12 V13 V14 V15
:: :: :: :: :: :: :: :: :: ::

En la practica solo usamos pocos elementos de las


estructuras de datos.
Ejm: Vector (100x100) y usamos solo (10x10)
5
Software base: Editor de texto

:: :: :: :: ::
Conversión de
Minusculas a
Mayusculas

:: :: :: :: ::

En la practica usamos rara vez esta opción

6
Referencias repetidas

initializacion Inicio del Fin del


Cod. 1 Cod. 2 datos
datos codigo codigo
Saltos esporadicos

working set: Fase inicial del Fase final del Fase Principal
proceso proceso del proceso

» Dening
˃ Principio de localidad
˃ Las referencias de los procesos tienden agruparse en
zonas pequeñas del espacio direccionable. Estas zonas
ademas tienden a cambiar en forma intermitente.

7
» No se requiere que un proceso este
almacenado en la memoria principal en forma
completa
» Ventajas
˃ No hay limite para el tamaño de los procesos
˃ Aumenta el numero de procesos en memoria
˃ Disminución de las Operaciones e/s

8
» Es la separación de la memoria lógica del
usuario de la memoria física
+ Una gran memoria virtual cuando solo se dispone de una
memoria física mas pequeña

9
Memoria Cache: Memoria real Memoria Virtual
Ilusion de una Costo razonable Ilusion de una memoria
memoria muy pero velocidad de gran tamaño
rapida intermedia
Virtual
memory

Main memory

Cache
Registers

Words
Lines
(transferred Pages
explicitly (transferred
via load/store) automatically (transferred
upon cache miss) automatically
upon page fault)

10
∞ TLB

Tabla
Pagina
Memoria Disco
Memoria Fisica 500GB
Virtual 4 GB
6 GB

Segmentada
Paginada Segmentada
+ Paginada
- Consiste en dividir el espacio de direcciones virtual en unidades de tamaño
invariante llamadas páginas.

Proceso A Proceso A

- Los marcos de página son la correspondencia de una página en la


memoria física, es decir, el espacio en la RAM donde realmente esta la
página, teniendo ambos el mismo tamaño. De esta forma, todas las
unidades de transferencia de datos desde y hacia la RAM se hacen en el
tamaño de una página.

Marco de
Página
Proceso A RAM

Página
Continuidad Artificial

Pag 0 Marco 0
Pag 1 Marco 1
Pag 2 Marco 2 Memoria
Memoria real
Virtual Pag 3 Marco 3
Pag 4 Marco 4
Pag 5 Marco 5
Pag 6
Espacio de direcciones
Pag 7 4k reales
Espacio de direccionamiento
lógico 13
14
15
17
Memoria Secundaria
Principal (Disco Duro) Memoria
Virtual de Sistema Operativo
Proceso P
Tabla de
Página 0 Páginas de P Memoria Física
Página 1 Página 0 Marco 2 Principal (RAM)
0 1 2 3
Página 2 Página 1 Marco 0
Página 3 Página 2
Sistema
No está
Operativo
4 5 6 7 … Página 3 No está
P0 P1 P2 (direcciones lógicas)
Página 4 Marco 6 Marco 0 Página 1

… Marco 1 Libre
8 9 10 11 No
están Marco 2 Página 0
P3 P4 P5 P6

(direcciones Físicas)
Marco 3 Libre
Página n- Marco 5
. 1 Marco 4 Página n
.
Página n Marco 4 Marco 5 Página n-1
.
Lista de Marco 6 Página 4
32 33 34 35 Marcos Libres
… Libres
Pn-1 Pn Marco 1
. Marco 3
Marco m Libre
.
Marco 7
.
… … D-1 D Página n …
Marco m

19
» El proceso trata de usar una pagina que no esta
en memoria real.
» Pasos:
˃ 1. Referencia a una pagina, verifica su bit de validez (esta invalida = i)
˃ 2. Ocurre una trampa
˃ 3. SO busca un marco libre
˃ 4. Lleva la pagina del disco a la memoria
˃ 5. Actualiza la tabla de paginas
˃ 6. Reinicia la operación

20
La pagina esta en
Sistema 3 memoria auxiliar
operativo

2 Trampa
Cargar 1
Referencia Memoria
M
Física
0

6 Reinicia la libre
instrucción Tabla de
paginas 4 Carga la
pagina
5 Restablece
tabla de
21 pag.
r w x v re m s c su pid g gd other
otros Marco #

r Read (lectura) s Shared-compartida

w Write (escritura) c caching


x Execute (ejecucion) su super-pagina
v valida pid process id
re referenciada g (extended) guard
m modificada gd guard data

caching: páginas asociadas a registros de dispositivos


referenciada: 1 cuando se hace una referencia a una página
para leer o escribir
modificada: recuperación marco, si página no ha sido
modificada no se escribe a disco
Valida o : 1 entrada valida y puede ser utilizada
presente/ausente 0 página no cargada en memoria
Direcion Virtual
(Proceso A): # Pag Offset

PageTablePtrA pag #0 V,R

pag #1 V,R

page
pag #2 V,R,W

pag #3 V,R,W
Pagina
pag #4 N compartida
pag #5 V,R,W

PageTablePtrB pag #0 V,R

pag #1 N

pag #2 V,R,W Esta pagina fisica


pag #3 N aparece en los 2
procesos
pag #4
page V,R
V,R

pag #5 V,R,W

Direccion Virtual:
Process B # Pag Offset
23
» La tasa de fallos de página es tan alta que el
proceso pierde más tiempo cargando páginas
que ejecutando.
» Si se produce vapuleo en todos los procesos el
sistema queda parado.
» Solución
˃ no superar cierto grado de multiprogramación.
˃ proporcionar a cada proceso las páginas que necesita en cada
momento.

24
M.Real Sacar la pagina
victima

m
victima
nueva
Es muy
2 intensa

Introducir la
pagina deseada

25
%Utilización de CPU o Productividad (reqs/segs)

Qué ocurre aquí?

Numero de procesos activos


Nivel de multiprogramación
26
» - Paginación = espacio direcciones unidimensional, (0..max)

» - Dotar máquina de varios espacios independientes de


» direcciones, desde 0 hasta cierto máximo.

» - Los distintos segmentos pueden tener longitudes distintas.

» - La longitud de cada segmento puede ser distinta

» - La longitud de un segmento puede variar durante su ejecución

» - Acceso se hace en dos partes: número de segmento y una


» dirección dentro de este

» - Un segmento puede tener la protección adecuada para el


» tipo de objeto almacenado
Tabla de La t.simbolos
simbolos choco contra la
texto fuente
Texto fuente

Tabla de constantes

árbol léxico

Llamadas a la pila

En un espacio unidimensional de direcciones con tablas crecientes, una tabla


puede encimarse con otra

28
Seg0 Seg1 Seg2 Seg3 Seg4
0k 0k 0k 0k
0k Cons-
4k 4k tan- 4k 4k
4k tes
Txt
8k 8k 8k 8k pila
fuente Arbol
12k Tab.
12K 12K lexic. 12K
Simb
16k 16k 16k 16k

20k 20k

24k
Una mem. Segmentada permite a cada tabla
crecer o encogerse con independencia
29
Direccion virtual Fragmentacion
Segment # Offset Externa
Seg 1
(cod.) Seg 2 Memoria
(datos) Fisica
Seg 3
Como pagina:
(pila)
valida, modific., Seg 3
Memoria virtual proteccion, etc. (pila)

MMU Tab de Segmento Seg 1


Base Limit Otros (cod.)
offset <
no limite ? STBR
Si STLR
Fallo acceso Seg 2
A la mem (datos)
Segmento Base + Offset
Dirección física
0x00
Editor Tabla Segmentos P1
limite base
segmento 0 0 25286 43062 43062
datos 1 1 4425 68348
segmento 1
editor
Espacio direcciones 68348
virtuales de P1
datos 1
72773

Editor
Tabla Segmentos P2 90003
segmento 0
limite base
datos 2 datos 2
0 25286 43062
segmento 1 98553
1 8550 90003

Espacio direcciones
virtuales de P2
Memoria Virtual
Seg0 Seg1 Seg2 Seg3 Seg4
0k 0k 0k
0k 0k

4k 4k 4k
4k 4k

8k 8k 8k 8k

12k 12K 12K 12K

16k 16k 16k 16k

20k 20k

24k

Segmentada + Paginada
33
p0 p1
Segmento 0
40k

Proceso Segmento 1 p0 p1

120k 10k
p0 p1

Segmento 2
70k

34

También podría gustarte