You are on page 1of 57

Comunicación entre procesos

Exclusión Mutua

¿Cómo evitamos las condiciones de carrera? La clave para evitar problemas aquí y
en muchas otras situaciones en las que se involucran la memoria compartida, los
archivos compartidos y cualquier recurso compartido; es buscar alguna manera
de prohibir que más de un proceso lea y escriba los datos compartidos al mismo
tiempo.

En otras palabras, lo que necesitamos es exclusión mutua, cierta forma de


asegurar que si un proceso está utilizando una variable o archivo compartido, los
demás procesos se excluirán de hacer lo mismo.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Comunicación entre procesos

e El problema de evitar las condiciones de carrera también se puede formular de


una manera abstracta. Parte del tiempo, un proceso está ocupado realizando
cálculos internos y otras cosas que no producen condiciones de carrera.

* Sin embargo, algunas veces un proceso tiene que acceder a la memoria


compartida o a archivos compartidos, o hacer otras “cosas críticas” que pueden
producir carreras.

* Esa parte del programa en la que se accede a la memoria compartida se conoce


como región crítica o sección crítica.

O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Comunicación entre procesos

e Para asegurar que los procesos cooperen de manera correcta y eficiente al


utilizar
datos compartidos. Es necesario cumplir con cuatro condiciones para tener una
buena solución:

No puede haber dos procesos de manera simultánea dentro de sus regiones críticas.

No pueden hacerse suposiciones acerca de las velocidades o el número de CPUs.

Ningún proceso que se ejecute fuera de su región crítica puede bloquear otros
procesos.

Ningún proceso tiene que esperar para siempre para entrar a su región crítica.

Comunicación entre procesos

A entra a su región crítica A sale de su región crítica


Proceso A ]
| | | |
| / | |
| | Bintenta entrar | B entra a su | B sale de su
| ¡ Asuregión | regióncritica | región crítica
| | mo | | /
| /
Proceso B IN E__________—_—
A
| | | |
] rr” Bsebloquea
Y, Ta Tz A

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Comunicación entre procesos

* Dentro de los mecanismos de exclusión mutua más usados, tenemos la memoria


compartida, los semáforos y el paso por mensajes.

* La memoria compartida es un medio que permite establecer una zona común de


memoria
entre varias aplicaciones.

* Los semáforos, son una herramienta puramente de sincronización. Permiten


controlar el
acceso de varios procesos a recursos comunes.

* El paso por mensajes se puede ver como una lista enlazada de mensajes dentro del
espacio
de direccionamiento del núcleo. Una aplicación, siempre que tenga los derechos
necesarios,
puede depositar un mensaje (de cualquier tipo) en ella, y otras aplicaciones podrán
leerlo. Es
posible asignar atributos a los mensajes, de forma que se puedan mantener ordenados
por
prioridad en lugar de por orden de llegada.
-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Comunicación entre procesos


Memoria Compartida

e El mecanismo de memoria compartida permite a dos o más procesos compartir un


segmento
de memoria, y por consiguiente, los datos que hay en él. Es por ello el método más
rápido de
comunicación entre procesos. Al ser el objetivo de este tipo de comunicación la
transferencia
de datos entre varios procesos, los programas que utilizan memoria compartida deben
normalmente establecer algún tipo de protocolo para el bloqueo.

+ Este protocolo puede ser la utilización de semáforos, que es a su vez otro tipo
de
comunicación (sincronización) entre procesos. La memoria que maneja un proceso, y
también la compartida, va a ser virtual, por lo que su dirección física puede
variar con el
tiempo. Esto no va a plantear ningún problema, ya que los procesos no generan
direcciones
físicas, sino virtuales, y es el kernel (con su gestor de memoria) el encargado de
traducir unas

a otras.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Comunicación entre procesos

* Para aprovechar las ventajas que aporta el uso de


memoria compartida se dispone de 4 llamadas al
sistema:

proceso Á
1

memoria compartida

p 8 | ell? * shmget()
e shmctl()

e shmat()
e shmat()

kernel

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Comunicación entre procesos


Semaforos

* Un semáforo es un mecanismo de sincronización que se utiliza


generalmente en sistemas con memoria compartida, bien sea un
monoprocesador o un multiprocesador.. Su uso en un
multicomputador depende del sistema operativo en particular.

* Un semáforo es un objeto con un valor entero al que se le puede


asignar un valor inicial no negativo y al que sólo se puede acceder
utilizando dos operaciones atómicas: wait y signal (también
llamadas down o up, respectivamente).

-O UC

UNIVERSIDAD CATOLICA DEL MAULE

Soluciones del sistema

e Sol1. Semáforos

* Herramienta de sincronización que provee el sistema operativo que no requiere


espera ocupada.

e Un semáforo S es una variable que, aparte de la inicialización, solo se puede


