You are on page 1of 70

Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

RESUMEN DE SISTEMAS OPERATIVOS


UTN – FRBA

Antes de empezar a leer el resumen queremos aclarar un par de tips:

o Unicamente con este resumen no van a ningún lado.


o Tienen que leer el libro de Stalling igual.
o Apoyen dudas con el NOTAS.
o Consulten el foro de sisop, muy posiblemente (un 98%) las dudas que tengan ya
fueron consultadas y hay respuestas concretas ;)
o Practiquen mucha práctica xD, consulten dudas (el foro es el centro de la
sabiduría).
o Pidan revisión del examen SIEMPRE ;o)
o Y Matías Cabellón es un capo.
o Good Luck.

1
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CAPITULO I: “Sistemas Informáticos”


Elementos:
• Procesador: Procesa datos y controla a las operaciones.
• Memoria Principal: Almacena datos y programas.
• Módulos de E/S: Transportan datos entre la computadora y el entorno
exterior.
• Interconexiones entre componentes: Mecanismos y estructuras de
conexión (Buses).

Visibles de usuario: Son los que


están disponibles para los
programas.
Tipo según su
función
De Control y Estado: Se emplean
para controlar las operaciones del
procesador.
Registros

Registros de Datos: Contienen


datos

Tipo según su
contenido Registro de Dirección:
Contienen direcciones o parte de
una dirección.

Registro de Códigos de Condición:


Conjunto de bits activados por el
hardware del procesador como
resultado de operaciones.

REGISTROS DESCRIPCIÓN TIPO


MAR (Memory Address Register) Especifica la dirección de De Control y Estado.
memoria a escribir o leer. Registro de Dirección.
MBR (Memory Buffer Register) Contiene los datos que van a De Control y Estado.
ser escritos o fueron leidos. Registro de Datos.
I/O MAR (In Out MAR) Especifica un dispositivo de De Control y Estado.
I/O Registro de Dirección.
I/O MBR (In Out MBR) Especifica datos que van a De Control y Estado.
ser escritos o fueron leidos Registro de Datos.
desde el I/O
IR (Index Register) Guarda el valor a sumar a un Visible de Usuario.
valor base para obtener la Registro Dirección.
dirección efectiva.

2
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

SP (Segment Pointer) Guarda el valor de dirección Visible de Usuario.


base que apunta a un Registro de Dirección.
segmento.
SP (Stack Pointer) Contiene la dirección de la Visible de Usuario.
cabeza de la pila. Registro de Dirección.
PC (Program Counter) Contiene la dirección de la De Control y Estado.
intrucción siguiente. Registro de Dirección.
IR (Instruction Register) Contiene la última instrucción De Control y Estado.
leida. Registro de Datos.
PSW (Program Status Word) Contiene códigos de De Control y Estado.
condición. Código de Condición.

Interrupciones:

Mejora la eficiencia de procesamiento.

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.

Por secuencia: Inhabilitar las


interrupciones mientras se procesa una.
Enfoques de
interrupciones
múltiples
Por prioridades: Definir prioridades para
las interrupciones y permitir la
interrupción entre interrupciones.

NO

Int.
Ciclo de Lectura Ciclo de Ejecución
BEGIN Enabled
(Fetch) (Execute)
?

SI

Comprobación de
Interrupción del
Proceso.

Clasificación de las Instrucciones:

3
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

1. Procesador ~ Memoria: Transferencia.


2. Procesador ~ E/S: Transferencia.
3. Tratamiento de Datos: Operación aritmética o lógica.
4. Control: Alterar la secuencia de ejecución.

Jerarquía de Memoria

Soluciona el dilema de utilizar tecnología de memoria de gran capacidad pero con


tiempos de acceso mayores vs memorias rápidas pero costosas si son de mucha capacidad.

Memoria - Costo del Bit


Interna + Capacidad
- Velocidad de Acceso.
- Frecuencia de Acceso por
Memoria parte del procesador.
Externa

Almacenamiento
Secundario

Principio de Cercanía de Referencia: En la ejecución de un programa las referencias a


memoria por parte del procesador tienden a estar agrupadas durante un período corto de
tiempo.
Principio de Cercanía Temporal: Es la tendencia del procesador a acceder a posiciones de
memoria que ya han sido utilizadas anteriormente.

CACHÉ

CPU CACHE

Memoria Principal

Transferencia de Transferencia de
palabras bloques

o Es invisible para el SO.


o Contiene una copia de la Memoria Principal, se deben aplicar técnicas de actualización
de los datos a la Memoria Principal si fuese necesario (Políticas de Escritura).

4
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Ejemplo:

CACHÉ MEMORIA PRINCIPAL


Cantidad de Sección: C Longitud de palabra: n bits
Longitud de Sección: K palabras + 1 etiqueta Cantidad de palabras direccionables: 2n
que identifica al bloque
Longitud de bloque: K palabras
Cantidad de bloques: 2n/K = B

0 0

CACHÉ K

c-1

MEMORIA PRINCIPAL

B>C

2n-1

Diseño de la CACHÉ:

o Tamaño de Caché: + Tamaño => (+ Tasa de Aciertos ^ + Costo)


o Tamaño de Bloque: Hay que equilibrar o se desaprovecha el principio de referencia.
o Función de Traducción (mapping): Determina la posición de la Caché que ocupará el
bloque.
o Algoritmo de Reemplazo: Elige el bloque a reemplazar. Debe ser el que tenga menor
probabilidad de ser usado en el futuro.

Técnicas de Comunicación con dispositivos de E/S

E/S PROGRAMADA E/S POR INTERRUPCIONES DMA

Emitir orden LEER Emitir orden LEER Emitir orden LEER


(CPU ~ E/S) (CPU ~ E/S) (CPU ~ E/S)

Hacer Otra cosa Hacer Otra cosa


Leer estado (E/S ~ CPU) Leer estado (E/S ~ CPU)
Leer estado de módulo
Interrupción
DMA
Interrupción
NO Esta Error Esta Error
do do Next
OK OK

SI SI
Leer Palabra (E/S ~ CPU) Leer Palabra (E/S ~ CPU)

Escribir Palabra Escribir Palabra

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)

CAPITULO II: “Introducción a los SO”


Definición de SO: Programa que controla ejecución de los programas de aplicación y actúa como interfaz entre las aplicaciones del usuario y el
Hardware de la computadora.

Comodidad: Hace que


Proceso una computadora sea
en Serie más fácil de utilizar.

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

• SO como interfaz Usuario / Computadora: Servicios que ofrece (Comodidad):


