Professional Documents
Culture Documents
1
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Tipo según su
contenido Registro de Dirección:
Contienen direcciones o parte de
una dirección.
2
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Interrupciones:
TIPO DESCRIPCIÓN
De Programa Generadas por alguna condición resultado de
la ejecución de una instrucción.
De Reloj Generadas por el reloj interno del procesador.
De E/S Generadas por un controlador de E/S para
indicar ACK o NAK.
Por fallo de Hardware Generadas por un error en el Hardware.
NO
Int.
Ciclo de Lectura Ciclo de Ejecución
BEGIN Enabled
(Fetch) (Execute)
?
SI
Comprobación de
Interrupción del
Proceso.
3
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Jerarquía de Memoria
Almacenamiento
Secundario
CACHÉ
CPU CACHE
Memoria Principal
Transferencia de Transferencia de
palabras bloques
4
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Ejemplo:
0 0
CACHÉ K
c-1
MEMORIA PRINCIPAL
B>C
2n-1
Diseño de la CACHÉ:
SI SI
Leer Palabra (E/S ~ CPU) Leer Palabra (E/S ~ CPU)
NO NO
OK OK
Next Next
5
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
6
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Proceso
por Lotes Eficiencia: Hace que
Evolució SISTEMA Objetivo los recursos de un
n OPERATIVO s Sistema Informático
se utilicen mejor.
Proceso por lotes con
multiprogramación
Logros
Principales
Capacidad de Evolución:
Tiempo Permite el desarrollo
Compartido efectivo, la verificación y la
introducción de nuevas
funciones sin interferir en
los servicios que brinda.
Estructura
del Sistema
Gestión de
Planificació Memoria
Los
n y gestión Seguridad y Procesos
de recursos protección de
Información
7
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Objetivos de un SO
Evolución de un SO
• Proceso en Serie
o El programador interactuaba directamente con el Hardware, no
había SO.
o Problemas principales:
• Planificación: El usuario reservaba un tiempo para
utilizar la máquina que no era el necesario.
• Tiempo de preparación: El usuario realizaba un proceso
de preparación que al producirse un error debía volver a
realizar.
9
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Los procesos
Definición básica de Proceso: Un programa en ejecución, con un estado actual asociado a un conjunto de recursos.
Gestión de Memoria
Responsabilidade
s del SO Asignación y Gestión automática: A los programas se les
debe asignar memoria dinámicamente según las vayan
necesitando.
Gestión de
Memoria Soporte para la programación modular: Los
programadores deben ser capaces de definir módulos de
programa y de crear, destruir y alterar el tamaño de los
módulos dinámicamente.
Se solucionan
mediante
Protección y Control de Acceso: El SO debe permitir que
las secciones de memoria estén accesibles de diferentes
Virtual Memory: Servicio maneras para los diversos usuarios.
que permite a los programas
direccional la memoria
desde un punto de vista Almacenamiento a Largo Plazo: Muchos programas
lógico. requieren almacenar información después de apagar la
computadora.
FileSystem: Incorpora
un almacenamiento a Paginación: Divide los
largo plazo en el que se procesos en bloques de tamaño
almacena la información fijo (páginas) y proporciona
en archivos. una traducción dinámica entre
la dirección virtual y la real.
11
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Planificación y
gestión de Recursos
Cola a corto plazo: Procesos que están
en memoria principal, listos para
ejecutarse.
Elementos
Principales
Cola a largo plazo: Procesos nuevos
que esperan para usar el procesador.
Cola de E/S: Cada dispositivo
de E/S tiene una cola donde
se alojan los procesos que Dispatcher: Planificador a corto plazo, escoge el
están esperando para siguiente proceso que va a utilizar el
utilizarlo. procesador.
Gestor de Peticiones de
Servicio: Maneja las Gestor de Interrupciones: Maneja
peticiones de los procesos las interrupciones de los procesos
y luego llama a Dispatcher. y de los dispositivos de E/S y
luego llama a Dispatcher.
12
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Seguridad y Protección
de la Información
Control del Flujo de Información: Regulación del
flujo de datos dentro del sistema y su distribución a
los usuarios.
13
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
14
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Nuevo
Admitir MODELO DE 7 ESTADOS
Admitir Suspender
Activar Expedir
Salir
Listo y
Listo Ejecución Terminado
Suspendido
Suspender Timeout
Ocurre
Suceso
Activar
Esperar Suceso
Bloqueado y
Bloqueado
suspendido
Suspender
• Nuevo -> Listo y Suspendido, Nuevo -> Listo: Cuando se crea un proceso, se lo
pasa a estado Listo. Si no hay suficiente memoria principal, se lo puede pasar a Listo y
suspendido directamente (generalmente esta es la que se utiliza, Just Time).
• Bloqueado -> Bloqueado y Suspendido: Un proceso que está en memoria principal
se pasa a suspendido para dar espacio a otro que se pueda ejecutar y no esté
bloqueado.
• Bloqueado y Suspendido -> Listo y Suspendido: Cuando se produce el suceso que
estaba esperando.
• Listo y Suspendido -> Listo: Cuando no hay procesos listos en memoria principal, el
SO tiene que taer alguno para que se pueda ejecutar.
• Listo -> Listo y Suspendido: Puede optar por esta opción, por prioridades o porque
supone que un proceso que está en estado Bloqueado se desbloqueará rápidamente.
• Bloqueado y Suspendido -> Bloqueado: Igual condición anterior.
• Listo -> Ejecución: El dispatcher lo escogió así.
• Ejecución -> Listo: Timeout, System Call, etc.
• Ejecución -> Listo y Suspendido: Por timeout y hay un proceso en suspendido que
posee mayor prioridad como para estar en Listo.
Problemas
Depende del esquema de Un cambio de su diseño
Estructuras de gestión de memoria Protección afecta a módulos del SO.
de Control de utilizado.
Procesos
Ubicación
de los SOLUCION: Rutina de gestión
Procesos. Deben mostrar la ubicación de que los protege ya que ella
Atributos de cada segmento o página de solamente los lee o escribe.
los cada imagen de proceso, ya sea
Procesos. en memoria principal o
Información secundaria.
del Estado del
procesador
Identificador
(PID)
Información de
Control del
Proceso
16
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
• Identificador (PID)
o Identificador numérico del proceso.
o Identificador numérico del proceso padre.
o Identificador del usuario.
• Información del estado del procesador
o Sirve para guardar la información de los registros del procesador cuando se
interrumpe al proceso.
o Registros del procesador (Visibles del Usuario, De Control y Estado y Puntero de
la Pila).
• Información de Control del Proceso
o Planificación y Estado: Información necesaria para la planificación del SO.
o Elementos típicos.
Estado de Proceso: alguno del modelo de estados.
Prioridad
Información de planificación: depende del algoritmo de planificación.
Suceso: identidad de un suceso que se está esperando para reanudar la
ejecución.
o Estructuración de datos: Enlace con otros procesos en un tipo de estructura
(cola, anillo, etc).
o Comunicación entre Procesos: información de comunicación almacenada.
o Privilegios de los Procesos: Memoria, instrucciones, servicios y utilidades que
puede utilizar.
o Gestión de Memoria: Punteros que indican la memoria virtual asignada.
o Propiedad de los recursos y utilización: Indica los recursos controlados.
También puede incluir un historial.
Control de Procesos
Salvar el Contexto Actualizar el bloque de Mover el bloque Seleccionar otro Actualizar el bloque de
•
del Procesador. control de Proceso que de control a la proceso para su control del proceso
estaba en ejecución. cola apropiada. ejecución seleccionado
• Ejecución del SO
o Características
- El SO funciona de la misma forma que un Software
corriente.
- El SO abandona el control y depende del procesador para
recuperarlo.
o Enfoques
Núcleo fuera de todo proceso: El concepto de proceso se aplica solo a los
programas de usuario. El código del SO se ejecuta como una entidad
separada en modo privilegiado.
P1 P2 P3 Pn-1 Pn
NÚCLEO
P1 P2 P3 Pn-1 Pn
SO SO SO SO SO
P1 P2 Pn SO1 SOn
18
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Proceso: Unidad de
propiedad de recursos. Acceso protegido a
los procesadores.
Archivo y
recursos de
E/S.
Proceso e
Hilos
Estado de
ejecución.
Contexto del
Procesador.
Toma menos
Thread: Unidad de Puede acceder a memoria
tiempo
y recursos del Proceso.
borrarlos. expedición.
Almacenamiento
Ventajas estático de variables
Toma menos Pila de locales.
tiempo ejecución.
crearlos.
Trabajo interactivo
Simplifican la estructura y en segundo plano.
Toma menos de un programa de
tiempo hacer diferentes funciones.
un Context Ejemplos de
Switch. Uso Procesamiento
Pueden comunicarse entre si asincrono.
sin invocar al kernel ya que
comparten memoria y
archivo. Aceleración de Estructuración modular de
la ejecución. los programas
19
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Tipos de Threads
User
Kernel
P P P P
Otras Estructuras
Multiprocesamiento
Categorías
Clasificación según
la comunicación
entre procesadores
Master/Slave
Clasificación según la
asignación de procesos
a los procesadores.
SMP
21
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Master/Slave
El resto de procesadores
Característica
ejecutan programas de
s
usuario y utilidades del SO.
El Master
planifica.
Necesita menos
modificaciones sobre
Master/Slave un SO
Ventajas
monoprocesador
multiprogramado.
Un fallo en el
Master puede
Desventajas producir una caída
del sistema.
22
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Cada Procesador
Características se autoplanifica.
El usuario ve al
sistema como si fuera
un monoprocesador
multiporogramado.
Las desventajas del
SMP Master/Slave
Ventajas negadas.
Si no se aplica alguna
técnica, se pierde la
Desventajas coherencia de cachés.
El SO es más
complejo.
Ventajas de un MicroKernel
Fiabilidad: Se puede
probar de un modo más
riguroso.
Soporte para
Soporte a sistemas
Sistemas Operativos
distribuidos: Un proceso puede
Orientados a Objetos
enviar un mensaje sin saber en
(OOOS)
que máquina reside el
destinatario.
24
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Rendimiento de MicroKernels
o La desventaja potencial es que consume tiempo la comunicación a través del microkernel respecto a un simple SystemCall.
o Las experiencias indican que más allá de la desventaja el rendimiento es igual o mayor a un sistema por capas.
Evitar el race
Dificultade
condition
s
Concurrenci
1.0
a
Compartir recursos
globales tiene riesgos
Monoprocesado
Motivos Interrupcione
r
s
27
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Definiciones
• Recurso crítico : Recurso que solo puede ser utilizado por 1 proceso a la vez
Interacción
entre
procesos
2.0
28
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Definiciones
Live-lock: dos procesos están bloqueados, pero cualquier cambio en la velocidad relativa de los dos procesos rompería este ciclo y permitiría a
uno entrar en la sección crítica.
Alg. de Dekker
Con Busy- Por
Waiting SW
Alg. de Peterson
Deshabilitar
interrupciones Test and Set : una variable global iniciada
Métodos en 0. TS la cambia de 0 a 1 y viceversa. Si
para la pone en 1, devuelve true y se entra a la
Por
conseguirla región crítica, sino devuelve false
HW
3.0
Instrucciones
especiales del Intercambiar : una variable global iniciada
procesador en 0. INTERCAMBIAR cambia esa
variable por otra en iniciada en 1. Si se
cambio a 1 se entra a la región critica, sino
no.
Semáforos
3.1
Sin Busy-
Waiting Por SO Monitores
3.2
Paso de
mensajes
3.3
29
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
S es el semáforo, que en si es una estructura. Las primitivas Wait y Signal SON PRIMITIVAS (NADIE LAS PUEDE INTERRUMPIR).
Problemilla: es jodido
distribuir las funciones wait y Wait(S), P(S) o Down(S):
signal sin advertir el efecto Disminuye el valor del semáforo. Si
global de estas operaciones, el valor es < 0 => el proceso se
pueden producir deadlock y bloquea.
starvation, hay que tener
cuidado.
Un semáforo débil es aquel que no especifica como se retiran los elementos de la cola de bloqueados del wait(s);
Un semáforo robusto es aquel que implementa FIFO en la cola de bloqueados del wait(s);
Los semáforos binarios toman valores entre 1 y 0.
Los semáforos generales o contadores toman valores cualquieras > 0.
30
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Monitores
Las variables de datos locales están solo accesibles para los procedimientos del monitor y no
para procedimientos externos.
Características
Sólo un proceso puede estar ejecutando en el monitor en un instante
dado, cualquier otro proceso que haya invocado al monitor quedará
suspendido mientras espera a que el monitor esté disponible.
Paso de mensajes
Hay que tener cuidado con el send no blokeante ya que puede originar que un proceso genere mensajes repetidamente si no se lo recata. El send no
blokeante obliga al programador el peso de determinar que mensaje se recibió: los procesos deben emplear un ACK de messages.
Direccionamiento directo
La primitiva send incluye una identificación del proceso destino. Receive puede gestionarse de dos formas: una es que se aclare de quien se
está esperando el message (direccionamiento explicito), y la otra es que el parámetro ‘origen’ nos retorne de quien recibió el mensaje que recibió y
así chequear que hacer (direccionamiento implicito).
Direccionamiento indirecto
Se envían los messages a una estructura de datos compartida, formada por colas llamadas mailboxes o buzones. Así, un proceso envía
messages al mailbox apropiado y el que le gustaría recibir los mensajes de ese proceso, los recoge de ese mailbox respectivo.
Se permite mayor flexibilidad en el uso de mensajes.
Puede permitir interacciones 1:1 , 1:N o N:M entre emisores y receptores.
Si es N:M se denomina port o puerto al mailbox.
Si es 1:N es un emisor que difunde sus mensajes a muchos receptores.
32
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Consumible
Retención y esperar:
s Puede ser creado (producido)
un proceso puede
retener recursos y destruido (consumido). Ej:
mientras espera que Interrupciones, señales,
le asignen otros. DEADLOCK: bloqueo mensajes, información de
permanente de un conjunto buffers de E/S, etc.
Condiciones de procesos que compiten
por los recursos del
No apropiación: sistema o bien se
ningún proceso puede comunican unos con otros.
ser forzado a
abandonar un recurso
que retenga.
Detección
Formas de
tratalo
Círculo vicioso de
espera: existe una
cadena cerrada de
procesos.
Prevención
Predicción
33
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Prevención: elimina
la posibilidad de que
ocurra deadlock. No apropiación: solo se aplica a recursos cuyo estado
puede salvarse y restaurarse fácilmente. Al bloquearse Problemas
un proceso debe liberar los recursos de los que se
apropió, o sino, si un proceso está usando el recurso, se
le puede pedir que lo libere (si el proceso tiene mayor
prioridad).
Recursos sin uso durante un
período considerable.
Mucho tiempo de suspensión
para obtener los recursos,
pudiendo haber ejecutado
algo de código.
Puede no conocerse por
adelantado todos los recursos
Indirecta: evita la que se necesitan.
cuarta condición.
Enfoque
NO ASIGNAR
s Vector Recurso: (R1,R2,R3,... ,Rn)
UN
Vector Disponible: (D1,D2,D3,…,Dn)
Predicción: se hacen RECURSO
elecciones acertadas Matriz Demanda Máxima (exigencias de c/proceso para cada
recurso):
para nunca llegar a
deadlock, y se la
evita. Chequeo si puedo
Algoritmo ejecutar a
del banquero
algún proceso con los recursos
Matriz Asignación (cant de recursos asignados a cada proceso):
que tengo disponibles y lo que el
proceso demandó y se le fue
asignado, si es así, lo ejecuto
hasta el final. Cada columna representa a un recurso.
Libero los recursos que se le Cada fila representa a un proceso.
asignaron, y descartó a proceso. Un proceso solo iniciará si para cada recurso i:
Se necesitan conocer las Comienzo de nuevo.
peticiones futuras de Si algún proceso no se puede
Ri ≥ E(ProcesoNuevo,Ri) +
∑E(ProcesoK,Ri) (Sumatoria desde K=1 hasta N)
Detección: el SO ejecuta
una rutina de detección Estrategias de recuperación
de deadlock y si lo
detecta intenta
recuperarse. Retroceder cada proceso
Abortar todos los bloqueado hasta un punto de
procesos bloqueados. control y volver a ejecutar.
Abortar sucesivamente
Apropiarse de recursos procesos bloqueados hasta que
sucesivamente hasta que no no haya deadlock.
haya deadlock.
Criterio de Selección.
Menor tiempo de procesador consumido.
Menor número de líneas de salida producidas.
Mayor tiempo restante estimado.
Menor número de recursos asignados. 36
Prioridad más baja.
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
37
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
En un sistema multiprogramado, la memoria se divide en: SO y Área de usuario (para sus procesos).
Tipos de
direcciones Segmentación
Técnicas de
administración de
Memoria
Buddy
System Paginación
Partición de memoria.
Estática Dinámica
38
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Reubicación
El SO debe conocer la ubicación de la imagen de cada
proceso.
El SO y el HW del procesador deben ser capaces de
traducir las referencias del programa a las direcciones
físicas reales donde se encuentre actualmente el
programa en la memoria principal.
Requisitos de la
Protección El HW del procesador debe ser capaz de abortar estas
gestión de memoria
instrucciones en el momento de ejecución.
Requisitos de la
gestión de memoria
Los módulos pueden escribirse y
compilarse independientemente.
El sistema resuelve las
Ventajas referencias entre módulos.
Organización física
Ofrece distintos grados de
protección a módulos con un
La memoria principal mantiene los programas y escaso coste adicional.
datos de uso actual, la memoria secundaria mantiene
los programas y datos a largo plazo.
Mecanismos de compartición de
módulos.
Estática
De distinto Algoritmo de ubicación:
tamaño se asigna a cada proceso la
partición más pequeña a la que
Partición de quepa. Hay una cola de procesos
Memoria por partición.
se asigna a cada proceso la
partición más pequeña en la que
Desventajas quepa y esté disponible. Hay una
cola única de procesos.
Ventajas Fragmentación
Interna
Fragmentación externa: la memoria fuera de toda partición se fragmenta cada vez más, tanto que no se puede ubicar a ningún proceso.
Compactación: Desplazar los procesos y ponerlos contiguos para que la memoria libre quede toda junta y así eliminar la fragmentación externa.
Consume mucho tiempo de CPU hacerlo.
No hay fragmentación
interna.
Ventajas
Dinámica
Hay fragmentación externa, solucionada por la
Desventaja compactación, aunque esto consume tiempo.
s
Partición de
memoria
Best-Fit: Se elige la partición más chica y disponible
donde quepa el proceso. Es el peor, se llena de bloques
Algoritmo de muy pequeños como para ubicar a algún proceso futuro.
ubicación
42
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Partición de
memoria Buddy System
43
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Dirección física
Posición real de la
memoria.
44
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
No hay fragmentación
interna. TRADUCCION DE DIRECCION POR HW
Me llega: Page|Offset
Utilizo page como índice en la MPT del proceso y obtengo el frame
asignado.
Nro de Frame * 2k concatenado con offset = DIR FÍSICA!
Ventajas Pequeña cantidad de
fragmentación
interna.
Desventajas
Paginación
Simple
Un proceso se carga situando sus páginas en
frames libres pero no necesariamente contiguos.
No hay fragmentación
interna.
Ventajas
Fragmentación externa, menor que
la partición dinámica.
Desventaja
s
Visible al programador.
Traducción de direcciones por HW
Me llega NroSegmento|Offset
Utilizo el nro de Segmento como índice en
Ventaja: permite organizar los programas y
la tabla de segmentos y obtengo la posición
datos.
física del segmento.
Sumar posición física del segmento con
offset.
Desventaja: el programador debe ser consciente de Si supera la longitud del segmento, la dir.
la limitación de tamaño máximo de los segmentos. no es válida.
46
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Carga y Montaje
Cargador
Tiempo de enlace Función
Tiempo de programación El programador especifica direcciones físicas en el
programa.
Tiempo de compilación o ensamblaje El programa contiene referencias simbólicas a direcciones
y el compilador o ensamblador las convierte en
direcciones físicas reales.
Tiempo de carga El compilador o ensamblador genera direcciones
relativas. El cargador traduce éstas a direcciones
absolutas en el instante de carga del programa.
Tiempo de ejecución El programa cargado conserva direcciones relativas, el
hw del procesador las traduce dinámicamente a
direcciones físicas reales.
Montador
Tiempo de montaje Función
Tiempo de programación No se permiten referencias a programas o datos
externos, el programador sitúa dentro del programa el
código de todos los subprogramas referenciados.
Tiempo de compilación o ensamblaje El ensamblador debe ir a buscar el código fuente de cada
subrutina que sea referenciada y la ensambla como
unidad.
Creación del módulo de carga Todos los módulos objeto se han ensamblado usando
direcciones relativas. Estos módulos se montan todos
juntos y todas las referencias se declaran de nuevo
relativas al origen del módulo de carga final.
Tiempo de carga Las referencias externas no se resuelven hasta que el
módulo de carga sea ubicado en la memoria principal.
Tiempo de ejecución Las referencias externas no se resuelven hasta que el
procesador ejecute las llamadas externas. En ese
momento, se interrumpe el proceso y se monta el
programa llamador con el módulo que se necesita.
47
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Conjunto Residente: Parte de un proceso que está en Memoria Principal, su tamaño es la cantidad de Memoria Principal asignada a un proceso. Son
los frames asignados.
Hiperpaginación (Trashing): El procesador consume más tiempo intercambiando frames que ejecutando instrucciones.
Principio de cercanía: las referencias a datos y programas tienden a agruparse.
NroPagina|Offset
MPT (Memory Page Table): contiene todas los frames que posee un proceso, indicando si
están en memoria principal o secundaria y el número de frame o la dirección en disco. Se
consulta mediante una correspondencia directa con el número de página de la dirección lógica.
TLB (Translation Lookaside Buffer): Contiene aquellas entradas a la MPT usadas hace
poco, indicando a que Proceso pertenecen. Reside en la CACHÉ. El procesador consulta
simultáneamente varias entradas de la TLB (correspondencia asociativa), si no encuentra
nada, entonces verifica la MPT del proceso y actualiza TLB.
49
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Las MPT también están sujetas a paginación (pueden estar en Memoria Principal o
en Memoria Virtual):
Por una referencia a memoria pueden haber dos fallos -> 1 para MPT, otro Page
Fault de página de proceso.
Tabla Raiz
PTE a UserTable
Dirección Virtual
NroSegmento|Offset
Dirección Virtual
NroSegmento|NroPage|Offset
Algoritmo de traducción
Estructuras
51
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Software del SO
Emplear o no memoria
virtual
Algoritmos empleados
para problemas de
gestión de memoria
Software del
SO Paginación por demanda: se trae una
página a la MP sólo cuando se hace
Paginación por previa: se cargan referencia a esa página.
otras páginas distintas a las
demandadas, debido a un
PageFault
Políticas de ubicación:
Determinar donde va a recidir Si las páginas de un proceso se cargan
una parte del proceso en la MP secuencialmente en memoria secundaria es
más eficiente traer un bloque que de a una.
Bloqueo de Frames: se asocia un bit de BLOQUEO a cada frame, puede guardarse en una tabla de frames o en la MPT. Si el bit está activado, no
puede ser reemplazada la página. Generalmente el SO bloquea sus frames, así no se autoreemplaza.
Políticas de reemplazo: Trata de la selección de la página a reemplazar en la MP cuando se debe cargar una nueva página y no hay un frame Libre.
Su objetivo es reemplazar la página que tenga una menor posibilidad de ser referenciada en un futuro cercano. Cuanto más elaborada y más
sofisticada es la política de reemplazo, mayor overhead de SW del SO y HW del procesador.
Anomalía de Belady: Es una cosa medio loka, que ocurre solamente en el algoritmo FIFO… es cuando al aumentar la cantidad de frames que se le
asignaron a un proceso, aumenta la cantidad de page faults. Buscar en google ejemplos si no lo creen.
Algoritmos de reemplazo:
o OPT – Optimal: Selecciona la página que más tiene que esperar para ser referenciada. Es la que produce la menor cantidad de Page Faults,
por eso es la ideal. Resulta imposible de implementar pero sirve para comparar con los demás algoritmos.
o LRU (Least Recently Used): Selecciona la página que no ha sido referenciada desde hace más tiempo. Es cercana a la OPT en eficiencia. Es
difícil de implementar, pero se puede simularla en SW usando dos métodos:
PILA: Se guarda en la cima de la pila a las páginas que se van referenciando, cuando hay que reemplazar a alguna página se
selecciona la última que se encuentra en la PILA. Es difícil de implementar, y produce un overhead terrible.
TIMESTAMP: Se guarda la última referencia en un campito para saber cuando fue la última vez que se referenció la página.
o FIFO: Selecciona la página que ha estado más tiempo en la memoria. Apesta, ya que que haya estado más tiempo en la memoria no
significa que no se referencie mucho. Apesta mucho ya que se puede producir la Anomalía de Belady. Fácil de implementar.
o CLOCK: Se asocia un bit a cada frame (bit de uso). Cuando se carga una page por 1era. vez se pone en 1. Si se hace alguna
referencia a algun frame, se lo pasa a 1 si está en el conjunto residente. Hay un puntero del clock que va dando vueltas por el conjunto de
frames de la MP… va buscando un frame con bit de uso = 0, si lo encuentra entonces reemplaza a ese frame!... mientras vaya barriendo los
frames, los que tienen el bit en 1 los pasa a 0.
o CLOCK CON BIT DE MODIFICACION: Además del bit de uso se agrega un bit de modificación, recorre sin cambiar el bit de uso,
buscando bitdeuso=0 ^ bitdemodificacion=0. Si falla, entonces recorre poniendo bitdeuso=0 y busca: bitdeuso=0 ^ bitdemodificacion=1. Si
falla, entonces repite de nuevo todo. Intenta evitar escrituras en memoria secundaria.
53
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Políticas del
tamaño del Cuando se produce un Page Fault se agrega un frame
conjunto residente libre al proceso y se carga la page.
Tiempo virtual: tiempo en el que el proceso está realmente en ejecución, por ejemplo: ciclos de instrucciones.
Desventajas
Puede mejorarse con un umbral superior
para evitar el crecimiento.
56
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Estrategias para Al final del intervalo de muestreo se sacan los frames con bitdeuso=0
Asignación Variable
y Alcance Local
Modera el grado de
Control de multiprogramación.
Carga
Si hay pocos procesos en MP => Mucho Swapping
Si hay muchos procesos en MP => Mucho Trashing!!!
Estrategias (to be
continued in next
page)
57
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Criterio L = S
Si es < a umbral F
Reloj adaptado
58
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
59
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Non-Preemtive: Puede otro Proceso robarle el procesador con aprobación del SO.
Preemtive: El proceso solo deja el procesador si termina o se bloquea en una E/S.
60
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
ATENCIÓN (IMPORTANTE): No es lo mismo SJF (Shortest Job First) que SPN (Shortest Process
Next) ya que uno es para un LTS (Long Term Scheduler) y el otro para un STS (Short Term
Scheduler), respectivamente. Pero el criterio es el mismo.
61
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Uso de multiprogramación
Elementos en cada procesador
de Diseño
Planificación de
Multiprocesadores
Expedición real
de procesos
Planificación de
procesos
Reparto de
Planificación de carga
threads
Métodos
Planificación
en tiempo real Planificació
n por grupos
Planificació
n dinámica Asignación
dedicada de
Características Requisitos procesadores
62
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Tipos de multiprocesadores
Clustering: Conjunto de procesadores relativamente autónomos. Cada uno tiene su propia memoria y sus canales de E/S.
SMP: Conjunto de procesadores que comparten una MP y son controlados por un SO.
Master/Slave: Hay un procesador de propósito general y otro que solo ejecuta al SO (Master). Si el Master cae, se cae todo a la mierda
Tipo de Asignación:
por demanda
Estática: Existe una cola a corto plazo
para cada procesador, la asignación al
procesador se hace una sola vez.
Tipos
Desventajas
Un procesador puede estar ocioso con
su cola vacía mientras que otros están
Forma de asignación pendientes.
Dinámica: Existe una cola global.
Master/Slav Cada proceso se ejecuta en un
SMP procesador que esté libre.
e
Grano Grueso o
Mejora el rendimiento con la multiprogramación.
independiente
Uso de
multiprogramación
en cada procesador
Habla que una estrategia sencilla como ser FIFO puede ser más efectiva que una compleja como SRT, HRRN, RR, etc.
Planificación de Procesos
Habla de nuevo que la planificación es menos importante al ser N procesadores, dice que si uno se queda al pedo no es tanto problema… dice que
una disciplina FIFO con prioridades basta.
64
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Planificación de Threads
Ventajas
Planificación
Métodos por grupos
División de tiempo
del procesador
66
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
Planificación
dinámica Se emplea un lenguaje y unas herramientas del sistema que permiten
cambiar dinámicamente el número de threads de un proceso.
La exactitud del sistema no depende solo del resultado lógico de un cálculo sino
también del instante en que se produzca el resultado.
Tarea de tiempo real: debe ir al paso de los sucesos que se ocupa.
o Tipos
Rígida: si no se cumple el plazo, el sistema se considera en falla.
Flexible: se tiene un plazo asignado, pero se permiten desvíos.
o Tipos2
Aperiódica: puede ocurrir en un momento que no se puede predecir.
Periódica: se produce cada período T
REQUISITOS
1. Determinismo: Consiste en realizar las operaciones en instantes
fijos y predeterminados o en intervalos predeterminados. Velocidad de respuesta a
interrupciones. Poseer la capacidad para gestionar todas las peticiones en tiempo
requerida.
2. Sensibilidad: Tiempo que consume un SO en dar servicio a una
interrupción. Tiempo para iniciar la gestión de interrupción y comenzar la ISR
(Interrupt Service Routine). Tiempo para ejecutar la ISR.
3. Control de usuario: es mucho mayor que en un SO ordinario, ya
que el tipo puede controlar las prioridades y demás frutas.
4. Fiabilidad: No se aceptan pérdidas o degradaciones del
rendimiento.
5. Tolerancia a fallos: conserva la máxima capacidad y los máximos
datos posibles en caso de fallos. El SO intentará corregir el problema o minimizar
sus efectos mientras se ejecute.
6. De las otras dos surge el TIEMPO DE RESPUESTA
o TIPOS DE ALGORITMOS
Contables estáticas: determina en tiempo de ejecución cuando debe
comenzar una tarea.
Preemptive con prioridades estáticas: el análisis asigna prioridades a
tareas y se utiliza un planificador convencional preemptive con
prioridades.
Planificación dinámica: se acepta una nueva tarea para ejecutar solo si es
factible cumplir sus restricciones de tiempo
Dinámicos del mejor resultado: intenta cumplir todos los plazos,
abandona procesos iniciados cuyos plazos se hayan vencido (APESTA).
o TIPOS DE PLANIFICACIONES
Por plazos: se dispone información adicional de cada tarea para
minimizar la proporción de tareas que no cumplen sus plazos.
68
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
69
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)
damian@sion.com
rodri_y2k@hotmail.com
GOOD LUCK!
70