acceder por medio de 2 operaciones atómicas y mutuamente exclusivas:
Wait(s)
e P(s), Down(s)

e V(s), Up(s), Post(s) o Release (s)

e Para evitar la espera ocupada cuando un proceso tiene que esperar, se pondrá en
una cola de procesos bloqueados esperando un evento y de esta manera no
usara la CPU
-

Semáforos

listos

S.cola_de_bloqueados

(UCM

UNIVERSIDAD CATOLICA DEL MAULE

struct SEMAPHORE (

int count;

queue cola de bloqueados;


) S;

listos

Cuando un proceso debe


AIRES EOS

5.cola_de_bloqueados

bloquea y se pone en la

CE A

listos

a ---Signal(S)

<a
==
.”

La operación signal
quita (con la política
O AN
la cola y lo pone en

EE ATA

IE E
aretes)

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE


REGIONES CRÍTICAS

e ¿Cómo evitamos las condiciones de carrera? La clave para evitar


problemas aquí y en muchas otras situaciones en las que se
involucran la memoria compartida, los archivos compartidos y todo lo
demás compartido es buscar alguna manera de prohibir que más de
un proceso lea y escriba los datos compartidos al mismo tiempo.
Dicho en otras palabras, lo que necesitamos es exclusión mutua.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

e El problema de evitar las condiciones de carrera también


se puede formular de una manera abstracta. Parte del
tiempo, un proceso está ocupado realizando cálculos
internos y otras cosas que no producen condiciones de
carrera. Sin embargo, algunas veces un proceso tiene que
acceder a la memoria compartida o a archivos
compartidos, o hacer otras cosas críticas que pueden
producir carreras. Esa parte del programa en la que se
accede a la memoria compartida se conoce como región
crítica o sección crítica. Si pudiéramos ordenar las cosas de
manera que dos procesos nunca estuvieran en sus
regiones críticas al mismo tiempo, podríamos evitar las
carreras.

-O
(SH)UCm

e Necesitamos cumplir con cuatro condiciones para tener


una buena solución:

UNIVERSIDAD CATOLICA DEL MAULE

* 1. No puede haber dos procesos de manera simultánea


dentro de sus regiones críticas.

* 2. No pueden hacerse suposiciones acerca de las


velocidades o el número de CPUs.

e 3. Ningún proceso que se ejecute fuera de su región crítica


puede bloquear otros procesos.

e 4. Ningún proceso tiene que esperar para siempre para


entrar a su región crítica.

UNIVERSIDAD CATOLICA DEL MAULE

Asociando instrucciones y datos a direcciones

de memoria
Puede darse de 3 formas distintas

UEM RA El

A AT EE A NS
memoria

Código absoluto

Debe recompilarse si cambia la


SNS E

Me Her T EE
Código relocalizable

Una vez cargado, no se puede mover


en la memoria

IET SETE

El proceso puede moverse en la


REIS Ao

La asignación de direcciones se hace


EA ERA re

Se requiere hardware especial


-

UCM

UNIVERSIDAD CATOLICA DEL MAULE

Carga dinámica

Una rutina no se carga hasta que es llamada

Una rutina no usada nunca se carga. Mejor utilización del espacio en


ole
No se requiere soporte especial del sistema operativo, puede
ATT SE

-AD CATOLICA DEL MAULE

UNIVERSID/

Encadenamiento dinámico

e El encadenamiento dinámico se pospone hasta el tiempo de


ejecución

e Stub: Pequeña pieza de código usada para localizar la rutina


de librería residente en memoria.

e El Stub se reemplaza con la dirección de la rutina, y ejecuta


la rutina.

e El sistema operativo se necesita para verificar si la rutina esta


en direcciones de memoria del proceso

Espacio de direcciones
direcciones físico

Dirección lógica Dirección física


+ Generada por el CPU * Direcciones vistas por la
+ También se refiere a una unidad de manejo de

dirección virtual | memoria (mmu)

Ógico v/s espacio de


-

Direcciones lógicas y físicas

Direcciones
cs | —

Direcciones físicas

Mem or a V rtu al |

AE
¡Ele

Espacio de
direcciones
» virtual

Espacio de
direcciones
físico

UCM

UNIVERSIDAD CATOLICA DEL MAULE


-AAA

UNIVERSIDAD CATOLICA DEL MAULE

Unidad de manejo de memoria MMU

Es el dispositivo de hardware que mapea


direcciones virtuales a direcciones físicas

Registro de relocalización

+ Se añade a cada dirección generada por


un proceso de usuario a la vez que se
manda a memoria

A”

El programa de usuario trata con direcciones


lógicas
Nunca ve el espacio de direcciones físicas.

-Intercambio (Swapping)
UNIVERSIDAD CATOLICA DEL MAULE
-

HTA
U C m
7 E

mu

Asignación contigua

e La memoria principal en dos particiones:

e El sistema operativo residente, se mantiene en la parte baja de la


memoria con la tabla de vectores de interrupción.

A AN

Sistema Operativo

UNIVERSIDAD CATOLICA DEL MAULE

Asignación contigua

+ Asignación de una partición

* El esquema de registro de Registro


recolocación usado para la Base

protección |]