o Creación de Programas: Ofrece múltiples funcionalidades y
servicios para ayudar al programador en la creación de
programas en general estos servicios son programas de utilidad
que no forman parte del SO pero se acceden a través de él.
o Ejecución de Programas: El SO administra la preparación de los
recursos para la ejecución de un programa.
o Acceso a los dispositivos de E/S: El SO oculta al programador las
particularidades de los dispositivos de E/S, de este modo se los
utiliza como lecturas y escrituras simples.
o Acceso controlado a los archivos: El SO oculta las estructuras de
los datos en los archivos y en el medio de almacenamiento.
Protege los archivos en un ambiente multiusuario.
o Detección y respuesta a errores: El SO da una respuesta a
errores eliminando la condición de error con el menor impaco
posible sobre las aplicaciones.
o Contabilidad: Recoge estadísticas de utilización de recursos y
supervisa ciertos parámetros de rendimiento.
• SO como administrador de recursos: Servicios que ofrece (Facilidad):
o Control de funciones básicas de la computadora: Para lograr
esto, administra los recursos.
o Dirige al procesador en el empleo de otros recursos del sistema
o Controla el tiempo de ejecución de otros programas: Para ello
cesa su ejecución y ejecuta otros programas.
o Aspectos no habituales como mecanismos de control: El SO
funciona de la misma manera que cualquier otro Software y
abandona el control del procesador y depende de él para
recuperarlo.
• Facilidad de evolución de un SO: Razones de evolución:
o Actualizaciones del Hardware y nuevos tipos de Hardware: El SO debe ser capaz de
soportarlos.
o Nuevos Servicios: En respuesta a las demandas del usuario o necesidades de los
administradores del Sistema.
o Correciones: Soluciones a fallas descubiertas con el curso del tiempo.

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.

• Proceso por Lotes


o El usuario entregaba su trabajo al operador de la
computadora. Éste los agrupaba secuencialmente en lotes y
los ejecutaba mediante un elemento de Software llamado
MONITOR.
o MONITOR
• Controla la secuencia de Sucesos: lee uno a uno los
trabajos y les pasa el control que es devuelto cuando
termina el procesamiento.
8
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

• Gran parte siempre está en memoria principal y


disponible para su ejecución: monitor residente
• También posee utilidades y funciones comunes que se
cargan cuando se las necesita.
• Características necesarias
- Protección de memoria: El programa de usuario
no debe modificar la zona de memoria del
monitor.
- Temporizador: Al expirarse cierto tiempo de
ejecución de un programa de usuario, se
produce una interrupción y el control vuelve al
monitor.
- Instrucciones privilegiadas: Ciertas instrucciones
de máquina se consideran privilegiadas y solo las
ejecuta el monitor. Un programa de usuario debe
solicitárselo al Monitor.
- Interrupciones: Aporta mayor flexibilidad para
ceder y retomar el control de los programas de
usuario.

• Sistema por Lotes con multiprogramación


o Se ejecutan más de un programa concurrentemente y se
intercambian cuando uno pide un servicio de E/S.
o Objetivo principal: Maximizar la utilización del procesador.
o Origen de las instrucciones: Instrucciones de un lenguaje de
control de trabajos incluidas en el trabajo.
o Características necesarias:
 E/S por Interrupciones y DMA: El procesador envía
una orden de E/S para un trabajo y continúa con la
ejecución de otro. Cuando termina la operación de E/S
el procesador debe ser interrumpido.
 Gestión de Memoria: Para tener varios trabajos listos
para ejecutarse.
 Algoritmo de planificación: Para decidir que trabajo
ejecutar.
• Sistemas de tiempo compartido
o Múltiples usuarios acceden simultáneamente al sistema por
medio de terminales y el SO intercala su ejecución en ráfagas
cortas.
o Objetivo principal: minimizar el tiempo de respuesta.
o Origen de las instrucciones: órdenes dadas por un terminal.
o Características necesarias:
 Protección de la memoria entre programas.
 Protección del disco entre programas.
 Controlar la disputa por los recursos.
 Protección de usuarios no deseados
o Características:
 Cada usuario dispone en promedio 1/n de la
velocidad de la computadora. Donde n es la cantidad de
usuarios.
 El tiempo de respuesta debería ser comparable al de
una computadora dedicada.

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.

Sincronización Incorrecta: Perdida de señales


o recepción de señales duplicadas por un
diseño incorrecto (esto afectaría el aviso de
finalización de E/S por ej)

Fallos de exclusión mutua: Sólo una rutina


El concepto ayuda puede realizar una transacción al mismo
Proceso a controlas errores tiempo sobre una determinada parte de los
datos.

Funcionamiento no determinista del


Componentes programa: El orden en que se organiza la
ejecución de varios programas puede influir
en los resultados de un programa en
Programa particular.
ejecutable
Datos asociados
(código)
al programa
(variables, DEAD-LOCK: 2 o más programas suspendidos
espacio de a la espera uno del otro.
trabajo, Buffer,
etc) Contexto de ejecución (toda
la información que el SO
necesita para administrar al
proceso y el procesador para
ejecutarlo)
10
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Gestión de Memoria

Aislamiento del Proceso: Cada proceso independiente no


debe interferir en los datos y la memoria de ningún dato.

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

Equidad: Otorgar accesos a recursos de forma igual


y equitativa entre trabajos con demandas similares.

Sensibilidades Diferenciales: Discriminar


dinámicamente entre trabajos con demandas diferentes
Factores a para satisfacer la totalidad de sus requerimientos.
tener en cuenta

Eficiencia: Maximizar la productividad, minimizar


el tiempo de respuesta y alojar a tantos usuarios
como sea posible (tiempo compartido).

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 de Acceso: Regulación del acceso del


usuario al sistema y de los recursos.

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.

Certificación: Relativo a la demostración de que el acceso y el


flujo de información se llevan a cabo de acuerdo con las
especificaciones y que éstas cumplen las políticas de
protección y seguridad deseadas.

13
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Características de los SO modernos

• Arquitectura del Núcleo


o Núcleo monolítico: Un único proceso que centraliza con cantidad de
funcionalidades y que sus componentes comparten el mismo espacio de
direcciones.
o Micronúcleo:
 Asigna unas pocas funciones esenciales al núcleo.
 Otros servicios del SO las proporcionan procesos que se ejecutan en
modo usuario y son tratados como cualquier otra aplicación.
 Se adapta bien a sistemas distribuidos
• MultiThreads: Técnica por la cual un proceso se divide en threads que pueden
ejecutarse concurrentemente.
o Proceso: Conjunto de 1 o más threads y los recursos del sistema asociados.
o Thread: Unidad de trabajo que se puede ejecutar. Incluye un contexto del
procesador y sus propias áreas de datos para una pila.
• Multiprocesamiento simétrico (SMP)
o Características
 Existen múltiples procesadores.
 Estos procesadores comparten la misma memoria principal y
dispositivos de E/S.
 Estos procesadores pueden ejecutar las mismas funciones.
o Ventajas
 Rendimiento: Se ejecuta más de un proceso en paralelo.
 Disponibilidad: El fallo de un procesador no detiene la máquina, se
puede continuar con un rendimiento reducido
 Crecimiento Incremental: Se puede aumentar el rendimiento al
agregar más procesadores.
 Escalabilidad: Los conductores pueden ofrecer una variedad de
productos con diferentes precios y rendimientos.
• SO Distribuido: Proporciona la ilusión de un único espacio de memoria principal y
secundaria, además de otros mecanismos de acceso unificados para un conjunto de
entidades (computadoras).
• Diseño Orientado a Objetos: Impone una disciplina para añadir extensiones a un
pequeño núcleo.

