Professional Documents
Culture Documents
Contenido Prueba 2 SO 1
Contenido Prueba 2 SO 1
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.
-O
(SH)UCm
O
(SH)UCm
No puede haber dos procesos de manera simultánea dentro de sus regiones críticas.
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.
(UCM
* 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
+ 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
proceso Á
1
memoria compartida
p 8 | ell? * shmget()
e shmctl()
e shmat()
e shmat()
kernel
-O
(SH)UCm
-O UC
e Sol1. Semáforos
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
struct SEMAPHORE (
int count;
listos
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
-O
(SH)UCm
-O
(SH)UCm
de memoria
Puede darse de 3 formas distintas
UEM RA El
A AT EE A NS
memoria
Código absoluto
Me Her T EE
Código relocalizable
IET SETE
UCM
Carga dinámica
UNIVERSID/
Encadenamiento dinámico
Espacio de direcciones
direcciones físico
Direcciones
cs | —
Direcciones físicas
Mem or a V rtu al |
AE
¡Ele
Espacio de
direcciones
» virtual
Espacio de
direcciones
físico
UCM
Registro de relocalización
A”
-Intercambio (Swapping)
UNIVERSIDAD CATOLICA DEL MAULE
-
HTA
U C m
7 E
mu
Asignación contigua
A AN
Sistema Operativo
Asignación contigua
protección |]
Direcciones
lógicas del
proceso
-Asignación contigua
b) Particiones libres
«—96 Kb
-DuUCcm
-—96 Kb
-—96 Kb mua)
«—96 Kb
-O
(SH)UCm
ek
12K
22K
18K
Último
bloque 8K
asignado sK
(14K) ,
E= Bloque asignado
«n ca Bloque libre
36K
BK
Primer ajuste”
18H
Último
bloque 8K
asignado 6K
(14K)
E Bloque asignado
vn == Bloque libre
36K
Mejor ajuste: Asigna el bloque más pequeño donde puede caber el proceso,
16 Kb.
Mejor Mi
Último
bloque 8K
asignado sk
(14K)
E Bloque asignado
36K
-O
(SH)UCm
ANTENA ATT)
12K
22K
18K
Último
bloque 8K
asignado sK
(14K) ,
E Bloque asignado
14K == Bloque libre
Siguiente ajuste
¡A
36K
-O
(SH)UCm
MT AR A EA NARA RN las
16 Kb.
22Kk
18H
Último
bloque 8K
asignado ex
(14K)
E Bloque asignado
san == Bloque libre
Siguiente ajuste
>
36K
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
Fragmentación
interna
UCM
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
Memoria Física
NIE Mem mo ole [UNOS Número
ARM AR AMI eS
2, usualmente entre 512 y 8192 bytes
NARRAR o IN
1W 00 — AA a hd A O
] ,
Proceso A
12
-
YUCcm
Memoria Física
Número
de marco
-O
(SH)UCm
Paginación
* Requiere 3 paginas
13
14
Lista de marcos
libres
Proceso B
4 04.wNMN += O
Proceso C
Proceso A
Proceso D
SUCcm
-O
(SH)UCm
* Desplazamiento (d)
-O
(Í)UCm
Direcciones lógicas
Página: 1 — —”
Desplazamiento 3F0
4096 bytes
-GT
U C m
Z E
Dirección Dirección
lógica física
>
Tabla de páginas
-
(UCM
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
PTBR ————=
PILAR
(UCM
HTA
U C m
7 E
mu
Registro asociativo
Página + Frame ff
e Tasa de aciertos
* Problema:
este l4 E Desplazamiento
HTA
U C m
7 E
mu
-O
(Í)UCm
* Una dirección lógica (en una máquina de 32 bits con páginas de 4 Kb)
se divide en:
pl
pl
-
708
de páginas
Tabla de páginas
929
—»
Memoria
GT
U C m
Z E
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
-DuUCcm
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
Segmentación
+ Stack
* Para retorno de las llamadas a funciones, paso de parámetros y variables locales
* Datos
+ Variables globales
NIVERSIDAD CATOLICA D LE
UCM
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
Base
Tamaño
0x10000
0x1000
0x 12000
0x4000
A)
0x18000
0x2800
(UCM
> A
ANO do
Jue
)
y
Tabla de segmentos
Base
Tamaño
0x10000
0x1000
0x12000
0x4000
0x18000
0x2800
A)
IRSE
el segmento
-O
(Í)UCm
Arquitectura de la segmentación
Arquitectura de la segmentación
STBR ————=
STLR
-O
(SH)UCm
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
Arquitectura de la segmentación
-
HTA
U C m
7 E
mu
Compartición de segmentos
0
1
Segmento 0
Segmento 1
68348
72773
90003
98553
0
1
Tabla de segmentos
para el proceso P,
Segmento 0
Segmento 1
-Ejercicios: Paginación
48 16K E 1AK
(UCM
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
albergarlo.
Lo
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
Instante O
SO
Instante 4
50 10K
A B8k
14K
c 18K
6K
ek
10K
54 K
Instante 3
(UCM
10k
8 K
14 K
18 K
14 K
Instante 8
so ]10k
22 K
E 14K(4KF.E)
=>]
D BK
BK
(UCM
* Proceso 1:
* Proceso 2:
-O
(SH)UCm
Gestión de memoria
-O
(SH)UCm
Política de búsqueda
-O
(SH)UCm
Política de ubicación
-O
(SH)UCm
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 ¿Qué pagina elegimos?. La idea es elegir la pagina que con menor probabilidad va
a ser referenciada en el futuro.
-O
(SH)UCm
Sistema operativo
e El responsable de gestionar las tres políticas es el sistema operativo.
Memoria virtual
PSSS
E U C m
z E
HE,
Introducción
SITTERS RE AE TOY
TI E AS AS len
-O
(SH)UCm
Introducción
Memoria virtual
SETS
S >
U C m
Z E
mr
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
-Memoria virtual
Presente Modificada
nl
OA40DN A
Marco
WN a O
1001
1002
1003
=>
Presente Modificada
nl
ODOA4O0DN
Marco Marco TT
0 Virtual
1 1
2 2
3 3
1001
1002
1003
HITA
S EN
z e
Z E
mE,
Marco
Presente Modificada
PONIA
0
1001
1002
1003
WN a O
OOA2DNDN
(UCM
Bit de presente
E fallo de página
AR EE
-(UCM
Fallo de página
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 “0 O bh YN a O
th bb QU MM a QQ
5
8
olalolslal=
-
-O
(SH)UCm
Ejemplo
-Reemplazo de páginas
MASA IA ol
loo MEA al
para incluir el reemplazo de páginas.
Bit de modificado
AS RARE an
Políticas de reemplazo
¿Qué pagina se va
a reemplazar?
«dy
CE oe MEE A AA
TE comportamiento futuro en
Melee dde)
CT ART
Ae foN
futuro cercano. p
-O
(SH)UCm
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
* 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
3 2 1 6 2 4 5 3 2 5 2
F F F F F
F F E F F F
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
ro MRE sa
- ANA AD
A A
8 00--0 CUATE
-EEN o
U C m
3 E
E
UNIVERSIDAD CATOLICA DEL MAULE
Asignación de marcos
DE esquemas
Tr Tetola
¡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
(UCM
"UCM
Er edad
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)
pe ai
ET
£ SS
U C m
z E
mE
Diagrama de hiperpaginación
Otras consideraciones
Fragmentación
interna
oNO
E >
Z E
Otras consideraciones
E U C m
z E
Otras consideraciones
=
-
Otras consideraciones
Páginas grandes