+ El registro base contiene el valor de a


la dirección física más pequeña Leeds p

+ El registro límite contiene el rango [|


de direcciones lógicas

+ Cada dirección lógica debe ser más


pequeña que el registro límite

Direcciones
lógicas del
proceso

-Asignación contigua

e Asignación de particiones múltiples

Hueco Cuando llega un proceso, se


UR ER o EE E UNO

* Se van creando huecos en la ATACAR EE


MR RCA E les acomodarlo

El sistema operativo mantiene


información sobre:
o lee

b) Particiones libres

Sistema Operativo Sistema Operativo Sistema Operativo


128 Kb 128 Kb 128 Kb

«—96 Kb

-DuUCcm

UNIVERSIDAD CATOLICA DEL MAULE

Ejemplo de particiones dinámicas

Sistema Operativo Sistema Operativo


128 Kb 128 Kb

-—96 Kb

-—96 Kb mua)
«—96 Kb

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Partición dinámica y algoritmos de ubicación

Se necesita una partición


para un proceso que requiere
16 Kb.

ek

12K

22K

18K
Último
bloque 8K
asignado sK
(14K) ,

E= Bloque asignado
«n ca Bloque libre
36K

ARENA NARA RAE RE IR SS

UNIVERSIDAD CATOLICA DEL MAULE

Partición dinámica y algoritmos de ubicación

Se necesita una partición


para un proceso que requiere
16 Kb.

BK

Primer ajuste”

18H
Último
bloque 8K
asignado 6K
(14K)

E Bloque asignado

vn == Bloque libre

36K

UNIVERSIDAD CATOLICA DEL MAULE

Partición dinámica y algoritmos de ubicación

Mejor ajuste: Asigna el bloque más pequeño donde puede caber el proceso,

produce los fragmentos más pequeños

8K Se necesita una partición

de para un proceso que requiere

16 Kb.
Mejor Mi
Último
bloque 8K
asignado sk
(14K)

E Bloque asignado

14K == Bloque libre

36K

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Partición dinámica y algoritmos de ubicación

Siguiente ajuste: Asigna el siguiente bloque lo suficientemente grande donde

ANTENA ATT)

8 Se necesita una partición


para un proceso que requiere
16 Kb.

12K

22K

18K

Último
bloque 8K
asignado sK
(14K) ,
E Bloque asignado
14K == Bloque libre

Siguiente ajuste

¡A

36K

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Partición dinámica y algoritmos de ubicación

MT AR A EA NARA RN las

ek Se necesita una partición

sde para un proceso que requiere

16 Kb.
22Kk
18H
Último
bloque 8K
asignado ex
(14K)
E Bloque asignado
san == Bloque libre
Siguiente ajuste
>
36K

UNIVERSIDAD CATOLICA DEL MAULE

Fragmentación

* Fragmentación externa

+ Existe un espacio de
memoria para satisfacer
una solicitud, pero no es
contiguo

Fragmentación externa

-Fragmentación

* Fragmentación interna

» La memoria asignada es
un poco mayor a la
memoria solicitada

» Esta pequeña cantidad


de memoria que sobra
dentro de la partición
que no se usa

Fragmentación
interna

UCM

UNIVERSIDAD CATOLICA DEL MAULE


-

UNIVERSIDAD CATOLICA DEL MAULE

Fragmentación
* Reducir la fragmentación externa
por compactación

+ Desplazar el contenido de la
memoria para tener toda la
memoria disponible en un
solo bloque

UNIVERSIDAD CATOLICA DEL MAULE


p . e Y

Memoria Física
NIE Mem mo ole [UNOS Número

EM lio Tes de marco

ARM AR AMI eS
2, usualmente entre 512 y 8192 bytes

NARRAR o IN

ME lem lalo Mete

1W 00 — AA a hd A O

] ,

Proceso A
12
-

YUCcm

UNIVERSIDAD CATOLICA DEL MAULE


p e e Y

Memoria Física
Número
de marco

El espacio de direcciones lógico de un


proceso puede no estar contiguo
VOVO0 JD E y hn O

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Paginación

e Para ejecutar un programa de n paginas, se necesitan n marcos libres


para cargar el programa.

e Una tabla de paginas para traducir direcciones lógicas a direcciones


físicas
e Hay fragmentación interna
* Ejemplo:

* Las paginas miden 409

* Un proceso mide 10240 bytes

* Requiere 3 paginas

* Pág. 0: 4096 bytes