14
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CAPITULO III: “Descripción y Control de Procesos”


La inclusión de estados en los procesos permite modelar sus comportamientos y guíar al
procesador hacía una correcta implementación del sistema conjuntamente, minimizando sus
tiempos de ocio y maximizando el tiempo de respuesta del sistema.

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

• Listo: El proceso está listo para la ejecución.


• Bloqueado: El proceso está esperando un suceso.
• Suspendido: El proceso está en memoria secundaria
• Listo y Suspendido: El proceso está en memoria secundaria listo para ejecutarse ;o)
si se lo traer a MP.

• 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.

Tablas que sirven para tener información


sobre el estado actual de cada proceso y
de cada recurso.
Descripción de
Memoria: Controlan la memoria
Proceso: Estructuras
principal y secundaria.
de Control del SO

Categorías E/S: Controlan los dispositivos y los


canales de E/S
15
Archivos: Controlan información
relacionada con los archivos.
Procesos: Los administra y controla.
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Estructuras de Control de Procesos

Datos de Usuario: La parte


modificable por el usuario.
Imagen de un
Proceso Bloque de Control de
Proceso: Informe necesaria
para que el SO controle al
Programa de Usuario: proceso.
Código a ejecutar.
Un error en una
rutina puede dañarlos.

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)

Atributos de los procesos

• 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

• Modos de Ejecución: Al ejecutarse una interrupción o un System Call se cambia a modo


Kernel. Al finalizarse se cambia a modo Usuario.
o Motivo: Proteger al SO y a sus tablas de los programas de usuario.
o Tipos
 Modo Usuario: no ejecuta ciertas instrucciones privilegiadas
 Modo Kernel: Control completo del procesador, ejecuta todo tipo de
instrucciones.
o El procesador sabe en que modo ejecutar mediante el registro PSW.
• Pasos en la creación de un proceso:
1. Asignar ID al Proceso (PID).
2. Asignar espacio para el proceso.
3. Iniciar el bloque de control de proceso.
4. Establecer los enlaces apropiados.
5. Crear o ampliar otra estructura de datos.
• Cambio de Proceso: Motivos
o Interrupciones
 Origen de la causa: externa a la ejecución de la instrucción en curso.
 Uso: Reacción a un suceso asincrónico externo.
o Trap (cepo)
 Origen de la causa: asociada a la ejecución de la instrucción en curso.
 Uso: Tratamiento de un error o una condición excepcional.
o System Call
 Origen de la causa: Solicitud explicita.
 Uso: Llamada a una función del SO.
• Cambio de Estado de Proceso

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

Restaurar el Contexto del procesador Actualizar las 17


al estado en que estaba para este estructuras de datos de
proceso. la gestión de memoria.
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

• 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

 Ejecución dentro de los procesos de usuario: Casi todo el Software del SO


es ejecutado en el contexto de un proceso de usuario.
- Las imágenes de los procesos incluyen zonas de programa,
datos y de pila para los programas de Kernel.
- Hay una pequeña cantidad de código de cambio de proceso
que se ejecuta fuera de todo proceso.
- Al suceder una interrupción o System Call solamente se
realiza un cambio de modo, ahorrando 2 cambios de
proceso.

P1 P2 P3 Pn-1 Pn

SO SO SO SO SO

FUNCIONES DE CAMBIO DE PROCESO

 Sistema operativo basado en Procesos:


- El SO es una colección de procesos del sistema.
- Las funciones más importantes se organizan en procesos
separados.
- Impone una norma de diseño modular de programas con
interfaces mínimas y claras.
- Es útil en entorno de multiprocesador o de varios
computadoras.

P1 P2 Pn SO1 SOn

FUNCIONES DE CAMBIO DE PROCESO

18
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CAPITULO IV: “Hilos, SMP y Micronúcleos”


Comunicación con
otros procesos.
Un espacio de direcciones
virtuales.

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 Lever Thread (ULT):


o Características
 La gestión de estos threads se hace en la aplicación, el kernel no es
consciente de la existencia de estos threads.
 Se utiliza una biblioteca para: crear, borrar, comunicar, planificar y
manejar el contexto de los threads.
 La biblioteca se ejecuta en el espacio de usuario y dentro del proceso.
 Si en un thread se produce un System Call o un Timeout, este thread
queda en estado de ejecución pero el proceso que lo contiene pasa al
estado bloqueado.
o Ventajas
 El intercambio de threads evita 2 cambios de modo ya que no necesita
los privilegios del kernel.
 Se puede realizar una planificación específica sobre la aplicación.
 Se pueden ejecutar en cualquier SO, sin cambiar al kernel teniendo la
biblioteca necesaria.
o Desventajas
 La mayoría de System Calls son bloqueantes y esto bloquea a todo el
proceso.
 No aprovecha las ventajas de los multiprocesadores, ya que el SO no
puede planificar a estos Threads.
o Formas de Evitar los problemas
 Jacketing: Convierte un System Call bloqueante en uno no-bloqueante
para el proceso. En lugar de realizar un System Call directo, se llama a
una rutina de gestión que se fija si está ocupado el recurso de E/S, si es
así entonces pasa el thread al estado Listo y cede el control a otro
thread. Si el anterior thread recibe de nuevo el control, verifica si se
desocupó el recurso.
• Kernel Level Thread (KLT):
o Características
 Lo implementan W2k, Linux, OS/2, entre otros.
 La gestión de hilos la hace el Kernel.
 En el área de la aplicación hay una API para las funciones de gestión.
 El Kernel mantiene la información de contexto del proceso como un todo
y la de cada thread dentro del proceso.
 El Kernel realiza la planificación en función de los threads.
o Ventajas: Soluciona las desventajas de ULT.
o Desventajas: Las ventajas de ULT negadas.
• Combinadas (ULT + KLT):
o Características
 Lo implementa Solaris
 La gestión de threads se realiza por completo en el espacio de usuario.
 Múltiples ULT se asocian con varios KLT (de menor o igual número).
 El programador adapta la cantidad de KLT.

User
Kernel

P P P P

ULT KLT ULT + KLT


20
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Otras Estructuras

• 1 Proceso ~ 1 Thread: Cada thread de ejecución es un único proceso con sus


propios recursos y espacio de direcciones. Lo implementa el viejo UNIX.
• 1 Proceso ~ N Threads: Un proceso define un espacio de direcciones y unos
recursos dinámicos propios. Pueden crearse varios threads que ejecutan en dicho
proceso. Lo implementa Win NT, Solaris, Linux, OS/2, OS/390, Mach, entre otros.
• N Procesos ~ 1 Thread: Un Thread puede emigrar del entorno de un proceso a
otro. Esto permite que un thread se pueda mover facilmente entre sistemas distintos.
Lo implementa Clouds, Esmerald, entre otros.
• M Procesos ~ N Threads: Combina los atributos de los casos 1:N y N:1. Lo
implementa TRIX.

Multiprocesamiento

Categorías

