Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Almacenamiento
CC331
HOD
Enlace de Direcciones
Para su ejecucin un proceso debe cargarse
en memoria
Cola de entrada: conjunto de procesos en
disco en espera de ingresar a memoria
Programa usuario pasa por varias etapas
(algunas optativas) antes de ejecutarse
En dichas etapas las direcciones pueden
representarse de distinta forma:
x direccin simblica
14 bytes desde inicio direccin relocalizable
74014 direccin absoluta
CC331
HOD
Procesamien
to de un
Programa
Usuario
CC331
HOD
Tiempo de carga
Se genera cdigo relocalizable y al cargarlo en
memoria se hace el enlace con el cdigo absoluto
Tiempo de ejecucin
Si durante la ejecucin se permite que el proceso se
mueva, el enlace final se debe postergar hasta la
ejecucin de la instruccin
CC331
HOD
CC331
HOD
CC331
HOD
CC331
HOD
Carga Dinmica
Todas las rutinas se almacenan en el disco
en formato de carga relocalizable
Una rutina slo se carga cuando se llama
Ventajas
Mejora la utilizacin del espacio de memoria, la
rutina que no se usa no se carga
Muy til cuando se requieren grandes cantidades
de cdigo para manejar situaciones que
ocurren con poca frecuencia
CC331
HOD
Enlace Dinmico
El enlace de pospone hasta el tiempo de
ejecucin
Se emplea generalmente con las rutinas de
sistema
Se incluye un fragmento de cdigo (stub) por
cada referencia a una rutina de la biblioteca en
el cdigo binario
El stub indica cmo localizar la rutina de
biblioteca residente en memoria
Al ejecutarlo, se reemplaza a si mismo con la
direccin de la rutina y la ejecuta directamente
Es particularmente til para libreras
CC331
HOD
Superposiciones
La dimensin de un proceso est limitada
por el tamao de la memoria fsica
Para lidiar con esta restriccin se utiliza la
tcnica de superposicin
Mantiene en memoria slo aquellas instrucciones y
datos que se requieren en instante determinado
Cuando se necesitan nuevas instrucciones, se cargan
en el espacio que antes ocupaban las que ya no se
necesitan
Se necesita de un manejador de superposiciones
El programador debe disear cada superposicin
CC331
HOD
10
Superposiciones - Ejemplo
Ensamblador de dos pasos:
Paso 1, genera la tabla de smbolos
Paso 2, genera el cdigo del lenguaje de
mquina
Tamaos de componentes:
Paso 1
70K
Paso 2
80K
Tabla de smbolos 20K
Rutinas comunes 30K
HOD
11
CC331
HOD
12
Intercambios (swapping)
Consiste en sacar temporalmente un
proceso de memoria a disco, por algn
motivo, y luego volverlo a incorporar
Almacenamiento auxiliar: debe ser rpido y
bastante grande para contener las copias de
imagen de memoria de todos los usuarios
La mayor parte del tiempo invertido en el
intercambio es tiempo de transferencia
Tiempo de transferencia es directamente
proporcional a la cantidad de memoria que se
intercambia
CC331
HOD
13
Intercambios (cont)
CC331
HOD
14
Asignacin Contigua
Memoria principal, dos particiones
En una reside el sistema operativo y el vector de
interrupciones, usualmente memoria baja
En la otra corrern los procesos de usuario
CC331
HOD
15
CC331
HOD
16
HOD
17
HOD
18
OS
OS
OS
OS
process5
process5
process5
process5
process9
process9
process8
process2
CC331
process10
process2
process2
HOD
process2
19
2160K
Proceso
Memoria
Tiempo
UCP
P1
600K
10
P2
1000K
P3
300K
20
P4
700K
P5
500K
15
2560K
CC331
HOD
20
0
SO
400K
P1
SO
400K
P1
1000K
1000K
t=0
CC331
P3
SO
SO
400K
400K
P5
2000K
900K
1000K
1000K
P4
P4
2000K
P1
P2
P3
P3
P4
1700K
1700K
2000K
2000K
P3
P3
2300K
2300K
2300K
2300K
2560K
2560K
2560K
2560K
t=20
t=10
HOD
21
Mejor ajuste
Asignar hueco ms pequeo que contenga al
proceso
Ayudara mantener una lista de huecos ordenada
por tamao
Ojo, produce un hueco sobrante ms pequeo
Peor ajuste
Asignar hueco ms grande
Ojo, produce el hueco sobrante ms grande
CC331
HOD
22
HOD
23
Compactacin
Reduce la fragmentacin externa
Slo es posible si la relocalizacin es dinmica:
Se cambian el programa y los datos
Se asigna al registro base la nueva direccin base
Estrategias:
Mover todos los procesos hacia un extremo
Mover la menor cantidad de procesos
Mover la menor cantidad de bytes
Hay que evaluar costos vs sencillez de la estrategia
CC331
HOD
24
Compactacin (cont.)
0
SO
300K
P1
500K
600K
P2
400K
1000K
1200K
P3
300K
1500K
1900K
0
300K
500K
600K
800K
SO
300K
P1
500K
P2
600K
P3
1000K
P4
1200K
P4
SO
P1
300K
P2
500K
P4
600K
P3
Asignacin original
CC331
SO
P1
P2
900K
1200K
900K
900K
1500K
1900K
200K
2100K
2100K
2100K
Movidos 600K
HOD
Movidos 400K
P4
P3
2100K
Movidos 200K
25
Paginacin
Permite que la memoria utilizada por un proceso no
sea contigua, y que se le asigne siempre que
exista disponibilidad!!
Divide la memoria fsica en bloques de tamao fijo,
marcos (frames)
Tamao es potencia de 2 (512-8192 bytes)
Divide la memoria lgica en bloques del mismo
tamao, pginas
Mantiene pista de marcos libres
Para ejecutar un programa de n pginas, se
necesitan encontrar n marcos libre y cargarlo
Se utiliza una tabla de pginas para trasladar las
direcciones lgicas a fsicas
CC331
HOD
26
Paginacin (cont.I)
Direccin generada por UCP est dividida:
Nmero pgina (p): se utiliza como ndice para la
tabla de pginas del proceso, la cual contiene
la direccin base de cada pgina en memoria
(marco)
Desplazamiento (d): combinado con la direccin
base de la pgina, entrega la direccin de
memoria fsica
Para una pgina de tamao 2n, los n bits de
orden inferior corresponden a d y los restantes
de orden superior a p
CC331
HOD
27
Hardware de Paginacin
CC331
HOD
28
Ejemplo de Paginacin
CC331
HOD
29
Ejemplo
CC331
HOD
30
HOD
31
CC331
HOD
32
CC331
HOD
33
HOD
34
CC331
HOD
35
HOD
36
Proteccin de Memoria
Se logra mediante bits de proteccin asociados
a cada marco en la tabla de pginas
Para proteccin de lectura-escritura
1, marco de slo lectura (proteccin escritura)
0, marco de lectura-escritura
CC331
HOD
37
Bits de Proteccin
CC331
HOD
38
CC331
HOD
39
CC331
HOD
40
CC331
desplazamiento
p1
p2
12
12
HOD
41
CC331
HOD
42
CC331
HOD
43
CC331
HOD
44
CC331
HOD
45
CC331
HOD
46
Pginas Compartidas
Se puede compartir cdigo
Una copia de cdigo slo lectura (reentrante),
puede compartirse entre varios procesos
Cdigo compartido debe aparecer en la misma
localizacin en el espacio de direcciones de
cada proceso
Muy til cuando se comparte: editores,
compiladores, etc
Cada proceso mantiene sus propias pginas de
datos y de cdigo privado
Las pginas de datos y cdigo privado pueden
aparecer en cualquier orden
CC331
HOD
47
CC331
HOD
48
Segmentacin
Esquema de administracin de memoria que
soporta la visin del usuario de la memoria
Un programa es una coleccin de segmentos.
Un segmento es una unidad lgica, como:
Programa principal
Procedimiento o rutina
Funcin
Mtodo
Objeto
Bloques comunes
Variables locales, globales, etc
CC331
HOD
49
CC331
HOD
50
1
2
3
Espaciousuario
CC331
Espaciomemoriafsica
HOD
51
Arquitectura Segmentacin
Direccin lgica consiste de:
<nmero segmento, desplazamiento>
Tabla de segmento
Consiste de entradas del tipo: <base,lmite>
base, contiene la direccin fsica donde comienza el
segmento en memoria
lmite, especifica el largo del segmento
STBR (Segment Table Base Register), apunta a la
localizacin de la tabla de segmentos en memoria
STLR (Segment Table Length Register), indica el
nmero de segmentos utilizados por un programa
s, nmero de segmento, es correcto si (s < STLR)
CC331
HOD
52
Hardware Segmentacin
CC331
HOD
53
Ejemplo Segmentacin
CC331
HOD
54
CC331
HOD
55
Segmentos Compartidos
CC331
HOD
56
Segmentacin Paginada
La segmentacin presenta el problema de fragmentacin
externa
Una forma de solucionarlo es paginar los segmentos
Entradas en la tabla de segmento apuntan a la direccin
base de la tabla de pginas de ese segmento
Existe una tabla de pginas por cada segmento definido
Si la tabla de segmento es muy grande se puede
paginar
Para implementar las tablas de pginas de los
segmentos se pueden utilizar las variantes ya vista
Se elimina la fragmentacin externa; pero se introduce
fragmentacin interna
CC331
HOD
57
CC331
HOD
58
CC331
HOD
59
Memoria Virtual
Separa la memoria lgica (usuario) de la
memoria fsica
Basta que una parte del proceso se encuentre en
memoria para su ejecucin
Espacio de direcciones lgicas ms grande que
el espacio de direcciones fsicas
Mayor nivel de multiprogramacin, utilizacin de
la UCP y dems recursos en general
HOD
60
Memoria Virtual
CC331
HOD
61
HOD
62
CC331
HOD
63
CC331
HOD
64
Fallo de Pgina
Marcar una pgina como invlida no tiene
ningn efecto si el proceso no la accede
Paginacin por demanda pura, todo proceso
provoca al menos un fallo de pgina
Si ocurre un fallo de pgina
Primero establecer si es una referencia vlida
Si es as, encontrar un marco libre
Traer pgina desde disco y ponerla en marco
Actualizar tabla de pgina
Reiniciar la instruccin interrumpida
CC331
HOD
65
CC331
HOD
66
CC331
HOD
67
HOD
68
CC331
HOD
69
Reemplazo de Pginas
Prevenir la sobre asignacin de memoria, es
claro que a mayor multiprogramacin, menos
marcos disponibles
Utilizar un bit sucio para reducir el overhead
del intercambio de pgina, as slo las
pginas modificadas se escriben
El reemplazo de pginas completa la separacin
entre memoria lgica y fsica
Finalmente se le ofrece al programador una
memoria lgica amplia sobre una memoria
fsica pequea
CC331
HOD
70
CC331
HOD
71
CC331
HOD
72
CC331
HOD
73
de
de
de
de
1,2,3,4,1,2,5,1,2,3,4,5.
Ojo, son referencias a pgina; pero podramos trabajar
directamente con referencias a memoria
CC331
HOD
74
CC331
HOD
75
Algoritmo FIFO
CC331
HOD
76
4 marcos
9fallos
10fallos
CC331
HOD
77
Anomala de Belady
CC331
HOD
78
Algoritmo ptimo
Reemplazar la pgina que no se usar durante el
mayor periodo de tiempo
4 marcos
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
6fallosdepgina
3
4
CC331
HOD
79
CC331
HOD
80
2
3
CC331
HOD
81
CC331
HOD
82
CC331
HOD
83
CC331
HOD
84
Segunda oportunidad
Se aplica FIFO, pero se examina el bit de referencia:
Si es 0 se reemplaza sino se da una segunda oportunidad,
se pone el bit en 0 y se avanza
Tiene plazo hasta que se de la vuelta completa para que
reciba una referencia. Si todos los bits estn en 1=>FIFO
CC331
HOD
85
CC331
HOD
86
HOD
87
Asignacin de Marcos
Cada proceso necesita un nmero mnimo
de pginas
El nmero mnimo de marcos est definido por la
arquitectura del computador
Ejemplo:
Instruccin de transferencia que ocupa ms de una
palabra, luego puede ocupar parcialmente dos
pginas
Cada operando podra ser una referencia indirecta, es
decir, hasta 2 marcos por operando
Luego en el peor caso esta instruccin requerira que
estn en memoria un mximo de 6 marcos
Y en el mejor caso un mnimo de?
CC331
HOD
88
HOD
89
CC331
HOD
90
Reemplazo local
Proceso selecciona un marco de reemplazo desde
su propio conjunto de marcos asignados
Pginas no tiles podran permanecer en memoria
por ms tiempo
CC331
HOD
91
Hiperpaginacin
Si
HOD
la utilizacin
sistema est
92
Grfica Hiperpaginacin
CC331
HOD
93
Hiperpaginacin (cont.I)
Un proceso se encuentra en hiperpaginacin
si emplea ms tiempo paginando que
haciendo trabajo til
Podra
limitar
los
efectos
de
la
hiperpaginacin con un algoritmo de
reemplazo local:
Un proceso que entre en hiperpaginacin no podr
llevar a otros a este estado
Sin embargo, afectar el tiempo promedio de
servicio de un fall de pgina
CC331
HOD
94
HOD
95
CC331
HOD
96
CC331
HOD
97
CC331
HOD
98
if D > m hiperpaginacin
Poltica, si D > m, suspender algn proceso
Si D < m se puede admitir otro proceso, siempre
que (TAA+D)=D m
CC331
HOD
99
CC331
HOD
100
CC331
HOD
101
CC331
HOD
102
Prepaginacin
La paginacin por demanda pura provoca un
gran nmero de fallos de pgina al comienzo
Se trata de introducir a memoria la localidad inicial
Tambin ocurre cuando se reanuda un proceso
intercambiado a disco
HOD
103
Tamao de Pgina
Tamao de la tabla de pgina
A mayor tamao de pgina, menor entradas en la tabla de
pgina de cada proceso tablas pequeas
Fragmentacin
A menor tamao de pgina, menor fragmentacin interna
por proceso
Overhead de E/S
Tpo e/s = posicionamiento+latencia+transferencia
Tpo transferencia es proporcional al tamao de pgina,
pero:
A 2MB/s, toma 0.2ms transferir 512B, lat=8ms y pos=20ms
Luego, pgina de 512B se lee en 28.2ms y 1024B en 28.4ms
Y dos pginas de 512B en 56.4ms!!
HOD
104
CC331
HOD
105
Alcance de TBL
Alcance TBL, cantidad
accesible desde la TBL
de
memoria
CC331
HOD
106
CC331
Programa 1
Programa 2
107
CC331
HOD
108
CC331
HOD
109
Fijacin de Pginas
Para evitar sacar pginas recin cargadas, por
ejemplo, cuando ocurre un fallo de pgina:
Proceso espera en dispositivo de paginacin
Concluye la carga de la pgina y el proceso se
reintegra a la cola de listo
Si el proceso es de baja prioridad, mientras
espera en la cola listo, la pgina que recin
carg puede ser elegida para satisfacer otro
fallo de pgina:
Pgina no modificada (bit limpio)
Pgina no referenciada
HOD
110
Sistema de Archivos
Espacio contiguo de direcciones lgicas
Conjunto de informacin relacionada que
ha sido definido por su creador
Tipos de archivos
Programas
Datos
Numricos
Caracteres
Binarios
CC331
HOD
111
Estructura de un Archivo
Ninguna, slo secuencia de palabras o bytes
Registro simple
Lneas
Largo variable
Largo fijo
Estructuras complejas
Archivo fuente, serie de funciones y subrutinas organizadas
mediante declaraciones y enunciados ejecutables
Archivo objeto, secuencia de bytes organizados en bloques
de registros para el cargador
HOD
112
CC331
HOD
113
Atributos de un Archivo
Nombre, nica informacin que se mantiene en
forma legible para humanos
Tipo, informacin necesaria para sistemas que
apoyan diferentes tipos
Ubicacin, apuntador a la ubicacin del archivo
sobre un dispositivo
Tamao, tamao actual (en
bytes, palabras o
bloques) y algunas veces el mximo permitido
Proteccin, informacin de control de acceso:
lectura, escritura y ejecucin
Hora, fecha e identificacin proceso, datos para
la proteccin, seguridad y supervisin del uso
CC331
HOD
114
HOD
115
Tabla de sistema
Almacena informacin de todos los archivos abiertos,
independiente del proceso que los usan
Localizacin del archivo sobre el disco, fecha acceso,
tamao archivo
Contador de aberturas, cuando es cero se elimina
entrada
CC331
HOD
116
Mtodos de Acceso
Acceso secuencial
Read next
Write next
Reset
No hay lectura despus de la ltima escritura (eof)
CC331
HOD
117
CC331
HOD
118
CC331
HOD
119
Estructura de Directorio
Es una coleccin de nodos que contienen
informacin de todos los archivos
Tabla de smbolos donde el SO encuentra un
archivo utilizando su nombre simblico
Directorio
Archivos
F1
CC331
F2
F3
HOD
F4
Fn
120
CC331
HOD
121
CC331
HOD
122
Creacin de archivo
Implica agregar una entrada al directorio
Borrar un archivo
Eliminar una entrada del directorio, liberar espacio
Renombrar un archivo
Cambiar el nombre para mejor representatividad
Copia de seguridad
Por razones de confiabilidad, se debe guardar el contenido
y estructura del sistema de archivos a intervalos
regulares
CC331
HOD
123
Agrupamiento
Agrupamiento
lgico
de
archivos
propiedades comunes, ejemplo:
por
HOD
124
CC331
HOD
125
CC331
HOD
126
CC331
HOD
127
sus
propios
CC331
HOD
128
CC331
HOD
129
CC331
HOD
130
CC331
HOD
131
CC331
HOD
132
CC331
HOD
133
HOD
134
Compartir Archivos
Compartir archivos y directorios
sistemas multiusuarios es deseable
sobre
CC331
HOD
135
Semntica de Consistencia
Especifica la semntica de varios usuarios
que acceden simultneamente a un archivo
Semntica Unix
Escritura sobre un archivo son visibles de inmediato para
otros usuarios
Se comparte el apuntador a la posicin actual, cualquier
movimiento afecta a todos los usuarios
Semntica de sesiones
Escritura sobre archivo no son visibles de inmediato para
otros usuarios
Una vez que se cierra el archivo, cualquier nueva sesin
reflejar los cambios
HOD
136
Proteccin
El propietario o creador del archivo debe
ser capaz de controlar:
Qu se puede realizar sobre el archivo
Y por quin
Tipos de accesos
Lectura, lee desde el archivo
Escritura, escribe o sobre-escribe el archivo
Ejecucin, ejecuta el archivo
Anexin, escribe nueva informacin al final
Eliminacin, borra el archivo
Listado, lista el nombre y atributos del archivo
CC331
HOD
137
6
1
111
110
001
CC331
HOD
138