+ Pág. 1: 4096 bytes Fragmentación


* Pág. 2: 2048 bytes interna

UNIVERSIDAD CATOLICA DEL MAULE

13
14
Lista de marcos
libres

Proceso B

4 04.wNMN += O

Proceso C

Proceso A

Proceso D

SUCcm

UNIVERSIDAD CATOLICA DEL MAULE


Paginación
Número Número
de marco de marco Número
0 0 de marco
l l 0
2 2 1
3 3 2
5 :
5 4
6 6 5
7 7 9
8 8 Ñ
9 9 8
10 10 16
11
11 11
12 12 12
13 13 13
14 14 14
15 15 15

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Esquema de traducción de direcciones

* Las direcciones generadas por el CPU se dividen en:


* Número de página (p)
» Se usa como un índice en la tabla de páginas que contiene la dirección base de
cada
página en memoria física

* Desplazamiento (d)

+ Combinado con la dirección base define la dirección física que se envía a la


unidad de
manejo de memoria (Ímmu)

-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Direcciones lógicas

* Las direcciones lógicas se componen de:


* Número de página (p)
* Desplazamiento (d)

Página: 1 — —”

Desplazamiento 3F0

4096 bytes

Dirección lógica Ox13F0

-GT
U C m
Z E

UNIVERSIDAD CATOLICA DEL MAULE

Arquitectura de traducción de direcciones A

Dirección Dirección
lógica física

>

Tabla de páginas
-

(UCM

UNIVERSIDAD CATOLICA DEL MAULE

Traducción de dirección

Proceso A Marcos
Direcció lógica; Direcció física; 0 JH006 bytes
0x1234 21?=4096
1
0001 0010 0011 0100 0011 0010 0011 0100
yr
e
3
Página Marco :
0 2 5
1
2 6
2 4
7

UNIVERSIDAD CATOLICA DEL MAULE


Implementación de tabla de páginas

* La tabla de páginas se mantiene en memoria principal

* Page-table base register (PTBR)


* Apunta a la tabla de páginas

* Page-table length register (PTLR)


* Indica el tamaño de la tabla de páginas

PTBR ————=
PILAR

-Implementación de tabla de páginas

* En este esquema cada acceso de datos/instrucciones requiere dos


accesos a memoria.

* Uno para la tabla de páginas


* Otro para los datos/instrucciones

* El problema de los dos accesos a memoria se resuelve con el uso de


un caché de hardware

* Registros asociativos o buffer de traducción adelantada


* TLB=Translation Look-aside Buffer

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


-

HTA
U C m
7 E

mu

UNIVERSIDAD CATOLICA DEL MAULE

Registro asociativo

* Registros asociativos — búsqueda en paralelo

Página + Frame ff

* Traducción de direcciones (A', A”)

e Si A! está en el registro asociativo


+ Obtener el número de marco
* Sino
* Obtener el número de marco de la tabla de páginas en memoria
-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Tiempo de acceso efectivo

* Búsqueda asociativa = e unidades de tiempo


* Asume el tiempo del ciclo de memoria es 10 nanosegundos

e Tasa de aciertos

* Porcentaje de veces que un número de página es encontrado en registros


asociativos

* La tasa se relaciona con el número de registros asociativos


* Tasa de aciertos = UL

e Effective Access Time (EAT)


* EAT = (10ns + eg) a + (20ns + e)(1- a) = 20ns + € - 100

-Paginación de dos niveles

* Problema:

* Una dirección lógica de 40 bits


+ 28 bits para número de página y 12 bits desplazamiento

este l4 E Desplazamiento

* Un proceso puede tener 2” páginas


+ Más de 256 millones de páginas

* Las tablas de páginas pueden ser demasiado grandes


+ No caber en memoria
+ Tener que salir a memoria secundaria

HTA
U C m
7 E

mu

UNIVERSIDAD CATOLICA DEL MAULE


-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Paginación de dos niveles


* Una dirección lógica (en una máquina de 32 bits con páginas de 4 Kb)
se divide en:
* Numero de página (20 bits)
* Desplazamiento (12 bits)

-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Paginación de dos niveles

* Una dirección lógica (en una máquina de 32 bits con páginas de 4 Kb)
se divide en:

* Numero de página (20 bits)


* Desplazamiento (12 bits)

* Una dirección puede dividirse en dos niveles de paginación


+ 10 bits para la tabla de páginas externa
* 10 bits para la tabla de páginas interna
+ 12 bits para el desplazamiento

Esquema de paginación de dos niveles

pl
pl
-

708

de páginas
Tabla de páginas

929

—»

Memoria

GT
U C m
Z E

UNIVERSIDAD CATOLICA DEL MAULE


-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Páginas compartidas

e Código compartido
* Una copia de código de solo lectura (reentrante) entre procesos
* Editores de texto

* Compiladores
* Sistemas de ventanas

* El código compartido debe aparecer en la misma posición en el espacio de


direcciones lógico de todos los procesos

e Código y datos privados


* Cada proceso mantiene una copia separada del código y datos

* Las páginas para el código privado y datos pueden aparecer en cualquier


parte en el espacio de direcciones lógico

-DuUCcm

UNIVERSIDAD CATOLICA DEL MAULE

Ejemplo de E compartidas

10)
1
2
ó de 3
páginas
Proceso P1 P1 4
5
Tabla de
áginas
Proceso P2 A 6
7
j de ,
al 9

Proceso P3

10
-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Segmentación

* Esquema de manejo de memoria que es visible para el programador


* Un programa es una colección de segmentos.

* Un segmento es una unidad lógica como:


* Código
* Programa principal, funciones.

+ Stack
* Para retorno de las llamadas a funciones, paso de parámetros y variables locales

* Datos
+ Variables globales

NIVERSIDAD CATOLICA D LE

Visión lógica de la segmentación

Espacio de usuario Espacio de direcciones físico

UCM

UNIVERSIDAD CATOLICA DEL MAULE


ógicas a físicas en

Traducción de direcciones
la segmentación

A 0x1000 bytes
(4096)
Tabla de segmentos
0x12000 >
Base Tamaño
o [0x10000 | 0x1000 _ 0x4000 bytes
1 |0x12000|0x4000 (16384)
2 |0x18000 | 0x2800 _
0x18000 7
0x2800 bytes
(10240)

Tabla de segmentos

la segmentación

Dirección lógica: 1: 0x2F00

Base
Tamaño

0x10000

0x1000

0x 12000

0x4000

A)

0x18000

0x2800

Dirección física: Ox14F00

(UCM

UNIVERSIDAD CATOLICA DEL MAULE

Dirección lógica: 1: 0x4100

> A

ANO do

Jue

)
y

Tabla de segmentos

Base

Tamaño

0x10000

0x1000

0x12000

0x4000

0x18000

0x2800

A)