• SISD: 1 Procesador ejecuta 1 Flujo de instrucciones para operar en 1 secuencia de


datos.
• SIMD: N Procesadores ejecutan 1 Flujo de instrucciones para P secuencia de datos.
• MISD: N Procesadores ejecutan M Flujo de instrucciones para 1 secuencia de datos.
• MIMD: N Procesadores ejecutan simultaneamente M Flujo de instrucciones sobre P
secuencias de datos.

Memoria compartida (fuertemente


acoplados): Se comunican mediante la
memoria

Clasificación según
la comunicación
entre procesadores

Memoria distribuida (débilmente


acoplados): Se comunican mediante
líneas dedicadas o algún tipo de red.
Son las agrupaciones.
MIMD

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 núcleo del SO siempre se


ejecuta en un procesador
determinado.

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.

El Master puede ser


un cuello de botella.

22
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

SMP También pueden


intercambiar
señales
directamente.
El núcleo se ejecuta en
cualquier procesador.

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.

Sincronización: hay que


sincronizar el acceso a
Gestión de Memoria: hay
recursos y posiciones de
que coordinar los
Cuestiones de memoria compartidas.
mecanismos de
paginación de los Diseño
diferentes procesadores. Fiabilidad y tolerancia a
fallos: Se deben reestructurar
las tablas de gestión en
función del mismo.
Procesos o Threads Planificación: hay que tener
concurrentes: es necesario que cuidado en la planificación, ya
las funciones del Kernel sean que se pueden realizar desde
reentrantes para permitir el distintos procesadores. Se
paralelismo entre pueden planificar muchos
procesadores. threads del mismo proceso.
23
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Ventajas de un MicroKernel

Uniformidad de interfaces: Los


servicios se utilizan mediante
paso de mensajes esto impone
una interfaz uniforme.
Extensibilidad: Facilita la
extensibilidad ya que sólo es
necesario modificar o añadir
los servicios implicados.

Portabilidad: Los cambios


necesarios para portar un
SO a un nuevo procesador
(no intel) son menores.
Ventajas de
un
MicroKernel
Flexibilidad: Se pueden añadir o
reducir características del SO.

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.

Mach incorporó la idea de tener al


Paginador como proceso aparte.

Gestión de Memoria Cesión: un proceso puede ceder varias de sus páginas a


a Bajo Nivel otro proceso, el Kernel se encarga de reasignarlas.

Asociación: Se puede compartir memoria entre los procesos.

Rellenado: un proceso puede reclamar


cualquier página concedida o asociada a Header: PID origen
otro. y PID destino.
Los procesos se
Diseño de comunican mediante
MicroKernel mensajes
Comunicación entre Body: Puntero a un
Procesos bloque de datos, datos
y información de
control.
Si los procesos no
comparten memoria
Gestión de implica copiar el mensaje
interrupciones y E/S en la memoria.

El microkernel puede reconocer interrupciones,


convertirlas en mensajes pero no gestionarlas,
las gestiona el proceso receptor del mensaje.
25
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CAPITULO V: “Concurrencia: exclusión mutua y sincronización”

Seguir la pista a los Múltiples


procesos (Por medio del aplicaciones
PCB)

Asignar y retirar Aplicaciones estructuradas :


Contextos en que
recursos a cada implementadas como un
puede presentarse
proceso activo conjunto de procesos o hilos
Labore
Proteger los datos y s del
recursos de los SO
Estructura del SO :
procesos implementado como un
conjunto de procesos o hilos

Evitar el race
Dificultade
condition
s
Concurrenci
1.0
a

Debe cumplirse la exclusión mutua.


Interacción Un proceso que se interrumpe en una sección no
entre Exclusión mutua : crítica debe hacerlo sin interferir con los
otros procesos.
procesos Es necesaria al Requisitos
Un proceso no debe poder solicitar acceso a una
2.0 tener concurrencia sección crítica para después ser demorado
indefinidamente, no puede permitirse el
deadlock o startvation.
Cuando ningún proceso está en su sección
crítica, cualquier proceso que solicite entrar
Métodos Definicion a la suya debe poder hacerlo sin problema.
No se deben hacer suposiciones sobre la
para velocidad relativa de los procesos o el
conseguirla número de procesadores.
Un proceso permanece en su sección crítica sólo
3.0 por un tiempo finito.
Solo un proceso a la vez
puede estar ejecutando
en su región crítica 26
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Compartir recursos
globales tiene riesgos

Dificultade Es difícil la gestión


s óptima de recursos
1.0
Es difícil localizar un error
de programación. Los
resultados en general no son
deteministas reproducibles

Monoprocesado
Motivos Interrupcione
r
s

Multiprocesador Procesos que


simultáneamente acceden
a una variable global

27
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Definiciones

• Race condition : Situación en la cual el resultado de 2 o + procesos concurrentes


depende del orden de ejecución

• Región crítica : Parte de un proceso en la que tiene acceso a un recurso crítico

• Recurso crítico : Recurso que solo puede ser utilizado por 1 proceso a la vez

Interacción
entre
procesos
2.0

Grado de conocimiento de Relación Influencia de un proceso en los otros Posibles problemas


los procesos de control
No tienen conocimiento de Competencia • Los resultados de un proceso • Exclusión
los demás son independientes de las mutua
acciones de los otros • Deadlock
• Los tiempos de los procesos • Starvation
pueden verse afectados
Tienen conocimiento Cooperación • Los resultados de un proceso • Exclusión
indirecto de los otros (por por pueden depender de la mutua
ejemplo, objetos compartimiento información obtenida de los • Deadlock
compartidos) otros • Starvation
• Los tiempos de los procesos • Coherencia
pueden verse afectados de datos
Tienen conocimiento Cooperación • Los resultados de un proceso • Deadlock
directo de los otros (hay por pueden depender de la • Starvation
disponibles unas primitivas comunicación información obtenida de los
de comunicación) otros
• Los tiempos de los procesos
pueden verse afectados

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).

Dos o + procesos cooperan por medio de


simples señales, de forma que se obliga a
un proceso a detenerse en un determinado
lugar a la espera de una señal específica.

Signal(S), V (S) o Up(S): Aumenta el


Semáforos valor del semáforo. Si el valor < 0 => se
3.1 desencola a un proceso que había
quedado bloqueado para que continúe.

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.

Un proceso entra en el monitor invocando a uno de sus procedimientos.

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.

Monitore Se proporcionan dos


