Escolar Documentos
Profissional Documentos
Cultura Documentos
1.4. INTERRUPCIONES
Pueden interrumpir la secuencia normal del procesador.
Constituyen una manera de mejorar la utilizacin del procesador
Clases de interrupciones:
o De programa: generada por alguna condicin que se produce como resultado de la
ejecucin de una instruccin.
o Por temporizador
o De E/S: generada por un controlador de E/S para sealar la conclusin normal de
una operacin o para indicar diversas condiciones de error
o Por Fallo del HW
PROCESAMIENTO DE INTERRUPCIONES
123456789-
Seal de interrupcin
El procesador termina la ejecucin de la instruccin actual
El procesador comprueba si hay peticiones de interrupcin pendientes
Salva el estado del programa actual
El procesador carga el contador del programa con la posicin del punto de entrada de la
rutina de manejo de la interrupcin.
El manejador de interrupciones salva todo el contenido de los registros de pila
Comienza el manejador a ejecutar
Se recuperan los valores de los registros salvados
Se recupera el valor del PSW y del controlador del programa.
MLTIPLES INTERRUPCIONES
2
MULTIPROGRAMACIN
Permitir que mltiples programas de usuario estn activos al mismo tiempo para mejorar la
utilizacin del procesador.
Cuando el procesador trata con varios programas, la secuencia en la que se ejecutan los
programas depender de su prioridad relativa.
FUNDAMENTOS DE LA CACH
DISEO DE LA CACH
Elementos fundamentales:
o Tamao: una cach de un tamao razonablemente pequeo puede tener un impacto
significativo en el rendimiento
o Tamao del bloque: la tasa de aciertos aumentar debido al principio de
proximidad.
o
o
o
El usuario enva un trabajo, a travs de una tarjeta o cinta al operador del computador, que
crea un sistema por lotes con todos los trabajaos enviados y coloca la secuencia de trabajos
en el dispositivo de entrada para que lo utilice el monitor. Cuando el programa finaliza,
devuelve el control al monitor, y el monitor carga el siguiente programa.
Anlisis:
o Punto de vista del monitor: el monitor controla la secuencia de eventos. Una parte
siempre esta en memoria y se llama monitor residente. El monitor lee un trabajo, se
coloca en el rea de programa de usuario y se le pasa el control. Cuando finaliza se
devuelve el control al monitor.
o Punto de vista del procesador: En un cierto punto el procesador ejecuta
instrucciones de la zona de memoria principal que contiene el monitor. El
procesador entonces ejecutar loas instrucciones del programa usuario hasta que
encuentre una condicin de finalizacin o de error.
El monitor realiza una funcin de planificacin: en una cola se sita un lote de trabajos, y
los trabajos se ejecutan lo ms rpido posible.
En cada uno de los trabajos se incluye un conjunto de instrucciones en algn formato
primitivo de lenguaje de control de trabajos (JCL).
El monitor es simplemente un programa, este confa en la habilidad del procesador para
cargar instrucciones.
Son deseables caractersticas de HW:
o Proteccin de memoria
o Temporizador
o Instrucciones privilegiadas
o Interrupciones
Se utiliza un modo usuario y un modo ncleo.
Objetivo principal
Multiprogramacin en Lotes
Maximizar el uso del procesador
Fuentes de directivas al SO
Tiempo Compartido
Minimizar el tiempo de
respuesta
Mandatos introducidos al
terminal
PROCESOS
Contribuyeron a la creacin de procesos: operaciones en lotes multiprogramados, tiempo
compartido, sistemas de transacciones de tiempo real.
Multiprogramacin: el mecanismo clave es: en respuesta a las seales que indican la
finalizacin de las transacciones de E/S, el procesador es planificado para los diferentes
programas que residen en memoria principal
Tiempo compartido: objetivo clave del diseo es responder a las necesidades del usuario y
ser capaz de soportar muchos usuarios simultneamente.
Tiempo Real: los usuarios pueden estar comprometidos en el desarrollo de programas, la
ejecucin de trabajos t el uso de varias aplicaciones.
Las principales herramientas disponibles para programadores de sistemas para el desarrollo
de la inicial multiprogramacin y los sistemas interactivos multiusuarios fue la interrupcin.
La programacin acuda al mtodo ad hoc basado en comprensin del entorno que el SO
tena que controlar. En este enfoque existen cuatro causas de errores:
o Inapropiada sincronizacin
o Violacin de la exclusin mutua
o Operaciones no deterministas de un programa: el orden en que diversos programas
se planifican pueden afectar a la salida de cualquier programa particular.
o Interbloqueos
Lo que se necesita para enfrentar a estos problemas es una forma sistemtica de monitorizar
y controlar la ejecucin de varios programas en el procesador. El concepto de proceso
proporciona los fundamentos. Se puede considerar que un proceso est formado por tres
componentes:
o Un programa ejecutable
o Los datos asociados que necesita el programa
o Un contexto de ejecucin del programa: conjunto de datos internos por el cual el
SO es capaz de supervisar y controlar el proceso.
El proceso puede verse como una estructura de datos.
Un proceso puede estar en ejecucin o esperando ejecutarse.
El estado completo del proceso en un instante dado se contiene en su contexto.
GESTIN DE MEMORIA
El SO tiene 5 responsabilidades principales de gestin de almacenamiento:
o Aislamiento de procesos
o Aislamiento y gestin automtica: los programas deben tener una asignacin
dinmica de memoria por demanda.
o Soporte de programacin modular dinmicamente
Nivel
13
Nombre
Intrprete de mandatos
Objetos
Entorno de programacin de
usuario
Procesos de usuario
Directorios
12
11
Procesos de usuario
Directorios
10
Dispositivos
Sistema de ficheros
Comunicaciones
Tuberas
7
6
5
Memoria virtual
Almacenamiento
secundario local
Procesos primitivos
Interrupciones
Procedimientos
Conjunto de
instrucciones
Circuitos electrnicos
Segmentos, pginas
Bloques de datos, canales
dispositivos
Procesos primitivos,
semforos, lista de procesos
listos
Programas de gestin de
interrupciones
Procedimientos, pila de
llamadas, registros de
activacin
Pila de evaluacin, intrprete
de microprogramas, datos
escalares y vectoriales
Registros, puertas, buses, etc.
Ejemplos de operaciones
Sentencias de lenguaje del
intrprete de mandatos
Salir, matar, suspender, continuar
Crear, destruir, insertar, entrada,
eliminar entrada, buscar, listar
Abrir, cerrar, leer, escribir
Crear, destruir, abrir, cerrar, leer,
escribir
Crear, destruir, abrir, cerrar, leer,
escribir
Leer, escribir, cargar
Leer, escribir, asignar, liberar
Suspender, continuar, esperar,
sealizar
Invocar, enmascarar,
desenmascarar, reintentar
Marcar la pila, llamar, retornar.
Cargar, almacenar, sumar, restar,
saltar
Poner a 0, transferir, activar,
complementar
10
3.1. QU ES UN PROCESO?
CONCEPTOS PREVIOS
1. Una plataforma de computacin consiste en una coleccin de recursos HW, como
procesador, memoria, mdulos de E/S, etc.
2. Las aplicaciones para computadores se desarrollan para realizar determinadas tareas.
3. No es eficiente que las aplicaciones est escritas directamente para una plataforma de HW
especfica.
4. Un SO de desarrolla para proporcionar una interfaz apropiada para las aplicaciones, rica en
funcionalidades, segura y consistente.
5. Se puede considerar que el SO proporciona una representacin uniforma y abstracta de los
recursos, que las aplicaciones pueden solicitar y acceder.
Gestionar la ejecucin de aplicaciones de forma que:
o Los recursos estn disponibles para mltiples aplicaciones
o El procesador se conmute entre mltiples aplicaciones de formas que todas lleguen
a procesarse
o El procesador y los dispositivos de E/S se puedan usar de forma eficiente.
11
TERMINACIN DE PROCESOS
Puede ser normal o por fallos.
Razones para la terminacin de un proceso:
o Finalizacin normal
o Lmite de tiempo excedido
o Memoria no disponible
o Violacin de frontera
12
o
o
o
o
o
o
o
o
o
o
Error de proteccin
Error aritmtico
Lmite de tiempo
Fallo de E/S
Instruccin no vlida
Instruccin privilegiada
Uso inapropiado de datos
Intervencin del operador por el SO
Terminacin del proceso padre
Solicitud del proceso padre.
13
PROCESOS SUSPENDIDOS
LA NECESIDAD DE INTERCAMBIO O SWAPING
Una solucin para evitar el tiempo ocioso del procesador es el swaping (memoria de
intercambio), que implica mover parte o todo el proceso de memoria a disco. Cuando
ninguno de los procesos en memoria se encuentra en estado Listo, el SO intercambia uno de
los procesos bloqueados a disco en la cola de suspendidos.
El uso de swaping aade el estado Suspendido. Esto es cuando todos los procesos en
memoria se encuentran Bloqueados el SO puede suspender un proceso ponindolo en
Suspendido y transfirindolo a disco pudiendo entrar as otro proceso.
El SO tiene dos opciones para cual proceso traer a memoria: uno nuevo o una suspendido
anteriormente.
Para soportar esto se necesitan cuatro estados:
o Listo: el proceso esta en memoria principal
o Bloqueado: en memoria pero esperando
o Bloqueado/Suspendido
o Listo/Suspendido
Posibles transacciones:
o Bloqueado Bloqueado/Suspendido
o Bloqueado/Suspendido Listo/Suspendido
o Listo/Suspendido Listo
o Listo Listo/Suspendido: pude ser porque entro uno de mayor prioridad, si se cree
que un proceso bloqueado de alta prioridad estar pronto listo.
o Nuevo Listo/Suspendido y Nuevo a Listo: la creacin de procesos diferida,
hacindolo cuanto ms tarde, hace posible reducir la sobrecarga del SO y le permite
realizar las tareas de creacin de procesos cando el sistema esta lleno de procesos
bloqueados.
o Bloqueado/Suspendido Bloqueado
o Ejecutando Listo/Suspendido: cuando el tiempo de uso del procesador finaliza, o
por un proceso de mayor prioridad.
o De cualquier estado Saliente
14
Se piensa en el SO como en la entidad que gestiona el uso de recursos del sistema por parte
de los procesos.
ATRIBUTOS DE PROCESO
Tres categoras generales:
o Identificacin del proceso: Identificadores numricos
Identificadores del proceso
Del proceso padre
Del usuario.
o Informacin del estado del procesador:
Registros visibles para el usuario
Registros de estado y control
Puntero de pila
15
CREACIN DE PROCESOS
Cuando el SO decide crear un proceso procede como:
1. Asignar un identificador de proceso nico al proceso
2. Reserva espacio para proceso: debe conocer cuanto necesita
3. Inicializacin del bloque de control de proceso
4. Establecer los enlaces apropiados
5. Creacin o expansin de otras estructuras de datos
CAMBIO DE PROCESO
CUNDO SE REALIZA UN CAMBIO DE PROCESO
Un cambio de proceso puede ocurrir en cualquier instante en el que el sistema operativo
obtiene el control sobre el proceso actualmente en ejecucin
Mecanismo
Interrupcin
Trap
Llamada al sistema
Causa
Externa a la ejecucin del
proceso en ejecucin
Asociada a la ejecucin de la
instruccin actual
Solicitud explcita
16
Uso
Reaccin ante eventos externos
asncrono.
Manejo de una condicin de
error o de excepcin
Llamada a una funcin del SO
CAMBIO DE MODO
En muchos SO la existencia de interrupciones no implica cambio de proceso.
MULTIHILO
Capacidad de un SO de dar soporte a mltiples hilos de ejecucin en un solo proceso.
En un entorno multihilo, un proceso se define como la unidad de asignacin de recursos y
una unidad de proteccin.
Dentro de un proceso puede haber uno o ms hilos, cada uno con:
o Un estado de ejecucin
o Un contexto
o Una pila de ejecucin
o Espacio de almacenamiento para variables locales.
o Accesos a la memoria y recursos de su proceso
Sigue habiendo un nico PCB pero muchos TCB con los valores de los registros, la
prioridad y otra informacin relativa al estado del hilo.
Todos los hilos de un proceso comparten el estado y los recursos de ese proceso, residen en
el mismo espacio de direcciones y tienen acceso a los mismos datos
Cuatro ejemplos de uso de hilos:
o Trabajo en primer plano y en segundo plano
o Procesamiento asncrono
o Velocidad de ejecucin (en paralelo)
o Estructura modular de programas
SINCRONIZACIN DE HILOS
Todos los hilos de un proceso comparte el mismo espacio de direcciones y otros recursos
por lo que deben sincronizar su uso.
18
En un entorno ULT puro, la aplicacin gestiona todo el trabajo de los hilos y el ncleo no es
consciente de la de la existencia de los mismos.
Por los tanto, una aplicacin comienza con un solo hilo y ejecutando en ese hilo. La
aplicacin puede crear un nuevo hilo a ejecutar dentro del mismo proceso. Toda esta
actividad se realiza en espacio usuario y dentro de un solo proceso.
El uso de ULT en lugar de KLT presenta las ventajas:
o El cambio de hilo no requiere privilegios de modo ncleo porque est todo dentro
del mismo proceso
o La planificacin puede especificarse por parte de la aplicacin.
o Los ULT puede ejecutar en cualquier SO
Desventajas:
o Muchas llamadas al sistema son bloqueantes
o En une estrategia ULT, un aplicacin multihilo no puede sacar ventaja del
multiproceso.
ENFOQUES COMBINADOS
La creacin de hilos se realiza por completo en el espacio de usuario. Los mltiples ULT de
una aplicacin se asocian en un nmero de KLT
OTRAS CONFIGURACIONES
Hilos:Procesos
1:1
M:1
1:M
M:N
Descripcin
Cada hilo de ejecucin es un nico proceso con su propio espacio de
direcciones y recursos
Un proceso define un espacio de direcciones y pertenencia dinmica de
recurso. Se pueden crear y ejecutar mltiples hilos en ese proceso
Un hilo puede migrar de un entorno de proceso a otro. Esto permite a los hilos
moverse entre distintos sistemas. SO distribuidos
Combina M:1 u 1:M
RELACIN MUCHOS-A-MUCHOS
Un hilo es una ruta de ejecucin, con una pila de ejecucin, estado del procesador e
informacin de planificacin.
El programa completo puede implementarse como un solo proceso
El programa principal y el subprograma de E/S podran implementarse como dos procesos
independientes.
Tratar al programa principal y al subprograma y al subprograma de E/S como una sola
actividad que se puede implementar en un solo hilo.
19
o
o
o
o
nica instruccin, nico flujo de datos (SISD): un solo procesador ejecuta en una
nica instruccin que opera sobre datos almacenados enana sola memoria.
nica instruccin, mltiples flujos de datos (SIMD): una nica instruccin de
mquina controla la ejecucin simultnea de un nmero de elementos de proceso.
Mltiples instruccin, nico flujo de datos (MISD): se trasmite una secuencia de
datos a un conjunto de procesadores, cada uno de los cuales ejecuta una secuencia
de instrucciones diferentes
Mltiples instruccin, mltiples flujos de datos (MIMD): un conjunto de
procesadores ejecuta simultneamente diferentes secuencias de instrucciones en
diferentes conjuntos de datos. Se puede dividir por el tipo de comunicacin
Si comparten una memoria: multiprocesador de mem compartida
Maestro/esclavo (si se cae el maestro se caen todos y cuello de
botella en el maestro)
SMP
A travs de redes: clusters
MICRONCLEOS
Es la pequea parte central de un sistema operativo que proporciona las bases para
extensiones modulares
Este enfoque proporciona un alto grado de flexibilidad y modularidad
ARQUITECTURA MICRONCLEO
El enfoque de SO por capas plantea muchas capas con funciones organizadas
jerrquicamente y solo hay interaccin entre las capas adyacentes. Pero es difcil mantener
y dar seguridad porque hay mucha interaccin entre capas.
El microncleo plantea que solo las funciones esenciales del SO estn en el ncleo. Los
otros se construyen sobre el microncleo y son ejecutadas en modo usuario. Se comportan
como servidores de procesos
20
21
Los problemas surgen dado que no pueden predecirse la velocidad relativa de ejecucin de
los procesos.
Surgen problemas con las variables globales y asignacin de recursos.
En un sistema monoprocesador, el motivo por el que se tiene un problema es que una
interrupcin puede parar la ejecucin de instrucciones en cualquier punto de un proceso. En
los multiprocesadores adems surge por la ejecucin simultnea
Relacin
Procesos que no se
perciben entre si
Competencia
Procesos que se
perciben indirectamente
entre si
Cooperacin por
comparticin
Procesos que se
perciben directamente
entre si
Cooperacin por
comunicacin
Potenciales
problemas de control
Exclusin mutua.
Interbloqueo.
Inanicin.
Exclusin mutua.
Interbloqueo.
Inanicin.
Coherencia de datos.
Interbloqueo.
Inanicin.
22
Surge el problema de coherencia de los datos que puede ser evitado declarando en cada
proceso la secuencia completa como una seccin crtica.
23
El trmino de espera activa o espera cclica se refiere a una tcnica en la cual un proceso no
puede hacer nada ms hasta obtener permiso para entrar a su seccin crtica, pero contina
ejecutando una instruccin o un conjunto de instruccin que comprueban la variable
apropiada para conseguir entrar.
INSTRUCCIN EXCHANGE
Void exchange (int registro, int memoria)
{
Int temp;
Temp = memoria;
Memoria = registro;
Registro = temp;
}
Cerrojos. Si un cerrojo = 1 un proceso est en la seccin crtica y es cuya llave es igual a 0
5.3 SEMFOROS
Principio fundamental: dos o ms proceso puede cooperar por medio de simples seales,
tales que un proceso puede ser obligado a parar en un lugar especfico hasta que haya
recibido una seal especfica.
Trasmitir una seal va semforo: semSignal(s). Recibir semWait(s) atmicas
El semforo puede ser visto como una variable que contiene un valor entero sobre el cual
slo estn definidas tres operaciones:
o Puede ser inicializado a un valor no negativo
o semWait(s) decrementa el valor del semforo. Si pasa a ser negativo el proceso se
bloquea
o semSignal(s) incrementa el valor del semforo. Si el valor es menor o igual que
cero, entonces se desbloquea uno de los procesos bloqueados en la operacin
semWait(s)
Un semforo binario realiza las misma funciones pero solo puede contener el valor 0 o 1
Siempre se utiliza una cola para mantener los procesos esperando por el semforo.
Si el semforo incluye una poltica FIFO se dice que es fuerte, sino dbil.
Los fuertes garantizan que no va a haber inanicin, los dbiles no.
EXCLUSIN MUTUA
La solucin ms directa es el semforo. Siempre se inicializa en 1 para que el primer
proceso que ejecute semWait sea capaz de entrar inmediatamente
24
EL PROBLEMA PRODUCTOR/CONSUMIDOR
Hay uno o ms procesos generando algn tipo de dato y ponindolos en un buffer. Hay un
nico consumidor que extrae. El sistema est obligado a impedir la superposicin de las
operaciones sobre los datos.
Bloquearse cuando:
o Productor: al insertar con el buffer lleno
o Consumidor: al extraer con el buffer vaco
Desbloquearse cuando:
o Consumidor: dato insertado
o Productor: dato extrado
s=1; n=0; e=/*tamao de buffer*/
Productor:
While(true){
Producir();
P(e);
P(s);
Aadir();
V(s);
V(n);}
Consumidor:
While(true){
P(n);
P(s);
Extraer();
V(s);
V(e);
Consumir();}
5.4. MONITORES
Un monitor es una construccin del lenguaje de programacin que proporciona una
funcionalidad equivalente a la de lo semforos pero es ms fcil de controlar
25
Dos desventajas:
o Si el proceso que realiza el signal no ha terminado con el monitor, entonces se
necesitarn dos cambios de procesos adicionales: uno para bloquearse este proceso
y otro para retomarlo cuando el monitor quede disponible
o La planificacin de procesos asociada con una seal debe ser perfectamente fiable.
DIRECCIONAMIENTO
Direccionamiento directo: send incluye el identificador del proceso destinatario. El
parmetro origen de la primitiva receive tomo un valor devuelto por la operacin de
recepcin cuando se completa.
Direccionamiento indirecto: son enviados a una estructura de datos compartida que consiste
en colas que pueden contener mensajes temporales. Permite una mayor flexibilidad.
Tambin permite establecer distintos tipos de conexiones:
o Uno-a-uno: privada
o Muchos-a-uno: cliente/servidor. El buzn es el puerto
o Uno-a-muchos: un mensaje debe ser difundido
o Muchos-a-muchos: permite a mltiples procesos servidores proporcionar servicio
concurrente a mltiples clientes.
FORMATO DE MENSAJE
El mensaje est dividido en dos partes: una cabecera, que contienen informacin acerca del
mensaje, y un cuerpo, que contiene el contenido real del mensaje.
La cabecera puede contener una identificacin del tipo origen y del destinatario previsto del
mensaje, un campo de longitud y un campo de tipo.
EXCLUSIN MUTUA
Se asume receive bloqueante y send no bloqueante.
Si ms de un proceso realiza la recepcin concurrentemente entonces:
o Si hay un mensaje, se entrega a solo uno y los dems se bloquean.
o Si no hay mensajes, todos se bloquean.
26
RECURSOS REUTILIZABLES
Un recurso reutilizable es aqul que slo puede utilizar de forma segura un proceso en cada
momento y que no se destruye despus de su uso.
El interbloqueo se produce si cada proceso mantiene un recurso y solicita otro.
Una estrategia para tratarlo es imponer restricciones en el diseo del sistema con respecto al
orden en que se pueden solicitar los recursos.
La mejor manera de tratar con el problema de la reserva de memoria es el uso de memoria
principal.
RECURSOS CONSUMIBLES
Es aquel que puede crearse y destruirse (interrupciones, seales, mensajes).
Estrategia prevencin, prediccin y deteccin.
Estrategia
Prevencin
Poltica de
Reserva de
recursos
Conservadora;
infrautilizacin
recursos
Esquemas
alternativos
Principales ventajas
Principales desventajas
Solicitud
simultnea de
todos los
recursos
Expropiacin
- Conveniente cuando se
aplica a recursos cuyo
estado se puede guardar y
restaurar fcilmente
- Es posible asegurarlo
mediante comprobaciones
en tiempo de compilacin
- No necesita clculos en
tiempo de ejecucin ya
que el problema se
resuelve en el diseo de
sistemas
- No es necesaria la
expropiacin
- Ineficiente
- Retrasa la inanicin del
proceso
- Los procesos deben
reconocer sus futuros
requisitos de recursos.
- Expropia con ms
frecuencia de lo
necesario
Ordenamiento
de recursos
Prediccin
A medio
camino entre
la deteccin y
la prevencin
Asegura que
existe al
menos un
camino seguro
27
- Impide solicitudes
graduales de recursos
Deteccin
Muy liberal:
los recursos se
conceden en
caso que sea
posible
Se invoca
peridicament
e para
comprobar si
hay
interbloqueos
- Nunca retrasa la
inanicin del proceso
- Facilita la gestin en
lnea
EXCLUSIN MUTUA
No puede eliminarse
RETENCIN Y ESPERA
Puede eliminarse estableciendo que un proceso debe solicitar al mismo tiempo todos sus
recursos requeridos, bloquendolos hasta que se le puedan conceder simultneamente todas
las peticiones.
Es insuficiente porque un proceso puede quedarse esperando mucho tiempo hasta que todas
sus solicitudes de recursos puedan satisfacerse.
Los recursos asignados a un proceso pueden permanecer inutilizados durante un periodo de
tiempo considerable.
SIN EXPROPIACIN
28
Si un proceso que mantiene varios recursos se le deniega una peticin posterior, ese proceso
deber liberar sus recursos originales y luego volver a solicitarlos a todos.
Si un proceso solicita un recurso que otro proceso mantiene, el SO puede expropiar al
segundo proceso y obligarle a liberar sus recursos.
Es slo aplicable para recursos cuyo estado se puede salvar y restaurar.
ESPERA CIRCULAR
Definir un orden lineal entre los distintos tipos de recursos.
La prevencin de la espera circular puede ser ineficiente, ralentizando los procesos y
denegando innecesariamente el acceso a un recurso.
29
RECUPERACIN
Cuando se detecto el interbloqueo se necesita una estrategia para recuperarlo
1. abortar todos los procesos involucrados en el interbloqueo
2. retroceder cada paso en interbloqueo a algn punto de control y rearrancar, pero puede
repetirse el interbloqueo.
3. abortar sucesivamente los procesos en el interbloqueo hasta que deje de existir
4. expropiar sucesivamente los recursos hasta que el interbloqueo deje de existir.
Para los ltimos dos se pueden elegir los procesos segn:
o La menor cantidad de tiempo de procesador consumida hasta ahora
o La menor cantidad de salida producida hasta ahora
o El mayor tiempo restante estimado
o El menor nmero total de recursos asignados hasta ahora
o La menor prioridad
30
Descripcin
La decisin de aadir un proceso al conjunto de
procesos a ser ejecutados
La decisin de aadir al nmero de procesos que
estn parcialmente o totalmente en memoria
principal
La decisin por la que un proceso disponible ser
ejecutado por el procesador
La decisin por la que un proceso que est
pendiente de una peticin de E/S ser atendido por
el dispositivo
CRITERIOS DE PLANIFICACIN:
Orientados al usuario, relacionados con las prestaciones:
o Tiempo de estancia (turnaround time): desde que empieza hasta que finaliza
o Tiempo de respuesta (response time): el tiempo que transcurre desde que se lanza
una peticin hasta que se comienza a recibir la respuesta
31
EL USO DE PRIORIDADES
En lugar de una sola cola de procesos lista para ejecutar, se proporcionan un conjunto de
colas en orden descendente de prioridad.
Si hay uno o ms procesos en la cola, se selecciona un proceso utilizando alguna poltica de
planificacin.
Los procesos con prioridad ms baja pueden sufrir inanicin. Para que esto no pase se
pueden cambiar las prioridades por antigedad o histrico de ejecucin
Rendimiento
Expulsin
por
rodajas de
tiempo
No
expulsiva
Mucho si las
rodajas son
pequeas
SRT
Expulsiva
la llegada
Alto
HRRN
No
expulsiva
Alto
FCFS
RR
SPN
No
especificado
Alto
Tiempo de
respuesta
Puede ser alto
especialmente
si hay muchas
diferencias
entre los tiempo
s de ejecucin
de los procesos
Proporciona
buen tiempo de
respuesta para
procesos cortos
Proporciona
bien tiempo de
respuesta para
procesos cortos
Proporciona
bien tiempo de
respuesta
Proporciona
bien tiempo de
32
Rendimiento
Mnima
Efecto sobre
los procesos
Penaliza
procesos
cortos.
Penaliza
procesos con
mucha E/S
Inanicin
No
Mnima
Tratamiento
injusto
No
Puede ser
alta
Penaliza
proceso largos
Posible
Puede ser
alta
Penaliza
proceso largos
Posible
Puede ser
alta
Buen
equilibrio
No
Feedback
Expulsin
por
rodajas de
tiempo
No
especificado
respuesta
No especificado
Puede ser
alta
Puede
favorecer
proceso con
muchas E/S
Posible
33
Favorece a los procesos ms cortos, el envejecimiento sin servicio incrementa la tasa por lo
que un proceso ms largo podra competir con los trabajos ms cortos
RETROALIMENTACIN (FEEDBACK)
GRANULARIDAD
Granularidad de sincronizacin o frecuencia de sincronizacin entre los procesos del
sistema
Paralelismo independiente
o No hay sincronizacin explcita entre procesos
Paralelismo de grano grueso y muy grueso
o Hay sincronizacin entre procesos, pero a un nivel muy burdo. Este tipo de
situacin se trata sencillamente como un conjunto de proceso concurrentes
ejecutando en un monoprocesador multiprogramado
Paralelismo de grano medio
34
ASPECTOS DE DISEO
La planificacin involucra tres aspectos:
o Asignacin de proceso a procesadores: en un multiprocesador uniforme la
asignacin consiste en tratar a cada proceso como un recurso colectivo y asignar
procesos a procesadores por demanda.
Si un proceso se vincula permanentemente a un procesador desde su activacin
hasta que concluye, entonces se mantiene una cola a corto plazo dedicada por cada
procesador, generando menor sobrecarga en la planificacin pero la desventaja es
que un procesador puede estar ocioso mientras que otro muy ocupado.
Para evitar esto se puede usar una cola comn o balance dinmico de carga.
En un maestro esclavo, un procesador planifica y controla los recursos, este puede
ser un cuello de botella, y si falla el maestro se cae el sistema.
En una arquitectura camarada cada procesador se auto-planifica desde la coleccin
de procesos disponibles
o El uso de multiprogramacin en procesos individuales: cada proceso debe ser capaz
de cambiar entre varios procesos para conseguir una alta utilizacin y mejor
rendimiento.
o Activacin de procesos
PLANIFICACIN DE PROCESOS
En los sistemas multiprocesador ms tradicionales, los procesos no se vinculan a los
procesadores. El sistema puede verse como una arquitectura de colas multiservidores.
La disciplina bsica FCFS con o sin esquema de prioridades esttico puede ser suficiente
para un sistema multiprocesador.
PLANIFICACIN DE HILOS
En un sistema multiprocesador los hilos pueden experimentar paralelismo real.
Si la integracin entre hilos es pequea se mejora el rendimiento, en cambio si es alta
puede influir mucho en las prestaciones.
Propuestas para la planificacin multiprocesador de hilos:
o Comparticin de carga: los procesos no se asignan a un procesador particular. Se
mantiene una cola global de hilos listos y cada procesador cuando est ocioso
selecciona un hilo de la cola.
o Planificacin en pandilla: un conjunto de hilos relacionados se planifica para
ejecutar sobre un conjunto de procesadores al mismo tiempo, en una relacin unoa-uno
o Asignacin de procesador dedicado: cada proceso ocupa un nmero de
procesadores igual al nmero de hilos en el programa durante toda la ejecucin del
programa
o Planificacin dinmica: el nmero de hilos de un proceso puede cambiar durante el
curso de su ejecucin
COMPARTICIN DE CARGA
Ventajas:
35
PLANIFICACIN EN PANDILLA
Ventajas:
o Si se ejecutan en paralelo procesos estrechamente relacionados, puede reducirse el
bloqueo por sincronizacin, pueden necesitarse menos cambios de proceso y las
prestaciones aumentarn
o La sobrecarga de planificacin puede reducirse
Es para aplicaciones paralelas de grado medio o fino cuyo rendimiento se ve degradado en
forma importante cuando cualquier parte de la aplicacin no est ejecutando mientras otras
partes estn listas para ejecutar.
Crea un requisito para la ubicacin de procesador. Se puede hacer asignacin de tiempo
uniforme o planificacin ponderada por el nmero de hilos.
PLANIFICACIN DINMICA
36
37
o
o
INVERSIN DE PRIORIDAD
Sucede cuando las circunstancias dentro de un sistema fuerza a una tarea de mayor
prioridad a esperar por otra tarea de mejor prioridad. Pero ejemplo cuando una tarea de
menor prioridad bloquea un recurso
Inversin de prioridad ilimitada: la duracin de la inversin de prioridad depende del
tiempo necesario para conseguir el recurso compartido y de las acciones impredecibles de
otras tareas no relacionadas
Para evitar esto se utiliza:
o Protocolo de herencia de prioridad: una tarea de menor prioridad heredar la
prioridad de cualquier tarea de mayor prioridad pendiente de un recurso que
compartan
o Techo de prioridad: se asocia una prioridad por cada recurso. La prioridad asociada
con un recurso es un nivel ms alta que la prioridad de su usuario ms prioritario.
El planificador asigna esta prioridad a cualquier tarea que acceda al recurso y
cuando termina su prioridad vuelve a la normal.
38
SEGUNDA PARTE
CAPTULO 7: GESTIN DE MEMORIA
En un sistema monoprogramado, la memoria se divide en dos partes: una parte del SO
(monitor residente, ncleo) y una parte para el programa actualmente en ejecucin
En un sistema multiprogramado, la parte de usuario de la memoria se debe subdividir para
acomodar mltiples procesos. Esto se demoniza gestin de memoria
REUBICACIN
Poder intercambiar procesos en la memoria principal para maximizar la utilizacin del
procesador, para esto podra ser necesario reubicar el proceso en un rea de memoria
diferente.
El procesador debe tratar con referencias de memoria dentro del propio programa
PROTECCIN
Cada proceso debe protegerse contra interferencias no deseadas por parte de otros procesos.
Todas las referencias de memoria generadas por el proceso deben comprobarse en tiempo
de ejecucin, para poder asegurar que se refieren solo al espacio de memoria asignado a
dicho proceso.
El procesador debe ser capaz de abortar tales instrucciones en el punto de ejecucin
COMPARTICIN
Permitir a varios procesos acceder a la misma porcin de memoria principal.
Debe permitir el acceso controlado a reas de memoria compartidas sin comprometer la
proteccin esencial.
ORGANIZACIN LGICA
La memoria principal de un computador se organiza como un espacio de almacenamiento
lnea o unidimensional, compuesto por una secuencia de bytes o palabras.
Si el So y el HW pueden tratar de forma efectiva los programas de usuario y los datos de la
forma efectiva los programas de usuario y los datos en la forma de mdulos de algn tipo,
entonces se pueden lograr ventajas:
o Los mdulos se pueden escribir y compilar independientemente
o Se puede proporcionar diferentes grados de proteccin a los mdulos
o La ventaja de proporcionar comparticin a nivel de mdulos es que se corresponde
con la forma en la que el usuario ve el problema, y por tanto es fcil para ste
especificar la comparticin deseada.
La herramienta ms adecuadas es la segmentacin
ORGANIZACIN FSICA
39
Particionamiento
dinmico
Paginacin
sencilla
Segmentacin
sencilla
Paginacin con
memoria virtual
Segmentacin
con memoria
virtual
Descripcin
La memoria principal se divide
en particiones estticas en
tiempo de generacin del
sistema. Un proceso se puede
cargar en una particin con igual
o superior tamao
Las particiones se crean de
forma dinmica de tal forma que
cada proceso se carga en una
particin del mismo tamao que
el proceso
Virtudes
Sencilla de implementar;
poca sobrecarga para el
SO
No existe fragmentacin
externa
40
No existe fragmentacin
interna; uso ms
eficiente de memoria
principal.
Defectos
Uso ineficiente de la
memoria, debido a la
fragmentacin interna;
debe fijarse el nmero
mximo de procesos
activos.
Uso ineficiente del
procesador, debido a la
necesidad de
compactacin para evitar
la fragmentacin
externa.
Una pequea cantidad de
fragmentacin interna
No existe fragmentacin
interna; mejora la
utilizacin de la
memoria y reduce la
sobrecarga respecto al
particionamiento
dinmico.
No existe fragmentacin
externa; mayor grado de
multiprogramacin; gran
espacio de direcciones
virtuales
Fragmentacin externa
No existe fragmentacin
externa; mayor grado de
multiprogramacin; gran
espacio de direcciones
virtuales; soporte a
proteccin y
comparticin
Sobrecarga por la
gestin compleja de la
memoria
Sobrecarga por la
gestin compleja de la
memoria
PARTICIONAMIENTO FIJO
Se puede asumir que el SO ocupa alguna porcin fija de la memoria principal y que el resto
esta disponible para mltiples procesos.
El esquema ms simple es repartirla en regiones con lmites fijos
TAMAOS DE PARTICIN
Cualquier `proceso menor o igual que el tamao de particin puede cargarse en cualquier
particin disponible.
Si esta todo lleno y bloqueado puede mandarse a swap.
Existen dos dificultades con el uso de las particiones fijas del mismo tamao:
o Un programa podra ser demasiado grande para caben en una particin. El
programador debe disear un programa con el uso de overlay.
o La utilizacin de memoria principal es ineficiente. Se genera fragmentacin interna.
ALGORITMO DE UBICACIN
Con particiones fijas es trivial
Con particiones variables la forma ms sencilla consiste en asignar cada proceso a la
particin ms pequea dentro de la cual cabe.
Una tcnica ptima sera emplear una nica cola para todos los procesos. En el momento de
cargar un proceso en la memoria principal, se selecciona la particin ms pequea
disponible. Si todas estn ocupada se realiza swap. Tiene preferencia a la hora de ser
expulsado a disco el proceso que ocupe la particin ms pequea que pueda albergar el
proceso entrante.
Desventajas:
o El nmero de particiones limita el nmero de procesos
o Los procesos pequeos no utilizan el espacio de las particiones eficientemente.
PARTICIONAMIENTO DINMICO
Las particiones son de longitud y nmero variable. Cuando se lleva un proceso a la
memoria principal se le asigna exactamente tanta memoria como requiera.
A medida que pasa el tiempo la memoria se fragmenta cada vez ms y la utilizacin de la
memoria decrementa: fragmentacin externa.
La fragmentacin externa se elimina con la compactacin: de vez en cuando el SO desplaza
los procesos en memoria de forma que se encuentren contiguos y de se une la memoria
libre. La desventaja es que se malgasta tiempo del procesador.
ALGORITMO DE UBICACIN
Mejor-ajuste (best-fit): escoge el bloque ms cercano en tamao a la peticin.
Compactacin muy frecuente
Primer-ajuste (first-fit): comienza a analizar a memoria desde el principio y escoge el
primer bloque disponible que sea suficientemente grande. Ms sencillo y ms rpido. Puede
dejar al final pequeas particiones libres.
Siguiente-ajuste (next-fit): escoge el siguiente bloque disponible que sea suficientemente
grande. Requiere ms frecuentemente la compactacin.
41
SISTEMA BUDDY
Los bloques de memoria disponibles son de tamao 2k, L K U donde
o 2L = bloque de tamao ms pequeo asignado
o 2u = bloque de tamao ms grande asignado. Es normalmente el tamao de la
memoria completa.
El sistema va dividiendo la memoria en mitades (siempre 2n) hasta que el proceso entre en
la menor posible. El sistema mantiene una lista de los huecos. Cuando dos pares iguales y
contiguos se liberan, se unen.
REUBICACIN
Cuando se utiliza el esquema de particionamiento fijo, se espera que un proceso siempre se
asigne a la misma particin, pero esto no pasa.
Una direccin lgica es una referencia a una ubicacin de memoria independiente de la
asignacin actual de datos a la memoria; se debe llevar a cabo una traduccin a una
direccin fsica antes que se alcance el acceso a la memoria.
Una direccin relativa es un ejemplo particular de direccin lgica, en el que la direccin se
expresa como una ubicacin relativa a algn punto conocido.
Una direccin fsica es una ubicacin real en memoria principal.
Se usa el registro base, se le suma el desplazamiento y se compara con el registro lmite.
7.2 PAGINACIN
La memoria principal se divide en porciones de tamao fijo y los procesos en porciones del
mismo tamao.
A cada pgina se le asignan marcos.
Existe fragmentacin interna pero no externa.
El SO mantiene una lista de marcos libres.
El SO tambin mantiene una tabla de pginas por cada proceso, para producir una direccin
fsica. Dentro del programa, cada direccin lgica est formada por un nmero de pgina y
un desplazamiento dentro de la pgina. La traduccin de lgica a fsica la realiza el HW.
Cada entrada de la tabla de pginas contiene el nmero del marco en la memoria principal,
si existe, que contiene la pgina correspondiente.
Con la paginacin las particiones son bastante pequeas, un programa puede ocupar ms de
una particin y no necesitan ser contiguas.
Conviene utilizar un tamao de pginas potencia de 2 dando lugar a que:
o El esquema de direccionamiento lgico es transparente al programador, el
ensamblador y al montador.
o Es fcil para el HW traducir las direcciones:
Extraer el nmero de pgina con los n bits de la izquierda de la direccin
lgica.
Utilizar el nmero de pgina como un ndice a tabla de pginas del proceso
para encontrar el nmero de marco, k.
La direccin fsica inicial del marco es k * 2 n y la direccin fsica del byte
referenciado es dicho nmero ms el desplazamiento. Esta direccin fsica
no necesita calcularse, solo se concatena el nmero de marco al
desplazamiento.
7.4. SEGMENTACIN
El programa y sus datos asociados se dividen en un nmero de segmentos.
42
RESUMEN
La gestin de memoria implica tratar la memoria principal como un recurso que debe
asignarse y compartirse entre varios procesos activos.
43
Debido a esto solo unas pocas porciones de cada proceso se encuentra en memoria,
ahorrando tiempo porque las porciones del proceso no usadas no se expulsaran de la
memoria a swap y de swap a la memoria.
Si se elimina una porcin justo antes de que vaya a ser utilizada, deber recuperar dicha
porcin de nuevo casi de forma inmediata. Un abuso de esto lleva a trasiego (trashing): el
sistema consume la mayor parte del tiempo enviando y trayendo porciones de swap en lugar
de ejecutar instrucciones.
El principio de proximidad determina que solo unas pocas porciones del procese se
necesitarn a lo largo de un perodo de tiempo corto. Tambin es posible hacer suposiciones
inteligentes sobre cuales son las porciones del proceso que se necesitarn en un futuro
prximo, para evitar el trasiego.
PAGINACIN
Para la memoria virtual basada en paginacin se necesita una tabla de pginas.
Normalmente es una por cada proceso.
Cada entrada de la pgina indica si la pgina esta presente en memoria principal o no, y si
esta el marco de dicha pgina. Tambin incluye un bit de modificado, si no hay ningn
cambio no se va a necesitar reescribir en memoria cuando se la reemplace.
44
Dada una direccin virtual el procesador primero examina la TLB, si la entrada de la tabla
de pginas solicitada esta presente entonces recupera el nmero de marco y se construye la
direccin real, si no est busca en la tabla de pgina.
Cada entrada de la TLB debe incluir un nmero de pgina, la entrada de la tabla de pginas
completa. El procesador proporciona un hardware que permite consultar simultneamente
varias entradas: resolucin asociativa.
TAMAO DE PGINA
Cuanto mayor es el tamao de pgina, menor cantidad de fragmentacin interna.
Como los dispositivos secundarios son la mayora de tipo giratorio favorece tamao de
pgina grande para mejorar la eficiencia de transferencia de bloques de datos.
El tamao influye en la tasa de fallos. Si el tamao de pgina es muy pequeo habr un
nmero relativamente alto de pginas disponibles en la memoria principal para cada
proceso por lo tanto la tasa de fallos ser relativamente baja. A medida que el tamao de
pginas se incrementa la tasa de fallos tambin. La tasa de fallos de pgina comenzar a
caer a medida que el tamao de la pgina se aproxima al tamao del proceso completo.
Para un tamao de pgina fijo la tasa de fallos cae a medida que el nmero de pginas
mantenidas en la memoria principal crece.
Por la creciente tendencia a reducir la proximidad referencial por los distintos paradigmas
la TLB se puede convertir en un cuello de botella del rendimiento.
SEGMENTACIN
LAS IMPLICACIONES EN LA MEMORIA VIRTUAL
Los segmentos pueden ser de tamao diferente, tamao dinmico.
Ventajas para el programador:
o Simplifica el tratamiento de estructuras de datos que pueden crecer. Con la
memoria virtual segmentada, a una estructura de datos se le puede asignar su propio
segmento, y el SO expandir o reducir el segmento bajo demanda.
o Permite programas que se modifican o recopilan de forma independiente
o Da soporte a la comparticin entre procesos
o Soporta los mecanismos de proteccin
ORGANIZACIN
Se necesita una tabla de segmentos. Cada entrada implica, bit de presencia, bit de
modificacin, bit.
La tabla de segmento debe estar en MP y cuando un proceso en particular est en ejecucin
un registro mantiene la direccin de comienzo de la tabla de segmentos.
45
PROTECCIN Y COMPARTICIN
Para conseguir comparticin es posible que un segmento se encuentre referenciado desde
las tablas de segmentos de ms de un proceso.
Un esquema habitual es utilizar la estructura de proteccin en anillo.
POLTICA DE RECUPERACIN
Determina cuando una pgina se trae a la memoria.
Puede ser:
o bajo demanda: una pgina se trae a memoria slo cuando se hace referencia a una
posicin en dicha pgina.
o paginacin adelantada: se traen a memoria tambin otras pginas, diferente de la
que ha causado el fallo de pgina. Aparte es mucho ms eficiente traer en bloques.
POLTICAS DE UBICACIN
determina en que parte de la memoria real van a residir las porciones de la memoria de un
proceso.
La ubicacin es habitualmente irrelevante debido a que el HW de traduccin de direcciones
ye l HW de acceso a la memoria principal puede realizar sus funciones en cualquier
combinacin de pgina-marco con la misma eficiencia.
Hay sistemas, multiprocesadores de acceso a la memoria no uniforme donde el rendimiento
depende de la distancia en la cual reside el dato en relacin al procesador que va a utilizar.
POLTICA DE REEMPLAZO
Las cuestiones son:
o Cuantos marcos de pginas se van a reservar para cada proceso activo
o Si el reemplazo es global o local
Todas las polticas tienen como objetivo que la pgina que va a eliminarse sea aquella que
tiene menos posibilidades de volver a tener una referencia en un futuro prximo
La mayora de las polticas tratan de predecir el comportamiento futuro en base al
comportamiento pasado.
BLOQUEO DE MARCOS.
Algunos marcos en la memoria principal pueden encontrarse bloqueados haciendo que esa
pgina no puede reemplazarse.
El bloqueo se puede realizar asociando un bit de bloqueo a cada uno de los marcos.
46
ALGORITMOS BSICOS
Poltica ptima: tomar como reemplazo la pgina para la cul el instante de la siguiente
referencia se encuentre ms lejos. Esta poltica es imposible de implementar, porque el SO
tiene que conocer los eventos futuros. Se utiliza para comparar los otros algoritmos.
Usada menos recientemente (LRU): seleccionar a la pgina de memoria que no se haya
referenciada desde hace ms tiempo. Debido al principio de proximidad referencial, esta
pgina sera la que tiene menos probabilidad de volver a tener referencias en un futuro
prximo. La sobrecarga es grande, se puede mantener una pila de referencias a pginas.
Poltica FIFO: no es eficiente porque es habitual que en los programas haya una zona del
mismo o regiones de datos que son utilizadas de forma intensiva durante todo el tiempo de
vida del proceso. Estas pginas son expulsadas y despus tradas.
Poltica del reloj: requiere la inclusin de un bit adicional en cada uno de los marcos de
pgina, bit de usado. Cuando una pgina se trae por primera vez a la memoria este se pone
en 1 y cada vez que se usa tambin. Se dispone como un buffer circular. Cuando llega el
momento de reemplazar una pgina, el SO recorre el buffer para encontrar un marco con su
bit de usado en 0. Cuando pasa por uno que tiene le bit en 1 lo pone en 0 y continua. Este
algoritmo se puede hacer ms potente incrementando los bits de control. Con el bit de
modificado el algoritmo puede actuar de la siguiente manera:
o Primero busca por u = 0 y m = 0
o Si no encontr busca u = 0 y m = 1 y va poniendo en el recorrido u = 0
o Sino repite el paso uno.
BUFFERING DE PGINAS
Puede mejorar el rendimiento de la paginacin y que permite el uso de una poltica de
reemplazo de pginas sencilla, FIFO.
Una pgina reemplazada no se pierde sino que se asigna a una de las dos siguiente listas: la
lista de pginas libres si la pgina no se ha modificado (lista de pginas disponible para
lectura de nuevas pginas), o la lista de pginas modificadas.
Cuando se va a reemplazar una pgina que no se ha modificado, se mantiene en la memoria
ese marco de pgina y se aade al final de la lista de pginas libres.
La lista de pginas modificadas tambin se puede escribir como bloque.
47
pude determinar en base al tipo de proceso. Siempre que se produzca un fallo de pgina, la
pgina que se necesite reemplazar una de las pginas del proceso. Implica reemplazo local
La poltica de asignacin variable permite que se reserve un nmero de marcos por proceso
que puede variar a lo largo del tiempo de vida del mismo.
MBITO DE REEMPLAZO
Local: selecciona nicamente entre las pginas residentes del proceso que ha
generado el fallo.
o Global: se consideran todas las pginas en la memoria principal que no se
encuentren bloqueados como candidatos para el reemplazo.
Ambos tipos de polticas se activan por medio de un fallo de pgina cuando no existen
marcos libres.
o
48
fallo de pgina para dicho proceso. Se fija un umbral y segn esto se aaden o quitan
pginas al conjunto residente de un proceso. Se pueden usar tambin dos umbrales. Se
produce sobrecarga indeseable, por la modificacin continua del conjunto residente.
Conjunto de trabajo con muestro sobre intervalos variables (VSWS). Evala el conjunto de
trabajo del proceso en instantes de muestreo basados en el tiempo virtual trascurrido. De
esta forma el conjunto residente solo decrecer al final del intervalo.
o Si el tiempo virtual entre el ltimo muestro alcanza L, se suspende el proceso y se
analizan los bits de usado.
o Si antes ocurren Q fallos:
Si el tiempo virtual del muestreo es menor a M se espera hasta alcanzarlo y
se analizan los bits de usado
Si el tiempo virtual desde el ltimo muestreo es mayor o igual a M, se
suspende y se analiza.
POLTICAS DE LIMPIEZA
Se encarga de determinar cuando una pgina que est modificada se debe escribir en
memoria secundaria.
Limpieza bajo demanda: una pgina se escribe en memoria secundaria solo cuando se ha
seleccionado para su reemplazo. Si se produce un fallo de pgina se debe esperar que se
completen dos transacciones.
Limpieza adelantada: se escribe las pginas modificadas antes de que sus marcos de
pginas se necesiten. Permite que se escriban en lotes, pero la mayora se van a modificar
de nuevo antes de que sean reemplazadas.
Una estrategia ms apropiada es el buffering de pginas: limpiar solo las pginas que son
reemplazables, pero desacoplar las operaciones de limpieza y reemplazo.
CONTROL DE CARGA
Determina el nmero de procesos que residirn en la memoria principal.
Si hay pocos proceso se malgasta tiempo en swaping, si hay muchos se produce trashing.
Grado de multiprogramacin
A medida que el nivel de multiprogramacin aumenta, se usa mejor el procesador. Sin
embargo se alcanza un punto en el cual el tamao de conjunto residente promedio no es
adecuado, en este punto el nmero de fallos de pginas se incrementa de forma dramtica y
la utilizacin del procesador colapsa
Criterio L = S, que ajusta el nivel de multiprogramacin de forma que el tiempo medio
entre fallos de pgina se iguala al tiempo medio necesario para procesar un fallo, y la
utilizacin del procesador es mxima
Criterio del 50% que intenta mantener la utilizacin del dispositivo de paginacin
aproximadamente al 50% y la utilizacin del procesador tambin es mxima.
Suspensin de procesos
Si se va a reducir el grado de multiprogramacin se puede suspender un proceso:
o Proceso con baja prioridad
o Proceso que provoca muchos fallos
o Proceso activado hace ms tiempo
o Proceso con conjunto residente de menor tamao: penaliza programas con
proximidad de referencia muy fuerte.
o Proceso con la mayor ventana de ejecucin restante.
49
8.6 RESUMEN
Para poder usar de forma eficiente el procesador y las funciones de E/S, es aconsejable
mantener el mayor nmero de procesos disponibles e MP y liberar al programador de las
restricciones de tamao en el desarrollo.
Con la memoria virtual todas las referencias a direcciones son lgicas y se traducen en
tiempo de ejecucin a direcciones reales. Esto permite que un proceso pueda ubicarse en
cualquier parte de la memoria principal y que se dividan en fragmentos.
50
Cuando el procesador quiere leer o escribir un bloque de datos, enva un mandato al mdulo
de DMA con:
o Si es lectura o escritura
o La direccin del dispositivo de E/S involucrado.
o La direccin inicial de memoria que se pretende leer o escribir
o El nmero de palabras que se van a leer o escribir.
El computador contina con otro trabajo. Cuando se completa la transferencia el mdulo
DMA enva una seal de interrupcin al procesador.
La DMA se puede configurar de varias maneras:
o Todos los mdulos comparten el mismo bus de sistema. El mdulo de DMA
actuando como un procesador subordinado, usa E/S programada para intercambiar
datos entre la memoria y el mdulo de E/S
o El DMA integra las funciones de E/S. Hay un camino entre el mdulo de DMA y
uno o ms mdulos de E/S que no incluye el bus del sistema.
o Conectando los mdulos de E/S al mdulo DMA utilizando un bus de E/S y
proporciona una configuracin fcilmente expansible.
51
BUFFER NICO
Cuando un proceso de usuario emite una peticin de E/S, el SO asigna u buffer para la
operacin en la parte de sistema de la memoria principal.
Para dispositivos orientados a bloques, cuando se completa una transferencia el proceso
mueve el bloque al espacio de usuario y pide otro bloque: lectura adelantada.
Esto trae inconvenientes en el diseo del sistema operativo porque se tiene que mantener
registros de la asignacin de los buffers y complica la lgica de intercambio.
Para las salidas se copia el bloque del espacio de usuario al buffer y del buffer al lugar
definitivo.
En el caso de la E/S orientada a flujo de caracteres, el esquema de buffer nico se puede
utilizar en un modo de operacin lnea a lnea (pudindose utilizar buffers para almacenar
una nica lnea) o byte a byte (se sigue el modelo productor consumidor.
BUFFER DOBLE
Un proceso transfiere datos a (desde) un buffer mientras el sistema operativo vaca (o
llena) el otro.
En el caso de las operaciones byte a byte no ofrece ninguna ventaja adicional sobre un
buffer nico de doble longitud.
Puede ser inadecuado si el proceso realiza rfagas rpidas de E/S
52
BUFFER CIRCULAR
Para solucionar el problema del buffer doble se usan ms de dos buffers.
Al conjunto de buffers se lo denomina buffer circular. Siendo cada buffer individual una
unidad del buffer circular. Es un modelo productor consumidor con un buffer acotado.
53
la ltima pista en esa direccin o hasta que no haya ms peticiones en esa direccin. No
favorece al rea de disco que se ha atravesado ms recientemente, por lo tanto no aprovecha
la proximidad. Favorece a los trabajos cuyas peticiones corresponde con las pistas ms
cercanas.
LOOK: igual que el scan nada ms que en el momento en que se sirven todas las peticiones
en una direccin se invierte y la bsqueda contina en la direccin opuesta, sirvindose
denuevo todas las peticiones en orden.
C-Scan (Scan circular): restringe la bsqueda a una sola direccin. Despus de llegar a la
ltima pista en una direccin, el brazo vuelve al extremo opuesto del disco y la bsqueda
comienza denuevo.
Scan-de-N-pasos y FSCAN: con los algoritmos anteriores es posible que el brazo no pueda
moverse durante un periodo de tiempo. Para evitarlo la cola de peticiones del disco puede
dividirse en segmentos tal que en cada momento se est procesando un segmento hasta que
se completo. Scan-de-N-pasos divide la cola de peticiones del disco en varias colas de
longitud N. en cada momento se procesa solo una cola utilizando Scan.
FSCAN: se utilizan dos colas. Cuando comienza una bsqueda todas las peticiones estn
incluidas en una de las colas estando la otra vaca. Durante la bsqueda, todas las nuevas
peticiones se incluyen en la otra cola.
CONSIDERACIONES DE DISEO
Cuando se satisface una peticin de E/S la cach de disco se debe entregar al proceso o usa
memoria compartida.
Cuando se trae un nuevo sector a la cach de disco se debe reemplazar uno de los bloques
existentes. El algoritmo ms frecuentemente utilizado es el LRU.
Se puede utilizar LFU puede implementarse asociando un contador con cada bloque. Pero
puede pasar que algn bloque se accedan en trminos globales de forma relativamente
infrecuente, pero cuando se hace referencia a ellos, se producen referencias repetidas
durantes cortos intervalos de manera que se genera un contador de referencias elevado.
Otra forma es separar las colas: la parte superior de la pila se considera separada como una
seccin nueva. Cuando hay un acierto en la cach, el bloque accedido se mueve a la parte
superior de la pila. Si el bloque ya estaba en la seccin nueva, su contador de referencias no
se incrementa; en caso contrario se incrementa en 1.
Tambin se puede dividir en tres secciones: nueva, intermedia y antigua.
El reemplazo se puede realizar bajo demanda o planificacin anticipada (se generan varios
huecos)
Es razonable agrupar las escrituras y ordenarlas para minimizar el tiempo de bsqueda
ESTRUCTURA DE UN FICHERO
Campo: es el elemento bsico de los datos. Contiene un nico valor. Se caracteriza por su
longitud y tipo de datos. Puede ser de longitud fija o variable. En el caso de que sea variable
suele estar formado por dos campos, uno generalmente con la longitud.
Registro: es una coleccin de campos relacionados que pueden tratarse como una unidad.
Pueden ser de longitud fija o variable. Es variable si uno de sus campos varia en longitud o
si varia la cantidad de campos, se suele incluir la longitud
Fichero: es una coleccin de campos similares. Se pueden referenciar por nombre. Las
restricciones de control de acceso son a nivel fichero.
Base de datos: es una coleccin de datos relacionados. La relacin entre los datos es
explcita y se ve diseada para ser usada por varias aplicaciones. Esta formada por uno o
ms tipos de ficheros.
Operaciones que deben soportar los ficheros:
o Obtener todos: se asocia al procesamiento secuencial
o Obtener uno: aplicaciones interactivas y orientadas a transacciones necesitan esta
operacin.
o Obtener siguiente
o Obtener anterior
o Insertar uno: puede ser necesario que el nuevo registro encaje en una posicin
especfica, para preservar la secuencia del fichero.
o Borrar uno: ciertos enlaces u otras estructuras de datos podran tener que
actualizarse para preservar la secuencia del fichero.
o Actualizar uno: obtener un registro, actualizarlo y rescribir el registro actualizado
en el fichero.
o Obtener varios
55
o
o
o
o
o
o
ORGANIZACIONES
La pila
56
la forma menos complicada, los registros pueden tener diferentes campos o similares
campos en diferentes rdenes.
Cada campo debe ser auto descriptivo. La longitud de cada campo debe ser indicada.
El acceso a los registros se hace mediante bsqueda exhaustiva. Se utiliza cuando los datos
se recogen y almacenan antes del procedimiento o cuando los datos no son fciles de
organizar.
Utiliza el espacio adecuadamente cuando los datos varan en tamao y estructura. Fcil de
actualizar
El fichero Secuencial
Se utiliza un formato fijo para los registros. Solo se necesita almacenar los valores de los
campos; el nombre y longitud de cada campo son atributos de la estructura del fichero.
El primer campo se denomina campo clave. Los registros se almacenan en secuencia segn
la clave.
Se utilizan normalmente en aplicaciones en lotes y son generalmente ptimos para dichas
aplicaciones cuando implican el procesamiento de todos los registros. Se almacenan
fcilmente en cinta y en disco.
Los accesos requieren una bsqueda en el fichero para encontrar una clave.
Las adiciones tambin presentan problemas. El procedimiento normal es colocar nuevos
registros en un fichero de pila separado fichero registro o fichero de transacciones.
Peridicamente un sistema de actualizacin los mezcla para generarlos bien.
Tambin se puede organizar el fichero secuencial fsicamente como una lista enlazada pero
es lento y sobrecarga.
El fichero secuencial indexado
Se aaden un ndice al fichero que da soporte al acceso aleatorio y un fichero de
desbordamiento. Un registro en el fichero de desbordamiento se localiza mediante un
puntero desde su registro predecesor.
El ndice es un fichero secuencial simple. Cada registro del fichero ndice est formado por
dos campos: campo clave y el puntero al fichero principal.
Cada registro del fichero principal contiene un campo adicional no visible a la aplicacin
que es un puntero al fichero de desbordamiento. Cuando se inserta un nuevo registro en el
fichero, se aade al fichero de desbordamiento. Se actualiza el registro del fichero principal
que inmediatamente precede al nuevo registro en secuencia lgica para contener un puntero
al nuevo registro del fichero de desbordamiento.
Reduce el tiempo de acceso a un nico registro.
Se pueden utilizar mltiples niveles de indexacin.
Se limita a la bsqueda por el campo clave
El fichero indexado
Para poder hacer bsquedas sobre distintos atributos se necesita usar una estructura que
emplee mltiples ndices, uno por cada tipo de campo que puede estar sujeto a una
bsqueda.
Se utilizan dos tipos de ndices: un ndice exhaustivo contiene una entrada por cada registro
del fichero principal. Un ndice parcial contiene entradas a registros donde el campo de
inters existe.
El fichero de acceso directo a hash
Se requiere una clave y no existe el concepto de ordenacin secuencial
57
Se utilizan frecuentemente cuando se requiere un acceso muy rpido, los registros son de
tamao fijo y los registros se acceden de uno en uno.
12.3 DIRECTORIOS
CONTENIDO
El directorio contiene informacin sobre los ficheros
El directorio es a su vez un fichero, accesible por varias rutinas de gestin de ficheros.
Desde el punto de vista del usuario, el directorio proporciona una proyeccin entre los
nombres de ficheros y los ficheros en si.
En sistemas compartidos es importante proporcionar informacin que se utilice para
controlar el acceso a los ficheros.
ESTRUCTURA
Parte de la informacin se puede almacenar en un registro cabecera asociado con el fichero,
esto reduce la cantidad de almacenamiento requerido para el directorio, haciendo ms fcil
almacenar el directorio o parte del directorio en memoria principal a fin de incrementar la
velocidad.
la forma ms fcil de organizacin del directorio es una lista de entradas, una por cada
fichero.
Las operaciones sobre directorios son:
o Buscar
o Crear ficheros: se aade una entrada al directorio
o Borrar fichero: se elimina la entrada
o Listar directorio: se puede solicitar ver el directorio completo o una porcin del
mismo.
Si el directorio es una lista secuencial simple, no proporciona ayuda para organizar los
ficheros y fuerza a los usuarios a tener cuidado de no utilizar el mismo nombre para dos
tipos de ficheros diferentes. Para resolver se puede usar un esquema en dos niveles (un
directorio maestro y uno por cada usuario) pero no proporciona ayuda a los usuarios para
estructurar su coleccin de ficheros.
Tambin se puede solucionar con una estructura de tipo rbol. Cada subnivel puede estar
formado por ms directorios o subdirectorios
Se puede usar tambin la estructura hash.
NOMBRADO
El uso de directorio estructurado en forma de rbol minimiza la dificultad de asignar
nombres nicos.
El conjunto de nombres de directorios, finalizando en el nombre del fichero, constituyen un
nombre de camino.
Un usuario interactivo o un proceso est asociado con un directorio actual: directorio de
trabajo. Y puedo referenciar a los ficheros de forma relativa.
58
ASIGNACIN DE FICHEROS
Preasignacin frente a asignacin dinmica
La preasignacin requiere que el tamao mximo de un fichero sea declarada en tiempo de
creacin y esto es difcil, por esto la asignacin dinmica trae ventajas ya que se asigna
espacio cuando se necesite.
Tamao de porcin
Se puede asignar una porcin suficientemente grande para contener el fichero completo o se
puede hacer chico para que se pueda asignar un bloque a la vez.
Aspectos a considerar:
o La contigidad del espacio incrementa el rendimiento
59
60
FIABILIDAD
El sistema mantiene una copia de la tabla de asignacin de disco y la tabla de asignacin de
ficheros en MP por motivos de eficiencia.
Para prevenir problemas de coherencia se debe:
o Bloquear la tabla de asignacin en disco hasta que esta asignacin se complete
o Buscar espacio disponible en la tabla de asignacin de disco
o Asignar espacio, actualizar la tabla de asignacin de disco y actualizar.
o Actualizar la tabla de asignacin de disco y el disco
o Desbloquear la tabla de asignacin de disco.
CAPTULO 13 - REDES
61
62
La transferencia de datos de una aplicacin a otra implica obtener los datos del computador
en el que residen la aplicacin y adems obtener los datos de la aplicacin deseada.
Las tareas de comunicacin del TCP/IP se puede organizar en 5 capas relativamente
independientes:
o Capa fsica: cubre la interfaz fsica entre un dispositivo de transmisin de datos y
un medio de transmisin o red. Esta capa se preocupa de las caractersticas del
medio de transmisin, la naturaleza de las seales, la tasa de datos y aspectos
similares.
o Capa de accesos a red: se preocupa del intercambio de datos entre un sistema final
y la red a la que est unido. De esa forma se hace posible separar estas funciones,
relacionadas con la red. Se preocupa de enviar datos a travs de una red para dos
sistemas finales unidos a la misma.
o Capa de Internet: si los sistemas finales se encuentran unidos a distintas redes
mediante este procedimiento se envas los datos a travs de las redes
interconectadas (Protocolo de Internet)
o Capa de transporte: Los mecanismos para proporcionar fiabilidad son
independientes de la naturaleza de la aplicacin.
o Capa de aplicaciones: contiene la lgica necesaria para soportar las aplicaciones de
usuario
TCP Y UPD
La cabecera TCP tiene un mnimo de 160 bits. Los campos puerto destino y origen
identifican a las aplicaciones en los sistemas de esta conexin. Los campos nmero de
secuencia, nmero de confirmacin y ventana proporcionan control de flujo y control de
errores. La suma de control es un cdigo de 16 bits basado en el contenido del segmento y
que se utiliza para detectar errores.
UDP permite a un proceso enviar un mensaje a otro proceso con los mismos mecanismos de
protocolo posibles. Contiene los campos puerto origen y destino, longitud del segmento y
suma de control.
IP E IPV6
La cabecera IP junto con el segmento de la capa de trasporte forma un bloque de nivel IP:
datagrama IP.
La cabecera incluye direcciones de origen y destino de 32 bits. .
El campo suma de control de cabecera se utiliza para detectar errores en la cabecera
El campo protocolo indica que protocolo de capa superior esta utilizando
Los campos ID, Flags y desplazamiento de fragmento se utilizan en los procesos de
fragmentacin y reensamblado, en los que un datagrama IP se divide en mltiples
datagramas IP durante la transmisin y se vuelve a unir en el destino.
FUNCIONAMIENTO DE TCP/IP
IP est implementado en todos los sistemas finales y encaminadotes. TCP esta
implementado solamente en los sistemas finales; lleva control de los bloques de datos que
estn siendo transferidos para asegurar que todos se envan de forma fiable
Para una comunicacin satisfactoria todas las entidades del sistema deben tener una
direccin nica.
Se necesitan dos niveles de direcciones: cada mquina debe tener una direccin Internet
global nica (utilizada por IP para la entrega) y cada aplicacin de una mquina debe tener
63
una direccin nica en la mquina conocida como puertos (permite a TCP enviar los datos
al proceso adecuado)
APLICACIONES TCP/IP
El protocolo SMTP proporciona un mecanismo para transmitir mensajes entre mquinas.
Una vez que el mensaje est creado SMTP lo acepta y utiliza TCP para su envi a un
mdulo SMTP de otra mquina.
FTP establece una conexin TCP/ con el sistema destino para el intercambio de mensajes de
control. Una vez que se ha aprobado una transferencia de ficheros, se establece una segunda
conexin TCP para el envo de datos. Cuando se completa la transferencia se usa la
conexin de control para indicar la finalizacin y para aceptar nuevos mandatos de
transferencia.
TELNET proporciona un servicio de inicio de sesin remoto.
13.3 SOCKETS
Un socket permite la comunicacin entre un proceso cliente y un proceso servidor y puede
ser orientado a conexin o no orientado a conexin
EL SOCKET
La concatenacin de un valor de puerto y una direccin IP forma un socket, que es nico.
De esta forma una aplicacin puede tener mltiples direcciones de sockets, una por cada
puerto de la aplicacin.
El socket se utiliza para definir una interfaz de programacin de aplicaciones (API).
Cuando se usa como una API, un socket se identifica por protocolo, direccin local, proceso
local.
El API reconoce los dos tipos de sockets:
o Socket stream: hace uso de TCP y proporciona una transferencia de datos fiable
orientada a conexin. Garantiza que todos los bloques de datos enviados lleguen en
orden de envi.
o Socket datagrama: hace uso de UDP, no orientado a conexin, ni garantiza la
entrega ni el orden.
o Socket raw: permite acceso directo a las capas ms bajas del protocolo
64
APLICACIONES CLIENTE/SERVIDOR
Siempre que el cliente y los servidores compartan los mismos protocolos de comunicacin
y soporten las mismas aplicaciones pueden contener distintos SO.
Quin permite que interacten el cliente y el servidor es el software de comunicacin. Las
funciones que realiza una aplicacin se pueden dividir entre cliente y servidor para
optimizar el uso de recursos.
Aplicaciones de base de datos
El servidor es un servidor de base de datos.
La interaccin es a travs de transacciones, en las que el cliente realiza una peticin a la
base de datos y recibe una respuesta.
El servidor es responsable del mantenimiento de la base de datos.
Se ven unidos por un sw que permite que el cliente haga peticiones para acceder al servicio
de la base de datos. El ms comn es SQL (lenguaje estructurado de consola )
Clases de aplicaciones cliente/servidor
Tipos:
o Procesamiento basado en host: todo el procesamiento se realiza en el host central, y
la interfaz de usuario se realiza a travs de un interfaz tonto.
o Procesamiento basado en el servidor: el cliente es el principal responsable de
proporcionar la interfaz grfica de usuario, mientras que todo el procesamiento se
realiza en el servidor. No suelen generar grandes ventajas de productividad ni
cambios en las funciones de negocio soportadas por el sistema.
o Procesamiento basado en el cliente: prcticamente todo el procesamiento se puede
realizar en el cliente, con la excepcin de las rutinas de validacin de datos y otras
funciones de la lgica de la base de datos que se pueden realizar mejor en el
servidor. Permite a los usuarios el uso de aplicaciones adaptadas a las necesidades
locales.
o Procesamiento cooperativo: el proceso de las aplicaciones se realiza de forma
ptima, beneficindose de las maquinas clientes y servidora y de la distribucin de
los datos. Pueden proporcionar mayor productividad a los usuarios y mayor
eficiencia de red
65
Cliente pesado: gran parte de la carga esta en el cliente. La ventaja es que se beneficia de la
potencia de los escritorios, descargando el servidor y hacindolos ms eficientes y menos
propensos al cuello de botella. Las desventajas son que sobrecarga la capacidad de los
ordenadores de escritorio, es difcil mantener, actualizar o reemplazar aplicaciones.
Cliente ligero es lo opuesto y es a menudo la ruta de migracin para pasar las aplicaciones
corporativas de los mainframe a un entorno distribuido.
Arquitectura cliente/servidor de tres capas
El SW de la aplicacin se distribuye entre tres tipos de mquinas: mquina usuario, servidor
en la capa central, servidor en segundo plano (backend)
Normalmente es un cliente ligero
Las mquinas de la capa central pueden convertir protocolos y cambiar de un tipo de
consulta de base de datos a otra.
La interaccin entre el servidor de la capa central y el servidor en segundo plano, tambin
sigue el modelo cliente/servidor.
Consistencia de la cach de ficheros
Los sistemas individuales puede utilizar cach de ficheros para almacenar los registros de
los ficheros a los que se ha accedido recientemente.
La cach local de ficheros debera reducir el nmero necesarios al servidor remoto
Cuando un proceso realiza un acceso a un fichero, la peticin se presenta primero a la cach
de la estacin de trabajo del proceso (trafico de fichero). Si no es satisfactoria, la peticin se
pasa o al disco local, si el fichero est all almacenado (trafico de disco), o al servidor de
ficheros, donde el fichero est almacenado (trfico de servidor).
El enfoque de doble cach se utiliza para reducir el trfico de comunicacin (cach de
cliente) y la E/S de disco (cach de servidor)
Cuando la cach contiene siempre copias exactas de los datos remotos decimos que son
consistentes.
Para la consistencia de la cach utiliza tcnicas de bloqueo de ficheros para evitar accesos
simultneos a un fichero por ms de un cliente.
MIDDLEWARE
Conjunto de herramientas i.e. proporcionan una manera y estilo de acceso uniforme a los
recursos del sistema a travs de todas las plataformas, permitiendo construir a los
programadores aplicaciones que utilizan los mismos mtodos de acceso a los datos.
Hay distintos tipos pero todos tiene la capacidad de esconder la complejidad y disparidad de
los diferentes protocolos de red y SO.
Arquitectura middleware
Hay componentes tanto cliente como servidor.
El propsito bsico es permitir a una aplicacin o usuario en el cliente acceder a una
variedad de servicios en el servidor sin preocuparse de las diferencias entre los servidores.
Proporciona una capa de SW que permite un acceso uniforme a sistemas diferentes.
Es responsable de guiar la peticin al servidor apropiado.
Se basan en el paso de mensajes y las llamadas a procedimiento remoto.
66
Un proceso cliente necesita algn servicio y enva un mensaje con la peticin de servicio a
un proceso servidor. El proceso servidor realiza la peticin y enva un mensaje con la
respuesta.
ENLACE CLIENTE/SERVIDOR
El enlace especifica cmo se establece la relacin entre un procedimiento remoto y el
programa llamante.
Un enlace no permanente significa que la conexin lgica se establece entre los dos
procesos en el momento de la llamada a procedimiento remoto y que, tan pronto como se
devuelven los valores, se cierra la conexin. Esto consume recurso y genera sobrecarga en
la conexin. Inapropiado para llamados frecuentas
Enlaces persistentes es lo opuesto.
SNCRONOS VS ASNCRONOS
Son equiparables al concepto e bloqueante y no bloqueante.
14.4 CLUSTERS
Sistemas que proporcionan un alto rendimiento y una alta disponibilidad y que son
particularmente atractivos para aplicaciones de servidor.
67
Secundario Activo
Diferentes Servidores
Servidores conectados a
discos
Servidores Comparten
Discos
Descripcin
En caso de fallo en el
servidor primario, un
servidor secundario toma el
control
El servidor secundario
tambin se utiliza para
procesamiento de tareas
Cada servidor tiene sus
propios discos. Los datos se
copian continuamente del
servidor primario al
secundario
Los servidores est unidos
a los mismos discos, pero
cada servidor posee sus
propios discos. Si un
servidor falla el otro
servidor toma control de
sus discos
Varios servidores comparte
acceso a disco de forma
simultnea
Beneficios
Fcil de Implementar
Limitaciones
Alto coste debido a i.e. el
servidor secundario no est
disponible para procesar
otras tareas
Creciente complejidad
Sobrecarga de red y de
servidores reducida debido
a la eliminacin de las
operaciones de copia
Normalmente requiere
tecnologas de aplicacin de
discos o RAID para
compensar el riesgo de fallo
de disco
Requiere sw de gestin de
cerrojos. Normalmente se
utiliza con tecnologas de
replicacin de discos o
RAID
68
Para volver a como estaba antes una vez que se soluciono el problema se llama restauracin de
fallos.
Computacin paralela
Compilacin paralela: determina en tiempo de compilacin, que partes de la aplicacin se
pueden ejecutar en paralelo.
Aplicaciones paralelas: el programador escribe las aplicaciones para que ejecuten en un cluster
y utiliza paso de mensajes para mover datos entre nodos.
Computacin paramtrica: este enfoque se puede utilizar si la esencia de la aplicacin es un
algoritmo que se debe ejecutar un gran nmero de veces, cada vez con un conjunto diferente de
condiciones o parmetros iniciales.
ARQUITECTURA DE UN CLUSTER
Las computadoras estn conectadas a una LAN de velocidad o conmutador hw.
Cada computadora es capaz de operar independientemente.
Cada computadora est instalada a una capa de sw middleware que permite la operacin del
cluster.
El middleware del cluster proporciona una imagen nica al usuario, conocida como imagen
nica del sistema. Tambin podra ser responsable de proporcionar alta disponibilidad, a travs
del balanceado de carga y de la respuesta a los fallos de componentes.
Servicios deseables en un cluster:
nico punto de entrada
Una nica jerarqua de ficheros
nico punto de control: hay nodos por defecto encargados de gestionar y controlar el
cluster
nica red virtual: cualquier nodo puede acceder a cualquier otro punto del cluster
nico espacio de memoria
nico sistema de control de trabajos: con un planificador de trabajos en el cluster, un
usuario puede enviar su trabajo sin especificar la computadora que lo ejecutar
nico interfaz de usuario
nico espacio de E/S: cualquier nodo puede acceder remotamente a cualquier perifrico de
E/S o disco, sin conocer su localizacin fsica.
nico espacio de procesos: se utiliza un esquema uniforme de identificacin de procesos.
Un porotes en cualquier nodo puede crear o se puede comunicar con cualquier otro proceso
en un nodo remoto.
Punto de control: esta funcin salva peridicamente el estado del proceso y los resultados
de computacin intermedios, para permitir recuperarse despus de un fallo
Migracin de procesos: permite balanceo de carga
MOTIVACIN
Comparticin de Carga: moviendo procesos de un sistema muy cargado a otro poco
cargado, la carga puede equilibrarse para mejorar el rendimiento global.
Rendimiento de las comunicaciones: los procesos que interaccionan intensivamente puede
llevarse al mismo nodo para reducir el coste de la comunicacin mientras dure su
interaccin
Disponibilidad: se puede necesitar que los procesos de larga duracin se muevan para
sobrevivir en el caso de fallos conocidos con anticipacin
Utilizacin de facilidades especiales: moverse para conseguir ventajas de facilidades de
HW o SW existentes en un nodo en particular
70
Cuando la migracin no la pide el mismo proceso el proceso migrador copia la imagen del
proceso y todas las direcciones y destruye el proceso anterior.
Mensajes y seales
Se deben almacenar durante la migracin y despus redireccionarlas
Negociacin de la migracin
En algunos sistemas el sistema destino participa en la decisin de la migracin. Esto puede
ser para preservar el tiempo de respuesta al usuario.
DESALOJO
El mecanismo de negociacin permite que el sistema de destino rechace o acepte la
migracin de un proceso.
Tambin puede ser til permitir que un sistema expulse a un proceso que inmigr a l.
71
72
Para los algoritmos basados en este sistema no importa que evento (mensaje) sucedi
primero sino que todos los procesos que implementan el algoritmo acuerdan un orden nico
que es impuesto sobre los eventos.
COLA DISTRIBUIDA
Primera versin
Asunciones:
o Consiste en N nodos numerados. Cada uno contiene un proceso que realiza las
peticiones de acceso en exclusin mutua.
o Un mensaje enviado de un nodo a otro se recibe en el orden de envi
o Cada mensaje se entrega correctamente en un tiempo finito
o Cualquier proceso puede enviar mensajes directamente a otro proceso directamente
Cada nodo tiene la copia de la cola de solicitudes mercado con el sello de tiempo.
Para que un proceso puede tomar una decisin basndose en su propia cola, necesita haber
recibido un mensaje cada uno de los otros sitios de manera que pueda garantizar que no hay
ningn mensaje en trnsito ms reciente que el de la cabeza de su cola.
El algoritmo tiene tres tipos de mensajes: Solicitud, Respuesta y Liberar.
Cuando uno quiere acceder a un recurso enva una solicitud con su sello de tiempo y lo
coloca en su cola. Los que reciben su solicitud ponen el mensaje en su vector. Si no tiene
otro mensaje de solicitud manda una respuesta. Luego lo libera.
Se cumplen:
o Exclusin mutua: las solicitudes de entrada en la seccin critica se sirven conforme
a la ordenacin impuesta por el mecanismo de sello de tiempo
o Equitativo: las solicitudes se conceden estrictamente sobre la base de la ordenacin
de sellos de tiempo
o Libre de interbloqueo: dado que la ordenacin por sello de tiempo se mantiene
consistente en todos los sitios
o Libre de hambruna
Segunda versin
Se optimiza el algoritmo evitando el mensaje de liberacin.
Se basa en que cuando un mensaje quiere entrar a una seccin crtica enva una solicitud y
cuando recibe una repuesta de todos puede hacerlo.
Si alguien esta o esta esperando por entrar a su seccin crtica posterga la respuesta.
El testigo es una entidad que en cualquier momento posee uno de los procesos.
El proceso que tiene el testigo puede entrar a su seccin crtica sin pedir permiso
Cuando un proceso abandona su seccin crtica pasa el testigo a otro proceso.
Se elige quien va a recibir el testigo segn el vector de solicitudes y testigo.
73
74
CAPTULO 16 SEGURIDAD
16.1 AMENAZAS DE SEGURIDAD
La seguridad tiene 4 requisitos bsicos:
o Confidencialidad: requiere que la informacin de un sistema informtica slo se
encuentre accesible para lectura para aquellas partes que estn autorizadas a este
tipo de acceso.
o Integridad: requiere que los contenidos de un sistema informtico slo podr
modificarse por las partes que se encuentren autorizadas.
o Disponibilidad: requiere que los componentes de un sistema informtico estn
disponibles para todas aquellas partes autorizadas.
o Autenticacin: requiere que el sistema informtico sea capaz de verificar la
identidad de los usuarios.
TIPOS DE PELIGROS
Existe un flujo de informacin desde una fuente, pudindose tratar de un fichero o una
regin de memoria, a un destino, que puede ser otro fichero o puede ser el mismo usuario.
Tipos:
o Interrupcin: se destruye un componente del sistema o se encuentra no disponible o
utilizable. Es un ataque centrado en la disponibilidad.
o Intercepcin: una parte no autorizada consiga acceso a un componente. Centrado en
la confidencialidad
75
o
o
16.2 PROTECCIN
La posibilidad de compartir estos recursos introduce la necesidad de la proteccin.
El SO debe ofrecer niveles de proteccin a lo largo del siguiente rango (en orden de
dificultad aprox. creciente desde el punto de vista de su implementacin, as como en orden
del detalle de proteccin que proporciona) :
o Sin proteccin alguna: apropiado por los procedimientos que son sensibles de
ejecutar en instantes diferentes
o Aislamiento: esta estrategia implica que cada proceso opera de forma separada con
otros procesos, sin comparticin ni comunicacin alguna
o Comparticin completa o sin comparticin: el propietario del objeto declara si va a
ser pblico o privado.
o Comparticin va limitaciones acceso: el sistema operativo verificar la
permisibilidad de cada acceso por parte de cada usuario especfico sobre cada
objeto.
o Acceso va capacidades dinmicas: permite la creacin de acceso a los objetos
o Uso limitado de un objeto
El sistema operativo necesita equilibrar la necesidad de permitir comparticin, que mejora
la utilidad del sistema, con la necesidad de proteger los recursos de cada uno de los
usuarios.
PROTECCIN DE LA MEMORIA
76
16.3 INTRUSOS
Enmascarado: un individuo que no est autorizado a utilizar un ordenador y que penetra en
los controles de acceso del sistema para aprovecharse de una cuenta de usuario legtimo
Trasgresor: un usuario legtimo que accede a datos, programas o recursos para los cuales
dicho acceso no est autorizado, o estando autorizado para dicho acceso utilizar sus
privilegios de forma maliciosa.
Usuario clandestino: un usuario que sobrepasa el control de supervisin del sistema y usa
dicho control para evadir la auditoria y el control de acceso o para suprimir la recogida de
registro de acceso.
TCNICAS DE INTRUSIN
El objetivo de un intruso es ganar acceso a un sistema o incrementar el rango de sus
privilegios de acceso a dicho sistema.
Un sistema debe mantener un fichero i.e. asocia las contraseas con cada usuario
autorizado. El fichero se puede proteger con:
o Cifrado unidimensional: el sistema almacena nicamente una forma cifrada de la
contrasea de usuario
o Control de acceso: el acceso al fichero se encuentra limitado a una o muy pocas
cuentas.
Tcnicas para conocer las contraseas:
77
o
o
o
o
o
o
o
o
PROTECCIN DE CONTRASEAS
El identificador proporciona seguridad de la siguiente manera:
o El identificador determina si el usuario est autorizado a conseguir el acceso al
sistema
o El identificador determina los privilegios asociados al usuario
o El identificador tambin se utiliza para un control de acceso discrecional
Vulnerabilidad de las contraseas
La contrasea de texto cifrado almacena, junto con una copia en claro de calor de aderezo,
en el fichero de contraseas para el correspondiente identificador de usuario.
El valor de aderezo vale para tres fines diferentes:
o Evitar que si hay contraseas duplicadas stas sean visibles en el fichero de
contraseas. Incluso si los usuarios eligen la misma contrasea, esta contrasea
habr sido asignadas en diferentes instantes de tiempo. Por lo tanto, la contrasea
extendida de ambos usuarios ser diferente.
o Incrementa de forma efectiva la longitud de la contrasea sin requerir que el
usuario recuerde dos caracteres adicionales
o Evita la utilizacin de implementaciones hw de DES, que reduce el riesgo de
ataques por fuerza bruta.
La rutina de cifrado de diseo para desalentar los intentos de adivinacin de las
contraseas.
Existen dos peligros en el esquema de contraseas de UNIX: un usuario puede conseguir el
acceso a un sistema utilizando una cuenta de invitado o por cualquier otro mecanismo y
ejecutar un programa de adivinacin de contraseas.
Control de acceso
Una forma de protegerse de los ataques de contraseas es denegar el acceso al oponente al
cierto de contraseas. Pero esta estrategia falla porque:
o Muchos sistemas son susceptibles a intromisiones de una forma que no venga
anticipada.
o Un accidente en la proteccin puede hacer que el fichero de contraseas sea legible,
comprometiendo de esta forma todas las cuentas
o Algunos de los usuarios pueden tener cuentas en otras mquinas bajo otro dominio
de proteccin y en algunos casos utilizar la misma contrasea.
78
o
o
DETECCIN DE INTRUSOS
Motivos para la deteccin:
o Si una intrusin se detecta suficientemente rpido puede ser identificado y
expulsado del sistema antes de que haga dao o llegue a comprometer algn dato.
o Un sistema de deteccin que resulte efectivo puede actuar de forma disuasoria, de
forma de prevenir intrusiones
o La deteccin de intrusos permiten la recoleccin de informacin sobre las tcnicas
de intrusin y pueden utilizarse para reforzar los servicios de prevencin.
La deteccin de intrusos se basa en la suposicin que el comportamiento de un intruso
difiere del de un usuario legtimo de forma que pueda ser cuantificado.
Existe un solapamiento entre estos dos comportamientos, por lo que existen las siguiente
tcnicas:
o Deteccin estadstica de anomalas: implica la recoleccin de datos relativos al
comportamiento de los usuarios legtimos durante un perodo de tiempo. Se aplican
test estadsticos. Son efectivas para el caso de ataques enmascarados.
Deteccin por umbral: esa estrategia implica definicin de umbrales para la
frecuencia de determinados eventos
Basado en el perfil: se desarrolla un perfil de actividad para cada uno de los
usuarios
o Deteccin basada en reglas: implica un intento de definir un conjunto de reglas que
se pueden utilizar para decidir si un comportamiento dado es o no el de un intruso.
Mejor para la deteccin de trasgresores.
Deteccin de anomalas: reglas desarrolladas para detectar la desviacin de
los patrones de usos previos.
Identificacin de penetracin: un sistema experto que busca
comportamiento sospechoso.
Una herramienta fundamental para deteccin de intrusos es el registro de auditoria:
o Registros de auditoria nativos: registra la actividad de los usuarios. Ventaja: no se
requiere ningn tipo de SW adicional para recoger estos datos. Desventaja: puede
no tener la informacin necesaria.
o Registros de auditoria especficos para deteccin: ventaja realizarse de forma
independiente del vendedor e implementarse en una amplia variedad de sistemas.
Desventaja sobrecarga extra Cada uno de los registros de auditoria tienen: sujeto, accin, objeto, condiciones de
excepciones, utilizacin de recursos, sello de tiempo.
79
PROGRAMAS MALICIOSOS
Estas amenazas se pueden dividir en las que necesitan un programa anfitrin y en las que
son independientes.
Tambin podemos diferenciar los que se puede replicar de los que no
Puerta secreta
Es un punto de entrada secreto dentro de un programa que permite a alguien que conoce la
existencia de dicha puerta tener acceso sin utilizar los procedimientos de acceso de
seguridad estndar.
Para depurar el programa, el desarrollador puede querer ganar privilegios especiales o
evitar toda la configuracin y autenticacin estndar. Tambin puede querer asegurarse de
que existe un mtodo para activar el programa si en algn momento se da un problema
como la autenticacin que est incluido dentro de la aplicacin.
Puede convertirse en una amenaza porque es difcil para el SO implementar controles sobre
las puertas secretas.
Bomba lgica
Es un cdigo insertado dentro de un programa legtimo que explorar bajo ciertas
condiciones.
Troyano
Es un programa til, o aparentemente til, o mandato que contiene un cdigo oculto que, al
invocarse realiza una funcin no deseada o daina.
Los programas troyanos se utilizan para realizad tareas de forma indirecta que el usuario no
autorizado no podr realizar directamente
Otra motivacin habitual es la destruccin de datos.
Virus
Es un programa que puede infectar otros programas modificndolos; las modificaciones
incluyen la copia del programa virus, que puede a continuacin infectar otros programas.
Contiene cdigo de instrucciones que se encarga de realizar copias de si mismo.
Gusano
Utilizan las conexiones de red para expandirse de un sistema a otro.
80
Una vez que se encuentra activos dentro de un sistema, un gusano de red se puede
comportar como un virus informtico, puede implantar troyanos o realizar cualquier otro
tipo de acciones destructivas
Para replicarse a si mismo, el gusano de red utiliza algn tipo de vehculo de comunicacin:
herramientas de corre electrnico, capacidad ejecucin remota, capacidad de conexin
remota.
En un sistema multiprogramado puede disfrazar su presencia renombrndose como un
proceso de sistema o utilizar cualquier otro nombre que no resulte sospechoso.
Zombies
Un programa zombie toma el control de otro ordenador conectado a Internet y
posteriormente utiliza el mismo para lanzar ataques que son difciles de trazar como
provenientes de creador del zombie.
TIPOS DE VIRUS
Virus parsito: se inserta a si mismo dentro de ficheros ejecutables y se replica, cuando el
programa infectado se encuentra en ejecucin, buscando otros ficheros ejecutables que
infectar.
Virus residente en memoria: infecta la memoria principal como parte del programa
residente
Virus en el sector de arranque: infecta el sector de arranque maestro y se dispersa cando el
sistema arranca desde el disco que contiene el virus
Virus oculto: se esconde en el sw de deteccin de los antivirus
Virus polimrfico: muta con cada infeccin, hacindose que la deteccin por medio de la
firma del virus sea imposible.
81
Descifrado genrico: permite a los programas antivirus detectar fcilmente incluso a los virus
polimrficos ms complejos manteniendo unas velocidades de exploracin altas. Todos los ficheros
ejecutables se recorren con un escner GD que contiene:
o Emulador de cpu
o Escner de firma de virus
o Mdulo de control de la emulacin
Si se encuentra un virus se implementa ese cdigo y el virus mismo exponen su cdigo al
antivirus.
Sistema de inmunidad digital: proporciona una emulacin de propsito general y un sistema de
deteccin de virus. Cuando un nuevo virus entra en una organizacin, el sistema de inmunidad
automticamente lo captura, lo analiza, aade mecanismos de deteccin y defensa contra l, lo
elimina y pasa informacin sobre dicho virus a los sistemas que ejecutan IBM Anti virus de forma
que pueda detectarse antes de que se permita su ejecucin en cualquier otro lugar
CRIPTOGRAFA SIMTRICA
Tiene 5 ingredientes:
o Texto claro
o Algoritmo de cifrado
o Clave secreta
o Texto cifrado
o Algoritmo de descifrado
Dos requisitos para el uso seguro de este mtodo:
o Algoritmo criptogrfico slido
82
ALGORITMO DE DEKKER
Primera tentativa
En un determinado momento solo se puede hacer un acceso a una ubicacin de memoria.
Se utiliza un turno para acceder a la misma. Si se desea ingresar y el valor del turno es igual
al de su proceso, el proceso entra. Sino se produce espera activa
Cuando termina actualiza el turno
Dos desventajas:
83
Segunda tentativa
Cada proceso debera tener una llave para entrar a la seccin crtica si uno falla el otro no se
bloquea a menos que sea en la seccin crtica.
Cuando un proceso desea entrar a su seccin crtica peridicamente comprueba el estado
del otro hasta que tenga el valor false, lo que indica que el otro proceso no se encuentra en
su seccin crtica.
No garantiza la exclusin muta en todos los caso.
La solucin propuesta no es independiente de las velocidades relativas de ejecucin de los
procesos.
Falla debido a que un proceso puede cambiar su estado despus de que otro proceso lo haya
cambiado pero antes de que otro proceso pueda entrar a su seccin crtica.
Tercera tentativa
Se usa un intercambio de dos sentencias.
Si ambos procesos establecen su estado a verdadero antes de que haya ejecutado la
sentencia while, cada uno de los procesos pensar que ha entrado a su seccin critica,
causando un interbloqueo.
Cuarta tentativa
Cada proceso establece su estado para indicar su deseo de entrar en la seccin crtica pero
est preparada para cambiar su estado si otro desea entrar.
Se puede producir un crculo vicioso.
Solucin vlida
Se utiliza una variable estado que es observada por todos los procesos
Se debe establecer un rden de actividad de los dos procesos para evitar el problema de
cortesa mutua
Se puede utilizar la variable turno.
ALGORITMO DE PETERSON
La variable global estado indica la posicin de cada proceso con respecto a la exclusin
muta y la variable global turno resuelve conflictos simultneos.
SEGUNDA ALTERNATIVA
Proteger una nica variable puede ser insuficiente si el uso de dicha variable es parte de una
larga secuencia de ejecucin. Se debe proteger la secuencia de ejecucin completa.
84
TERCERA ALTERNATIVA
Se expande la seccin critica para incluir el intercambio de mensajes completo pero un
nico semforo es insuficiente porque podra llevar al nter bloqueo.
Si tenemos varios grupos de hilos cooperando, la exclusin mutua garantizada para un
grupo no puede prevenir de la interferencia de los hilos de otro grupo.
CUARTA ALTERNATIVA
Utilizar lo mismo que antes pero con un semforo de exclusin muta.
Esto puede llevar a la condicin de carrera si el semforo de exclusin muta no es liberado
por su propietario.
ALTERNATIVA CORRECTA
La seccin de intercambio de mensajes es mutuamente exclusiva dentro del grupo de hilos.
Una vez que dos hilos entran en sus secciones crticas intercambian mensajes sin
interferirse entre s.
Despus de que un hilo abandona su seccin crtica ningn otro hilo del mismo grupo
puede darse prisa y estropear el mensaje existente.
85