Dirección física: INVÁLIDA

IRSE

el segmento

-O
(Í)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Arquitectura de la segmentación

* Una dirección lógica consiste de un par


* número de segmento:desplazamiento
e La tabla de segmentos
* Mapea de forma bi-dimensional direcciones físicas

+ Cada entrada de la tabla tiene:


+ Base: contiene la dirección física inicial donde reside el segmento en memoria.
+ Límite: Especifica el tamaño del segmento

UNIVERSIDAD CATOLICA DEL MAULE

Arquitectura de la segmentación

* Segment-table base register (STBR)


* Apunta a la dirección de la tabla de segmentos en memoria.

* Segment-table length register (STLR)


* Indica el número de segmentos usados por el programa.
* La dirección es válida si el número de segmento<STLR

STBR ————=
STLR

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Arquitectura de la segmentación

* Recolocación.
* Dinámica
* Por tabla de segmentos
* Compartición.
* Segmentos compartidos
* El mismo número de segmento

e Asignación.
* Primer ajuste/Mejor ajuste
* Fragmentación externa

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Arquitectura de la segmentación

* Bits de protección asociados a segmentos


* La compartición de memoria ocurre al nivel de segmentación

* Ya que los segmentos varían en longitud, la asignación de memoria es


un problema de asignación dinámica

-
HTA
U C m
7 E

mu

UNIVERSIDAD CATOLICA DEL MAULE

Compartición de segmentos

0
1

Tabla de segmentos 43062


para el proceso P,

Segmento 0

Segmento 1

68348
72773

90003
98553

0
1

Tabla de segmentos
para el proceso P,

Segmento 0

Segmento 1

-Ejercicios: Paginación

Ejercicio 1: ASIGNACIÓN ESTÁTICA

Considere un sistema de gestión de memoria estática MFT, el sistema operativo ocupa


la primera posición un tamaño de 10k el resto de memoria está dividida en 4
particiones cuya característica en la tabla “A”, el algoritmo de ubicación asigna a
cada
proceso en la posición más pequeña que quepa, en la tabla “B” se puede observar la
cantidad de memoria que quiere cada proceso realice gráficamente la solicitado.
10 18k . ==
28 12K e LK
40 8K > SK

48 16K E 1AK

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


-
(UCM

UNIVERSIDAD CATOLICA DEL MAULE

10 5
Tabla A Tabla B 28
10 18k . A
28 12K - LK ma
40 8K > SK
64
10 qa 30 50 10 50 10 50
e c
28 28 28 28
D
40 40 40 40 ¡E ) 6K
Á
48 48 48 mo 4
B B B
2K 2Z2K
54 co MMM $ 2 MN Y 2 IN y 2
6K 2K = 8K

de fragmentación interna