s herramientas de
sincronización cwait(condicion); bloquea al proceso que llama a
atómicas la condición c. El monitor está ahora disponible
para ser usado por otro proceso.
csignal(condicion); reanuda la ejecución de un
proceso bloqueado por un cwait bajo la MISMA
El monitor tiene un único condición. Si no hay ninguno, no hace nada.
Puede ofrecer exclusión punto de entrada. Solo un
mutua fácilmente. proceso puede estar en el
monitor en cada instante.
El problema surge en:
Si el proceso no terminó su ejecució, se suspenderá
y luego se reanudará de nuevo (2 process switch).
La planificación de los procesos debe ser fiable,
Luego de hacer csignal(condicion) sale cuando se ejecuta un csignal(cond); hay que
garantizar que entre al monitor un proceso que se
Si el monitor está del monitor, si no está al final del quedó bloqueado por la condición (si hay) y no
programado OK, el acceso al procedimiento, el proceso que da la señal otro.
Para eso surge cnotify(cond); que indica que el proceso
recurso protegido es correcto se bloquea según Hoare. Se los sitúa en notifica a los demás que liberó la condición y continúa
para TODOS los procesos. una cola de urgentes para usar el monitor ejecutando, el elegido de la cola de blokeados por la
condición intentará entrar al monitor hasta que lo logrará.
por separado. Puede haber starvation si el proceso que notifica no sale
nunca del monitor, por eso se implementa un temporizador
que obliga al proceso a dejarle el monitor a quien pueda 31
ejecutarse.
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Paso de mensajes

Fácil de implementarse en sistemas distribuidos.


Se usan dos primitivas:
 Send(destino, mensaje)
 Receive(origen, mensaje)

La comunicación entre mensajes implementa un grado de sincronización.


Las funciones pueden ser blokeantes o no blokeantes
 Send blokeante y receive blokeante: Se conoce como rendezvous. Permite una fuerte sincronización entre procesos.
 Send no blokeante y receive blokeante: Esta es la combinación más útil.
 Send no blokeante y receive no blokeante: nadie espera nada.

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)

CAPITULO VI: “Concurrencia: deadlock y starvation”

Puede ser usado con


Exclusión seguridad por un proceso y
mutua: solo un no se agota con el uso. Ej:
Reutilizable
proceso puede Procesador, canal de E/S,
s
usar un recurso memoria principal,
cada vez. semáforos, etc
Recursos

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)

Exclusión mutua: no puede


anularse porque es necesaria.

Retención y esperar: se exige que


Directa: evita alguna todos los procesos soliciten de un saque
de las tres todos los recursos que necesiten y se
condiciones primeras. bloqueen hasta obtenerlos a TODOS.

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.

A cada recurso se le asocia un índice, si un


proceso tiene solo un recurso puede pedir
recursos con índice mayor.
34
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

NO INICIAR Se asume que todos los


UN PROCESO procesos expresan su
demanda máxima a la
Estado Seguro: existe vez.
al menos una
secuencia que no lleva
a deadlock. Todos los
procesos se pueden
ejecutar.
Estado inseguro: no
existe ninguna.

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)

recursos. Se tiene que cumplir además que:


ejecutar, hay un estado no seguro.
Ri ≥ E(ProcesoNuevo,Ri) ≥ A(ProcesoNuevo,Ri)
Permite mayor Hay que considerar que los
concurrencia que la procesos liberan TODOS los
prevención. recursos que usaron, o no
Los procesos NO deben finalizan
estar sincronizados.
35
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Marcar procesos con fila de matriz asignación nula.


Vector auxiliar W = Vector disponible.
Buscar un proceso no marcado que: su fila en la
matriz solicitud sea <= W , si no se encuentra a
ningún proceso => END.
W = W + MatrizFilaAsignacion, volver a 3.

Si algún proceso no queda marcado => DEADLOCK

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)

Estrategia Integrada de DeadLock:

o Agrupar los recursos en clases (memoria principal, recursos internos, etc).


o Ordenación líneal de las clases (prevención directa).
Cada clase emplea un algoritmo apropiado.

37
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CAPITULO VII: “Gestión de Memoria”

En un sistema multiprogramado, la memoria se divide en: SO y Área de usuario (para sus procesos).

Requisitos de la Gestión de Memoria: llevar a


gestión de cabo dinámicamente la tarea Carga y Montaje
memoria de subdividir a los procesos de Procesos
para facilitar la
multiprogramación y el
swapping.

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)

Un proceso no debe tener asignado un espacio fijo en la


memoria principal. Cuando es “Suspendido” y vuelto
luego a “Listo” debe poderse ubicar en otro espacio de
memoria.

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.

Cada proceso debe protegerse contra interferencias no


deseadas de otros procesos (accidental o intencionadas).

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.

Es respaldado por los mecanismos de reubicación.

Se debe tener la flexibilidad de permitir el acceso de


varios procesos a la misma zona de memoria principal,
sin comprometer la protección básica.
Compartimiento

Es respaldada por los mecanismos de reubicación.


39
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

La memoria principal se organiza como un espacio de


direcciones lineal que consta de una secuencia de bytes o
Organización lógica palabras.
La memoria secundaria se organiza de forma similar.
La mayoría de los programas se organizan en módulos.

El SO y el HW pueden tratar a los programas en memoria en


forma de módulos de algún tipo.

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.

La responsabilidad del flujo entre la memoria principal y la memoria


secundaria no se le asigna al programador porque:
En un entorno multiprogramado, durante la codificación no se conoce cuanto
espacio habrá disponible o donde estará el programa.
La memoria principal disponible para un programa y sus datos puede ser
insuficiente (se puede usar overlaying, pero gasta tiempo de programador).
40
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Fragmentación Interna: malgastar espacio dentro de una partición.

La memoria se divide en regiones con límites fijos durante la


generación del sistema. Un proceso se carga en una partición de
menor o igual tamaño.

De igual Algoritmo de ubicación: un


tamaño proceso se carga en
Tipos cualquier partición libre.

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

Poco overhead y sencillo La cantidad de procesos


de implementar. concurrentes está limitada por
Un programa puede no el número de particiones.
caber en la partición más
grande. Se debe usar
overlaying. 41
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

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.

Las particiones son variables en número y longitud. Cuando se carga un


proceso se le asigna exactamente tanta memoria como necesite, no más.

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

First-Fit: Recorre la memoria desde el principio y escorge la


primer partición donde quepa el proceso. Es el más sencillo y el
más rápido. Aunque asigna en el inicio de la memoria y la barre
Worst-Fit: Asigna el bloque continuamente.
más grande posible.

Next-Fit: Recorre la memoria desde el lugar de la última


ubicación y elige la siguiente partición donde quepa el proceso.
El bloque final de memoria se particiona más rapidamente.

42
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Es inferior a la paginación y segmentación, pero es útil


en sistemas paralelos con un eficiente método de
asignar y liberar programas en paralelo. Genera
fragmentación interna, e intenta mejorar la
fragmentación externa.

Partición de
memoria Buddy System

Me cae un proceso que ocupa X memoria.


Lo debo ubicar en un bloque tal que:
Si es = X, lo ubico tranka.
Si es > X, me fijo si lo puedo partir en 2 pedazos al bloque, tal
que en una mitad se pueda meter a X.
Si se libera un bloque que se había partido antes y tiene a
su buddy (colega) libre, se unen.

43
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Referencia a una posición de memoria independiente de la


asignación actual de la memoria.

Se debe hacer una traducción a una dirección física.


Dirección lógica

Caso particular de dirección lógica, se conoce un punto de dirección


física (en gral el comienzo del proa) y se referencia a un offset desde
ese punto.

Se necesita un mecanismo de HW para hacer una traducción a


una dirección física.
Tipos de
Dirección relativa
direcciones

Para obtener la dirección física:


RegistroBase + DirecciónRelativa < RegistroLímite
Sino se genera una excepción que el SO debe atender. Esto es
por protección.

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

La memoria principal se divide en un conjunto de pequeños frames de igual tamaño,


y cada proceso se divide en un conjunto de páginas de igual tamaño que los frames.

Paginación
Simple
Un proceso se carga situando sus páginas en
frames libres pero no necesariamente contiguos.

El SO mantiene por cada proceso una tabla de páginas (MPT)


El SO
mantiene una Se utilizan referencias a direcciones lógicas: NroPag|Offset
lista de
frames libres.
El tamaño de page y frame son potencia
de 2. La dirección relativa al inicio del
programa y la dirección lógica son
Bus de direcciones: n bits iguales.
el tamaño de la página 2k
k: nro de bits en el offset.
n-k: nro de bits por page.
2n-k nro de pages El procesador debe saber como acceder a la MPT del proceso.
Posee un registro para esto.
45
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

No hay fragmentación
interna.

Ventajas
Fragmentación externa, menor que
la partición dinámica.
Desventaja
s

Cada proceso se divide en una serie de segmentos (que pueden ser de


diferente tamaño). Se los carga situándolos en memoria principal y no tienen
porque ser contiguas.

Segmentació Se utilizan referencias a direcciones lógicas: Número de Segmento|Offset


n

El SO mantiene por cada proceso una tabla de segmentos.

El SO mantiene una lista de bloques libres con su longitud.

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

Código Objeto: código de programa y datos.


Carga: Llevar un único código objeto a memoria principal y crear una imagen de proceso.
Montaje: Toma como entrada una colección de módulos objeto y genera un módulo de carga.

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)

CAPITULO VIII: “Memoria Virtual”

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.

El principio de Todas las referencias de un proceso son


cercanía sugiere direcciones lógicas traducidas a físicas en tiempo
que este de ejecución. Así se puede reubicar un proceso.
esquema Avances de la paginación
funciona. y la segmentación

Un proceso puede dividirse en partes (páginas o


segmentos) que pueden estar dispersas en Memoria
Como resultado no será Principal
Memoria Virtual necesario que todas las
páginas o segmentos de un
proceso estén en Memoria
Principal durante la
ejecución.

Ventajas: El procesador con la tabla de páginas o segmentos, siempre es capaz de


Se pueden mantener determinar si una referencia está o no en el conjunto residente. Si encuentra una
más procesos en MP. referencia que no está en el conjunto residente genera una excepción “fallo de
Un proceso puede ser acceso a memoria” (en paginación Page Fault). Pone al proceso a “Bloqueado”
más grande que la , y trae a Memoria Principal la parte del proceso referenciada mediante una
MP. operación de E/S y puede expedir otro proceso.
Necesita soporte de
HW y el SO debe
gestionar los frames.
48
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Estructuras utilizadas en Paginación Virtual

MPT (Memory Page Table)


P M # Frame Bits de Control

Diferentes Páginas (es el subíndice)

Dirección Virtual o Lógica de Memoria:

NroPagina|Offset

Con el número de página, tenés el subíndice en la


MPT, luego obtenés el #Frame y la dirección física
es: NroFrame*TamañoPágina|Offset

Tamaño Página es 2cantidad_de_bits_para_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.

Tamaño de Página – Factores a considerar

1. Fragmentación interna: a menor tamaño de página, menos fragmentación interna y


más número de páginas => mayor grado de multiprogramación => más procesos
en la cola de listos. La MPT por proceso es más grande.
2. Características físicas de los dispositivos de memoria secundaria: Son propicios para
mayores tamaños de página, transfieren por bloques de datos.
3. Efecto en el Page Fault

4. Tamaño de la memoria física

49
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Estructura de la MPT (Memory Page Table)

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

Tabla de páginas Raiz: siempre


Estructura de la en MP y una por cada proceso.
MPT Esquema de 2
niveles
Dirección virtual:
OffsetTablaRaiz|OffsetUserTable|
Enfoque OffsetMP
s

Tabla de páginas Procesador tiene un registro que contiene un


invertidas puntero a la tabla raiz que se actualiza cuando se
carga el proceso.
Se emplea una HashTable. La parte de
número de página se le aplica la función
hash(x), el índice de la HashTable tiene un
puntero a Página de la Tabla Invertida, y Se emplea una parte fija para las
luego un campo encadenamiento a la tablas. Puede haber collision, se
siguiente página correspondiente. A la la soluciona con el
misma función hash. encadenamiento
50
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Segmentación Virtual – Implicaciones

o Simplifica la gestión de datos crecientes. Un segmento puede crecer y si toca a otro el


SO lo mueve a un área mayor. Si no puede hacerlo lo descarga y será devuelto en otro
momento.
o Los módulos pueden escribirse y compilarse independientemente. El sistema resuelve
las referencias entre módulos.
o Proporciona mecanismos de compartición de módulos.
o Proporciona mecanismos de protección entre módulos.

Dirección Virtual

NroSegmento|Offset

Estructura de la Tabla de Segmentos

P M Otros Bits de control Base de Segmento Long de Segment

PAGINACION Y SEGMENTACION COMBINADAS

El espacio de direcciones del usuario se divide en segmentos según el programador. Cada


segmento se divide en páginas.

Dirección Virtual

NroSegmento|NroPage|Offset

Algoritmo de traducción

1. Al ponerse en ejecución el proceso, se carga de la PCB un puntero a la tabla de