El proceso E no entra en memoría puesto que no hay espacio suficiente para

albergarlo.

Lo

-2. Nuestro sistema operativo sique un esquema con particiones dinámicas o


MVT. La memoria tiene un tamaño de 64 K de los cuales los primeros 10 K
están ocupados por el sistema operativo. Al sistema llegan cinco procesos
cuyos tamaños se encuentran en la tabla A. Se pide representar gráficamente

la asignación de los procesos en memoria.

Tabla A
Proceso Tamaño Llegada Duración
A 8 K 1 Y
B 14K 2 Y
c 18K 3 4
D 6K 4 6
E 14 K 5 5

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


-

Instante O
SO
Instante 4

50 10K

A B8k
14K
c 18K

6K

ek

10K

54 K
Instante 3

(UCM

UNIVERSIDAD CATOLICA DEL MAULE

10k
8 K
14 K
18 K
14 K
Instante 8
so ]10k
22 K
E 14K(4KF.E)
=>]
D BK
BK

Proceso Tamaño Llegada Duración


A Bk 1 Y
B 14 K 2 Y
c 18K 3 á
D BK á 6
E 14K 5 5
Instante 1 Instante 2
110Kk 50 10K
E A BKk
B 14 K
46 K
32 K
Instante 5 Instante 6 Instante 7
SO 10K su 10K
s9 e A ak Br
B 14K B 14 K
14 K E E
18 K MS ERA PP
6K DO 6 K G BK
8K ak ak
Instante 9 Instante 10
50 10K 50 10K
22K
E 14 k Dd K
2.2.2... US PA
-3. Estamos trabajando con un sistema operativo que emplea una gestión de
memoria paginada. Cada página tiene un tamaño de 2048 posiciones (o bytes).
La memoria física disponible para los procesos es de 8 M. Primero llega un
proceso que necesita 31566 posiciones de memoria y después, llega otro

proceso que consume 18432 posiciones cuando se carga en memoria. ¿Que

fragmentación interna genera cada proceso?

- Proceso 1: 31566 posiciones


- Proceso 2: 18432 posiciones
- Memoria: 8 M

- Tamaño de páginas: 2048 bytes

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


-O
(SH)UCm

- Proceso 1: 31566 posiciones


UNIVERSIDAD CATOLICA DEL MAULE
- Proceso 2: 18432 posiciones
- Memoria: 8 M
- Tamaño de páginas: 2048 bytes

* Proceso 1:

Dividimos la cant de posiciones del Proceso entre el

31566/2048 = 15.4 Posiciones. Hay fragmentación. tamaño de la página. La parte


decimal indica fragmentación.

Veamos de cuanto es la fragmentación:

15 = 2048 = 30720 Total de fragmentación: La parte entera multiplicamos por el tam


de página

31566 — 30720 = 846 Bytes. El resultado obtenido le restamos a la cant de


posiciones del proceso 1,
que es la fragmentación Interna.

* Proceso 2:

18432 /2048 = 9 Posiciones. No hay fragmentación.


la

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Gestión de memoria

e La gestión de memoria física conlleva la realización de tres


políticas:
e Política de búsqueda
e Política de ubicación
e Política de reemplazo

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Política de búsqueda

e Establece cuando se debe cargar una pagina en memoria principal.

e Hay dos alternativas:

e Paginación por demanda: se trae a la memoria principal la pagina a la que se


hace referencia.

* Paginación previa: Cuando además de la pagina que se referencia se traen


una o dos paginas mas distintas a la demandada.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Política de ubicación

e En paginación pura o combinada la política de ubicación es trivial, la


pagina demandada se ubicara en una zona de memoria principal que
este libre.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Política de reemplazo

e Cuando no hay mas espacio en memoria física y hay que traer la pagina que ha
sido demandada entonces, previamente a traerla, hay que desalojar una pagina
de la memoria principal o física y de este procedimiento se encarga la política de
reemplazo.

e Si elegimos la pagina solamente de las paginas del proceso (monoprogramado) o


de todas las paginas del sistema (Multiprogramado).

e ¿Qué pagina elegimos?. La idea es elegir la pagina que con menor probabilidad va
a ser referenciada en el futuro.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Sistema operativo
e El responsable de gestionar las tres políticas es el sistema operativo.

e Mientras que el responsable de traducir las direcciones virtuales a


direcciones reales o físicas es el hardware del procesador,
concretamente la unidad de manejo de memoria (MMU).

e Cuando se produce un fallo de pagina, se aborda la ejecución del


programa y se pasa el control al sistema operativo.

UNIVERSIDAD CATOLICA DEL MAULE

Memoria virtual

PSSS
E U C m
z E

HE,

UNIVERSIDAD CATOLICA DEL MAULE

Introducción

Memoria virtual — separación de la memoria lógica


de usuario de la memoria física.