segmentos en un registro del procesador (SP – Segment Pointer).
2. Al llegar una dirección virtual: SP+NroSegmento obtengo un pointer a la base de
una de las tablas de páginas del proceso (la MPT), hay una MPT por segmento.
3. Luego hago, BaseMPT+NroPagina y puedo obtener el número de frame o Page
Fault :(
4. Si hago (NroFrame*TamañoDePagina)+Offset = DIRECCION FISICA POSTA!!!!

Estructuras

BitsControl Long Segment Base Segment P M Bits Control # Frame

51
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Software del SO
Emplear o no memoria
virtual

El diseño depende de… Uso de paginación,


Dependen del HW
segmentación o ambas.

Algoritmos empleados
para problemas de
gestión de memoria

Políticas de lectura: Relacionada


con la decisión de cuando se debe
TIPOS
cargar una página en MP.

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.

Para segmentación pura,


No es efectiva si las páginas extras
son los mismos que en
que se traen, no se referencian… se
Particiones dinámicas.
hizo una sobrecarga en la E/S al
dope.
Para paginación pura o
paginación con segmentación es
innecesaria. 52
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Software del SO (Continuación) – Políticas de Reemplazo

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 conjunto residente.


El núm. de frames asignados a un proceso es fijo,
determinado por el tipo de proceso, el programmer o el
admin. del SO

Asignación Fija y La página a reemplazar se elige del conjunto residente del


Alcance Local proceso que tuvo el Page Fault

Desventaja: Es necesario decidir por anticipado la cantidad de


memoria asignada a un proceso. Si te equivocaste, cagaste

Asignación Variable En un principio se le asigna un núm. de frames a


y Alcance Global cada proceso, manteniendo el SO frames libres.

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.

Si no hay más frames libres, la page a reemplazar se


En un principio se le elige de todos los frames excepto de los blocked.
asigna un núm. de
frames a cada
Asignación Variable proceso.
y Alcance Local Desventaja: No hay ninguna disciplina que determine
que proceso debe perder un frame cuando ya no hay
más frames libres. Se contrarresta con el
almacenamiento intermedio de pages, que sería tener
una lista de pages reemplazadas por si las dudas alguien
La página a reemplazar la referencia.
se elige del conj. De vez en cuando, se vuelve a
residente del proceso evaluar las asignaciones de
que tuvo el PageFault frames a los procesos. Se
aumenta o disminuye para
mejorar el rendimiento global 54
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Estrategias para equilibrar en Asignación Variable y Alcance Local

Tiempo virtual: tiempo en el que el proceso está realmente en ejecución, por ejemplo: ciclos de instrucciones.

Si un frame no fue referenciado en ∆ veces se lo saca del


conj. de trabajo
Conjunto de Trabajo: Conjunto de Si un frame se referencia y no está en el conj. de trabajo,
páginas calculadas en un instante de se lo agrega.
tiempo virtual T, a las que un
proceso ha hecho referencia en las
últimas ∆ unidades de tiempo virtual Supervisar el conjunto de trabajo
Estrategia de cada proceso.
motivada

Eliminar periódicamente frames que


no pertenezcan al conj .de trabajo.

Un proceso puede ejecutar si su conj.


Estrategias para
Desventaja residente incluye a su conj. de trabajo
Asignación Variable
s
y Alcance Local

El pasado no siempre predice al futuro.

Es impracticable una medida real del conj.


de trabajo para cada proceso.

El valor de es ∆ desconocido y puede variar.


55
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Estrategias para equilibrar en Asignación Variable y Alcance Local (continuación).

Se asocia un bit de uso a cada frame, que se pone en 1


cuando se lo accede.

PFF (Page Fault Frecuency):


se verifica cada T tiempo los Cuando se produce un PageFault el SO anota el tiempo
PFF de un proceso y se lo virtual (contadora) transcurrido desde el último PageFault
compara contra un umbral. de ese proceso

Si ese tiempo virtual es:


Estrategias para < a un umbral F => se le agrega un frame
Asignación Variable >= a un umbral F => se le quitan frames con
y Alcance Local bituso=0 y se ponen bituso=0 a todos los frames que
quedaron en el conj. residente.

Desventajas
Puede mejorarse con un umbral superior
para evitar el crecimiento.

Ningún frame se retira


antes de que pase F
Mejora aun más si se le pone un
unidades de tiempo.
Almacenamiento Intermedio de Páginas

No rinde cuando se produce un


desplazamiento a una nueva
ubicación.

56
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Estrategias para equilibrar en Asignación Variable y Alcance Local (continuación).

Grado de multiprogramación: Se refiere a la cantidad de procesos que pueden estar en MP.

Al comienzo de un intervalo de muestreo a los frames se le


ponen bitdeuso=0

Variable Interval Sampled


Working Set (VSWS): Si una página es referenciada => bitdeuso=1
Intenta solucionar el
fenómeno de transición entre
ubicaciones Si se produce un PageFault se agrega un frame y se setea la
page con bitdeuso=1

Estrategias para Al final del intervalo de muestreo se sacan los frames con bitdeuso=0
Asignación Variable
y Alcance Local

Control de Carga – Otra cosa medio loka que hace el SO

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)

Estrategias para Controlar la carga

El conjunto de trabajo o el PFF: solo se


puede ejecutar los procesos con conj. L: Tiempo medio entre PageFaults
residentes suficientemente grandes S: Tiempo medio exigido para procesar un PageFault.
Se deja de cargar procesos.

Criterio L = S

El uso del dispositivo


Estrategias para de paginación a 50%
50%
control de Carga

Si es < a umbral F
Reloj adaptado

Se controla Se producen pocos PageFaults o


su velocidad hay muchas páginas sin
Para bajar el grado de multiprogramación, referencias. Debe aumentar el
suspendo procesos. grado de multiprogramación.
¿Qué proceso saco?
El de prioridad menor.
El que tiene más PageFault. Si es >= a umbral
El que se cargó a lo último en MP. F
El que tiene el menor tamaño de conj.
residente.
El que tiene el mayor tamaño de conj.
residente. Se debe bajar el grado de multiprogramación.
Al que le falte el mayor tiempo de ejecución.

58
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CAPITULO IX: “Planificación en Monoprocesador”


Es recomendable ver la figura 9.2 de la página 386 de st.

Planificador de E/S: decisión


sobre que petición de E/S
será tratada por un dispositivo
de E/S disponible.

Planificador de Largo Plazo:


Organizar a los procesos que
Planificación de van a ingresar al sistema.
Monoprocesadores: consiste en Decisión de pasar:
asignar los procesos al De “Nuevo” a cualquiera, y de
procesador de forma de cumplir Tipos cualquiera a “Terminado”
el tiempo de respuesta, la
productividad y la eficiencia del
procesador.

Criterios de Planificador de Media Plazo: Se encarga del


Planificación swapping de los procesos.
(a corto plazo). Decisión de pasar:
Cualquiera a “Bloqueado y Suspendido” y
Planificador de Corto Plazo: El famoso Cualquiera a “Listo y Suspendido”, y
Dispatcher que determina que proceso va a viceversa.
tomar el CPU.
Decisión de pasar:
De Cualquiera a “Ejecutado”.

59
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Criterios orientados al Usuario


De rendimiento Tiempo de retorno Intervalo entre el lanzamiento
(Turnarround Time) de un proceso y su finalización.
Turnarround Time = Tiempo de
Finalización – Tiempo de
Llegada
De rendimiento Tiempo de respuesta Intervalo entre que se emite
(responsive Time) una solicitud y se recibe una
respuesta.
De rendimiento Plazos Se deben cumplir los plazos de
finalización especificados.
Otros Previsibilidad Un Trabajo se debe ejecutar
aprox. en el mismo tiempo y
con el mismo coste.
Criterios orientados al Sistema
De rendimiento Productividad Maximizar el núm. de procesos
terminados por unidad de
tiempo.
De rendimiento Utilización del procesador Maximizar el tiempo que está
ocupado el procesador.
Otros Equidad Los procesos deben ser
tratados de igual forma y
ninguno debe sufrir starvation.
Otros Prioridades Se debe favorecer a los de
mayor prioridad.
Otros Equilibrio de Recursos Se debe mantener ocupados los
recursos del sistema.

Algoritmos de planificación en el dispatcher

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.

Algoritmo Tipo Descripción


FCFS (First Come First Serve) Non-Preemtive Es un FIFO apestoso.
PRI (Prioridades) Puede ser cualquiera. Se ejecuta al proceso con más
prioridad. El algoritmo varía si
es o no Preemtive.
RR (Round Robin) Preemtive Se basa en un Quantum (Q), se
trata a la cola de listos como un
FIFO, se ejecuta un proceso y se
lo saca del procesador si se le
acaba el Q o se bloquea antes
que se le acabe.
SPN (Shortest Process Next) Non-Preemtive Se ejecuta al proceso de la cola
de listos con mayor Burst de
CPU.
SRT (Shortest Remaing Time) Preemtive Se ejecuta al proceso de la cola
(Solo en los momentos de de listos que le quede el menor
llegada de nuevos proc.) Burst de CPU.
HRRN (Highest Response Ratio Non-Preemtive Se elige al que tenga el menor
Next) R = (w + s)/s
VRR (Virtual Round Robin) Preemtive Es como un RR, solo que si un
proceso se bloquea por una E/S
y no termino su Q, pasa a una
cola auxiliar luego de
desbloquearse por la E/S, donde
ejecuta el Q que le restaba

60
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

ejecutar. La cola auxiliar tiene


más prioridad de ejecución.
FeedBack Preemtive Maneja muchas colas de listos
con prioridad N.
Cuando un proceso ingresa al
sistema, se mete en la cola RQ0
que es la que tiene más
prioridad.
Luego de que un proceso se
ejecute, pasa a la cola de RQn+1
(la siguiente con menor
prioridad).
Cada proceso puede ejecutar el
mismo Q, o diferentes Q según
la cola “i” en la que esté = 2i

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)

CAPITULO X: “Planificación en Multiprocesador”


Este capítulo tiene MUCHA trash.
Granularidad: frecuencia de sincronización entre los procesos del sistema.

Tipos de Granularida Asignación de procesos


Multiprocesadore d a los procesadores
s

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

Ningún procesador posee ninguna ventaja física en el


acceso a la MP o dispositivos de E/S. Se tratan a los
procesadores como un recurso reservado.

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

Sobrecarga menor. Permite la


Asignación de procesos Ventajas planificación por grupos.
a los procesadores

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

El SO se ejecuta en El Master es el responsable de la planificación y de la


cualquier procesador. Cada ejecución del SO. El resto de los procesadores
procesador se autoplanifica. ejecutan programas de usuarios. 63
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Uso de Multiprogramación en cada procesador

Grano Grueso o
Mejora el rendimiento con la multiprogramación.
independiente

Uso de
multiprogramación
en cada procesador

No resulta tan importante que cada procesador esté


Grano medio ocupado al máximo. Se debe tratar de obtener el
mejor rendimiento para las aplicaciones.

Expedición real de los procesos

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

Al ejecutarse varios threads en diferentes procesadores se obtiene un paralelismo


real y aumenta drásticamente el rendimiento.

Aunque si los threads exigen una considerable interacción (grano medio),


diferencias en la planificación y gestión tienen un impacto importante.

Se mantiene una cola global de threads listos


Reparto de y cada procesador cuando está ocioso,
METODOS
Carga selecciona un thread de la cola.

Planificación de La carga se distribuye uniformemente.


Threads Ningún procesador estará ocioso.
Ventajas

No es necesario un planificador centralizado.


Tipos
Desventaja
FCFS s
La cola global puede organizarse y accederse
a ella mediante diferentes algoritmos.
Primero el de menor
número de threads
Primero el de (Preemtive). Se
menor número ejecuta al llegar un La cola central ocupa región de MP que se
de threads nuevo thread. debe acceder mediante exclusión mutua y
puede convertirse en un cuello de botella.

Es improbable que los threads expulsados


reanuden su ejecución en el mismo
procesador. La Caché será menos eficiente. 65
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Continuación de planificación de threads – Métodos

Se planifica un conjunto de threads afines para su ejecución con un


conjunto de procesadores uno a uno, esto es simultáneamente.

Se reducen los bloqueos por sincronización, se necesitan


menos context switch y esto incrementa el rendimiento. Esto es
porque los procesos próximos se ejecutan en paralelo.

Ventajas
Planificación
Métodos por grupos

Se reduce el overhead de planificación. Una decisión afecta a


varios procesos y procesadores.

División de tiempo
del procesador

Uniforme: a cada grupo Por pesos: a cada grupo se le asigna


se le asigna 1/num.grupos cantthreadsdegrupo/canthreadstotale
del tiempo disponible de s
los procesadores.

66
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

Continuación de planificación de threads - Métodos

Es una planificación por grupos pero además:


Se asigna a cada thread un procesador fijo hasta que
Asignación termine.
dedicada de No hay multiprogramación de procesadores.
procesadores Se dedica un grupo de procesadores a una aplicación
mientras dura.

En un sistema con muchos procesadores la utilización


Métodos del procesador no es importante como medida de
rendimiento.
Observaciones

La anulación total del Context Switch en la ejecución


de un programa acelera la ejecución.

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.

Al liberarse un procesador: se explota


las peticiones no satisfechas => se Si hay procesadores desocupados se usan para satisfacer la petición.
asigna un procesador a cada trabajo sin
procesador. Después se asigna al resto Política de
de procesadores mediante FIFO a los asignación de
procesos en cola. procesadores
Si el trabajo está recién llegado se le asigna un procesador quitándoselo a
otro proceso que tenga más de uno (en caso de que todos los
procesadores estén ocupados).

Si no se satisface parte de una petición quedan


pendiente hasta que un procesador se libere o hasta
que se anule la petición. 67
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

PLANIFICACIÓN EN TIEMPO REAL (SUELEN TOMARLO EN TEORIA DE FINALES)

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

CARACTERISTICAS DE UNA PLANIFICACION DE TIEMPO REAL

1. Cambio rápido de procesos o threads


2. Pequeño tamaño del SO (con mínima funcionalidad asociada).
3. Rápida respuesta a interrupciones externas.
4. Multitarea con herramientas de comunicación entre procesos.
5. Uso de archivos secuenciales especiales (de alta velocidad).
6. Planificación preemptive con prioridades.
7. Reducción de tiempo de inhabilitación de interrupciones.
8. Primitivas para demorar tareas y detenerlas y reanudarlas.
9. Alarmas especiales y temporizadores.

PLANIFICACION EN TIEMPO REAL


Dependen de si lleva a cabo un análisis de planificación, si la planificación es estática o
dinámica y si el resultado del análisis genera un plan de expedición de procesos.

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)

 RMS (monotona por frecuencia): la tarea de más alta prioridad es la del


período más corto. La 2º es la del 2º período más corto y asi asi amén.

69
Resumen de SO – 2006 ( by Damián Nardelli & Rodrigo Velaz)

CUALQUIER DUDA LES DEJO MSN:

 damian@sion.com
 rodri_y2k@hotmail.com

pregunten lo que no entiendan, no les quede claro, de práctica, de lo que se


les cante, si arman fiestas inviten… si sos mina y sos linda agreganos tmb, si
tenés apuntes de otra materia agreganos tmb!!!

Con respecto a lo de Security… chequeen el FORO ya que hay una resolución


de “Nadia ;o)” (un jpg) muy bueno!!!!!!!

GOOD LUCK!

70

You might also like