SUMAR ASIA A ASAS


JM EAS ol

ADE ASA ARPA ES


ARMAR AN RAA ARS

SITTERS RE AE TOY
TI E AS AS len

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Introducción

e La memoria virtual puede implementarse vía:


e Paginación por demanda
* Segmentación por demanda

UNIVERSIDAD CATOLICA DEL MAULE

Memoria virtual

Marco Marco _w7


0 Virtual |
Presente Modificada 1 4
X / 2 2
Pag 3 3
0
1
E 1001
3 1002
4 1003
5
-

SETS
S >
U C m
Z E
mr

UNIVERSIDAD CATOLICA DEL MAULE

Presente Modificada

ml

0
1
2
Se referencía una dirección que ==>
corresponde a la página 4 4
5
Escogemos una de las páginas qu

están en memoria física para


reemplazarla

-Memoria virtual

Presente Modificada

nl

OA40DN A

Marco

WN a O

1001
1002

1003

=>

Presente Modificada
nl

ODOA4O0DN

UNIVERSIDAD CATOLICA DEL MAULE

Marco Marco TT
0 Virtual
1 1
2 2
3 3
1001
1002
1003

HITA
S EN
z e
Z E
mE,

UNIVERSIDAD CATOLICA DEL MAULE

Marco
Presente Modificada
PONIA
0
1001
1002
1003

WN a O

OOA2DNDN

-Paginación por demanda

e Traer una pagina a memoria solo cuando se necesita.

e Como consecuencia de lo anterior se va a requerir:


* Menos E/S necesaria
* Menos memoria requerida
* Respuesta más rápida
e Más usuarios

Se requiere una pagina cuando se referencia.


e Abortar si hay una referencia invalida.
e Si la pagina no esta en memoria vamos a traerla a memoria

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


-

UNIVERSIDAD CATOLICA DEL MAULE

Bit de presente

En cada entrada de la tabla de páginas hay un bit de presente M Durante la


traducción de direcciones, si
E SIA A

E fallo de página

AR EE

-(UCM

UNIVERSIDAD CATOLICA DEL MAULE

Fallo de página

e La primera referencia a una pagina siempre ocasionará una excepción


llamada fallo de pagina.
e ElSO busca en otra tabla para decidir:
e Si es una referencia invalida, abortar.

* Solo es que no esta en memoria


Obtener un marco vacío

Guardar la pagina en un marco


Restaurar tablas, bit de presente =1
Instrucción de reinicio: LRU (Least Recently Used)

UNIVERSIDAD CATOLICA DEL MAULE

¿Qué sucede si no hay marcos disponibles?

Reemplazo de páginas AE
MI TIERRAS

Valipz- Tomi R TE
Página Marco Presente 0
0 1 1 1

a 2

1 2 1 3

2 3 1 4

3. | Marco virtual | 0 ;

4 | Marcovirtual | O 7

5 | Marco virtual | O a

-00 300 bh 4YNyN a O

UNIVERSIDAD CATOLICA DEL MAULE

¿Qué sucede si no hay marcos disponibles?

e Algoritmos de reemplazo Rendimiento


Se necesita un algoritmo que nos de como
resultado un mínimo de fallos de página,
EA A
MA len

Página Marco Presente

00 “0 O bh YN a O

th bb QU MM a QQ
5
8
olalolslal=
-

UNIVERSIDAD CATOLICA DEL MAULE

Rendimiento en paginación por demanda

* Tasa de fallos de página 0<p<1.0


* ifp=0 no fallos de página
* ifp=1, cada referencia es un fallo

* Tiempo de Acceso Efectivo (EAT)


* EAT=(1-p)xtiempo_ accesos a memoria +
p (sobrecarga del fallo de página +
[escribir página a disco ] +
cargar página del disco +
sobrecarga por reinicio)

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Ejemplo

* Tiempo de acceso a memoria = 10 nanosegundos

e 50% de las veces la pagina que se esta reemplazando fue modificada


y por lo tanto necesita escribirse en disco.

* Tiempo de intercambio de paginas = 10 milisegundos


e EAT = (1-p)x10+p(15000000)
e EAT = 10-10p+15000000p

-Reemplazo de páginas

MASA IA ol
loo MEA al
para incluir el reemplazo de páginas.

Bit de modificado
AS RARE an

Solo las paginas modificadas se escriben en disco

ATENAS LEE ARS


MEA MA
Memoria virtual mas grande que la memoria física

UNIVERSIDAD CATOLICA DEL MAULE


-
UNIVERSIDAD CATOLICA DEL MAULE

Políticas de reemplazo

¿Qué pagina se va
a reemplazar?

«dy

Tiene que ser la que La mayoría de las políticas

CE oe MEE A AA
TE comportamiento futuro en

Melee dde)

CT ART

Ae foN
futuro cercano. p

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Políticas de reemplazo

* Bloqueo de marcos:
e Hay paginas que no deben salir.
e Paginas del núcleo del sistema operativo.
e Estructuras de control.
* Buffers de E/S.
* El bloqueo se consigue asociando un bit de bloqueo a cada marco.

-O
(SH)UCm

UNIVERSIDAD CATOLICA DEL MAULE

Algoritmos básicos de reemplazo

* Política óptima:
* Selecciona para reemplazar la página que esperará más tiempo hasta que se
produzca la referencia siguiente.

dele l=
implementar

A RS
AO
tenga un conocimiento
exacto de los sucesos
¡vto

-AD CATOLICA DEL MAULE


UNIVERSID/

Algoritmos básicos de reemplazo

e Política del uso menos reciente (LRU):

* Reemplaza la pagina de memoria que no ha sido referenciada


desde hace mas tiempo.

e Esta seria la pagina con menor probabilidad de ser referenciada en


un futuro cercano.

e Etiquetar cada pagina con el momento de su ultima referencia.

UNIVERSIDAD CATOLICA DEL MAULE

La política de la usada hace más tiempo A

* Ejemplo: un proceso que hace referencia a 5 paginas con una


asignación constante de 3 marcos para el proceso.

Flujo de referencias a páginas


2

3 2 1 6 2 4 5 3 2 5 2
F F F F F
F F E F F F

UNIVERSIDAD CATOLICA DEL MAULE

Algoritmos básicos de reemplazo

+ Primera en salir (FIFO):


* Los marcos de un proceso como un buffer circular.
*- Muy sencilla de implementar.
» Se reemplaza la página que ha estado más tiempo en la memoria.
+ Estas páginas pueden necesitarse de nuevo y en un plazo de tiempo corto.

Anomalía de Belady (FIFO) A

-Comparación de FIFO con LRU

e El rendimiento de FIFO es relativamente pobre.

Flujo de referencias a páginas

LRU

FIFO

F
3 2 1 5 2 4 5 3 2 5 2
F E F F F F

F F F F F F F F

La política de reloj: ejemplo

-Comparación del reloj con FIFO y LRU

ro MRE sa

- ANA AD
A A

8 00--0 CUATE

El asterisco indica que el bit de uso correspondiente está en 1


El reloj proteje las páginas frecuentemante referenciadas poniendo el bil de uso en
1 en cada
referencia

-EEN o
U C m
3 E

E
UNIVERSIDAD CATOLICA DEL MAULE

Asignación de marcos

DE esquemas
Tr Tetola

ATL E [ol To]a


llo

¡ST Ello E

-O
ÍWM)UCm

Asignación fija A

e Asignación equitativa:
* Ejemplo: Si son 100 marcos y 5 procesos, dale a cada uno 20 marcos.

Asignación proporcional
e Asignar de acuerdo al tamaño del proceso
-Asignación por prioridad

e Usar un esquema de asignación proporcional usando


prioridades en vez de tamaño.

e Si el proceso Py ocasiona un fallo de página


e Selecciona uno de sus marcos para reemplazarlo
e Selecciona a un marco de un proceso con menor prioridad

(UCM

UNIVERSIDAD CATOLICA DEL MAULE


-

"UCM

UNIVERSIDAD CATOLICA DEL MAULE

Reemplazo global vs local

Er edad

LEO ALA iii

Reemplazo local
carpo e eo rela ppp leo
loe Me RE E io pr le lel

0
1
2
3
4
5
6
7
8
9

Trashing (Hiperpaginación)

e Si un proceso no tiene suficientes marcos


* La tasa de fallos de pagina es muy alta: mucha E/S
* Baja utilización del CPU

e El sistema Operativo cree que es necesario incrementar el


grado de multiprogramación

e Se agrega otro proceso al sistema.

pe ai

proceso está demasiado ocupado leyendo y


pla ii a amara [pe Moli

ET
£ SS
U C m
z E
mE

UNIVERSIDAD CATOLICA DEL MAULE

Diagrama de hiperpaginación

Utilización del CPU


Grado de multiprogramación

UNIVERSIDAD CATOLICA DEL MAULE

Otras consideraciones

+ Selección del tamaño de página: fragmentación


Páginas pequeñas Páginas grandes

Fragmentación
interna

oNO

E >
Z E

UNIVERSIDAD CATOLICA DEL MAULE

Otras consideraciones

+ Selección del tamaño de página: tamaño de tabla

Páginas ueñas Páginas grandes


6 di Tabla de Tabla de “8 :

E U C m
z E

UNIVERSIDAD CATOLICA DEL MAULE

Otras consideraciones

* Selección del tamaño de página: entrada y salida


Páginas pequeñas Páginas grandes

=
-

Otras consideraciones

Páginas grandes

You might also like