Você está na página 1de 85

RESUMEN DE SISTEMAS OPERATIVOS

CAPTULO 1: INTRODUCCIN A LOS COMPUTADORES


El SO explota los recursos de uno o ms procesadores para proporcionar un conjunto de
servicios a los usuarios del sistema.

1.1. ELEMENTOS BSICOS


Hay cuatro elementos estructurales principales:
o Procesador: Controla el funcionamiento y procesa los datos
o Memoria principal: almacena datos y programas (real o primaria)
o Mdulos de E/S: transfieren datos entre el computador y el entorno
o Bus del sistema: proporciona comunicacin entre los procesadores, la memoria y
los mdulos de E/S
El procesador intercambia datos con la memoria para lo que utiliza dos registros internos:
registro de direccin de memoria (RDIM) y un registro de datos (RDAM), un registro de
direccin de E/S (RDIE/S), un registro de datos de E/S (RDAE/S).
Un mdulo de E/S transfiere datos desde los dispositivos externos hacia el procesador y la
memoria mediante buffers (zonas de almacenamiento internas)

1.2. REGISTROS DEL PROCESADOR


Un procesador incluye un conjunto de registros que proporcionan un tipo de memoria que
es ms rpida y de menor capacidad que la memoria principal.
Los registros del procesador sirven para:
o Registros visibles para el usuario
o Registros de control y estado

REGISTROS VISIBLES PARA EL USUARIO


Estos son generalmente el registro de datos, de direccin y de cdigo de condicin.
El registro de direccin contiene direcciones de memoria principal de datos e instrucciones,
o una parte de la direccin que se utiliza para el clculo de la direccin efectiva.
o Registro ndice
o Puntero de segmento
o Puntero de pila

REGISTROS DE CONTROL Y ESTADO


Contador de programar (PC): contiene la direccin de la prxima instruccin que se leer
de memoria.
Registro de instruccin (IR): contiene la ltima instruccin leda
Palabra de estado del Programa (PSW): contiene informacin de estado, normalmente
cdigo de condicin, bit de habilitacin de interrupciones y bit de modo
Cdigos de condicin (indicadores): se usan para la realimentacin del resultado de la
ejecucin de una instruccin.
Registros de interrupciones
El diseo de la organizacin del registro de control y estado influye en: proporcionar apoyo
al SO, repartir informacin de control entre los registros y la memoria.

1.3. EJECUCIN DE INSTRUCCIONES

Un programa que va a ejecutarse en un procesador consta de un conjunto de instrucciones


almacenadas en memoria.
Ciclo de instruccin: al procesamiento requerido por una nica instruccin.

BSQUEDA Y EJECUCIN DE UNA INSTRUCCIN


Al principio de cada ciclo de instruccin el procesador lee una instruccin de la memoria y
luego incrementa el PC.
La instruccin leda se carga dentro del IR. El procesador la interpreta y ejecuta.
Las acciones puede ser de:
o Procesador-memoria
o Procesador-E/S
o Procesamiento de datos
o Control: instruccin que especifica que se va a alterar la secuencia de ejecucin

1.4. INTERRUPCIONES
Pueden interrumpir la secuencia normal del procesador.
Constituyen una manera de mejorar la utilizacin del procesador
Clases de interrupciones:
o De programa: generada por alguna condicin que se produce como resultado de la
ejecucin de una instruccin.
o Por temporizador
o De E/S: generada por un controlador de E/S para sealar la conclusin normal de
una operacin o para indicar diversas condiciones de error
o Por Fallo del HW

INTERRUPCIONES Y EL CICLO DE INSTRUCCIN


Gracias a las interrupciones el procesador puede dedicarse a ejecutar otra instruccin
mientras se lleva acabo una operacin de E/S.
Cuando el dispositivo externo esta listo el mdulo de E/S de este dispositivo manda una
peticin de interrupcin al procesador. El procesador responde suspendiendo la ejecucin,
saltando al manejador de interrupciones y reanudando despus de haber atendido al
dispositivo.
Para tratar las interrupciones, se aade una fase de interrupcin al ciclo de instruccin. En
esta fase, el procesador comprueba si se ha producido cualquier interrupcin. Si la hay
ejecuta el manejador de interrupciones y sino sigue su ejecucin normal.

PROCESAMIENTO DE INTERRUPCIONES
123456789-

Seal de interrupcin
El procesador termina la ejecucin de la instruccin actual
El procesador comprueba si hay peticiones de interrupcin pendientes
Salva el estado del programa actual
El procesador carga el contador del programa con la posicin del punto de entrada de la
rutina de manejo de la interrupcin.
El manejador de interrupciones salva todo el contenido de los registros de pila
Comienza el manejador a ejecutar
Se recuperan los valores de los registros salvados
Se recupera el valor del PSW y del controlador del programa.

MLTIPLES INTERRUPCIONES
2

Alternativas a considerad para tratar mltiples interrupciones:


o Inhabilitar la interrupcin mientras se est procesando una interrupcin (las
interrupciones se manejarn en orden secuencial).
Desventaja: no tiene en cuenta la prioridad
o Definir prioridades para las interrupciones y permitir que una interrupcin de ms
prioridad cause que se interrumpa una de menor prioridad.

MULTIPROGRAMACIN
Permitir que mltiples programas de usuario estn activos al mismo tiempo para mejorar la
utilizacin del procesador.
Cuando el procesador trata con varios programas, la secuencia en la que se ejecutan los
programas depender de su prioridad relativa.

1.5. LA JERARQUA DE MEMORIA


Se utiliza para alcanzar un rendimiento mximo la memoria debe ser capaz de mantener el
ritmo del procesador.
La memoria principal se amplia con una cach, no visible al programador ni al procesador.
Se trata de un dispositivo que controla el movimiento de datos entre la memoria principal y
los registros de procesador con objeto de mejorar el rendimiento.
La memoria no voltil externa se denomina tambin memoria secundaria o auxiliar, para
proporcionar una extensin de la memoria principal conocida como memoria virtual.
Se pueden aadir nivel es adicionales pro software. Por ejemplo la tcnica de cach de
disco (utilizar una parte de la memoria principal para almacenamiento intermedio), que
permite que las escrituras en el disco puedan agruparse, y un programa puede acceder a los
datos antes del volcado.

1.6. MEMORIA CACH


MOTIVACIN

La velocidad en la que el procesador puede ejecutar instrucciones est claramente limitada


por el tiempo de ciclo de la memoria. La solucin consiste en aprovechar el principio de
proximidad utilizando una memoria pequea y rpida entre el procesador y la memoria
principal: cach.

FUNDAMENTOS DE LA CACH

El propsito es proporcionar un tiempo de acceso a memoria prximo al de las memorias


ms rpidas disponibles y ofrecer un tamao de memoria grande con bajos costos.
La cach contiene una copia de una parte de la memoria principal, as se accede ms rpido
La memoria principal consta de M=2n/K bloques. La cach consiste en C huecos de K
palabras cado uno. Cada hueco incluye una etiqueta que identifica qu bloque en concreto
se almacena actualmente y la referencia a todas las direcciones que comienzan con esa
secuencia de bits.

DISEO DE LA CACH
Elementos fundamentales:
o Tamao: una cach de un tamao razonablemente pequeo puede tener un impacto
significativo en el rendimiento
o Tamao del bloque: la tasa de aciertos aumentar debido al principio de
proximidad.

o
o
o

Funcin de correspondencia: determina qu posicin de la cach ocupar el bloque.


Cuanto ms flexible es la funcin de correspondencia, mayor grado de libertad a la
hora de disear un algoritmo de reemplazo que maximice la tasa de aciertos.
Algoritmos de reemplazo
Poltica de escritura.

1.7. TCNICAS DE COMUNICACIN DE E/S


E/S PROGRAMADA
El mdulo de E/S realiza la accin solicitada y fija los bits correspondientes en el registro
de estado, pero no realiza ninguna accin para avisarla al procesador. El procesador
comprueba peridicamente el estado del mdulo de E/S hasta que encuentra que se ha
completado la operacin.
Con esta tcnica el procesador es responsable de extraer los datos de la memoria principal
en una operacin de salida y de almacenarlos en una operacin de entrada.
El juego de instrucciones incluye:
o Control
o Estado
o Transferencia

E/S DIRIGIDA POR INTERRUPCIONES


Para solucionar el problema de la tcnica anterior de que el procesador tiene que esperar
mucho tiempo se genera una alternativa donde el procesador genere un mandato de E/S
para un mdulo y continu realizando algn otro trabajo. El mdulo de E/S interrumpir
ms tarde al procesador para solicitar su servicio.
Aun as consume mucho tiempo del procesador porque todo tiene que pasar por el
procesador.

ACCESO DIRECTO AS MEMORIA


Cuando el procesador desea leer o escribir un bloque de datos genera un mandato al mdulo
de DMA, envindole:
o Si es lectura o escritura
o El dispositivo involucrado
o La posicin inicial de memoria a tratar
o El nmero de palabras que se pretenden leer o escribir
El procesador contina ejecutando y el DMA transfiera datos desde o hacia la memoria sin
involucrar al procesador. El procesador solo esta involucrado al principio y al final.

CAPTULO 2: INTRODUCCIN A LOS SISTEMAS OPERATIVOS


2.1. OBJETIVOS Y FUNCIONES DE LOS SISTEMAS OPERATIVOS
Un SO es un programa que controla la ejecucin de aplicaciones y programas y que acta
como interfaz entre las aplicaciones y el HW. Tiene los siguientes objetivos:
o Facilidad de uso del computador
o Eficiencia: permite la utilizacin eficiente de los recursos
o Capacidad para evolucionar.

EL SISTEMA OPERATIVO COMO UNA INTERFAZ DE USUARIO/COMPUTADOR


El SO oculta los detalles del HW al programador y le proporciona una interfaz apropiada
para utilizar el sistema.

Proporciona servicios en:


o Desarrollo de programas
o Ejecucin de programas: se necesita realizas una serie de paso para ejecutar un
programa. Las instrucciones y los datos se deben cargar en memoria principal. Los
dispositivos de E/S y los ficheros se deben inicializar, y otros recursos deben
prepararse.
o Acceso a dispositivos de E/S
o Acceso controlado a los ficheros: el SO debe reflejar una comprensin detallada de
la naturaleza del dispositivo y la estructura de datos almacenada. Proporciona
mecanismos de proteccin
o Acceso al Sistema
o Deteccin y respuesta de Errores: el SO debe proporcionar una respuesta que
elimine la condicin de error, suponiendo el menor impacto en las aplicaciones que
estn en ejecucin.
o Contabilidad: recoger estadsticas de uso de los diferentes recursos y monitorizar
parmetros de rendimiento

EL SISTEMA OPERATIVO COMO GESTOR DE RECURSOS


Un computador es un conjunto de recursos que se utilizan para el transporte,
almacenamiento y procesamiento de los datos, as como para llevar acabo el control de
estas funciones. El SO gestiona estos recursos.
El SO dirige el procesador en el uso de los otros recursos del sistema y en la temporizacin
de la ejecucin de otros programas.
El SO deja el control para que el procesador puede realizar trabajo til y de nuevo retoma el
control para permitir al procesador que realice la siguiente pieza de trabajo.
Un porcin del SO se encuentra en memoria principal. Esto incluye el kernel que contiene
las funciones del SO ms frecuentemente utilizadas y las actualmente en uso.

FACILIDAD DE EVOLUCIN DE UN SISTEMA OPERATIVO


Un sistema operativo debe evolucionar en le tiempo por las siguientes razones:
o Actualizacin de HW ms nuevos tipos de HW
o Nuevos servicios
o Resolucin de fallos
El SO debe tener un diseo modular, con interfaces entre mdulos claramente definidas y
debe estar bien documentado.

2.2. LA EVOLUCIN DE LOS SISTEMAS OPERATIVOS


PROCESAMIENTO EN SERIE
El programador interaccionaba directamente con el HW
Estos sistemas presentaban dos problemas principales:
o Planificacin: utilizaban una plantilla impresa para preservar tiempo de mquina
o Tiempo de configuracin: un nico programa, trabajo, poda implicar la carga en
memoria del compilador y del programa en lenguaje de alto nivel y a continuacin
la carga y el enlace del programa objeto y las funciones comunes.
Los usuarios acceden a la computadora en serie

SISTEMAS EN LOTES SENCILLOS


La idea central es el uso de una pieza de SW llamada monitor.

El usuario enva un trabajo, a travs de una tarjeta o cinta al operador del computador, que
crea un sistema por lotes con todos los trabajaos enviados y coloca la secuencia de trabajos
en el dispositivo de entrada para que lo utilice el monitor. Cuando el programa finaliza,
devuelve el control al monitor, y el monitor carga el siguiente programa.
Anlisis:
o Punto de vista del monitor: el monitor controla la secuencia de eventos. Una parte
siempre esta en memoria y se llama monitor residente. El monitor lee un trabajo, se
coloca en el rea de programa de usuario y se le pasa el control. Cuando finaliza se
devuelve el control al monitor.
o Punto de vista del procesador: En un cierto punto el procesador ejecuta
instrucciones de la zona de memoria principal que contiene el monitor. El
procesador entonces ejecutar loas instrucciones del programa usuario hasta que
encuentre una condicin de finalizacin o de error.
El monitor realiza una funcin de planificacin: en una cola se sita un lote de trabajos, y
los trabajos se ejecutan lo ms rpido posible.
En cada uno de los trabajos se incluye un conjunto de instrucciones en algn formato
primitivo de lenguaje de control de trabajos (JCL).
El monitor es simplemente un programa, este confa en la habilidad del procesador para
cargar instrucciones.
Son deseables caractersticas de HW:
o Proteccin de memoria
o Temporizador
o Instrucciones privilegiadas
o Interrupciones
Se utiliza un modo usuario y un modo ncleo.

SISTEMAS EN LOTES MULTIPROGRAMADOS


El problema consiste en que los dispositivos de E/S son lentos comparados con el
procesador.
Cuando un trabajo necesita esperar por la E/S, se puede asignar el procesador al otro
trabajo: enfoque multiprogramacin o multitarea.
El HW debe soportar interrupciones de E/S y DMA.
Para tener varios trabajos listos para ejecutar, stos deben guardarse en memoria principal,
requiriendo alguna forma de gestin de memoria y un algoritmo de planificacin.

SISTEMA DE TIEMPO COMPARTIDO


La multiprogramacin tambin se puede utilizar para gestionar mltiples trabajos
interactivos, as como la interaccin del usuario directamente con la mquina: la tcnica se
llama multiprogramacin porque se comparte el tiempo entre mltiples usuarios.
Mltiples usuarios acceden simultneamente al sistema a travs de terminales, siendo el SO
el encargado de entrelazar la ejecucin de cada programa de usuario en cuantos.
Para minimizar el trfico de disco, la memoria de usuario slo es escritura a disco cuando el
programa entrante la sobrescribe.
Se deben solucionar los problemas de proteccin de ficheros y memoria.

Objetivo principal

Multiprogramacin en Lotes
Maximizar el uso del procesador

Fuentes de directivas al SO

Mandato del lenguaje de control

Tiempo Compartido
Minimizar el tiempo de
respuesta
Mandatos introducidos al

de trabajos proporcionado por el


trabajo

terminal

2.3. PRINCIPALES LOGROS


Cinco principales avances tericos en el desarrollo de SO:
o Procesos
o Gestin de memoria
o Proteccin y seguridad de la informacin
o Planificacin y gestin de los recursos
o Estructura del sistema

PROCESOS
Contribuyeron a la creacin de procesos: operaciones en lotes multiprogramados, tiempo
compartido, sistemas de transacciones de tiempo real.
Multiprogramacin: el mecanismo clave es: en respuesta a las seales que indican la
finalizacin de las transacciones de E/S, el procesador es planificado para los diferentes
programas que residen en memoria principal
Tiempo compartido: objetivo clave del diseo es responder a las necesidades del usuario y
ser capaz de soportar muchos usuarios simultneamente.
Tiempo Real: los usuarios pueden estar comprometidos en el desarrollo de programas, la
ejecucin de trabajos t el uso de varias aplicaciones.
Las principales herramientas disponibles para programadores de sistemas para el desarrollo
de la inicial multiprogramacin y los sistemas interactivos multiusuarios fue la interrupcin.
La programacin acuda al mtodo ad hoc basado en comprensin del entorno que el SO
tena que controlar. En este enfoque existen cuatro causas de errores:
o Inapropiada sincronizacin
o Violacin de la exclusin mutua
o Operaciones no deterministas de un programa: el orden en que diversos programas
se planifican pueden afectar a la salida de cualquier programa particular.
o Interbloqueos
Lo que se necesita para enfrentar a estos problemas es una forma sistemtica de monitorizar
y controlar la ejecucin de varios programas en el procesador. El concepto de proceso
proporciona los fundamentos. Se puede considerar que un proceso est formado por tres
componentes:
o Un programa ejecutable
o Los datos asociados que necesita el programa
o Un contexto de ejecucin del programa: conjunto de datos internos por el cual el
SO es capaz de supervisar y controlar el proceso.
El proceso puede verse como una estructura de datos.
Un proceso puede estar en ejecucin o esperando ejecutarse.
El estado completo del proceso en un instante dado se contiene en su contexto.

GESTIN DE MEMORIA
El SO tiene 5 responsabilidades principales de gestin de almacenamiento:
o Aislamiento de procesos
o Aislamiento y gestin automtica: los programas deben tener una asignacin
dinmica de memoria por demanda.
o Soporte de programacin modular dinmicamente

Proteccin y control de acceso: debe permitir que varios usuarios accedan de


distintas formas a porciones de memoria.
o Almacenamiento a largo plazo
Esto se logra con memoria virtual. Y el almacenamiento a largo plazo con ficheros (unidad
til de control de acceso y proteccin para los SO).
La memoria virtual es una utilidad que permite a los programas direccionar la memoria
desde un punto de vista lgico, sin importar la cantidad de memoria principal fsica que
dispone.
Debido a que los procesos varan en tamaos es difcil almacenarlos completamente en
memoria principal por lo que se introdujeron los sistemas de paginacin que permite que
los procesos se compriman en pginas.
Cuando un proceso est en ejecucin alguna de sus pginas se encuentran en memoria
principal y si no esta y se necesita se carga.
El aislamiento de los procesos se puede lograr dando a cada proceso una nica rea de
memoria virtual. Y la comparticin puede lograrse solapando espacios.
o

PROTECCIN Y SEGURIDAD DE INFORMACIN


Cuatro categoras:
o Disponibilidad: relacionado con la proteccin del sistema frente a las interrupciones
o Confidencialidad
o Integridad de los datos
o Autenticidad

PLANIFICACIN Y GESTIN DE RECURSOS


Cualquier asignacin de recursos y poltica de planificacin debe tener en cuenta tres
factores:
o Equitatividad
o Respuesta diferencial: un SO debe tomar decisiones de asignacin y planificacin
con el objetivo de satisfacer el conjunto total de requisitos.
o Eficiencia
El SO mantienen un nmero de colas, cada una de las cuales es simplemente una lista de
procesos esperando por algn recurso.
La cola de corto plazo est compuesta por procesos que se encuentran en memoria
principal. La responsabilidad del planificador a corto plazo, el dispatcher, es elegir que
proceso ejecutar. Estrategia es el RR (round-robin), prioridades.
Una cola a largo plazo es una lista de nuevos trabajos esperando a utilizar el procesador. El
SO aade trabajos al sistema transfiriendo un proceso a la cola de corto plazo.
Cola de dispositivos.
Luego de una interrupcin se llama al dispatcher para elegir al prximo proceso.

ESTRUCTURA DEL SISTEMA


Para gestionar la complejidad de los sistemas operativos el SW debe ser modular. Los
mdulos deben tener interfaces bien definidas y deben ser tan sencillas como sea posible.
La estructura jerrquica de un SO moderno separa sus funciones de acuerdo a las
caractersticas de su escala de tiempo y su nivel de abstraccin. Se puede ver como una
serie de niveles, cada nivel realiza un subconjunto relacionado de funciones requeridas por
el SO.

Nivel
13

Nombre
Intrprete de mandatos

Objetos
Entorno de programacin de
usuario
Procesos de usuario
Directorios

12
11

Procesos de usuario
Directorios

10

Dispositivos

Sistema de ficheros

Dispositivos externos como


impresoras, pantallas y teclado
Ficheros

Comunicaciones

Tuberas

7
6
5

Memoria virtual
Almacenamiento
secundario local
Procesos primitivos

Interrupciones

Procedimientos

Conjunto de
instrucciones

Circuitos electrnicos

Segmentos, pginas
Bloques de datos, canales
dispositivos
Procesos primitivos,
semforos, lista de procesos
listos
Programas de gestin de
interrupciones
Procedimientos, pila de
llamadas, registros de
activacin
Pila de evaluacin, intrprete
de microprogramas, datos
escalares y vectoriales
Registros, puertas, buses, etc.

Ejemplos de operaciones
Sentencias de lenguaje del
intrprete de mandatos
Salir, matar, suspender, continuar
Crear, destruir, insertar, entrada,
eliminar entrada, buscar, listar
Abrir, cerrar, leer, escribir
Crear, destruir, abrir, cerrar, leer,
escribir
Crear, destruir, abrir, cerrar, leer,
escribir
Leer, escribir, cargar
Leer, escribir, asignar, liberar
Suspender, continuar, esperar,
sealizar
Invocar, enmascarar,
desenmascarar, reintentar
Marcar la pila, llamar, retornar.
Cargar, almacenar, sumar, restar,
saltar
Poner a 0, transferir, activar,
complementar

Los cuatro primeros constituyen el HW del procesador


El nivel 5 se corresponde con el SO
Comenzando con el nivel 8, el SO trata con objetos externos como dispositivos perifricos
y posiblemente redes y computadoras conectados a la red.
Nivel 8: pipe es un canal lgico para el flujo de datos entre los procesos. Una tubera se
define por su salida de un proceso y su entrada en otro proceso. Se puede tambin utilizar
para enlazar dispositivos externos o ficheros a procesos.
Nivel 11: el identificador externo es un nombre que puede utilizar una aplicacin o usuario.
El identificador interno es una direccin de otro identificador que puede utilizarse por parte
de los niveles inferiores del SO para localizar y controlar un objeto.
Nivel 13: la interfaz del sistema operativo al usuario se llama shell porque separa al usuario
de los detalles de los SO y presenta el SO como una coleccin de servicios.

2.4. DESARROLLOS QUE HAN LLEVADO A LOS SISTEMAS OPERATIVOS MODERNOS


La velocidad de cambio en las demandas de los SO requiere no solo modificaciones en
arquitectura sino tambin nuevas formas de organizar el SO
o Arquitectura micro ncleo: asigna solo unas pocas funciones esenciales al ncleo,
incluyendo los espacios de almacenamiento comunicacin entre procesos (IPC) y la
planificacin bsica. Ciertos procesos proporcionan otros servicios del SO que
ejecutan en modo usuario y son tratados como cualquier otra aplicacin por el
micro ncleo.
o Multihilo: es una tcnica en el cual un proceso, ejecutando una aplicacin se divide
en una serie de hilos o threads que puede ejecutar concurrentemente. Es til para

aplicaciones que llevan a cabo un nmero de tareas esencialmente independientes


que no necesitan ser serializadas.
Hilo: unidad de trabajo, incluyendo el contexto del procesador y su propia
rea de datos para una pila
Proceso: una coleccin de uno o ms hilos y sus recurso del sistema
asociados. Dividiendo una sola aplicacin en mltiples hilos, el
programador tiene gran control sobre la modularidad de las aplicaciones y
la temporalizacin de los eventos relacionados con la aplicacin.
o Multiprocesamientos simtrico: sistema de computacin aislado con las siguientes
caractersticas:
Tiene mltiples procesadores
Los procesadores comparten las mismas unidades de memoria principal y
de E/S, interconectadas por un bus de comunicacin.
Todos los procesadores pueden realizar las mismas funciones
Planifica procesos o hilos a travs de todos los procesadores.
Ventajas:
Rendimiento: ms de un proceso puede ejecutarse simultneamente
Disponibilidad: el fallo de un solo procesador no afecta
Crecimiento incremental
Escalado
o SO distribuidos: proporciona la ilusin de un solo espacio de memoria principal y
un solo espacio de memoria secundario, ms otras utilidades de acceso unificadas.
o Diseo Orientado a Objetos: introduce una disciplina al proceso de aadir
extensiones modulares a un pequeo ncleo. A nivel del SO, permite a los
programadores personalizar un SO sin eliminar la integridad del sistema.

PARTE II: PROCESOS


Una tarea fundamental de cualquier SO moderno es la gestin de procesos. El SO debe
reservar recursos para los procesos, permitir a los mismos compartir e intercambiar
informacin, proteger recursos de cada uno de ellos del resto, y permitir la sincronizacin.
El SO debe mantener una estructura de cada proceso que permita controlarlos.
En un monoprocesador multiprogramado varios procesos se pueden intercalar. En un
multiprocesador tambin pueden haber mltiples procesos que se ejecuten en forma
simultnea

CAPTULO 3: DESCRIPCIN Y CONTROL DE PROCESOS


El objetivo de los SO tradiciones es la gestin de procesos.
El SO mantiene una estructura de datos compleja que describe cada proceso.
El SO debe realizar las operaciones de planificacin y proporcionar servicio para la
comparticin entre procesos y la sincronizacin

CAPTULO 4: HILOS, SMP Y MICRO NCLEOS


Los procesos de dividen en dos partes: la propiedad de los recursos (proceso) y la ejecucin
del flujo de instrucciones (hilos).
La organizacin multihilo proporciona ventajas en la estructuracin de las aplicaciones y en
su rendimiento.
La organizacin SMP mejora el rendimiento y la fiabilidad.

10

CAPTULO 5: CONCURRENCIA. EXCLUSIN MUTUA Y SINCRONIZACIN


Dos aspectos del control de la concurrencia: la exclusin mutua t la sincronizacin.
La exclusin mutua se refiere a la posibilidad de que mltiples procesos compartan cdigo,
recursos o datos de forma de que solo uno de ellos tenga acceso al objeto compartido en
cada momento.

CAPTULO 6: CONCURRENCIA. INTERBLOQUEO E INANICIN


Un interbloqueo es una situacin en la cual dos o ms procesos estn esperando a que otros
miembros del conjunto completen una operacin para poder continuar, pero ninguno de los
miembros es capaz de hacerlo.
La inanicin se refiere a una situacin en la cual un proceso se encuentra listo para ejecutar
pero se le niega el acceso al procesador de forma continuada en deferencia a otros procesos.

CAPTULO 3: DESCRIPCIN Y CONTROL DE PROCESOS


Requisitos de un SO en relacin a los procesos:
o El SO debe intercalar la ejecucin de mltiples procesos, para maximizar la
utilizacin del procesador mientras se proporciona un tiempo de respuesta
razonable.
o El SO debe reservar recursos para los procesos conforme a una poltica especfica,
mientras evitar interbloqueos
o Un SO debe requerir dar soporte a la comunicacin entre procesos y la creacin de
procesos.

3.1. QU ES UN PROCESO?
CONCEPTOS PREVIOS
1. Una plataforma de computacin consiste en una coleccin de recursos HW, como
procesador, memoria, mdulos de E/S, etc.
2. Las aplicaciones para computadores se desarrollan para realizar determinadas tareas.
3. No es eficiente que las aplicaciones est escritas directamente para una plataforma de HW
especfica.
4. Un SO de desarrolla para proporcionar una interfaz apropiada para las aplicaciones, rica en
funcionalidades, segura y consistente.
5. Se puede considerar que el SO proporciona una representacin uniforma y abstracta de los
recursos, que las aplicaciones pueden solicitar y acceder.
Gestionar la ejecucin de aplicaciones de forma que:
o Los recursos estn disponibles para mltiples aplicaciones
o El procesador se conmute entre mltiples aplicaciones de formas que todas lleguen
a procesarse
o El procesador y los dispositivos de E/S se puedan usar de forma eficiente.

PROCESOS Y BLOQUES DE CONTROL DE PROCESOS


Definiciones de procesos:
o Un programa en ejecucin
o Una instancia de un programa ejecutando en un computador
o La entidad que se puede asignar y ejecutar en un procesador
o Una unidad de actividad que se caracteriza por la ejecucin de una secuencia de
instrucciones en estado actual, y un conjunto de recursos del sistema asociado.

11

Una entidad que consiste en un nmero de elementos. Dos de ellos esenciales:


cdigo de programa y conjunto de datos.
En cualquier instante de la ejecucin de un proceso se puede caracterizar por:
o Identificador
o Estado
o Prioridad
o Contador de programa
o Punteros a memoria
o Datos de contexto
o Informacin de estado de E/S
o Informacin de auditoria
Esto se almacena en el PCB que contiene la suficiente informacin de forma que es posible
interrumpir el proceso cuando est corriendo y despus restaurarlo. Permite al SO
proporcionar multiprogramacin.
o

3.2. ESTADO DE LOS PROCESOS


Se puede caracterizar el comportamiento de un determinado proceso, listando a la secuencia
de instrucciones que se ejecutan en dicho proceso: traza.
El dispatcher intercambia el procesador de un proceso a otro.

UN MODELO DE PROCESO DE DOS ESTADOS


Estados: ejecutando o no ejecutando.
Cada proceso debe representarse de tal manera que el SO pueda seguirlo
Existe una sola cola cuya entrada son punteros al BCP de un proceso en particular.
Alternativamente, la cola debe consistir en una lista enlazada de bloques de datos, en la cual
cada bloque representa un proceso.

CREACIN Y TERMINACIN DE PROCESOS


CREACIN DE PROCESOS
Cuando se va a aadir el SO construye la estructura para manejarlo y reserva el espacio de
direccin de memoria.
Razones para la creacin de un proceso:
o Nuevo proceso de lotes: cuando el SO esta listo para procesar un nuevo trabajo
leer la siguiente secuencia de mandatos de control de trabajos.
o Sesin interactiva: un usuario desde una termina entra al SO
o Creado por el SO para proporcionar un servicio: el SO puede crear un proceso para
realizar una funcin en representacin de un programa de usuario sin que el usuario
tenga que esperar.
o Creado por un proceso existente. A esta accin se la llama creacin del proceso.
Siendo el primero el proceso padre y el otro el hijo.

TERMINACIN DE PROCESOS
Puede ser normal o por fallos.
Razones para la terminacin de un proceso:
o Finalizacin normal
o Lmite de tiempo excedido
o Memoria no disponible
o Violacin de frontera

12

o
o
o
o
o
o
o
o
o
o

Error de proteccin
Error aritmtico
Lmite de tiempo
Fallo de E/S
Instruccin no vlida
Instruccin privilegiada
Uso inapropiado de datos
Intervencin del operador por el SO
Terminacin del proceso padre
Solicitud del proceso padre.

MODELO DE PROCESO DE CINCO ESTADOS


La cola es una lista de tipo FIFO y el procesador opera siguiendo una estrategia cclica por
turnos.
Utilizando una nica cola, el activador (dispatcher) no puede seleccionar nicamente los
procesos que llevan ms tiempo en la cola.
Cinco estados:
o Ejecutando
o Listo
o Bloqueado: espera por un evento determinado
o Nuevo: un proceso que se acaba de crear y que an no ha sido admitido en el grupo
de procesos ejecutables por el SO.
o Saliente: un proceso que ha sido liberado del grupo de procesos ejecutables por el
SO, por haber sido detenido o abortado.
Un SO puede definir un nuevo proceso en dos etapas: primero realiza las tareas internas que
correspondan, se asocia el identificador y se reservan y construyen las tablas.
Cuando un proceso est en estado nuevo las tablas estn en memoria principal pero el
proceso en memoria secundaria.
Un proceso sale del sistema en dos etapas: primero el proceso termina, por la accin que
sea, la terminacin nueve al proceso a estado saliente. Las tablas se mantienen por un
tiempito hasta que nadie ms las necesite y luego se borran.
Posibles transacciones:
o Null Nuevo
o Nuevo Listo
o Listo Ejecutando
o Ejecutando Saliente
o Ejecutando Listo: el proceso en ejecucin haya alcanzado el mximo de tiempo
posible de ejecucin de forma ininterrumpida.
o Ejecutando Bloqueado
o Bloqueado Listo
o Listo Saliente : el padre termina la ejecucin de un hijo
o Bloqueado Saliente: el padre termina la ejecucin de un hijo
Sugiere la forma de aplicar un esquema de dos colas: cola de Listos y de Bloqueados (FIFO
las dos)
Cuando sucede algn evento, el SO debe recorrer la cola de Bloqueados, buscando aquellos
proceso que estn esperando dicho evento. Es ms til tener una cola por cada evento.
Si hay prioridades es conveniente una cola por cada prioridad.

13

PROCESOS SUSPENDIDOS
LA NECESIDAD DE INTERCAMBIO O SWAPING
Una solucin para evitar el tiempo ocioso del procesador es el swaping (memoria de
intercambio), que implica mover parte o todo el proceso de memoria a disco. Cuando
ninguno de los procesos en memoria se encuentra en estado Listo, el SO intercambia uno de
los procesos bloqueados a disco en la cola de suspendidos.
El uso de swaping aade el estado Suspendido. Esto es cuando todos los procesos en
memoria se encuentran Bloqueados el SO puede suspender un proceso ponindolo en
Suspendido y transfirindolo a disco pudiendo entrar as otro proceso.
El SO tiene dos opciones para cual proceso traer a memoria: uno nuevo o una suspendido
anteriormente.
Para soportar esto se necesitan cuatro estados:
o Listo: el proceso esta en memoria principal
o Bloqueado: en memoria pero esperando
o Bloqueado/Suspendido
o Listo/Suspendido
Posibles transacciones:
o Bloqueado Bloqueado/Suspendido
o Bloqueado/Suspendido Listo/Suspendido
o Listo/Suspendido Listo
o Listo Listo/Suspendido: pude ser porque entro uno de mayor prioridad, si se cree
que un proceso bloqueado de alta prioridad estar pronto listo.
o Nuevo Listo/Suspendido y Nuevo a Listo: la creacin de procesos diferida,
hacindolo cuanto ms tarde, hace posible reducir la sobrecarga del SO y le permite
realizar las tareas de creacin de procesos cando el sistema esta lleno de procesos
bloqueados.
o Bloqueado/Suspendido Bloqueado
o Ejecutando Listo/Suspendido: cuando el tiempo de uso del procesador finaliza, o
por un proceso de mayor prioridad.
o De cualquier estado Saliente

OTROS USOS PARA LA SUSPENSIN DE PROCESOS


Definiendo un proceso suspendido:
o El proceso no est inmediatamente disponible para su ejecucin.
o El proceso puede estar o no a la espera de un evento.
o El proceso fue puesto en estado suspendido por un agente con el propsito de
prevenir su ejecucin
o El proceso no puede ser recuperado de este estado hasta que el agente
explcitamente as lo indique.
Razones para la suspensin de un proceso:
o Swaping
o Otras razones del SO: se sospecha que puede causar algn problema
o Solicitud interactiva del usuario
o Temporizacin
o Solicitud del proceso padre

3.3. DESCRIPCIN DE PROCESOS

14

Se piensa en el SO como en la entidad que gestiona el uso de recursos del sistema por parte
de los procesos.

ESTRUCTURA DE CONTROL DEL SISTEMA OPERATIVO


El SO construye y mantiene tablas de informacin sobre cada entidad que gestiona.
Las tablas mantenidas son de:
o Memoria: se usan para mantener un registro de la memoria principal y virtual. Debe
incluir:
Las reservas de memoria principal por parte de los procesos
Las reservas de memoria secundaria por parte de los procesos
Todos los atributos de proteccin
La informacin para manejar la memoria virtual
o E/S: para gestionar los dispositivos de E/S y los canales de computador.
o Ficheros: proporcionan informacin sobre la existencia de ficheros, su posicin de
almacenamiento secundario, su estado actual y otros.
o Procesos: para gestionar procesos. Se encuentra entrelazadas y referenciadas entre
s.

ESTRUCTURA DE CONTROL DE PROCESO


El SO debe conocer donde estn localizados los procesos y sus atributos.

LOCALIZACIN DE LOS PROCESOS


Un proceso debe incluir un programa o un conjunto de programas a ejecutar.
Un procesos debe consistir en una cantidad suficiente de memoria para almacenar el
programa y datos del mismo, adicionalmente incluye una pila.
El conjunto de estos atributos se denomina Bloque de control de procesos.
Nos podemos referir al conjunto de programa, datos, pila y atributos como la imagen del
proceso, que se mantiene como un bloque de memoria continuo.
o Datos del usuario
o Programa de usuario
o Pila de sistema: para almacenar los parmetros y las direcciones de retorno de los
procedimientos y llamadas al sistema
o PCB
Para ejecutar el proceso, la imagen del proceso completa se debe cargar en memoria
principal o virtual.
Hay una tabla primaria de procesos con una entrada por cada proceso. Cada entrada
contiene un puntero a la imagen del proceso.

ATRIBUTOS DE PROCESO
Tres categoras generales:
o Identificacin del proceso: Identificadores numricos
Identificadores del proceso
Del proceso padre
Del usuario.
o Informacin del estado del procesador:
Registros visibles para el usuario
Registros de estado y control
Puntero de pila

15

Informacin de control de proceso: necesita el SO para coordinar y controlar varios


procesos
Informacin de estado y de planificacin:
Estado del proceso
Prioridad
Informacin relativa a planificacin
Evento
Estructura de datos
Comunicacin entre procesos
Privilegios de proceso
Gestin de memoria
Propia de recursos y utilizacin
El papel del bloque de control de proceso: los bloques se leen y/o modifican por la prctica
totalidad de los mdulos de So.
El conjunto de bloques de control de proceso define el estado del SO.
Con los bloques se pueden dar dos problemas:
o Un fallo en una simple rutina puede daar un bloque de control
o Un cambio en la estructura puede significar un cambio en todo el SO
Para evitar estos problemas en conveniente usar una rutina de manejador.
o

3.4. CONTROL DE PROCESOS


MODOS DE EJECUCIN
Ciertas instrucciones solo se pueden ejecutar en modos privilegiados: modo de sistema.
El modo menos privilegiado es el modo usuario.
Las funciones tpicas de un ncleo de SO son: gestin de procesos, gestin de memoria,
gestin de E/S, funciones de soporte.
Existe un bit en la PWS que indica el modo en que se esta ejecutando.

CREACIN DE PROCESOS
Cuando el SO decide crear un proceso procede como:
1. Asignar un identificador de proceso nico al proceso
2. Reserva espacio para proceso: debe conocer cuanto necesita
3. Inicializacin del bloque de control de proceso
4. Establecer los enlaces apropiados
5. Creacin o expansin de otras estructuras de datos

CAMBIO DE PROCESO
CUNDO SE REALIZA UN CAMBIO DE PROCESO
Un cambio de proceso puede ocurrir en cualquier instante en el que el sistema operativo
obtiene el control sobre el proceso actualmente en ejecucin
Mecanismo
Interrupcin
Trap
Llamada al sistema

Causa
Externa a la ejecucin del
proceso en ejecucin
Asociada a la ejecucin de la
instruccin actual
Solicitud explcita

16

Uso
Reaccin ante eventos externos
asncrono.
Manejo de una condicin de
error o de excepcin
Llamada a una funcin del SO

Con un trap el SO conoce si una condicin de error o de excepcin es irreversible, si es as


se pone en estado saliente y se hace un cambio de proceso.

CAMBIO DE MODO
En muchos SO la existencia de interrupciones no implica cambio de proceso.

CAMBIO DE ESTADO DEL PROCESO


Un cambio de modo puede ocurrir sin que se cambie el estado del proceso
Si el proceso actualmente en estado Ejecutando, se va a mover a cualquier otro estado,
entonces el SO debe realizar cambios sustanciales en su entorno:
1. Salvar el estado del proceso
2. Actualizar el bloque de control del proceso que est actualmente ejecutando
3. Mover el BCP a la cola apropiada
4. Seleccionar un nuevo proceso
5. Actualizar su PCB
6. Actualizar la estructura de datos y de gestin de memoria
7. restaurar el estado del procesador al que tenia en el momento en el que el proceso
seleccionado salio de ejecutando.

EJECUCIN DEL SISTEMA OPERATIVO


El SO es un conjunto de programas ejecutados por un procesador
Un SO cede el control y depende del procesador para recuperarlo

NCLEO SIN PROCESOS


La ejecucin del SO est fuera de todo proceso en un modo privilegiado.
Cuando un proceso llama al sistema, el contexto se guarda y el control pasa al ncleo.
El SO puede realizar la salvaguarda del contexto y la activacin de otro proceso

EJECUCIN DENTRO DE LOS PROCESOS DE USUARIO


Una alternativa es ejecutar virtualmente todo el SW del SO en contexto de proceso de
usuario.
As el SO se percibe como un conjunto de rutinas que el usuario invoca para realizar
diferentes funciones, ejecutadas dentro del entorno del proceso.
Se usa una pila de ncleo separada para manejar llamadas/retornos.
Cuando ocurre una interrupcin, trap o llamada al sistema, el proceso se pone en modo
ncleo y el control se pasa al SO, de esta forma se realiza un cambio de modo dentro del
mismo proceso.
El usuario no puede interferir con las rutinas del SO, incluso cuando se estn ejecutando
dentro del entorno del proceso de usuario.

SISTEMAS OPERATIVOS BASADOS EN PROCESOS


SO como una coleccin de procesos de sistema
El SW que es parte del ncleo se ejecuta en modo ncleo, las principales funciones del
ncleo se organizan como procesos independientes.
SO modulares con mnimas y claras interfaces entre los mdulos

CAPTULO 4: HILOS, SMP Y MICRO NCLEOS


4.1. PROCESOS E HILOS
17

Concepto de procesos como poseedor de dos caractersticas:


o Propiedad de recursos. Un espacio de direcciones virtuales para el manejo de la
imagen del proceso. Proceso o tarea.
o Planificacin/ejecucin. La ejecucin de un proceso sigue una traza a travs de uno
o ms programas. Un proceso tiene un estado de ejecucin y una prioridad de
activacin y sta es la entidad que se planifica y activa por el SO. Hilos o proceso
ligero.

MULTIHILO
Capacidad de un SO de dar soporte a mltiples hilos de ejecucin en un solo proceso.
En un entorno multihilo, un proceso se define como la unidad de asignacin de recursos y
una unidad de proteccin.
Dentro de un proceso puede haber uno o ms hilos, cada uno con:
o Un estado de ejecucin
o Un contexto
o Una pila de ejecucin
o Espacio de almacenamiento para variables locales.
o Accesos a la memoria y recursos de su proceso
Sigue habiendo un nico PCB pero muchos TCB con los valores de los registros, la
prioridad y otra informacin relativa al estado del hilo.
Todos los hilos de un proceso comparten el estado y los recursos de ese proceso, residen en
el mismo espacio de direcciones y tienen acceso a los mismos datos
Cuatro ejemplos de uso de hilos:
o Trabajo en primer plano y en segundo plano
o Procesamiento asncrono
o Velocidad de ejecucin (en paralelo)
o Estructura modular de programas

FUNCIONALIDADES DE LOS HILOS


Tienen estado de ejecucin y se pueden sincronizar entre ellos

ESTADO DE LOS HILOS


Ejecutando, listo y bloqueado.
Operaciones bsicas relacionadas con los cambios de estado:
o Creacin: cuando se crea un nuevo proceso tambin se crea un hilo de dicho
proceso. Ese hilo puede crear otros hilos
o Bloqueo: cuando un hilo espera un evento. El bloqueo de un hilo implica el
bloqueo del proceso entero
o Desbloqueo: cuando sucede el evento pro el que el hilo est bloqueado, el hilo se
pasa a la cola de listos.
o Finalizacin: cuando se completa se libera contexto y pila.

SINCRONIZACIN DE HILOS
Todos los hilos de un proceso comparte el mismo espacio de direcciones y otros recursos
por lo que deben sincronizar su uso.

HILOS DE NIVEL DE USUARIO Y DE NIVEL DE NCLEO


HILOS DE NIVEL DE USUARIO (ULT)

18

En un entorno ULT puro, la aplicacin gestiona todo el trabajo de los hilos y el ncleo no es
consciente de la de la existencia de los mismos.
Por los tanto, una aplicacin comienza con un solo hilo y ejecutando en ese hilo. La
aplicacin puede crear un nuevo hilo a ejecutar dentro del mismo proceso. Toda esta
actividad se realiza en espacio usuario y dentro de un solo proceso.
El uso de ULT en lugar de KLT presenta las ventajas:
o El cambio de hilo no requiere privilegios de modo ncleo porque est todo dentro
del mismo proceso
o La planificacin puede especificarse por parte de la aplicacin.
o Los ULT puede ejecutar en cualquier SO
Desventajas:
o Muchas llamadas al sistema son bloqueantes
o En une estrategia ULT, un aplicacin multihilo no puede sacar ventaja del
multiproceso.

HILOS A NIVEL DE NCLEO (KLT)


El ncleo gestiona todo el trabajo de gestin de hilos, manteniendo la informacin necesaria
por cada hilo.
La planificacin se hace a nivel hilo.
Ventaja: las rutinas de ncleo pueden ser en si multihilo.
Desventaja: cambio de hilos requiere cambio de modo.

ENFOQUES COMBINADOS
La creacin de hilos se realiza por completo en el espacio de usuario. Los mltiples ULT de
una aplicacin se asocian en un nmero de KLT

OTRAS CONFIGURACIONES
Hilos:Procesos
1:1
M:1
1:M
M:N

Descripcin
Cada hilo de ejecucin es un nico proceso con su propio espacio de
direcciones y recursos
Un proceso define un espacio de direcciones y pertenencia dinmica de
recurso. Se pueden crear y ejecutar mltiples hilos en ese proceso
Un hilo puede migrar de un entorno de proceso a otro. Esto permite a los hilos
moverse entre distintos sistemas. SO distribuidos
Combina M:1 u 1:M

RELACIN MUCHOS-A-MUCHOS
Un hilo es una ruta de ejecucin, con una pila de ejecucin, estado del procesador e
informacin de planificacin.
El programa completo puede implementarse como un solo proceso
El programa principal y el subprograma de E/S podran implementarse como dos procesos
independientes.
Tratar al programa principal y al subprograma y al subprograma de E/S como una sola
actividad que se puede implementar en un solo hilo.

4.2. MULTIPROCESAMIENTO SIMTRICO


ARQUITECTURA SMP
Flynn propone las siguientes categoras de computadores:

19

o
o
o
o

nica instruccin, nico flujo de datos (SISD): un solo procesador ejecuta en una
nica instruccin que opera sobre datos almacenados enana sola memoria.
nica instruccin, mltiples flujos de datos (SIMD): una nica instruccin de
mquina controla la ejecucin simultnea de un nmero de elementos de proceso.
Mltiples instruccin, nico flujo de datos (MISD): se trasmite una secuencia de
datos a un conjunto de procesadores, cada uno de los cuales ejecuta una secuencia
de instrucciones diferentes
Mltiples instruccin, mltiples flujos de datos (MIMD): un conjunto de
procesadores ejecuta simultneamente diferentes secuencias de instrucciones en
diferentes conjuntos de datos. Se puede dividir por el tipo de comunicacin
Si comparten una memoria: multiprocesador de mem compartida
Maestro/esclavo (si se cae el maestro se caen todos y cuello de
botella en el maestro)
SMP
A travs de redes: clusters

CONSIDERACIONES DE DISEO DE SISTEMAS OPERATIVOS MULTIPROCESADOR


(Para que se vea para el usuario como un uniprocesador multiprogramado)
Procesos e hilos simultneos concurrentes: las rutinas del ncleo necesitan ser reentrantes
para permitir que varios procesadores ejecuten el mismo cdigo de ncleo
simultneamente.
Planificacin
Sincronizacin: fuerza a la exclusin mutua y el orden de los eventos
Gestin de memoria
Fiabilidad y tolerancia a fallos: el sistema no se puede caer si falla un procesador

MICRONCLEOS
Es la pequea parte central de un sistema operativo que proporciona las bases para
extensiones modulares
Este enfoque proporciona un alto grado de flexibilidad y modularidad

ARQUITECTURA MICRONCLEO
El enfoque de SO por capas plantea muchas capas con funciones organizadas
jerrquicamente y solo hay interaccin entre las capas adyacentes. Pero es difcil mantener
y dar seguridad porque hay mucha interaccin entre capas.
El microncleo plantea que solo las funciones esenciales del SO estn en el ncleo. Los
otros se construyen sobre el microncleo y son ejecutadas en modo usuario. Se comportan
como servidores de procesos

BENEFICIOS DE UNA ORGANIZACIN MICRONCLEO


Interfaces uniformes en las peticiones realizadas por un proceso.
Extensibilidad: permite agregar nuevos servicios o realizar mltiples servicios en una
misma rea funcional
Flexibilidad: cualquier cambio es pequeo
Portatibilidad: los cambios necesarios para transferir el sistema a otro procesador significa
hacer cambios solo en el ncleo
Fiabilidad: el Microncleo se puede verificar en forma rigurosa
Soporte de sistemas distribuidos

20

Soporte de SO orientados a objetos

RENDIMIENTO DEL MICRONCLEO


Desventaja: lleva ms tiempo construir y enviar mensajes a travs del microncleo, o hacer
llamadas a servicios
Incrementa el cambio de estado y de proceso.

DISEO DEL MICRONCLEO


Gestin de memoria a bajo nivel: tiene que gestionar la memoria a nivel HW para dar
proteccin a los procesos. Basta con que el Microncleo se responsabilice de la asignacin
de cada pgina virtual a un marco fsico
Comunicacin entre procesos: la forma bsica son los mensajes. Incluye una cabecera y un
cuerpo. Un puerto es una cola de mensajes destinada a un proceso en particular.
Gestin de E/S e interrupciones: manejar las interrupciones de HW como mensajes e incluir
los puertos de E/S en los espacios de direcciones.

CAPTULO 5: CONCURRENCIA. EXCLUSIN MUTUA Y SINCRONIZACIN


CONCEPTOS PREVIOS
Multiprogramacin: gestin de mltiples procesos dentro de un sistema monoprocesador
Multiprocesamiento: gestin de mltiples procesos dentro de un multiprocesador
Procesamiento distribuido: Gestin de mltiples procesos que ejecutan sobre mltiples
sistemas de cmputo distribuidos.
La concurrencia abarca: la comunicacin entre procesos y la comparticin de, o
competencia por, recursos; la sincronizacin de actividades de mltiples procesos y la
reserva de tiempo de procesador para cada proceso.
La concurrencia aparece entres contextos diferentes:
o Mltiples aplicaciones
o Aplicaciones estructuradas
o Estructura del SO
Trminos claves:
o Seccin crtica: seccin de cdigo dentro de un proceso que requiere acceso a
recursos compartidos que no pueden ser ejecutados mientras otros procesos estn
en una seccin de cdigo correspondiente
o Interbloqueo: dos o ms procesos son incapaces de actuar porque cada uno est
esperando que alguno de los otros haga algo.
o Crculo vicioso: dos o ms procesos cambian continuamente su estado en respuesta
a cambios en otros procesos, sin realizar ningn trabajo til.
o Exclusin mutua: requisito de que cuando un proceso est en una seccin crtica,
ningn otro proceso pueda entrar.
o Condicin de carrera: situacin en la cual mltiples hilos o procesos leen y escriben
datos compartidos y el resultado final depende de la coordinacin relativa de sus
ejecuciones.
o Inanicin: situacin en la cual un proceso preparado para avanzar es soslayado
indefinidamente por el planificador.

5.1. PRINCIPIOS DE LA CONCURRENCIA


Los procesos se entrelazan en el tiempo para ofrecer la apariencia de ejecucin simultnea.
En un sistema de mltiples procesadores tambin se pueden solapar.

21

Los problemas surgen dado que no pueden predecirse la velocidad relativa de ejecucin de
los procesos.
Surgen problemas con las variables globales y asignacin de recursos.
En un sistema monoprocesador, el motivo por el que se tiene un problema es que una
interrupcin puede parar la ejecucin de instrucciones en cualquier punto de un proceso. En
los multiprocesadores adems surge por la ejecucin simultnea

PREOCUPACIONES DEL SISTEMA OPERATIVOS


El SO debe ser capaz de seguir la pista de varios procesos.
El SO debe ubicar y desubicar varios recursos para cada proceso activo:
o Tiempo de procesador
o Memoria
o Ficheros
o Dispositivos de E/S
El SO debe proteger los datos y recursos fsicos de cada proceso frente a otros
El funcionamiento del proceso y el resultado que produzca debe ser independiente de la
velocidad a la que suceda su ejecucin en relacin con la velocidad de otros procesos
concurrentes.
Grado de percepcin

Relacin

Procesos que no se
perciben entre si

Competencia

Procesos que se
perciben indirectamente
entre si

Cooperacin por
comparticin

Procesos que se
perciben directamente
entre si

Cooperacin por
comunicacin

Influencia que un proceso


tiene sobre el otro
Los resultados de uno son
independientes del otro. La
temporizacin puede verse
afectada
Los resultados de uno pueden
depender del otro.
La temporizacin puede verse
afectada
Los resultados de uno pueden
depender del otro.
La temporizacin puede verse
afectada

Potenciales
problemas de control
Exclusin mutua.
Interbloqueo.
Inanicin.
Exclusin mutua.
Interbloqueo.
Inanicin.
Coherencia de datos.
Interbloqueo.
Inanicin.

COMPETENCIA ENTRE PROCESOS POR RECURSOS


Entra en conflicto cuando quieren un recurso compartido.
Se necesita la exclusin mutua, pero puede provocar interbloque (ninguno libera el recurso
que tiene porque para avanzar necesita el otro recurso que tiene le otro proceso), e inanicin
Un recurso es crtico cuando dos o ms procesos lo pueden requerir simultneamente, y esa
parte de cdigo se llama seccin crtica.
Una seccin crtica est definida para cada recurso crtico
Solo un proceso a la vez puede entrar en la seccin crtica de un mismo proceso.
Para esto se definen funciones: entrarcrtica, salircrtica

COOPERACIN ENTRE PROCESOS VA COMPARTICIN


Los procesos deben cooperar para asegurar que los datos que comparten son manipulados
adecuadamente.
Se presentan exclusin mutua, interbloque e inanicin.
Solo las operaciones de escritura deben ser mutuamente excluyentes. Se pueden hacer
muchas lecturas pero una escritura en simultneo.

22

Surge el problema de coherencia de los datos que puede ser evitado declarando en cada
proceso la secuencia completa como una seccin crtica.

COOPERACIN ENTRE PROCESOS VA COMUNICACIN


La comunicacin proporciona una manera de sincronizar o coordinar actividades
La exclusin mutua no es un requisito de control.
Estn presentes el interbloqueo y la inanicin.

REQUISITOS PARA LA EXCLUSIN MUTUA


La exclusin mutua debe hacerse cumplir
Un proceso que se pare en su seccin no crtica debe hacerlo sin interferir con otros
procesos
No debe ser posible que un proceso que solicite acceso a una seccin crtica sea postergada
indefinidamente
Cuando ningn proceso est en una seccin crtica, a cualquier proceso que solicite entrar
en su seccin crtica debe permitrsele entrar sin demora.
Un proceso permanece dentro de su seccin crtica slo por un tiempo finito

5.2. EXCLUSIN MUTUA: SOPORTE HARDWARE


DESHABILITAR INTERRUPCIONES
En un monoprocesador basta con impedir que un proceso sea interrumpido
while (true){
/*Deshabilito las interrupciones*/
/*Sesin crtica*/
/*Habilito las interrupciones*/
/*Resto*/
}
La eficiencia baja porque limita la capacidad del procesador para enlazar procesos. Y no
soluciona en arquitectura multiprocesadores.

INSTRUCCIONES MQUINA ESPACIALES.


Instrucciones de mquina que llevan acabo dos acciones atmicas (se realiza en un nico
paso y no puede ser interrumpida), sobre una posicin de memoria con un nico ciclo de
bsqueda de instruccin.
Durante la ejecucin de la instruccin, el acceso a la posicin de memoria se le bloquea a
todas las otras instrucciones que referencia esa posicin.

INSTRUCCIN TEST AND SET


Boolean testset (int i)
{
If (i ==00) {i=1; return true;}
Else {return false;}
}
La instruccin comprueba el valor de su argumento i. Si es 0 entonces la reemplaza por 1 y
devuelve cierto.

23

El trmino de espera activa o espera cclica se refiere a una tcnica en la cual un proceso no
puede hacer nada ms hasta obtener permiso para entrar a su seccin crtica, pero contina
ejecutando una instruccin o un conjunto de instruccin que comprueban la variable
apropiada para conseguir entrar.

INSTRUCCIN EXCHANGE
Void exchange (int registro, int memoria)
{
Int temp;
Temp = memoria;
Memoria = registro;
Registro = temp;
}
Cerrojos. Si un cerrojo = 1 un proceso est en la seccin crtica y es cuya llave es igual a 0

PROPIEDADES DE LA SOLUCIN INSTRUCCIN MQUINA


Ventajas:
o Es aplicable a cualquier nmero de procesos sobre un procesador nico o
multiprocesadores de memoria principal compartida
o Es simple y fcil de verificar.
o Puede ser utilizado para dar soporte a mltiples secciones crticas
Desventajas:
o Se emplea espera activa. Continua consumiendo tiempo de procesador
o Es posible la inanicin
o Es posible el interbloqueo

5.3 SEMFOROS
Principio fundamental: dos o ms proceso puede cooperar por medio de simples seales,
tales que un proceso puede ser obligado a parar en un lugar especfico hasta que haya
recibido una seal especfica.
Trasmitir una seal va semforo: semSignal(s). Recibir semWait(s) atmicas
El semforo puede ser visto como una variable que contiene un valor entero sobre el cual
slo estn definidas tres operaciones:
o Puede ser inicializado a un valor no negativo
o semWait(s) decrementa el valor del semforo. Si pasa a ser negativo el proceso se
bloquea
o semSignal(s) incrementa el valor del semforo. Si el valor es menor o igual que
cero, entonces se desbloquea uno de los procesos bloqueados en la operacin
semWait(s)
Un semforo binario realiza las misma funciones pero solo puede contener el valor 0 o 1
Siempre se utiliza una cola para mantener los procesos esperando por el semforo.
Si el semforo incluye una poltica FIFO se dice que es fuerte, sino dbil.
Los fuertes garantizan que no va a haber inanicin, los dbiles no.

EXCLUSIN MUTUA
La solucin ms directa es el semforo. Siempre se inicializa en 1 para que el primer
proceso que ejecute semWait sea capaz de entrar inmediatamente

24

El contenido del semforo indica la cantidad de procesos bloqueados si <0


Sino indica la posibilidad de sincronizacin y exclusin mutua

EL PROBLEMA PRODUCTOR/CONSUMIDOR
Hay uno o ms procesos generando algn tipo de dato y ponindolos en un buffer. Hay un
nico consumidor que extrae. El sistema est obligado a impedir la superposicin de las
operaciones sobre los datos.
Bloquearse cuando:
o Productor: al insertar con el buffer lleno
o Consumidor: al extraer con el buffer vaco
Desbloquearse cuando:
o Consumidor: dato insertado
o Productor: dato extrado
s=1; n=0; e=/*tamao de buffer*/
Productor:
While(true){
Producir();
P(e);
P(s);
Aadir();
V(s);
V(n);}

Consumidor:
While(true){
P(n);
P(s);
Extraer();
V(s);
V(e);
Consumir();}

5.4. MONITORES
Un monitor es una construccin del lenguaje de programacin que proporciona una
funcionalidad equivalente a la de lo semforos pero es ms fcil de controlar

MONITOR CON SEALES


Un monitor es un mdulo SW consistente en uno o ms procedimientos, una secuencia de
inicializacin y datos locales.
Caractersticas:
o Las variables locales de datos son slo accesibles por los procedimientos del
monitor y no por ningn procedimiento externo
o Un proceso entra en el monitor invocando uno de sus procedimientos
o Solo un proceso puede estar ejecutando dentro del monitor al tiempo
El monitor proporciona exclusin mutua.
Un monitor soporta la sincronizacin mediante el uso de variables condicin que estn
contenidas dentro del monitor y son accesibles solo desde el monitor. Y se manejan igual
que los semforos, cWait(c) y cSignal(c)
Un monitor tiene un nico punto de entrada. Si hay un proceso en el monitor y otro quiere
entrar se inserta a la cola de bloqueados de el monitor hasta que este salga. Si el proceso se
olvida de salir el monitor lo har por l en un determinado momento, agregndolo a la cola
de bloqueados.
La ventaja que tienen sobre los semforos es que todas las funciones de sincronizacin
estn confinadas en el monitor.

MODELO ALTERNATIVO DE MONITORES CON NOTIFICACIN Y DIFUSIN


Cuando surge algo se pasan todos los proceso a Listo

25

Dos desventajas:
o Si el proceso que realiza el signal no ha terminado con el monitor, entonces se
necesitarn dos cambios de procesos adicionales: uno para bloquearse este proceso
y otro para retomarlo cuando el monitor quede disponible
o La planificacin de procesos asociada con una seal debe ser perfectamente fiable.

5.5. PASO DE MENSAJES


SINCRONIZACIN
Cuando send se ejecuta en un proceso: el proceso puede bloquearse o no
Cuando se ejecuta un receive:
o Si no hay mensajes se bloquea o continua con otra cosa
o Si hay mensaje lo recibe y continua
Conjuntos:
o Envo bloqueante, recepcin bloqueante: peligro de que los procesos generen
mensajes repetitivamente.
o Envo no bloqueante, recepcin bloqueante
o Envo no bloqueante, recepcin no bloqueante: se le puede permitir al proceso
receptor comprobar si hay un mensaje en espera antes de realizar el relieve y
permitirle al proceso especificar ms de un origen en recieve.

DIRECCIONAMIENTO
Direccionamiento directo: send incluye el identificador del proceso destinatario. El
parmetro origen de la primitiva receive tomo un valor devuelto por la operacin de
recepcin cuando se completa.
Direccionamiento indirecto: son enviados a una estructura de datos compartida que consiste
en colas que pueden contener mensajes temporales. Permite una mayor flexibilidad.
Tambin permite establecer distintos tipos de conexiones:
o Uno-a-uno: privada
o Muchos-a-uno: cliente/servidor. El buzn es el puerto
o Uno-a-muchos: un mensaje debe ser difundido
o Muchos-a-muchos: permite a mltiples procesos servidores proporcionar servicio
concurrente a mltiples clientes.

FORMATO DE MENSAJE
El mensaje est dividido en dos partes: una cabecera, que contienen informacin acerca del
mensaje, y un cuerpo, que contiene el contenido real del mensaje.
La cabecera puede contener una identificacin del tipo origen y del destinatario previsto del
mensaje, un campo de longitud y un campo de tipo.

EXCLUSIN MUTUA
Se asume receive bloqueante y send no bloqueante.
Si ms de un proceso realiza la recepcin concurrentemente entonces:
o Si hay un mensaje, se entrega a solo uno y los dems se bloquean.
o Si no hay mensajes, todos se bloquean.

5.6. EL PROBLEMA DE LOS LECTORES/ESCRITORES


Hay un rea de datos compartida entre un nmero de procesos. Hay un nmero de procesos
que solo leen y otros que solo escriben.

26

o Cualquier nmero de lectores puede leer el fichero simultneamente


o Solo un escritor al mismo tiempo puede escribir
o Si el escritor est escribiendo, ningn lector puede leer.
Se puede plantear que los lectores tengan prioridad con semforos o que los escritores la
tengan

CAPTULO 6: CONCURRENCIA. INTERBLOQUEO E INANICIN


6.1. FUNDAMENTOS DEL INTERBLOQUEO
Definicin: bloqueo permanente de un conjunto de procesos que o bien compiten por
recursos del sistema, o se comunica entre s. Un conjunto de procesos estn interbloqueados
cuando cada proceso del conjunto est bloqueado esperando un evento.
Una regin fatal es aquella en la cual el interbloqueo es inevitable.

RECURSOS REUTILIZABLES
Un recurso reutilizable es aqul que slo puede utilizar de forma segura un proceso en cada
momento y que no se destruye despus de su uso.
El interbloqueo se produce si cada proceso mantiene un recurso y solicita otro.
Una estrategia para tratarlo es imponer restricciones en el diseo del sistema con respecto al
orden en que se pueden solicitar los recursos.
La mejor manera de tratar con el problema de la reserva de memoria es el uso de memoria
principal.

RECURSOS CONSUMIBLES
Es aquel que puede crearse y destruirse (interrupciones, seales, mensajes).
Estrategia prevencin, prediccin y deteccin.
Estrategia
Prevencin

Poltica de
Reserva de
recursos
Conservadora;
infrautilizacin
recursos

Esquemas
alternativos

Principales ventajas

Principales desventajas

Solicitud
simultnea de
todos los
recursos

- Adecuada para procesos


que realizan una sola
rfaga de actividad
- No es necesaria la
expropiacin

Expropiacin

- Conveniente cuando se
aplica a recursos cuyo
estado se puede guardar y
restaurar fcilmente
- Es posible asegurarlo
mediante comprobaciones
en tiempo de compilacin
- No necesita clculos en
tiempo de ejecucin ya
que el problema se
resuelve en el diseo de
sistemas
- No es necesaria la
expropiacin

- Ineficiente
- Retrasa la inanicin del
proceso
- Los procesos deben
reconocer sus futuros
requisitos de recursos.
- Expropia con ms
frecuencia de lo
necesario

Ordenamiento
de recursos

Prediccin

A medio
camino entre
la deteccin y
la prevencin

Asegura que
existe al
menos un
camino seguro

27

- Impide solicitudes
graduales de recursos

- El SO debe conocer los


futuros requisitos de
recursos de los procesos
- Los procesos se pueden

Deteccin

Muy liberal:
los recursos se
conceden en
caso que sea
posible

Se invoca
peridicament
e para
comprobar si
hay
interbloqueos

- Nunca retrasa la
inanicin del proceso
- Facilita la gestin en
lnea

bloquear durante largos


perodos
- Prdidas inherentes por
expropiacin

GRAFOS DE ASIGNACIN DE RECURSOS


Es un grafo dirigido que representa el estado del sistema en lo que se refiere a los recursos y
los procesos, de tal forma que cada proceso y cada recurso se representa por un nodo. Una
arista del grafo dirigida desde un proceso a un recurso indica que el proceso ha solicitado el
recurso pero no se le ha concedido. En el interior de un nodo de recurso, se muestra un
punto por cada instancia de ese recurso. Una arista al revs indica que se concedi el
recurso.

LAS CONDICIONES PARA EL INTERBLOQUEO


1. Exclusin mutua
2. Retencin y espera: un proceso puede mantener los recursos asignados mientras
espera la asignacin de otro.
3. Sin expropiacin. No se puede forzar la expropiacin de un recurso a un proceso
que lo posee.
4. Espera circular (con esto se produce realmente el interbloque): existe una lista
cerrada de procesos, de tal manera que cada proceso posee al menos un recurso
necesitado por el siguiente proceso de la lista.
Si se cumplen las primeras tres puede que haya como no interbloque, si se cumple la cuarta
hay interbloqueo.
Para prevenir el interbloqueo se adopta una poltica que elimine una de las condiciones.
Para predecir se ven los estados.

6.2. PREVENCIN DEL INTERBLOQUEO.


Consiste en disear un sistema de manera que se excluya la posibilidad de interbloqueo.
Mtodo indirecto: prevenir la aparicin de una de las tres condiciones necesarias
Mtodo directo: impide que se produzca la espera circular.

EXCLUSIN MUTUA
No puede eliminarse

RETENCIN Y ESPERA
Puede eliminarse estableciendo que un proceso debe solicitar al mismo tiempo todos sus
recursos requeridos, bloquendolos hasta que se le puedan conceder simultneamente todas
las peticiones.
Es insuficiente porque un proceso puede quedarse esperando mucho tiempo hasta que todas
sus solicitudes de recursos puedan satisfacerse.
Los recursos asignados a un proceso pueden permanecer inutilizados durante un periodo de
tiempo considerable.

SIN EXPROPIACIN

28

Si un proceso que mantiene varios recursos se le deniega una peticin posterior, ese proceso
deber liberar sus recursos originales y luego volver a solicitarlos a todos.
Si un proceso solicita un recurso que otro proceso mantiene, el SO puede expropiar al
segundo proceso y obligarle a liberar sus recursos.
Es slo aplicable para recursos cuyo estado se puede salvar y restaurar.

ESPERA CIRCULAR
Definir un orden lineal entre los distintos tipos de recursos.
La prevencin de la espera circular puede ser ineficiente, ralentizando los procesos y
denegando innecesariamente el acceso a un recurso.

6.3. PREDICCIN DE INTERBLOQUEO


Se decide dinmicamente si la peticin actual de reserva de un recurso, si se concede, podr
potencialmente causar un interbloqueo. La prediccin requiere el conocimiento de las
futuras solicitudes
Dos tcnicas:
o No iniciar un proceso si su demandas podran llevar al interbloqueo
o No conceder una peticin adicional de un recursos por parte de un procesos si esta
asignacin podra provocar un interbloqueo

DENEGACIN DE LA INICIACIN DEL PROCESO.


1.
2.
3.

todos los recursos estn disponibles o asignados


ningn proceso puede necesitar ms de la cantidad total de recursos del sistema
ningn proceso tiene asignado ms recursos que su necesidad original.
Slo puede iniciarse un proceso si se pueden satisfacer las necesidades mximas de todos
los procesos actuales ms el del nuevo proceso.
Esta estrategia no es ptima porque se asume que todos los procesos solicitarn sus
necesidades mximas simultneamente

DENEGACIN DE ASIGNACIN DE RECURSOS


Se lo denomina estrategia del banquero.
El estado del sistema refleja la asignacin actual de recursos a procesos
Un estado seguro es aquel en el que hay al menos una secuencia de asignacin de recursos a
los procesos que no implica un interbloqueo (opuesto: inseguro)
Se asumen que el sistema est siempre en estado seguro. Cuando un proceso solicite un
conjunto de recursos, se actualiza el estado del sistema y se evala si es seguro o no. Si es
seguro se concede la peticin, sino el procesos se bloquea hasta que sea seguro conceder la
peticin.
No predice el interbloqueo con certeza, solo anticipa la posibilidad del interbloqueo y
asegura que no haya tal posibilidad.
Tiene la ventaja de que no es necesario expropiar a los procesos ni retroceder su ejecucin
pero tiene varias restricciones:
o Deben establecerse por anticipado los requisitos mximos de recursos de cada
proceso
o Los procesos involucrados deben ser independientes
o Debe haber un nmero fijo de recursos asignados
o Ningn proceso puede terminar mientras mantenga recursos.

29

6.4. DETECCIN DEL INTERBLOQUEO


No limita el acceso a los recursos ni restringe las acciones de los procesos. Los recursos se
conceden a los procesos siembre que sea posible.

ALGORITMO DE DETECCIN DEL INTERBLOQUEO


Se utiliza la matriz de asignacin, el vector de disponibles y una matriz de solicitudes. El
algoritmo acta marcando los procesos que no estn en un interbloqueo.
o Se marca cada proceso que tenga una fila de la matriz de Asignacin en 0
o Se inicia un vector temporal T asignndole el vector disponibles
o Se busca un ndice i tal que el proceso i no est marcado actualmente y la fila isima de S sea menor o igual que T. Si no se encuentra ninguna el algoritmo
termina.
o Si se encuentra una fila que lo cumpla, se marca el proceso i y se suma la fila
correspondiente de la matriz de asignacin a T. vuelve arriba
Existe un interbloqueo si y slo si hay procesos sin marcar al final del algoritmo.
Esta estrategia es encontrar un proceso cuyas peticiones de recursos puedan satisfacerse con
los recursos disponibles, y asumir que se conceden estos recursos y el proceso se ejecuta
hasta terminar y liberar sus recursos.

RECUPERACIN
Cuando se detecto el interbloqueo se necesita una estrategia para recuperarlo
1. abortar todos los procesos involucrados en el interbloqueo
2. retroceder cada paso en interbloqueo a algn punto de control y rearrancar, pero puede
repetirse el interbloqueo.
3. abortar sucesivamente los procesos en el interbloqueo hasta que deje de existir
4. expropiar sucesivamente los recursos hasta que el interbloqueo deje de existir.
Para los ltimos dos se pueden elegir los procesos segn:
o La menor cantidad de tiempo de procesador consumida hasta ahora
o La menor cantidad de salida producida hasta ahora
o El mayor tiempo restante estimado
o El menor nmero total de recursos asignados hasta ahora
o La menor prioridad

6.5. UNA ESTRATEGIA INTEGRADA DE TRATAMIENTO DEL INTERBLOQUEO


Tcnicas:
o Agrupar los recursos en diversas clases de recursos
Espacio de intercambio: prevencin o prediccin
Recursos del proceso: prediccin o prevencin mediante ordenamiento de
recursos.
Memoria principal: prevencin por expropiacin
Recursos internos: prevencin mediante ordenamiento.
o Utilizar la estrategia del orden lineal
o Dentro de una clase de recursos, usar el algoritmo que sea ms apropiado

CAPTULO 9: PLANIFICACIN UNIPROCESADOR


9.1. TIPOS DE PLANIFICACIN DEL PROCESADOR

30

El objetivo de la planificacin de procesos es asignar procesos a ser ejecutados por el


procesador o procesadores al o largo del tiempo, de forma que se cumplan los objetivos del
sistema tales como el tiempo de respuesta, el rendimiento y la eficiencia del procesador.
Tipo de planificacin
A largo plazo
A medio plazo
A corto plazo
De E/S

Descripcin
La decisin de aadir un proceso al conjunto de
procesos a ser ejecutados
La decisin de aadir al nmero de procesos que
estn parcialmente o totalmente en memoria
principal
La decisin por la que un proceso disponible ser
ejecutado por el procesador
La decisin por la que un proceso que est
pendiente de una peticin de E/S ser atendido por
el dispositivo

La planificacin a largo plazo se realiza cuando se crea un nuevo proceso.


La planificacin a medio plazo es parte de la funcin de swaping

PLANIFICACIN A LARGO PLAZO


Se controla el grado de multiprogramacin
Una vez admitido, un trabajo o programa de usuario se convierte en un proceso y se aade a
la cola del planificador a corto plazo.
La decisin de cuando crear un nuevo proceso se toma dependiendo del grado de
multiprogramacin deseado. Ms procesos menor procesador para cada uno.
Este planificador se ejecuta cada mucho tiempo

PLANIFICACIN A MEDIO PLAZO


La decisin de intercambio se basa en la necesidad de gestionar el grado de
multiprogramacin

PLANIFICACIN A CORTO PLAZO


Se invoca siempre que ocurre un evento que puede conllevar el bloqueo del proceso actual
y que puede proporcionar la oportunidad de expulsar al proceso actualmente en ejecucin a
favor de otro. Eventos:
o Interrupcin de reloj
o Interrupcin de E/S
o Llamadas al sistema
o Seales

9.2. ALGORITMOS DE PLANIFICACIN


CRITERIOS DE LA PLANIFICACIN A CORTO PLAZO
Se habla de criterios orientado a usuario o al sistema.
En el orientado a usuario se prioriza el tiempo de respuesta ante el rendimiento

CRITERIOS DE PLANIFICACIN:
Orientados al usuario, relacionados con las prestaciones:
o Tiempo de estancia (turnaround time): desde que empieza hasta que finaliza
o Tiempo de respuesta (response time): el tiempo que transcurre desde que se lanza
una peticin hasta que se comienza a recibir la respuesta

31

o Fecha tope (dedlines): maximizar el porcentaje de fechas topes conseguidas


Orientados a usuario, otros:
o Previsibilidad: un trabajo dado debera ejecutarse aprox. en el mismo tiempo y con
el mismo coste a pesar de la carga del sistema.
Orientado al sistema, relacionados con las prestaciones:
o Rendimiento: maximizar el nmero de procesos completados por unidad de tiempo
o Utilizacin del procesador: porcentaje de tiempo que el procesador est ocupador.
Orientados al sistema, otros
o Equidad: los proceso deben ser tratados de la misma manera y ninguno debe sufrir
inanicin.
o Imposicin de prioridades
o Equidad de recursos: mantener ocupados los recursos del sistema

EL USO DE PRIORIDADES
En lugar de una sola cola de procesos lista para ejecutar, se proporcionan un conjunto de
colas en orden descendente de prioridad.
Si hay uno o ms procesos en la cola, se selecciona un proceso utilizando alguna poltica de
planificacin.
Los procesos con prioridad ms baja pueden sufrir inanicin. Para que esto no pase se
pueden cambiar las prioridades por antigedad o histrico de ejecucin

POLTICAS DE PLANIFICACIN ALTERNATIVAS


El modo de decisin especifica los instantes de tiempo en que se ejecuta la funcin de
seleccin. Dos categoras:
o Sin expulsin (nonpreemptive): una vez que un proceso se esta ejecutando continua
hasta que termina, o solicita servicios
o Con expulsin (preemptive): un proceso ejecutando puede ser interrumpido por el
SO.
Modo de
decisin
No
expulsiva

Rendimiento

Expulsin
por
rodajas de
tiempo
No
expulsiva

Mucho si las
rodajas son
pequeas

SRT

Expulsiva
la llegada

Alto

HRRN

No
expulsiva

Alto

FCFS

RR

SPN

No
especificado

Alto

Tiempo de
respuesta
Puede ser alto
especialmente
si hay muchas
diferencias
entre los tiempo
s de ejecucin
de los procesos
Proporciona
buen tiempo de
respuesta para
procesos cortos
Proporciona
bien tiempo de
respuesta para
procesos cortos
Proporciona
bien tiempo de
respuesta
Proporciona
bien tiempo de

32

Rendimiento
Mnima

Efecto sobre
los procesos
Penaliza
procesos
cortos.
Penaliza
procesos con
mucha E/S

Inanicin
No

Mnima

Tratamiento
injusto

No

Puede ser
alta

Penaliza
proceso largos

Posible

Puede ser
alta

Penaliza
proceso largos

Posible

Puede ser
alta

Buen
equilibrio

No

Feedback

Expulsin
por
rodajas de
tiempo

No
especificado

respuesta
No especificado

Puede ser
alta

Puede
favorecer
proceso con
muchas E/S

Posible

Tiempo de Estancia: tiempo de residencia T o tiempo total que un elemento est en el


sistema (tiempo de espera ms tiempo de servicio).

PRIMERO EN LLEGAR, PRIMERO EN SERVIRSE (FCFS O FIFO)


Funciona mejor para procesos largos que para procesos cortos.
Tiende a favorecer procesos limitados pro el procesador sobre los proceso limitados por E/S
Puede conllevar usos insuficientes del procesador y los dispositivos de E/S

TURNO ROTATORIO (RR)


Se genera una interrupcin de reloj cada cierto intervalo de tiempo.
Cuando sucede la interrupcin el proceso se sita en la cola de listos y se selecciona el
siguiente por FCFS
Existe una sobrecarga de procesamiento debido al manejo de la interrupcin de reloj y por
las funciones de planificacin y activacin.
El quantum de tiempo debe ser ligeramente mayor que el tiempo requerido para una
interaccin o una funcin tpica del proceso
Es efectiva en sistemas de tiempo compartido de propsito general o sistemas de
procesamiento transaccional.
Desventaja: trata de forma desigual a los procesos limitados por el procesador y a los
limitados por la E/S
Se plantea el RR virtual que plantea una cola auxiliar de FCFS a la que se mueven los
procesos despus de estar bloqueados en una E/S que tiene preferencia sobre la cola de
listos.

PRIMERO EL PROCESO MS CORTO (SPN)


Incrementa la varianza de los tiempos de respuesta, especialmente para los procesos ms
largos, y de esta forma se reduce la predecibilidad.
Problema: necesidad de saber, o al menos estimar, el tiempo de procesamiento requerido
por cada proceso. (puede basarse en ejecuciones anteriores)
Posibilidad de inanicin para los procesos ms largos si hay una llegada constante de
procesos ms cortos.
Reduce la predisposicin a favor de los trabajos ms largos, no es deseable para un entorno
de tiempo compartido o de procesamiento transaccional por la carencia de expulsin.

MENOR TIEMPO RESTANTE (SRT)


Siempre se escoge al proceso que tiene el menor tiempo de proceso restante esperando.
El planificador debe tener una estimacin del tiempo de proceso para realizar la funcin
seleccionada y existe riesgo de inanicin para procesos ms largos
No se generan interrupciones adicionales reduciendo la sobrecarga.

PRIMERO EL DE MAYOR TASA DE RESPUESTA (HRRN)


Tiene en cuenta la edad del proceso.

33

Favorece a los procesos ms cortos, el envejecimiento sin servicio incrementa la tasa por lo
que un proceso ms largo podra competir con los trabajos ms cortos

RETROALIMENTACIN (FEEDBACK)

Penaliza a los trabajos que han estado ejecutando ms tiempo


Planificacin con expulsin y mecanismo de prioridades dinmico.
Cada vez que es expulsado se sita en la siguiente cola de menor prioridad
Cada cola se maneja con turnos rotativos.
Puede ocurrir inanicin pero para compensar este problema podemos variar los tiempos de
expulsin de cada cola, o promover a los proceso a colas de mayor prioridad despus de
que pasen un determinado tiempo esperando servicio en su cola actual.

LA PLANIFICACIN CONTRIBUCIN JUSTA (FAIR-SHARE SCHEDULING)


En un sistema multiusuario, si las aplicaciones o trabajos de usuario se pueden organizar
como mltiples procesos, hay una estructura en la coleccin de proceso que no se reconoce
en los planificadores tradicionales.
Seria deseable tomar decisiones de planificacin basndose en este conjunto de procesos.
A cada usuario se le asigna una prima de algn tipo que define la participacin del usuario
en los recursos de sistema como una fraccin del uso total de dichos recursos. A cada
usuario se le asigna una rodaja de procesador.
Esta planificacin controla el uso para dar menores recursos a usuarios que se han excedido
de su contribucin justo y mayores recursos a los que no han llegado.
Considera el histrico de ejecucin de un grupo de procesos relacionados, junto con el
histrico de ejecucin de cada uno de los procesos.
Divide a los usuarios en grupos y a cada grupo le da una fraccin de tiempo.
La planificacin se realiza en base a la prioridad y tiene en cuenta la prioridad del proceso,
su uso reciente de procesador y el uso reciente de procesador del grupo al que pertenece el
proceso.
La prioridad de un proceso disminuye a medida que el proceso utiliza el procesador y a
medida que el grupo al que pertenece usa el procesador.

CAPTULO 10: PLANIFICACIN MULTIPROCESADOR Y DE TIEMPO REAL


10.1. PLANIFICACIN MULTIPROCESADOR
Podemos clasificar los sistemas multiprocesadores como:
o Dbilmente acoplado o multiprocesador distribuido
o Procesadores de funcionalidad especializadas: maestro esclavos
o Procesamiento fuertemente acoplad: comparten memoria y SO

GRANULARIDAD
Granularidad de sincronizacin o frecuencia de sincronizacin entre los procesos del
sistema
Paralelismo independiente
o No hay sincronizacin explcita entre procesos
Paralelismo de grano grueso y muy grueso
o Hay sincronizacin entre procesos, pero a un nivel muy burdo. Este tipo de
situacin se trata sencillamente como un conjunto de proceso concurrentes
ejecutando en un monoprocesador multiprogramado
Paralelismo de grano medio

34

El paralelismo potencial de la aplicacin debe ser especificado implcitamente por


el programador.
o Grado alto de coordinacin e interaccin entre los hilos de la aplicacin.
Paralelismo de grado fino
o

ASPECTOS DE DISEO
La planificacin involucra tres aspectos:
o Asignacin de proceso a procesadores: en un multiprocesador uniforme la
asignacin consiste en tratar a cada proceso como un recurso colectivo y asignar
procesos a procesadores por demanda.
Si un proceso se vincula permanentemente a un procesador desde su activacin
hasta que concluye, entonces se mantiene una cola a corto plazo dedicada por cada
procesador, generando menor sobrecarga en la planificacin pero la desventaja es
que un procesador puede estar ocioso mientras que otro muy ocupado.
Para evitar esto se puede usar una cola comn o balance dinmico de carga.
En un maestro esclavo, un procesador planifica y controla los recursos, este puede
ser un cuello de botella, y si falla el maestro se cae el sistema.
En una arquitectura camarada cada procesador se auto-planifica desde la coleccin
de procesos disponibles
o El uso de multiprogramacin en procesos individuales: cada proceso debe ser capaz
de cambiar entre varios procesos para conseguir una alta utilizacin y mejor
rendimiento.
o Activacin de procesos

PLANIFICACIN DE PROCESOS
En los sistemas multiprocesador ms tradicionales, los procesos no se vinculan a los
procesadores. El sistema puede verse como una arquitectura de colas multiservidores.
La disciplina bsica FCFS con o sin esquema de prioridades esttico puede ser suficiente
para un sistema multiprocesador.

PLANIFICACIN DE HILOS
En un sistema multiprocesador los hilos pueden experimentar paralelismo real.
Si la integracin entre hilos es pequea se mejora el rendimiento, en cambio si es alta
puede influir mucho en las prestaciones.
Propuestas para la planificacin multiprocesador de hilos:
o Comparticin de carga: los procesos no se asignan a un procesador particular. Se
mantiene una cola global de hilos listos y cada procesador cuando est ocioso
selecciona un hilo de la cola.
o Planificacin en pandilla: un conjunto de hilos relacionados se planifica para
ejecutar sobre un conjunto de procesadores al mismo tiempo, en una relacin unoa-uno
o Asignacin de procesador dedicado: cada proceso ocupa un nmero de
procesadores igual al nmero de hilos en el programa durante toda la ejecucin del
programa
o Planificacin dinmica: el nmero de hilos de un proceso puede cambiar durante el
curso de su ejecucin

COMPARTICIN DE CARGA
Ventajas:

35

La carga se distribuye uniformemente


No se precisa un planificador centralizado
La cola global puede organizarse y ser accesible usando cualquiera de los
esquemas
FCFS
Numero menor de hilos primero: la cola compartida de listos se organiza
como una cola de prioridad, con la mayor prioridad para los hilos de los
trabajos con el menor nmero de hilos no planificados.
Menor nmero de hilos primero con expulsin.
Desventajas:
o La cola central ocupa una regin de memoria a la que deben accederse de manera
que se cumpla la exclusin mutua y se puede producir cuello de botella.
o Es poco probable que los hilos expulsados retomen su ejecucin en el mismo
procesador hacindolo menos eficaz.
o Es poco probable que todos los hilos de un programa gana acceso a procesadores a
la vez
La mejora es una cola local por cada procesador y una cola global compartida
o
o
o

PLANIFICACIN EN PANDILLA
Ventajas:
o Si se ejecutan en paralelo procesos estrechamente relacionados, puede reducirse el
bloqueo por sincronizacin, pueden necesitarse menos cambios de proceso y las
prestaciones aumentarn
o La sobrecarga de planificacin puede reducirse
Es para aplicaciones paralelas de grado medio o fino cuyo rendimiento se ve degradado en
forma importante cuando cualquier parte de la aplicacin no est ejecutando mientras otras
partes estn listas para ejecutar.
Crea un requisito para la ubicacin de procesador. Se puede hacer asignacin de tiempo
uniforme o planificacin ponderada por el nmero de hilos.

ASIGNACIN DE PROCESADOR DEDICADO


Cuando se planifica la aplicacin dada cada uno de sus hilos se asigna a un procesador que
permanece dedicado al hilo hasta que concluye.
Ventajas:
o Es un sistema altamente paralelo.
o Evita el cambio de procesos.
Desventajas:
o A mayor nmero de hilos peor rendimiento se obtiene, dado que la frecuencia de
expulsin de hilos y de re-planificacin es mayor.
o No planificar todos los elementos de un conjunto residente de actividad puede
provocar trasiego de procesador. Esto sucede cuando la planificacin de hilos cuyos
servicios se necesitan, provoca la expulsin de hilos cuyos servicios se van a
necesitar pronto
o Fragmentacin de procesado: situacin en la cual quedan algunos procesadores
sobrantes.

PLANIFICACIN DINMICA

36

El nmero de hilos de proceso puede ser alterado dinmicamente permitiendo al SO


ajustarse la carga para mejorar la utilizacin.
El SO planifica la particin de trabajos y cada proceso al particin de hilos
El SO planifica segn:
o Si hay procesadores ociosos, utilizarlos para satisfacer la solicitud
o Si un trabajo recin llega, ubicarlo en un nico procesador quitndoselo a cualquier
trabajo que tenga ms de un procesador

10.2. PLANIFICACIN DE TIEMPO REAL


Computacin de tiempo real: la correccin del sistema depende del resultado lgico y el
momento.
Un sistema de tiempo real tiene tareas duras que deben cumplirse en un plazo lmite y
suaves con plazo lmite deseable pero no obligatorio.

CARACTERSTICAS DE LOS SISTEMAS OPERATIVOS DE TIEMPO REAL


Determinismo: realiza operaciones en instantes de tiempos fijos predeterminados o dentro
de intervalos de tiempo.
Reactividad: cuanto tiempo tarda el SO, despus del reconocimiento, en servir la
interrupcin:
o La cantidad de tiempo necesario para manejar inicialmente la interrupcin y
comenzar a ejecutar la rutina de servicio de la interrupcin RSI
o La cantidad de tiempo necesario para realizar la RSI
o El efecto de anidamiento de interrupciones
Control del usuario: puede permitirle al usuario un control de grado fino sobre la prioridad
de la tarea y las caractersticas sobre el uso de paginacin, etc.
Fiabilidad
Operacin de fallo suave: refiere a la habilidad del sistema de fallar de tal manera que
preserve tanta capacidad y datos como sea posible.
En el caso de que sea imposible cumplir todos los plazos se cumplen lo de ms prioridad
Cambio de procesos o hilos rpido
Pequeo tamao
Capacidad para responder rpidamente a interrupciones externas
Multitarea con herramientas para la comunicacin entre procesos
Utilizacin de ficheros secuenciales especiales
Planificacin expulsiva basada en prioridades
Minimizacin de los intervalos durante los cuales se deshabilitan las interrupciones
Primitivas para retardar tareas durante una cantidad dada de tiempo y para parar/retomar
tareas.
Alarmas y temporizaciones especiales.

PLANIFICACIN DE TIEMPO REAL


Dependen de cuando el sistema realiza anlisis de planificabilidad, si se realiza
estticamente o dinmicamente, el resultado del anlisis produce un plan de planificacin
de acuerdo a cual se desarrollaran las tareas de planificacin
o Enfoques estticos dirigidos por tablas: el resultado del anlisis es una planificacin
que determina cuando en tiempo de ejecucin debe comenzar a ejecutar cada tarea.
Es aplicable a tareas que son peridicas. No es flexible

37

o
o

Enfoques estticos expulsivos dirigidos pro prioridad: el anlisis se utiliza para


asignar prioridades a las tareas y as puede utilizarse un planificado expulsivo
tradicional basado en prioridades. La asignacin de prioridades est relacionada
con las restricciones de tiempo.
Enfoques dinmicos basados en un plan: la falibilidad se determina en tiempo de
ejecucin. Un resultado del anlisis es un plan para decidir cuando poner en marcha
la tarea. Se planifica cada vez que llega una nueva tarea.
Enfoques dinmicos de mejor esfuerzo: el sistema intentar cumplir todos los
plazos y aborta la ejecucin de cualquier proceso cuyo plazo haya fallado

PLANIFICACIN POR PLAZOS


Objetivo de arrancar las tareas de tiempo real tan rpidamente como sea posible.
Se necesita tener informacin adicional de cada tarea:
o Tiempo de activacin
o Plazo de comienzo
o Plazo de conclusin
o Tiempo de proceso
o Recursos requeridos
o Prioridad
o Estructura de subtareas
La planificacin de la tarea de plazo ms cercano minimiza la cantidad de tareas que fallan
en sus plazos.
Se mejora el rendimiento si se sabe antes de que este lista el plazo de finalizacin

PLANIFICACIN DE TASA MONTONA


RSM asigna prioridades a las tareas en base a sus periodos.
Para el RSM la tarea de mayor prioridad es aquella con el periodo ms breve.

INVERSIN DE PRIORIDAD
Sucede cuando las circunstancias dentro de un sistema fuerza a una tarea de mayor
prioridad a esperar por otra tarea de mejor prioridad. Pero ejemplo cuando una tarea de
menor prioridad bloquea un recurso
Inversin de prioridad ilimitada: la duracin de la inversin de prioridad depende del
tiempo necesario para conseguir el recurso compartido y de las acciones impredecibles de
otras tareas no relacionadas
Para evitar esto se utiliza:
o Protocolo de herencia de prioridad: una tarea de menor prioridad heredar la
prioridad de cualquier tarea de mayor prioridad pendiente de un recurso que
compartan
o Techo de prioridad: se asocia una prioridad por cada recurso. La prioridad asociada
con un recurso es un nivel ms alta que la prioridad de su usuario ms prioritario.
El planificador asigna esta prioridad a cualquier tarea que acceda al recurso y
cuando termina su prioridad vuelve a la normal.

38

SEGUNDA PARTE
CAPTULO 7: GESTIN DE MEMORIA
En un sistema monoprogramado, la memoria se divide en dos partes: una parte del SO
(monitor residente, ncleo) y una parte para el programa actualmente en ejecucin
En un sistema multiprogramado, la parte de usuario de la memoria se debe subdividir para
acomodar mltiples procesos. Esto se demoniza gestin de memoria

7.1 REQUISITOS DE LA GESTIN DE LA MEMORIA


Requisitos que la gestin de memoria deben satisfacer:
o Reubicacin
o Proteccin
o Comparticin
o Organizacin lgica
o Organizacin Fsica

REUBICACIN
Poder intercambiar procesos en la memoria principal para maximizar la utilizacin del
procesador, para esto podra ser necesario reubicar el proceso en un rea de memoria
diferente.
El procesador debe tratar con referencias de memoria dentro del propio programa

PROTECCIN
Cada proceso debe protegerse contra interferencias no deseadas por parte de otros procesos.
Todas las referencias de memoria generadas por el proceso deben comprobarse en tiempo
de ejecucin, para poder asegurar que se refieren solo al espacio de memoria asignado a
dicho proceso.
El procesador debe ser capaz de abortar tales instrucciones en el punto de ejecucin

COMPARTICIN
Permitir a varios procesos acceder a la misma porcin de memoria principal.
Debe permitir el acceso controlado a reas de memoria compartidas sin comprometer la
proteccin esencial.

ORGANIZACIN LGICA
La memoria principal de un computador se organiza como un espacio de almacenamiento
lnea o unidimensional, compuesto por una secuencia de bytes o palabras.
Si el So y el HW pueden tratar de forma efectiva los programas de usuario y los datos de la
forma efectiva los programas de usuario y los datos en la forma de mdulos de algn tipo,
entonces se pueden lograr ventajas:
o Los mdulos se pueden escribir y compilar independientemente
o Se puede proporcionar diferentes grados de proteccin a los mdulos
o La ventaja de proporcionar comparticin a nivel de mdulos es que se corresponde
con la forma en la que el usuario ve el problema, y por tanto es fcil para ste
especificar la comparticin deseada.
La herramienta ms adecuadas es la segmentacin

ORGANIZACIN FSICA
39

La memoria secundaria de larga capacidad puede proporcionar almacenamiento para


programas y datos a largo plazo, mientras que una memoria principal ms pequea contiene
programas y datos actualmente en uso.
Se le puede dar esta responsabilidad al programador pero debera utilizar la superposicin,
en la cual los programas y los datos se organizan de tal forma que se puede asignar la
misma regin de memoria a varios mdulos. Por lo que la responsabilidad recae en el SO

TCNICAS DE GESTIN DE MEMORIA


Tcnica
Particionamiento
fijo

Particionamiento
dinmico

Paginacin
sencilla

Segmentacin
sencilla

Paginacin con
memoria virtual

Segmentacin
con memoria
virtual

Descripcin
La memoria principal se divide
en particiones estticas en
tiempo de generacin del
sistema. Un proceso se puede
cargar en una particin con igual
o superior tamao
Las particiones se crean de
forma dinmica de tal forma que
cada proceso se carga en una
particin del mismo tamao que
el proceso

Virtudes
Sencilla de implementar;
poca sobrecarga para el
SO

La memoria principal se divide


en marcos del mismo tamao.
Cada proceso se divide en
pginas del mismo tamao que
los marcos. Un proceso se carga
a todas sus pginas en marcos
disponibles, no necesariamente
contiguos.
Cada proceso se divide en
segmentos. Un proceso se carga
cargando todos sus segmentos en
particiones dinmicas no
necesariamente contiguas

No existe fragmentacin
externa

Exactamente igual que la


paginacin sencilla, excepto que
no es necesario cargar todas las
pginas de un proceso. Las
pginas no residentes se traen
bajo demanda de forma
automtico.
Exactamente igual que la
segmentacin sencilla, excepto
que no es necesario cargar todos
los segmentos de un proceso.
Los segmentos no residentes se
traen bajo demanda de forma
automtico.

7.2 PARITICIONAMIENTO DE LA MEMORIA

40

No existe fragmentacin
interna; uso ms
eficiente de memoria
principal.

Defectos
Uso ineficiente de la
memoria, debido a la
fragmentacin interna;
debe fijarse el nmero
mximo de procesos
activos.
Uso ineficiente del
procesador, debido a la
necesidad de
compactacin para evitar
la fragmentacin
externa.
Una pequea cantidad de
fragmentacin interna

No existe fragmentacin
interna; mejora la
utilizacin de la
memoria y reduce la
sobrecarga respecto al
particionamiento
dinmico.
No existe fragmentacin
externa; mayor grado de
multiprogramacin; gran
espacio de direcciones
virtuales

Fragmentacin externa

No existe fragmentacin
externa; mayor grado de
multiprogramacin; gran
espacio de direcciones
virtuales; soporte a
proteccin y
comparticin

Sobrecarga por la
gestin compleja de la
memoria

Sobrecarga por la
gestin compleja de la
memoria

La operacin principal de la gestin de memoria es traer los procesos a la memoria


principal para que el procesador los pueda ejecutar. Para esto se usa el particionamiento:
paginacin sencilla y segmentacin sencilla.

PARTICIONAMIENTO FIJO
Se puede asumir que el SO ocupa alguna porcin fija de la memoria principal y que el resto
esta disponible para mltiples procesos.
El esquema ms simple es repartirla en regiones con lmites fijos

TAMAOS DE PARTICIN
Cualquier `proceso menor o igual que el tamao de particin puede cargarse en cualquier
particin disponible.
Si esta todo lleno y bloqueado puede mandarse a swap.
Existen dos dificultades con el uso de las particiones fijas del mismo tamao:
o Un programa podra ser demasiado grande para caben en una particin. El
programador debe disear un programa con el uso de overlay.
o La utilizacin de memoria principal es ineficiente. Se genera fragmentacin interna.
ALGORITMO DE UBICACIN
Con particiones fijas es trivial
Con particiones variables la forma ms sencilla consiste en asignar cada proceso a la
particin ms pequea dentro de la cual cabe.
Una tcnica ptima sera emplear una nica cola para todos los procesos. En el momento de
cargar un proceso en la memoria principal, se selecciona la particin ms pequea
disponible. Si todas estn ocupada se realiza swap. Tiene preferencia a la hora de ser
expulsado a disco el proceso que ocupe la particin ms pequea que pueda albergar el
proceso entrante.
Desventajas:
o El nmero de particiones limita el nmero de procesos
o Los procesos pequeos no utilizan el espacio de las particiones eficientemente.

PARTICIONAMIENTO DINMICO
Las particiones son de longitud y nmero variable. Cuando se lleva un proceso a la
memoria principal se le asigna exactamente tanta memoria como requiera.
A medida que pasa el tiempo la memoria se fragmenta cada vez ms y la utilizacin de la
memoria decrementa: fragmentacin externa.
La fragmentacin externa se elimina con la compactacin: de vez en cuando el SO desplaza
los procesos en memoria de forma que se encuentren contiguos y de se une la memoria
libre. La desventaja es que se malgasta tiempo del procesador.
ALGORITMO DE UBICACIN
Mejor-ajuste (best-fit): escoge el bloque ms cercano en tamao a la peticin.
Compactacin muy frecuente
Primer-ajuste (first-fit): comienza a analizar a memoria desde el principio y escoge el
primer bloque disponible que sea suficientemente grande. Ms sencillo y ms rpido. Puede
dejar al final pequeas particiones libres.
Siguiente-ajuste (next-fit): escoge el siguiente bloque disponible que sea suficientemente
grande. Requiere ms frecuentemente la compactacin.

41

SISTEMA BUDDY
Los bloques de memoria disponibles son de tamao 2k, L K U donde
o 2L = bloque de tamao ms pequeo asignado
o 2u = bloque de tamao ms grande asignado. Es normalmente el tamao de la
memoria completa.
El sistema va dividiendo la memoria en mitades (siempre 2n) hasta que el proceso entre en
la menor posible. El sistema mantiene una lista de los huecos. Cuando dos pares iguales y
contiguos se liberan, se unen.

REUBICACIN
Cuando se utiliza el esquema de particionamiento fijo, se espera que un proceso siempre se
asigne a la misma particin, pero esto no pasa.
Una direccin lgica es una referencia a una ubicacin de memoria independiente de la
asignacin actual de datos a la memoria; se debe llevar a cabo una traduccin a una
direccin fsica antes que se alcance el acceso a la memoria.
Una direccin relativa es un ejemplo particular de direccin lgica, en el que la direccin se
expresa como una ubicacin relativa a algn punto conocido.
Una direccin fsica es una ubicacin real en memoria principal.
Se usa el registro base, se le suma el desplazamiento y se compara con el registro lmite.

7.2 PAGINACIN
La memoria principal se divide en porciones de tamao fijo y los procesos en porciones del
mismo tamao.
A cada pgina se le asignan marcos.
Existe fragmentacin interna pero no externa.
El SO mantiene una lista de marcos libres.
El SO tambin mantiene una tabla de pginas por cada proceso, para producir una direccin
fsica. Dentro del programa, cada direccin lgica est formada por un nmero de pgina y
un desplazamiento dentro de la pgina. La traduccin de lgica a fsica la realiza el HW.
Cada entrada de la tabla de pginas contiene el nmero del marco en la memoria principal,
si existe, que contiene la pgina correspondiente.
Con la paginacin las particiones son bastante pequeas, un programa puede ocupar ms de
una particin y no necesitan ser contiguas.
Conviene utilizar un tamao de pginas potencia de 2 dando lugar a que:
o El esquema de direccionamiento lgico es transparente al programador, el
ensamblador y al montador.
o Es fcil para el HW traducir las direcciones:
Extraer el nmero de pgina con los n bits de la izquierda de la direccin
lgica.
Utilizar el nmero de pgina como un ndice a tabla de pginas del proceso
para encontrar el nmero de marco, k.
La direccin fsica inicial del marco es k * 2 n y la direccin fsica del byte
referenciado es dicho nmero ms el desplazamiento. Esta direccin fsica
no necesita calcularse, solo se concatena el nmero de marco al
desplazamiento.

7.4. SEGMENTACIN
El programa y sus datos asociados se dividen en un nmero de segmentos.

42

La direccin lgica contiene un nmero de segmento y un desplazamiento.


La segmentacin de un programa podra ocupar ms de una particin y estas particiones no
ser necesariamente contiguas.
Sufre de fragmentacin externa pero debera ser menor.
La segmentacin es normalmente visible y se proporciona como una utilidad para organizar
programas y datos.
Consecuencia de la segmentacin: no hay una relacin simple entre direcciones lgicas y
direcciones fsicas.
Un esquema de segmentacin sencillo hara uso de una tabla de segmentos por cada
proceso y una lista de bloques libres de memoria principal.
Pasos para la traduccin de direcciones:
o Extraer el nmero de pgina con los n bits de la izquierda de la direccin lgica.
o Utilizar el nmero de segmento como un ndice a tabla de segmentos del proceso
para encontrar la direccin fsica inicial del segmento.
o Comparar el desplazamiento y la longitud del segmento. Si el desplazamiento es
mayor o igual que la longitud, la direccin no es vlida
o La direccin fsica deseada es la suma de la direccin fsica inicial y el
desplazamiento.

RESUMEN
La gestin de memoria implica tratar la memoria principal como un recurso que debe
asignarse y compartirse entre varios procesos activos.

CAPITULO 8: MEMORIA VIRTUAL


8.1 HARDWARE Y ESTRUCTURAS DE CONTROL
Caractersticas de la paginacin y la segmentacin claves para el comienzo de MV:
o Todas las referencias a la memoria dentro de un proceso se realizan a direcciones
lgicas, que se traducen dinmicamente en direcciones fsicas durante la ejecucin.
Esto significa que un proceso puede ser llevado y trado a memoria de forma que
ocupe diferentes regiones de la memoria principal en distintos instantes de tiempo
durante su ejecucin.
o Un proceso puede dividirse en varias porciones y estas porciones no tiene que estar
localizadas en la memoria de forma contigua durante la ejecucin.
Parte del proceso que se encuentra realmente en la memoria principal para, cualquier
instante de tiempo, se denomina conjunto residente del proceso.
Si el procesador encuentra una direccin lgica que no se encuentra en la memoria principal
generar una interrupcin indicando un fallo de acceso a la memoria. El SO coloca el
proceso interrumpido en un estado bloqueado y toma el control. Se solicita una peticin de
E/S a disco y cuando ya est se genera otra interrupcin para colocar al proceso en Listo.
Ventajas:
o Pueden mantenerse un mayor nmero de procesos en memoria principal.
Utilizacin ms eficiente del procesador
o Un proceso puede ser mayor que toda la memoria principal.
Debido a que un proceso ejecuta solo en la memoria principal, esta memoria se denomina
memoria real. Pero el programador o usuario la percibe ms grande, memoria virtual.

PROXIMIDAD Y MEMORIA VIRTUAL

43

Debido a esto solo unas pocas porciones de cada proceso se encuentra en memoria,
ahorrando tiempo porque las porciones del proceso no usadas no se expulsaran de la
memoria a swap y de swap a la memoria.
Si se elimina una porcin justo antes de que vaya a ser utilizada, deber recuperar dicha
porcin de nuevo casi de forma inmediata. Un abuso de esto lleva a trasiego (trashing): el
sistema consume la mayor parte del tiempo enviando y trayendo porciones de swap en lugar
de ejecutar instrucciones.
El principio de proximidad determina que solo unas pocas porciones del procese se
necesitarn a lo largo de un perodo de tiempo corto. Tambin es posible hacer suposiciones
inteligentes sobre cuales son las porciones del proceso que se necesitarn en un futuro
prximo, para evitar el trasiego.

PAGINACIN
Para la memoria virtual basada en paginacin se necesita una tabla de pginas.
Normalmente es una por cada proceso.
Cada entrada de la pgina indica si la pgina esta presente en memoria principal o no, y si
esta el marco de dicha pgina. Tambin incluye un bit de modificado, si no hay ningn
cambio no se va a necesitar reescribir en memoria cuando se la reemplace.

ESTRUCTURA DE LA TABLA DE PGINAS


Nmero de pgina y el desplazamiento.
Cuando un proceso se encuentra ejecutando, un registro contiene la direccin de comienzo
de la tabla de pginas para dicho proceso. El nmero de pginas de memoria virtual se
utiliza para indexar esa tabla, se encuentra el marco y al combinarla con el desplazamiento
obtengo la direccin lgica.
Las tablas de pginas estas sujetas a paginacin igual que cualquier otra pgina y esta
tambin en memoria virtual. Algunos procesadores utilizan un esquema de dos niveles para
organizar las tablas de pginas de gran tamao. En este esquema existe un directorio de
pginas en la cual cada entrada apunta a una tabla de pginas.

TABLA DE PGINAS INVERTIDA


La parte correspondiente al nmero de pgina de la direccin virtual se referencia por
medio de un valor hash usando una funcin hash sencilla. El valor hash es un puntero a una
tabla de pginas invertida, que contiene las entradas de tablas de pginas. Hay entradas en
la tabla de pginas invertida por cada marco de pgina real.
Esta tabla requiere una siempre una porcin de memoria real.
La entrada de la tabla de pginas incluye:
o Nmero de pgina
o Identificador del proceso
o Bits de control
o Puntero de la cadena

BUFFER DE TRADUCCIN ANTICIPADA


Toda referencia a la memoria virtual puede causar dos accesos a memoria fsica.
La mayora de los esquemas de memoria virtual utilizan una cach especial de alta
velocidad para las entradas de la tabla de pgina denominado buffer de traduccin
anticipada (TLB).

44

Dada una direccin virtual el procesador primero examina la TLB, si la entrada de la tabla
de pginas solicitada esta presente entonces recupera el nmero de marco y se construye la
direccin real, si no est busca en la tabla de pgina.
Cada entrada de la TLB debe incluir un nmero de pgina, la entrada de la tabla de pginas
completa. El procesador proporciona un hardware que permite consultar simultneamente
varias entradas: resolucin asociativa.

TAMAO DE PGINA
Cuanto mayor es el tamao de pgina, menor cantidad de fragmentacin interna.
Como los dispositivos secundarios son la mayora de tipo giratorio favorece tamao de
pgina grande para mejorar la eficiencia de transferencia de bloques de datos.
El tamao influye en la tasa de fallos. Si el tamao de pgina es muy pequeo habr un
nmero relativamente alto de pginas disponibles en la memoria principal para cada
proceso por lo tanto la tasa de fallos ser relativamente baja. A medida que el tamao de
pginas se incrementa la tasa de fallos tambin. La tasa de fallos de pgina comenzar a
caer a medida que el tamao de la pgina se aproxima al tamao del proceso completo.
Para un tamao de pgina fijo la tasa de fallos cae a medida que el nmero de pginas
mantenidas en la memoria principal crece.
Por la creciente tendencia a reducir la proximidad referencial por los distintos paradigmas
la TLB se puede convertir en un cuello de botella del rendimiento.

SEGMENTACIN
LAS IMPLICACIONES EN LA MEMORIA VIRTUAL
Los segmentos pueden ser de tamao diferente, tamao dinmico.
Ventajas para el programador:
o Simplifica el tratamiento de estructuras de datos que pueden crecer. Con la
memoria virtual segmentada, a una estructura de datos se le puede asignar su propio
segmento, y el SO expandir o reducir el segmento bajo demanda.
o Permite programas que se modifican o recopilan de forma independiente
o Da soporte a la comparticin entre procesos
o Soporta los mecanismos de proteccin

ORGANIZACIN
Se necesita una tabla de segmentos. Cada entrada implica, bit de presencia, bit de
modificacin, bit.
La tabla de segmento debe estar en MP y cuando un proceso en particular est en ejecucin
un registro mantiene la direccin de comienzo de la tabla de segmentos.

PAGINACIN Y SEGMENTACIN COMBINADAS


La paginacin es trasparente al programador y elimina la fragmentacin interna. Es posible
desarrollar algoritmos de gestin de la memoria ms sofisticados, por el tamao fijo
La segmentacin es visible al programador, incluye la posibilidad de manejar estructuras de
datos que crecen y dar soporte a la comparticin y a la proteccin.
En la combinada el espacio de direcciones de usuario se divide en un nmero de segmentos.
Cada segmento esta dividido en pginas de tamao fijo.
El desplazamiento dentro de un segmento es visto como un nmero de pginas y un
desplazamiento dentro de la pgina incluida en el segmento.
Asociado a cada proceso existe una tabla de segmentos y una tabla de pginas por cada
segmento.

45

La entrada en la tabla de segmentos contiene la longitud del segmento, una referencia a la


tabla de pginas (igual a la de paginacin sencilla).

PROTECCIN Y COMPARTICIN
Para conseguir comparticin es posible que un segmento se encuentre referenciado desde
las tablas de segmentos de ms de un proceso.
Un esquema habitual es utilizar la estructura de proteccin en anillo.

8.2 SOFTWARE DEL SISTEMA OPERATIVO


El diseo de la parte de la gestin de memoria del sistema operativo depende:
o Si el sistema usa o no tcnicas de memoria virtual
o El uso de paginacin o segmentacin o ambas
o Los algoritmos utilizados para los diferentes aspectos de la gestin de la memoria.
Las dos primeras depende de la plataforma HW disponible.
El aspecto centra es el rendimiento: se tratar de minimizar la tasa de ocurrencia de fallos
de pgina, porque los fallos causan una sobrecarga sobre el SW

POLTICA DE RECUPERACIN
Determina cuando una pgina se trae a la memoria.
Puede ser:
o bajo demanda: una pgina se trae a memoria slo cuando se hace referencia a una
posicin en dicha pgina.
o paginacin adelantada: se traen a memoria tambin otras pginas, diferente de la
que ha causado el fallo de pgina. Aparte es mucho ms eficiente traer en bloques.

POLTICAS DE UBICACIN
determina en que parte de la memoria real van a residir las porciones de la memoria de un
proceso.
La ubicacin es habitualmente irrelevante debido a que el HW de traduccin de direcciones
ye l HW de acceso a la memoria principal puede realizar sus funciones en cualquier
combinacin de pgina-marco con la misma eficiencia.
Hay sistemas, multiprocesadores de acceso a la memoria no uniforme donde el rendimiento
depende de la distancia en la cual reside el dato en relacin al procesador que va a utilizar.

POLTICA DE REEMPLAZO
Las cuestiones son:
o Cuantos marcos de pginas se van a reservar para cada proceso activo
o Si el reemplazo es global o local
Todas las polticas tienen como objetivo que la pgina que va a eliminarse sea aquella que
tiene menos posibilidades de volver a tener una referencia en un futuro prximo
La mayora de las polticas tratan de predecir el comportamiento futuro en base al
comportamiento pasado.

BLOQUEO DE MARCOS.
Algunos marcos en la memoria principal pueden encontrarse bloqueados haciendo que esa
pgina no puede reemplazarse.
El bloqueo se puede realizar asociando un bit de bloqueo a cada uno de los marcos.

46

ALGORITMOS BSICOS
Poltica ptima: tomar como reemplazo la pgina para la cul el instante de la siguiente
referencia se encuentre ms lejos. Esta poltica es imposible de implementar, porque el SO
tiene que conocer los eventos futuros. Se utiliza para comparar los otros algoritmos.
Usada menos recientemente (LRU): seleccionar a la pgina de memoria que no se haya
referenciada desde hace ms tiempo. Debido al principio de proximidad referencial, esta
pgina sera la que tiene menos probabilidad de volver a tener referencias en un futuro
prximo. La sobrecarga es grande, se puede mantener una pila de referencias a pginas.
Poltica FIFO: no es eficiente porque es habitual que en los programas haya una zona del
mismo o regiones de datos que son utilizadas de forma intensiva durante todo el tiempo de
vida del proceso. Estas pginas son expulsadas y despus tradas.
Poltica del reloj: requiere la inclusin de un bit adicional en cada uno de los marcos de
pgina, bit de usado. Cuando una pgina se trae por primera vez a la memoria este se pone
en 1 y cada vez que se usa tambin. Se dispone como un buffer circular. Cuando llega el
momento de reemplazar una pgina, el SO recorre el buffer para encontrar un marco con su
bit de usado en 0. Cuando pasa por uno que tiene le bit en 1 lo pone en 0 y continua. Este
algoritmo se puede hacer ms potente incrementando los bits de control. Con el bit de
modificado el algoritmo puede actuar de la siguiente manera:
o Primero busca por u = 0 y m = 0
o Si no encontr busca u = 0 y m = 1 y va poniendo en el recorrido u = 0
o Sino repite el paso uno.

BUFFERING DE PGINAS
Puede mejorar el rendimiento de la paginacin y que permite el uso de una poltica de
reemplazo de pginas sencilla, FIFO.
Una pgina reemplazada no se pierde sino que se asigna a una de las dos siguiente listas: la
lista de pginas libres si la pgina no se ha modificado (lista de pginas disponible para
lectura de nuevas pginas), o la lista de pginas modificadas.
Cuando se va a reemplazar una pgina que no se ha modificado, se mantiene en la memoria
ese marco de pgina y se aade al final de la lista de pginas libres.
La lista de pginas modificadas tambin se puede escribir como bloque.

POLTICA DE REEMPLAZO Y TAMAO DE LA CACH


Con una cach de gran tamao, el reemplazo de pginas de la memoria virtual puede tener
un impacto importante en el rendimiento.
En sistemas que utilizan algn tipo de buffering de pgina, se puede mejorar el rendimiento
de la cach aadiendo a la poltica de reemplazo de pginas una poltica de ubicacin de
pginas en el buffer de pginas.

GESTIN DEL CONJUNTO RESIDENTE


TAMAO DEL CONJUNTO RESIDENTE
Cuanto menor es la cantidad de memoria reservada para un proceso, mayor es el
nmero de procesos que puede residir en la memoria principal a la vez
o Si el conjunto de pginas de un proceso es pequeo la posibilidad de un fallo es
mayor
o La reserva de ms memoria principal para un determinado proceso no tendr un
efecto apreciable sobre la tasa de fallos de pginas
La poltica de asignacin fija proporciona un nmero fijo de marcos de memoria principal
disponibles para ejecucin. Este nmero se decide en el momento de la carga inicial y se
o

47

pude determinar en base al tipo de proceso. Siempre que se produzca un fallo de pgina, la
pgina que se necesite reemplazar una de las pginas del proceso. Implica reemplazo local
La poltica de asignacin variable permite que se reserve un nmero de marcos por proceso
que puede variar a lo largo del tiempo de vida del mismo.

MBITO DE REEMPLAZO
Local: selecciona nicamente entre las pginas residentes del proceso que ha
generado el fallo.
o Global: se consideran todas las pginas en la memoria principal que no se
encuentren bloqueados como candidatos para el reemplazo.
Ambos tipos de polticas se activan por medio de un fallo de pgina cuando no existen
marcos libres.
o

Asignacin fija, mbito local.


Desventajas:
o Si la reserva es poca la tasa de fallos va a ser alta
o Si la reserva es grande habr pocos programas en la memoria principal y el
procesador va a estar ocioso.
Asignacin variable, mbito global.
Dificultad en la eleccin de los reemplazos
Con el buffering de pginas se puede mejorar el rendimiento
Asignacin variable, mbito local
Cuando se carga un nuevo proceso en la memoria principal se le asignan un cierto nmero
de marcos de pgina a su conjunto residente. Para cubrir esta reserva se utiliza la
paginacin adelantada o por demanda.
Cuando ocurra un fallo, la pgina que se seleccionar para reemplazar pertenecer al
conjunto residente que caus el fallo.
De ven en cuando, se reevaluar la asignacin proporcionada a cada proceso.
Estrategia del conjunto de trabajo: es el conjunto de pginas de un proceso que se ha
referenciado en x unidades de tiempo virtual. El conjunto de trabajo es en funcin al tiempo
El concepto de conjunto de trabajo se puede usar para crear la estrategia del tamao del
conjunto residente:
o Monitorizar el conjunto de trabajo de cada proceso
o Eliminando peridicamente del conjuntos residentes aquellas pginas que no se
encuentre en el conjunto de trabajo, esencian en una poltica LRU
o Un proceso puede ejecutar solo si su conjunto de trabajo se encuentra en la
memoria principal.
Problemas de la estrategia del conjunto de trabajo:
o El tamao y la pertenencia al conjunto de trabajo cambian a lo largo del tiempo
o Una medicin verdadera del conjunto de trabajo para cada proceso no es
practicable
o El valor ptimo de x es desconocido.
Se puede alcanzar buenos resultados monitorizando los fallos de pgina. Si estn por debajo
de un determinado lmite se puede bajar el conjunto residente, si es lo opuesto se puede
ampliar.
Un algoritmo que sigue esta estrategia es el algoritmo de frecuencia de fallos de pgina
(PFF). Cuando se produce un fallo de pgina el SO anotar el tiempo virtual desde el ltimo

48

fallo de pgina para dicho proceso. Se fija un umbral y segn esto se aaden o quitan
pginas al conjunto residente de un proceso. Se pueden usar tambin dos umbrales. Se
produce sobrecarga indeseable, por la modificacin continua del conjunto residente.
Conjunto de trabajo con muestro sobre intervalos variables (VSWS). Evala el conjunto de
trabajo del proceso en instantes de muestreo basados en el tiempo virtual trascurrido. De
esta forma el conjunto residente solo decrecer al final del intervalo.
o Si el tiempo virtual entre el ltimo muestro alcanza L, se suspende el proceso y se
analizan los bits de usado.
o Si antes ocurren Q fallos:
Si el tiempo virtual del muestreo es menor a M se espera hasta alcanzarlo y
se analizan los bits de usado
Si el tiempo virtual desde el ltimo muestreo es mayor o igual a M, se
suspende y se analiza.

POLTICAS DE LIMPIEZA
Se encarga de determinar cuando una pgina que est modificada se debe escribir en
memoria secundaria.
Limpieza bajo demanda: una pgina se escribe en memoria secundaria solo cuando se ha
seleccionado para su reemplazo. Si se produce un fallo de pgina se debe esperar que se
completen dos transacciones.
Limpieza adelantada: se escribe las pginas modificadas antes de que sus marcos de
pginas se necesiten. Permite que se escriban en lotes, pero la mayora se van a modificar
de nuevo antes de que sean reemplazadas.
Una estrategia ms apropiada es el buffering de pginas: limpiar solo las pginas que son
reemplazables, pero desacoplar las operaciones de limpieza y reemplazo.

CONTROL DE CARGA
Determina el nmero de procesos que residirn en la memoria principal.
Si hay pocos proceso se malgasta tiempo en swaping, si hay muchos se produce trashing.
Grado de multiprogramacin
A medida que el nivel de multiprogramacin aumenta, se usa mejor el procesador. Sin
embargo se alcanza un punto en el cual el tamao de conjunto residente promedio no es
adecuado, en este punto el nmero de fallos de pginas se incrementa de forma dramtica y
la utilizacin del procesador colapsa
Criterio L = S, que ajusta el nivel de multiprogramacin de forma que el tiempo medio
entre fallos de pgina se iguala al tiempo medio necesario para procesar un fallo, y la
utilizacin del procesador es mxima
Criterio del 50% que intenta mantener la utilizacin del dispositivo de paginacin
aproximadamente al 50% y la utilizacin del procesador tambin es mxima.
Suspensin de procesos
Si se va a reducir el grado de multiprogramacin se puede suspender un proceso:
o Proceso con baja prioridad
o Proceso que provoca muchos fallos
o Proceso activado hace ms tiempo
o Proceso con conjunto residente de menor tamao: penaliza programas con
proximidad de referencia muy fuerte.
o Proceso con la mayor ventana de ejecucin restante.

49

8.6 RESUMEN
Para poder usar de forma eficiente el procesador y las funciones de E/S, es aconsejable
mantener el mayor nmero de procesos disponibles e MP y liberar al programador de las
restricciones de tamao en el desarrollo.
Con la memoria virtual todas las referencias a direcciones son lgicas y se traducen en
tiempo de ejecucin a direcciones reales. Esto permite que un proceso pueda ubicarse en
cualquier parte de la memoria principal y que se dividan en fragmentos.

CAPTULO 11: GESTIN DE E/S Y PLANIFICACIN DEL DISCO


11.1 DISPOSITIVOS DE E/S
Los dispositivos externos dedicados a la E/S son de tres categoras:
o Legibles para el usuario: adecuados para la comunicacin usuario computador.
o Legibles para la mquina: comunicacin con equipamiento electrnico
o Comunicacin: entre dispositivos remotos.
Las diferencias fundamentales son:
o Velocidad de transferencia de datos
o Aplicacin: el uso al que est destinado un dispositivo tiene influencia en el SW y
en las polticas del SO y las herramientas que le dan soporte.
o Complejidad de control
o Unidad de transferencias: los datos pueden transferirse como un flujo de bytes o
caracteres o en bloques.
o Representacin de los datos: los dispositivos utilizan diferentes esquemas de
codificacin de datos
o Condiciones de error.

11.2 ORGANIZACIN DEL SISTEMA DE E/S


E/S programada
E/S dirigida por interrupciones
DMA

LA EVOLUCIN DEL SISTEMA DE E/S


Etapas:
o El procesador controla directamente un dispositivo perifrico
o Se aade un controlador o mdulo de E/S. El procesador usa E/S programada sin
interrupciones
o Empleando interrupciones
o Al mdulo de E/S se le da control directo de la memoria mediante DMA
o Se mejora el mdulo de E/S para convertirse en un procesador independiente, con
un juego de instrucciones especializadas para adaptarse a la E/S (canal de E/S)
o El mdulo de E/S tiene su propia memoria local y es un computador propio. Se
pueden controlar un gran conjunto de dispositivos de E/S con una intervencin
mnima por parte del procesador. (procesador de E/S)

ACCESO DIRECTO A LA MEMORIA


La unidad de DMA es capaz de imitar al procesador, tomando el control del bus del sistema
tal como lo hace el procesador. Y necesita hacerlo para transferir los datos desde y hacia la
memoria usando el bus del sistema.

50

Cuando el procesador quiere leer o escribir un bloque de datos, enva un mandato al mdulo
de DMA con:
o Si es lectura o escritura
o La direccin del dispositivo de E/S involucrado.
o La direccin inicial de memoria que se pretende leer o escribir
o El nmero de palabras que se van a leer o escribir.
El computador contina con otro trabajo. Cuando se completa la transferencia el mdulo
DMA enva una seal de interrupcin al procesador.
La DMA se puede configurar de varias maneras:
o Todos los mdulos comparten el mismo bus de sistema. El mdulo de DMA
actuando como un procesador subordinado, usa E/S programada para intercambiar
datos entre la memoria y el mdulo de E/S
o El DMA integra las funciones de E/S. Hay un camino entre el mdulo de DMA y
uno o ms mdulos de E/S que no incluye el bus del sistema.
o Conectando los mdulos de E/S al mdulo DMA utilizando un bus de E/S y
proporciona una configuracin fcilmente expansible.

11.3 ASPECTOS DE DISEO DEL SISTEMA OPERATIVO


OBJETIVOS DE DISEO
Eficiencia, es importante debido a que las operaciones de E/S usualmente significan un
cuello de botella y generalidad, es deseable manejar a todos los dispositivos de manera
uniforme para minimizar errores.
Lo que hay que hacer es utilizar una estrategia modular jerrquica para disear las
funciones de E/S. Esta estrategia esconde la mayora de los detalles del dispositivo de E/S
en las rutinas de nivel inferior de manera que los procesos de usuario y los niveles ms altos
del SO contemplen los dispositivos en trminos de funciones generales.

ESTRUCTURA LGICA DEL SISTEMA DE E/S


La filosofa jerrquica se basa en que las funciones del sistema operativo deberan estar
separadas dependiendo de su complejidad, su escala de tiempo caracterstica y su nivel de
abstraccin.
Cada nivel realiza un subconjunto relacionado de funciones requeridas del SO y se apoya
en el nivel inferior subyacente para realizar funciones ms bsicas y ocultar los detalles de
esas funciones, proporcionando servicios al siguiente nivel superior.
Los niveles inferiores tratan directamente con el HW
En el caso ms simple de un dispositivo perifrico local los niveles son:
o E/S lgica: el mdulo de E/S lgica trata a los dispositivos como un recurso lgico
y no se ocupa de los detalles del control real de dispositivos. El Mdulo de E/S
lgica se ocupa de la gestin de tareas generales de E/S para los procesos de
usuario, permitindolos tratar como un dispositivo en trminos de un identificador
de dispositivo y con mandatos sencillos.
o E/S de dispositivo: las operaciones requeridas y los datos se convierten en una
secuencia apropiada de instrucciones de E/S, mandatos del canal y rdenes del
controlador.
o Planificacin y control: la gestin real de la cola y la planificacin de las
operaciones de E/S. maneja las interrupciones y se recoge el estado de la E/S
Para los dispositivos de comunicacin el mdulo de E/S lgica se reemplaza por una
arquitectura de comunicacin.

51

Dispositivo de almacenamiento secundario que proporciona soporte a un sistema de


ficheros:
o Gestin de directorios: los nombres simblicos de los ficheros se convierten en
identificadores. Se ocupa de las operaciones de usuario que afectan al directorio de
ficheros.
o Sistema de ficheros: trata con la estructura lgica de los ficheros y con las
operaciones que puede especificar el usuario, y los derechos.
o Organizacin fsica: las referencias lgicas a ficheros y registros se convierten en
direcciones fsicas del almacenamiento secundario.

11.4 UTILIZACIN DE BUFFERS DE E/S


Para leer un bloque la manera ms sencilla seria enviar un mandato de E/S, la unidad y
esperar a que los datos estn disponibles de forma activa o no activa.
Esto conlleva dos problemas. El programa se queda esperando que se complete una
operacin lenta y tambin interfiere con las decisiones de intercambio del sistema
operativo. Hay riesgos de interbloqueo de un nico proceso. (si un proceso emite un
mandato de E/S, se suspende esperando el resultado, se expulsa antes del inicio de la
operacin, el proceso se bloquea esperando el evento de E/S y la operacin de E/S se
bloquea esperando a que el proceso se traiga de nuevo a memoria). Para evitar esto la
memoria de usuario involucrada en le operacin de E/S debe quedarse residente en
memoria principal inmediatamente antes de que se emita la peticin de E/S.
Para evitar sobrecargas e ineficiencias se utiliza E/S con buffers: la transferencia de entrada
se realiza antes de que se hagan las peticiones y la de salida se lleva acabo un tiempo
despus de que se haya hecho la peticin.
Hay dos tipos de dispositivos:
o Orientados a bloques: almacenan informacin en bloques de tamao fijo
realizndose la transferencia de bloque en bloque.
o Orientados a caracteres: transfiere los datos como un flujo de bytes. (la mayora de
los dispositivos que no son de almacenamiento secundario)

BUFFER NICO
Cuando un proceso de usuario emite una peticin de E/S, el SO asigna u buffer para la
operacin en la parte de sistema de la memoria principal.
Para dispositivos orientados a bloques, cuando se completa una transferencia el proceso
mueve el bloque al espacio de usuario y pide otro bloque: lectura adelantada.
Esto trae inconvenientes en el diseo del sistema operativo porque se tiene que mantener
registros de la asignacin de los buffers y complica la lgica de intercambio.
Para las salidas se copia el bloque del espacio de usuario al buffer y del buffer al lugar
definitivo.
En el caso de la E/S orientada a flujo de caracteres, el esquema de buffer nico se puede
utilizar en un modo de operacin lnea a lnea (pudindose utilizar buffers para almacenar
una nica lnea) o byte a byte (se sigue el modelo productor consumidor.

BUFFER DOBLE
Un proceso transfiere datos a (desde) un buffer mientras el sistema operativo vaca (o
llena) el otro.
En el caso de las operaciones byte a byte no ofrece ninguna ventaja adicional sobre un
buffer nico de doble longitud.
Puede ser inadecuado si el proceso realiza rfagas rpidas de E/S

52

BUFFER CIRCULAR
Para solucionar el problema del buffer doble se usan ms de dos buffers.
Al conjunto de buffers se lo denomina buffer circular. Siendo cada buffer individual una
unidad del buffer circular. Es un modelo productor consumidor con un buffer acotado.

LA UTILIDAD DEL USO DE BUFFERS


Amortiguas los picos en la demanda de E/S, sin embargo por muchos buffers que se utilicen
no se puede mantener el ritmo del proceso.
En un entorno de multiprogramacin el uso de buffers puede incrementar la eficiencia del
SO y rendimiento de los procesos individuales.

11.5 PLANIFICACIN DEL DISCO


PARMETROS DE RENDIMIENTO DEL DISCO
El disco rota a una velocidad constante. Para leer o escribir la cabeza debe posicionar en la
pista deseada y en el principio del sector requerido de dicha pila.
El tiempo que se tarda en situar la cabeza en la pista se denomina tiempo de bsqueda.
Una vez que se selecciona la pista el controlador del disco espera hasta que el sector pase
por debajo de la cabeza: retardo rotacional.
La suma de ambos es el tiempo de acceso.
Despus est el tiempo de transferencia que depende de la velocidad de rotacin.
En algunos sistemas se utiliza la deteccin de posicin rotacional (RPS): cuando se genera
el mandato de bsqueda, se libera el canal para manejar otras operaciones de E/S. cuando se
completa la bsqueda el dispositivo determina cuando los datos rotan debajo de la cabeza.
Cuando ese sector se aproxima el dispositivo intenta restablecer el camino de
comunicacin. Si la unidad est ocupada la conexin falla y el dispositivo debe rotar una
revolucin antes de poder intentar volver a conectarse: fallo de RPS
El orden en que se leen los sectores tiene un efecto tremendo en el rendimiento de la E/S

POLTICAS DE PLANIFICACIN DEL DISCO


Planificacin aleatoria: til para comparar los algoritmos
Primero en entrar, primero en salir: es equitativa. Si solo hay pocos procesos que requieren
acceso al disco y una gran parte de las peticiones corresponden con sectores agrupados de
ficheros, se puede prever un buen rendimiento. El rendimiento se asemeja a la aleatoria
cuando hay muchos procesos.
Prioridad: se focalizan en satisfacer otros objetivos, no optimizar la utilizacin del disco. Se
le suele dar mayor prioridad a los trabajos por lotes de corta duracin y a los trabajos
interactivos que a los trabajados ms largos que requieren procesamiento ms prolongado.
Estos trabajos pueden tener una espera excesiva.
ltimo en entrar, primero en salir: en sistema de procesamiento de transacciones, asignar el
dispositivo al usuario ms reciente debera producir poco o ningn movimiento del brazo
durante un desplazamiento a lo largo de un fichero secuencial. Puede haber inanicin. Si el
planificador conoce la posicin de pista actual, se puede emplear una planificacin basada
en elemento solicitado.
Primero el de tiempo se servicio ms corto (SSTF): seleccionar la peticin de E/S del disco
que requiera un menor movimiento del brazo desde su posicin actual. No garantiza que sea
mnimo el tiempo de bsqueda medio correspondiente a varios movimientos del brazo.
Scan (algoritmo del ascensor): evita inanicin. El brazo solo debe moverse en una direccin
satisfaciendo todas las peticiones pendientes que encuentre en su camino, hasta que alcanza

53

la ltima pista en esa direccin o hasta que no haya ms peticiones en esa direccin. No
favorece al rea de disco que se ha atravesado ms recientemente, por lo tanto no aprovecha
la proximidad. Favorece a los trabajos cuyas peticiones corresponde con las pistas ms
cercanas.
LOOK: igual que el scan nada ms que en el momento en que se sirven todas las peticiones
en una direccin se invierte y la bsqueda contina en la direccin opuesta, sirvindose
denuevo todas las peticiones en orden.
C-Scan (Scan circular): restringe la bsqueda a una sola direccin. Despus de llegar a la
ltima pista en una direccin, el brazo vuelve al extremo opuesto del disco y la bsqueda
comienza denuevo.
Scan-de-N-pasos y FSCAN: con los algoritmos anteriores es posible que el brazo no pueda
moverse durante un periodo de tiempo. Para evitarlo la cola de peticiones del disco puede
dividirse en segmentos tal que en cada momento se est procesando un segmento hasta que
se completo. Scan-de-N-pasos divide la cola de peticiones del disco en varias colas de
longitud N. en cada momento se procesa solo una cola utilizando Scan.
FSCAN: se utilizan dos colas. Cuando comienza una bsqueda todas las peticiones estn
incluidas en una de las colas estando la otra vaca. Durante la bsqueda, todas las nuevas
peticiones se incluyen en la otra cola.

11.7 CACH DE DISCO


Es un buffer en memoria para almacenar sectores del disco.

CONSIDERACIONES DE DISEO
Cuando se satisface una peticin de E/S la cach de disco se debe entregar al proceso o usa
memoria compartida.
Cuando se trae un nuevo sector a la cach de disco se debe reemplazar uno de los bloques
existentes. El algoritmo ms frecuentemente utilizado es el LRU.
Se puede utilizar LFU puede implementarse asociando un contador con cada bloque. Pero
puede pasar que algn bloque se accedan en trminos globales de forma relativamente
infrecuente, pero cuando se hace referencia a ellos, se producen referencias repetidas
durantes cortos intervalos de manera que se genera un contador de referencias elevado.
Otra forma es separar las colas: la parte superior de la pila se considera separada como una
seccin nueva. Cuando hay un acierto en la cach, el bloque accedido se mueve a la parte
superior de la pila. Si el bloque ya estaba en la seccin nueva, su contador de referencias no
se incrementa; en caso contrario se incrementa en 1.
Tambin se puede dividir en tres secciones: nueva, intermedia y antigua.
El reemplazo se puede realizar bajo demanda o planificacin anticipada (se generan varios
huecos)
Es razonable agrupar las escrituras y ordenarlas para minimizar el tiempo de bsqueda

CAPTULO 12: GESTIN FICHEROS


En la mayora de las aplicaciones el fichero es el elemento central.
La entrada a la aplicacin se realiza mediante un fichero y en prcticamente todas las
aplicaciones, la salida se guarda en un fichero para un almacenamiento a lo largo.
Para gestionar ficheros todos los SO proporcionan programas que se ejecutan como
aplicaciones privilegiadas.

12.1 DESCRIPCIN BSICA


FICHEROS Y SISTEMAS DE FICHEROS
54

El sistema de ficheros proporciona las abstracciones de recursos tpicamente asociadas con


el almacenamiento secundario.
El sistema de ficheros permite a los usuarios crear colecciones de datos, llamadas ficheros,
y sus propiedades. :
o Existencia a largo plazo
o Compatibilidad entre procesos
o Estructura: un fichero puede tener una estructura interna que es conveniente para
aplicaciones particulares.
Cualquier sistema de ficheros proporciona funciones sobre ficheros. Las operaciones
bsicas son:
o Crear: se define y se coloca en la estructura de ficheros
o Borrar: se elimina de la estructura y se destruye.
o Abrir
o Cerrar
o Leer
o Escribir

ESTRUCTURA DE UN FICHERO
Campo: es el elemento bsico de los datos. Contiene un nico valor. Se caracteriza por su
longitud y tipo de datos. Puede ser de longitud fija o variable. En el caso de que sea variable
suele estar formado por dos campos, uno generalmente con la longitud.
Registro: es una coleccin de campos relacionados que pueden tratarse como una unidad.
Pueden ser de longitud fija o variable. Es variable si uno de sus campos varia en longitud o
si varia la cantidad de campos, se suele incluir la longitud
Fichero: es una coleccin de campos similares. Se pueden referenciar por nombre. Las
restricciones de control de acceso son a nivel fichero.
Base de datos: es una coleccin de datos relacionados. La relacin entre los datos es
explcita y se ve diseada para ser usada por varias aplicaciones. Esta formada por uno o
ms tipos de ficheros.
Operaciones que deben soportar los ficheros:
o Obtener todos: se asocia al procesamiento secuencial
o Obtener uno: aplicaciones interactivas y orientadas a transacciones necesitan esta
operacin.
o Obtener siguiente
o Obtener anterior
o Insertar uno: puede ser necesario que el nuevo registro encaje en una posicin
especfica, para preservar la secuencia del fichero.
o Borrar uno: ciertos enlaces u otras estructuras de datos podran tener que
actualizarse para preservar la secuencia del fichero.
o Actualizar uno: obtener un registro, actualizarlo y rescribir el registro actualizado
en el fichero.
o Obtener varios

SISTEMA DE GESTIN DE FICHEROS


Un sistema de gestin de ficheros es un conjunto de SW de sistema que proporciona
servicios a los usuarios y aplicaciones en el uso de ficheros.
Proporciona tambin al sistema una forma consistente y bien definida de controlar
Objetivos de un sistema de gestin de ficheros:
o Satisfacer las necesidades de gestin de datos y requisitos de usuario.

55

o
o
o
o
o
o

Garantizar que los datos del fichero son vlidos


Optimizar el rendimiento
Proporcionar soporte de E/S a una variedad de tipos de dispositivos de
almacenamiento
Minimizar o eliminar la potencial prdida de datos
Proporcionar un conjunto estndar de rutinas de interfaces de E/S a los procesos.
Proporcionar soporte de E/S a mltiples usuarios.

ARQUITECTURA DE UN SISTEMA DE FICHEROS


En el nivel ms bajo, los manejadores de dispositivos se comunican directamente con los
dispositivos perifricos o sus controladores (responsable de iniciar las operaciones de E/S y
es parte del SO) o canales.
Sistema de ficheros bsico o nivel de E/S fsico: se encarga de la colocacin de aquellos
bloques del dispositivo de almacenamiento secundario y el buffering de dichos bloques a
memoria principal. No se encarga de interpretar el contenido de los datos de los ficheros. Es
parte del SO
Supervisor de E/S bsico: iniciaciones y finalizaciones de E/S. las estructuras de control
tratan con los dispositivos de E/S, la planificacin y el estado de ficheros. Tambin se
encarga de la planificacin de disco y cinta para optimizar el rendimiento. Se asignan los
buffers de E/S y la memoria secundaria. Parte del SO
E/S lgica: permite a los usuarios y a las aplicaciones acceder a los registros. Proporciona
una capacidad de E/S de propsito general a nivel de registros y mantiene datos bsicos
sobre los ficheros.
Mtodos de acceso: lo ms cercano al usuario y proporciona una interfaz estndar entre las
aplicaciones y los sistemas de ficheros y dispositivos que contienen datos

FUNCIONES DE GESTIN DE FICHEROS


Los usuarios y los programas de aplicaciones interaccionan con el sistema de ficheros por
medio de mandatos para crear y borrar ficheros y realizar operaciones sobre los ficheros.
Antes de realizar cualquier operacin el sistema de ficheros identifica y localiza el fichero
seleccionado, fuerza el control de acceso de usuario.
El usuario o aplicacin ve el fichero como una estructura que organiza los registros, por lo
tanto para traducir los mandatos de usuario en mandatos de manipulacin de ficheros
especficos, debe emplearse el mtodo de acceso apropiado para esta estructura de ficheros.
La E/S se realiza a nivel de bloque. Los registros deben convertirse en bloques y convertirse
de bloques a registros para la entrada.
Se debe gestionar el almacenamiento secundario, se deben planificar las peticiones de E/S
de bloques individuales.

12.2 ORGANIZACIN Y ACCESO A LOS FICHEROS


Para escoger una organizacin fsica se tienen en cuenta:
o Tiempo de acceso corto
o Facilidad de actualizacin
o Economa de almacenamiento
o Mantenimiento sencillo
o Fiabilidad.

ORGANIZACIONES
La pila

56

la forma menos complicada, los registros pueden tener diferentes campos o similares
campos en diferentes rdenes.
Cada campo debe ser auto descriptivo. La longitud de cada campo debe ser indicada.
El acceso a los registros se hace mediante bsqueda exhaustiva. Se utiliza cuando los datos
se recogen y almacenan antes del procedimiento o cuando los datos no son fciles de
organizar.
Utiliza el espacio adecuadamente cuando los datos varan en tamao y estructura. Fcil de
actualizar
El fichero Secuencial
Se utiliza un formato fijo para los registros. Solo se necesita almacenar los valores de los
campos; el nombre y longitud de cada campo son atributos de la estructura del fichero.
El primer campo se denomina campo clave. Los registros se almacenan en secuencia segn
la clave.
Se utilizan normalmente en aplicaciones en lotes y son generalmente ptimos para dichas
aplicaciones cuando implican el procesamiento de todos los registros. Se almacenan
fcilmente en cinta y en disco.
Los accesos requieren una bsqueda en el fichero para encontrar una clave.
Las adiciones tambin presentan problemas. El procedimiento normal es colocar nuevos
registros en un fichero de pila separado fichero registro o fichero de transacciones.
Peridicamente un sistema de actualizacin los mezcla para generarlos bien.
Tambin se puede organizar el fichero secuencial fsicamente como una lista enlazada pero
es lento y sobrecarga.
El fichero secuencial indexado
Se aaden un ndice al fichero que da soporte al acceso aleatorio y un fichero de
desbordamiento. Un registro en el fichero de desbordamiento se localiza mediante un
puntero desde su registro predecesor.
El ndice es un fichero secuencial simple. Cada registro del fichero ndice est formado por
dos campos: campo clave y el puntero al fichero principal.
Cada registro del fichero principal contiene un campo adicional no visible a la aplicacin
que es un puntero al fichero de desbordamiento. Cuando se inserta un nuevo registro en el
fichero, se aade al fichero de desbordamiento. Se actualiza el registro del fichero principal
que inmediatamente precede al nuevo registro en secuencia lgica para contener un puntero
al nuevo registro del fichero de desbordamiento.
Reduce el tiempo de acceso a un nico registro.
Se pueden utilizar mltiples niveles de indexacin.
Se limita a la bsqueda por el campo clave
El fichero indexado
Para poder hacer bsquedas sobre distintos atributos se necesita usar una estructura que
emplee mltiples ndices, uno por cada tipo de campo que puede estar sujeto a una
bsqueda.
Se utilizan dos tipos de ndices: un ndice exhaustivo contiene una entrada por cada registro
del fichero principal. Un ndice parcial contiene entradas a registros donde el campo de
inters existe.
El fichero de acceso directo a hash
Se requiere una clave y no existe el concepto de ordenacin secuencial

57

Se utilizan frecuentemente cuando se requiere un acceso muy rpido, los registros son de
tamao fijo y los registros se acceden de uno en uno.

12.3 DIRECTORIOS
CONTENIDO
El directorio contiene informacin sobre los ficheros
El directorio es a su vez un fichero, accesible por varias rutinas de gestin de ficheros.
Desde el punto de vista del usuario, el directorio proporciona una proyeccin entre los
nombres de ficheros y los ficheros en si.
En sistemas compartidos es importante proporcionar informacin que se utilice para
controlar el acceso a los ficheros.

ESTRUCTURA
Parte de la informacin se puede almacenar en un registro cabecera asociado con el fichero,
esto reduce la cantidad de almacenamiento requerido para el directorio, haciendo ms fcil
almacenar el directorio o parte del directorio en memoria principal a fin de incrementar la
velocidad.
la forma ms fcil de organizacin del directorio es una lista de entradas, una por cada
fichero.
Las operaciones sobre directorios son:
o Buscar
o Crear ficheros: se aade una entrada al directorio
o Borrar fichero: se elimina la entrada
o Listar directorio: se puede solicitar ver el directorio completo o una porcin del
mismo.
Si el directorio es una lista secuencial simple, no proporciona ayuda para organizar los
ficheros y fuerza a los usuarios a tener cuidado de no utilizar el mismo nombre para dos
tipos de ficheros diferentes. Para resolver se puede usar un esquema en dos niveles (un
directorio maestro y uno por cada usuario) pero no proporciona ayuda a los usuarios para
estructurar su coleccin de ficheros.
Tambin se puede solucionar con una estructura de tipo rbol. Cada subnivel puede estar
formado por ms directorios o subdirectorios
Se puede usar tambin la estructura hash.

NOMBRADO
El uso de directorio estructurado en forma de rbol minimiza la dificultad de asignar
nombres nicos.
El conjunto de nombres de directorios, finalizando en el nombre del fichero, constituyen un
nombre de camino.
Un usuario interactivo o un proceso est asociado con un directorio actual: directorio de
trabajo. Y puedo referenciar a los ficheros de forma relativa.

12.4 COMPARTICIN DE FICHEROS


DERECHOS DE ACCESO
El sistema de ficheros debera proporcionar una herramienta flexible para permitir la
comparticin de ficheros extensiva entre los usuarios.
A los usuarios o grupos se les conceden ciertos derechos de acceso a un fichero:
Tipos de derechos (cada uno contiene al que lo precede):
o Ninguno: el usuario ni conoce la existencia del fichero

58

Conocimiento: puede determinar si el fichero existe y quien es su propietario y le


puede solicitar a este derechos.
o Ejecucin: puede ejecutar pero no compilarlo
o Lectura
o Adicin: puede aadir pero no modificar o borrar.
o Actualizacin: modificar borrar o aadir
o Cambio de proteccin: solo el propietario del fichero goza de este derecho.
o Borrado
El propietario tiene todos los derechos de acceso y puede dar acceso a distintas clases de
usuarios:
o Usuario especfico
o Grupo de usuarios
o Todos
o

12.5 BLOQUES Y REGISTROS


Los registros son las unidades lgicas de acceso de un fichero estructurado, mientras que
los bloques son las unidades de E/S con almacenamiento secundario.
Los bloques tienen longitud fija lo que simplifica la E/S, la asignacin de buffers y la
organizacin de bloques de almacenamiento secundario.
Si se combina la frecuencia de operaciones secuenciales con la potencialidad de proximidad
de referencia, se puede decir que el tiempo de transferencia de E/S se reduce utilizando
bloques mayores.
Dado el tamao de bloques se pueden utilizar tres mtodos:
o Bloques fijos: se utilizan registros de longitud fija y se almacenan en un bloque un
nmero integral de registros. Podra haber fragmentacin interna al final de cada
bloque. modo comn para ficheros secuenciales con registros de longitud fija.
o Bloques expandidos de longitud variable: se utilizan registros de longitud variable
y se empaquetan en bloques sin dejar espacio no utilizado. Algunos registros deben
expandirse a lo largo de dos bloques. Difcil de implementar y los ficheros son
difciles de actualizar.
o Bloques no expandidos de longitud variable: hay espacio mal gastado en la mayora
de los bloques. Limitan el tamao del registro al tamao de un bloque.

12.6 GESTIN DE ALMACENAMIENTO SECUNDARIO


Un fichero esta compuesto por una coleccin de bloques al que se les debe asignar espacio
de almacenamiento secundario y es necesario guardar una traza del espacio disponible para
su asignacin.

ASIGNACIN DE FICHEROS
Preasignacin frente a asignacin dinmica
La preasignacin requiere que el tamao mximo de un fichero sea declarada en tiempo de
creacin y esto es difcil, por esto la asignacin dinmica trae ventajas ya que se asigna
espacio cuando se necesite.
Tamao de porcin
Se puede asignar una porcin suficientemente grande para contener el fichero completo o se
puede hacer chico para que se pueda asignar un bloque a la vez.
Aspectos a considerar:
o La contigidad del espacio incrementa el rendimiento

59

Utilizar un gran nmero de porciones pequeas incrementa el tamao de las tablas


necesarias para gestionar la informacin de asignacin
o Utilizar porciones de tamao fijo simplifica la reasignacin de espacio
o Utilizar porciones de tamao variable o pequeas de tamao fijo minimiza el
espacio malgastado debido a la sobreasignacion.
Alternativas:
o Porciones variables grandes y contiguas: mejor rendimiento. El tamao variable
evita malgastar espacio y las tablas de asignacin son pequeas y de tamao fijo. El
espacio es difcil de reutilizar. Al fichero se le preasigna un grupo de bloques
contiguos y solo se requiere un puntero al principio y la cantidad de bloques
asignados. Es necesario preocuparse de la fragmentacin del espacio por las
particiones variables.
o Bloques: pequeas porciones, fijas proporcionan mayor flexibilidad. Grandes tablas
y estructuras complejas para su asignacin.
o

Mtodos de asignacin de ficheros


Asignacin contigua: se asigna un nico conjunto contiguo de bloques en tiempo de
creacin de los ficheros. Hay una estrategia de preasignacin que utiliza porciones de
tamao variable. La tabla necesita una entrada por cada fichero. Fcil de obtener un nico
bloque. Existir fragmentacin externa por lo que se debe hacer compactacin.
Asignacin encadenada: cada bloque contiene un puntero al siguiente bloque en la cadena.
La tabla necesita solo una entrada por cada fichero con el bloque inicial y la longitud del
fichero. No hay fragmentacin externa. No existe el principio de proximidad.
Asignacin indexada: la tabla de asignacin de ficheros contiene un ndice separada de un
nivel por cada fichero; el ndice tiene una entrada pro cada porcin asignada al fichero. El
ndice de ficheros para un fichero se guarda en un bloque separada y la entrada para fichero
en la tabla lo apunta. La asignacin puede realizarse mediante bloques de tamao fijo
(elimina la fragmentacin externa) o porciones de tamao variable (mejora la proximidad).
Gestin de espacio libre
Se necesita una tabla de asignacin de disco en adicin a la tabla de asignacin de ficheros.
Tabla de bits
Se utiliza un vector que esta formado por un bit por cada bloque en disco.
Es fcil encontrar un bloque libre y es una estructura pequea
Cuando la tabla de bits est en memoria principal, un bsqueda exhaustiva relentiliza el
rendimiento del sistema de ficheros. Generalmente se utiliza un resumen de la tabla.
Porciones libres encadenadas
Las porciones libres se pueden encadenar utilizando un puntero y valor de longitud de cada
porcin libre.
Si se asigna un bloque a la vez es rpido y fcil. Si la asignacin se hace de una porcin
variable debe utilizar un algoritmo de primer ajuste.
Despus de mucho uso el disco queda bastante fragmentado.
Para asignar muchos bloques de una vez es lento.
Indexacin
Trata el espacio libre como un fichero y utiliza una tabla de ndices.
Hay una entrada de la tabla por cada porcin libre de disco.

60

Lista de bloques libres


A cada bloque se le asigna un nmero secuencial y la lista de los nmeros de bloques libres
se mantiene en una porcin reservada de disco.
La lista se puede tratar como una pila, cuando la porcin de la pila en memoria se llena o se
vaca hay solo una transferencia entre disco y MP
La lista se puede tratar como una cola FIFO: solo hay una transferencia entre disco y MP
cuando la porcin en memoria de la cabeza de la cola se vaca o la porcin en memoria
final de la cola se llena.

FIABILIDAD
El sistema mantiene una copia de la tabla de asignacin de disco y la tabla de asignacin de
ficheros en MP por motivos de eficiencia.
Para prevenir problemas de coherencia se debe:
o Bloquear la tabla de asignacin en disco hasta que esta asignacin se complete
o Buscar espacio disponible en la tabla de asignacin de disco
o Asignar espacio, actualizar la tabla de asignacin de disco y actualizar.
o Actualizar la tabla de asignacin de disco y el disco
o Desbloquear la tabla de asignacin de disco.

SISTEMAS DISTRIBUIDOS Y SEGURIDAD


Una instalacin totalmente centralizada de procesamiento de datos es centraliza porque
o Computadores centralizados: en la instalacin central hay uno o mas computadores
o Procesamiento centralizado: todas las aplicaciones se ejecutan en las instalaciones
centrales de procesamiento de datos.
o Datos centralizados: todos los datos se almacenan en ficheros y bases de datos en
las instalaciones centrales y son controlados y accedidos por el computador central.
Una instalacin central se podra dividir de diversas maneras, implementando estrategias de
procesamiento de datos distribuida (DDP).
Una instalacin distribuida de procesamiento de datos en la que los computadores estn
dispersos por toda la organizacin. EL objetivo es procesar la informacin de la forma ms
eficiente posible,
Ventajas de DDP:
o Receptividad: las instalaciones de computacin local se pueden gestionar de tal
manera que pueden satisfacer ms directamente las necesidades de gestin de las
organizaciones locales.
o Disponibilidad: con mltiples sistemas interconectados, las perdidas de un sistema
podran tener un impacto mnimo.
o Comparticin de recursos
o Crecimiento incremental: se pueden reemplazar gradualmente las aplicaciones o los
sistemas
o Mayor participacin y control del usuario
o Productividad del usuario final: los sistemas distribuidos tienden a tener mayor
rapidez de respuesta, ya que cada pieza del equipo est realizando un trabajo ms
pequeo.

CAPTULO 13 - REDES

61

Un sistema DDP implica dividir las funciones de computacin y organizar de forma


distribuida las bases de datos, el control de dispositivos y el control de interacciones.
Soluciones distribuidas:
o Arquitectura de comunicaciones: es un sw que da soporte a un grupo de
computadores en red. Los computadores son entidades independientes para el
usuario y para las aplicaciones. La arquitectura de comunicaciones ms usada es el
protocolo TCP/IP
o Sistema operativo de red: cada computador tiene su propio sistema operativo. El
sistema operativo en red es un aadido al sistema operativo local, que permite a las
maquinas interactuar con los servidores. El usuario conoce la existencia de
mltiples computadores y debe trabajar con ellos de forma explcitas.
o Sistema operativo distribuido: es un SO compartido por una red de computadores.
A los usuarios les parece un SO normal centralizado, pero les proporciona acceso
transparente a los recursos de diversas mquinas.

13.1 LA NECESIDAD DE UNA ARQUITECTURA DE PROTOCOLOS


Cuando un computador, termina y/u otro dispositivo de procesamiento de datos intercambia
datos el procedimiento involucrado puede ser muy complejo. Debe:
o El sistema emisor debe activar el enlace directo de comunicacin de datos o debe
informar a la re de comunicaciones de la identidad del sistema destinatario
o El sistema emisor verifica que el destino este preparado para recibir datos
o Las aplicaciones de transferencia de ficheros del origen debe verificar que el
programa de gestin de ficheros del destino esta preparado para aceptar y
almacenar el fichero de ese usuario particular
o Si los formatos de los ficheros o las representaciones de datos en los sistemas son
incompatibles, uno debe traducir.
Un protocolo se utiliza para comunicar entidades de diferentes sistemas.
Una entidad es cualquier cosa capaz de enviar y recibir informacin y un sistema es un
objeto fsico que contiene una o ms entidades.
Un protocolo se puede definir como un conjunto de reglas que gobiernan el intercambio de
datos entre dos entidades.
Los elementos principales de un protocolo son:
o Sintaxis: incluye cosas tales como formatos de datos y niveles de seales
o Semntica: incluye informacin de control para realizar coordinacin y gestin de
errores
o Temporizacin: incluye ajuste de velocidades y secuenciamiento.
La arquitectura de protocolos: en lugar de implementar esta lgica de solo mdulos, la tarea
se puede descomponer en subtareas, cada una de las cuales se implementan de forma
individual. Hay un conjunto estructurado de mdulos que implementan la funcin de
comunicaciones
El mdulo de servicios de comunicaciones se preocupa de que los dos sistemas estn
activos y listos para el intercambio y de llevar la cuenta de los datos que se estn
intercambiando para asegurar su entrega. La lgica es independiente del tipo de re por lo
que se pone en el mdulo de acceso a red.

13.2 LA ARQUITECTURA DE PROTOCOLOS TCP/IP


CAPAS TCP/IP
Las comunicaciones involucran tres agentes: aplicaciones, computadores y redes.

62

La transferencia de datos de una aplicacin a otra implica obtener los datos del computador
en el que residen la aplicacin y adems obtener los datos de la aplicacin deseada.
Las tareas de comunicacin del TCP/IP se puede organizar en 5 capas relativamente
independientes:
o Capa fsica: cubre la interfaz fsica entre un dispositivo de transmisin de datos y
un medio de transmisin o red. Esta capa se preocupa de las caractersticas del
medio de transmisin, la naturaleza de las seales, la tasa de datos y aspectos
similares.
o Capa de accesos a red: se preocupa del intercambio de datos entre un sistema final
y la red a la que est unido. De esa forma se hace posible separar estas funciones,
relacionadas con la red. Se preocupa de enviar datos a travs de una red para dos
sistemas finales unidos a la misma.
o Capa de Internet: si los sistemas finales se encuentran unidos a distintas redes
mediante este procedimiento se envas los datos a travs de las redes
interconectadas (Protocolo de Internet)
o Capa de transporte: Los mecanismos para proporcionar fiabilidad son
independientes de la naturaleza de la aplicacin.
o Capa de aplicaciones: contiene la lgica necesaria para soportar las aplicaciones de
usuario

TCP Y UPD
La cabecera TCP tiene un mnimo de 160 bits. Los campos puerto destino y origen
identifican a las aplicaciones en los sistemas de esta conexin. Los campos nmero de
secuencia, nmero de confirmacin y ventana proporcionan control de flujo y control de
errores. La suma de control es un cdigo de 16 bits basado en el contenido del segmento y
que se utiliza para detectar errores.
UDP permite a un proceso enviar un mensaje a otro proceso con los mismos mecanismos de
protocolo posibles. Contiene los campos puerto origen y destino, longitud del segmento y
suma de control.

IP E IPV6
La cabecera IP junto con el segmento de la capa de trasporte forma un bloque de nivel IP:
datagrama IP.
La cabecera incluye direcciones de origen y destino de 32 bits. .
El campo suma de control de cabecera se utiliza para detectar errores en la cabecera
El campo protocolo indica que protocolo de capa superior esta utilizando
Los campos ID, Flags y desplazamiento de fragmento se utilizan en los procesos de
fragmentacin y reensamblado, en los que un datagrama IP se divide en mltiples
datagramas IP durante la transmisin y se vuelve a unir en el destino.

FUNCIONAMIENTO DE TCP/IP
IP est implementado en todos los sistemas finales y encaminadotes. TCP esta
implementado solamente en los sistemas finales; lleva control de los bloques de datos que
estn siendo transferidos para asegurar que todos se envan de forma fiable
Para una comunicacin satisfactoria todas las entidades del sistema deben tener una
direccin nica.
Se necesitan dos niveles de direcciones: cada mquina debe tener una direccin Internet
global nica (utilizada por IP para la entrega) y cada aplicacin de una mquina debe tener

63

una direccin nica en la mquina conocida como puertos (permite a TCP enviar los datos
al proceso adecuado)

APLICACIONES TCP/IP
El protocolo SMTP proporciona un mecanismo para transmitir mensajes entre mquinas.
Una vez que el mensaje est creado SMTP lo acepta y utiliza TCP para su envi a un
mdulo SMTP de otra mquina.
FTP establece una conexin TCP/ con el sistema destino para el intercambio de mensajes de
control. Una vez que se ha aprobado una transferencia de ficheros, se establece una segunda
conexin TCP para el envo de datos. Cuando se completa la transferencia se usa la
conexin de control para indicar la finalizacin y para aceptar nuevos mandatos de
transferencia.
TELNET proporciona un servicio de inicio de sesin remoto.

13.3 SOCKETS
Un socket permite la comunicacin entre un proceso cliente y un proceso servidor y puede
ser orientado a conexin o no orientado a conexin

EL SOCKET
La concatenacin de un valor de puerto y una direccin IP forma un socket, que es nico.
De esta forma una aplicacin puede tener mltiples direcciones de sockets, una por cada
puerto de la aplicacin.
El socket se utiliza para definir una interfaz de programacin de aplicaciones (API).
Cuando se usa como una API, un socket se identifica por protocolo, direccin local, proceso
local.
El API reconoce los dos tipos de sockets:
o Socket stream: hace uso de TCP y proporciona una transferencia de datos fiable
orientada a conexin. Garantiza que todos los bloques de datos enviados lleguen en
orden de envi.
o Socket datagrama: hace uso de UDP, no orientado a conexin, ni garantiza la
entrega ni el orden.
o Socket raw: permite acceso directo a las capas ms bajas del protocolo

LLAMADAS DE LA INTERFAZ SOCKET


Configuracin del socket
Crear mediante socket() que incluye tres parmetros (familia PF_INET, tipo, protocolo) y
devuelve el nmero del socket
La funcin bind() enlaza un socket con una direccin socket.
Conexin del socket
Primero se ejecuta listen() para indicar que un determinado socket esta listo para aceptar
conexiones entrantes.
Accept() se usa para sacar de la cola de peticiones de entrada. Es bloqueante.
Connect() cuando un cliente se conecta a un socket. Si es satisfactorio llena la IP.
Comunicacin Socket
En socket stream se utilizan send() y recv()
Close() evita ms envos y recepciones.
Shutdown() permite al llamante dejar de enviar, de recibir o ambos.

64

En una comunicacin datagrama se usa sendto() y recvfrom()

CAPTULO 14 PROCESAMIENTO DISTRIBUIDO, CLIENTE/SERVIDOR Y


CLUSTERS

14.1 COMPUTACIN CLIENTE/SERVIDOR


QU ES LA COMPUTACIN CLIENTE/SERVIDOR?
Esta formado por clientes (PCs o estaciones de trabajo que proporcionan una interfaz de
fcil manejo al usuario final para solicitar informacin) y un servidor (almacena
informacin de los clientes de la red)
El servidor proporciona un conjunto de servicios compartidos a los clientes. Permite a los
clientes compartir el acceso a una base de datos y permite el uso de sistemas de
computacin de alto rendimiento para gestionar la base de datos.
Los usuarios se unen a travs de una LAN, WAN o Internet.
La red en un sistema cliente servidor es fundamental.
Es importante proporcionar una interfaz grfica de usuario (GUI)

APLICACIONES CLIENTE/SERVIDOR
Siempre que el cliente y los servidores compartan los mismos protocolos de comunicacin
y soporten las mismas aplicaciones pueden contener distintos SO.
Quin permite que interacten el cliente y el servidor es el software de comunicacin. Las
funciones que realiza una aplicacin se pueden dividir entre cliente y servidor para
optimizar el uso de recursos.
Aplicaciones de base de datos
El servidor es un servidor de base de datos.
La interaccin es a travs de transacciones, en las que el cliente realiza una peticin a la
base de datos y recibe una respuesta.
El servidor es responsable del mantenimiento de la base de datos.
Se ven unidos por un sw que permite que el cliente haga peticiones para acceder al servicio
de la base de datos. El ms comn es SQL (lenguaje estructurado de consola )
Clases de aplicaciones cliente/servidor
Tipos:
o Procesamiento basado en host: todo el procesamiento se realiza en el host central, y
la interfaz de usuario se realiza a travs de un interfaz tonto.
o Procesamiento basado en el servidor: el cliente es el principal responsable de
proporcionar la interfaz grfica de usuario, mientras que todo el procesamiento se
realiza en el servidor. No suelen generar grandes ventajas de productividad ni
cambios en las funciones de negocio soportadas por el sistema.
o Procesamiento basado en el cliente: prcticamente todo el procesamiento se puede
realizar en el cliente, con la excepcin de las rutinas de validacin de datos y otras
funciones de la lgica de la base de datos que se pueden realizar mejor en el
servidor. Permite a los usuarios el uso de aplicaciones adaptadas a las necesidades
locales.
o Procesamiento cooperativo: el proceso de las aplicaciones se realiza de forma
ptima, beneficindose de las maquinas clientes y servidora y de la distribucin de
los datos. Pueden proporcionar mayor productividad a los usuarios y mayor
eficiencia de red

65

Cliente pesado: gran parte de la carga esta en el cliente. La ventaja es que se beneficia de la
potencia de los escritorios, descargando el servidor y hacindolos ms eficientes y menos
propensos al cuello de botella. Las desventajas son que sobrecarga la capacidad de los
ordenadores de escritorio, es difcil mantener, actualizar o reemplazar aplicaciones.
Cliente ligero es lo opuesto y es a menudo la ruta de migracin para pasar las aplicaciones
corporativas de los mainframe a un entorno distribuido.
Arquitectura cliente/servidor de tres capas
El SW de la aplicacin se distribuye entre tres tipos de mquinas: mquina usuario, servidor
en la capa central, servidor en segundo plano (backend)
Normalmente es un cliente ligero
Las mquinas de la capa central pueden convertir protocolos y cambiar de un tipo de
consulta de base de datos a otra.
La interaccin entre el servidor de la capa central y el servidor en segundo plano, tambin
sigue el modelo cliente/servidor.
Consistencia de la cach de ficheros
Los sistemas individuales puede utilizar cach de ficheros para almacenar los registros de
los ficheros a los que se ha accedido recientemente.
La cach local de ficheros debera reducir el nmero necesarios al servidor remoto
Cuando un proceso realiza un acceso a un fichero, la peticin se presenta primero a la cach
de la estacin de trabajo del proceso (trafico de fichero). Si no es satisfactoria, la peticin se
pasa o al disco local, si el fichero est all almacenado (trafico de disco), o al servidor de
ficheros, donde el fichero est almacenado (trfico de servidor).
El enfoque de doble cach se utiliza para reducir el trfico de comunicacin (cach de
cliente) y la E/S de disco (cach de servidor)
Cuando la cach contiene siempre copias exactas de los datos remotos decimos que son
consistentes.
Para la consistencia de la cach utiliza tcnicas de bloqueo de ficheros para evitar accesos
simultneos a un fichero por ms de un cliente.

MIDDLEWARE
Conjunto de herramientas i.e. proporcionan una manera y estilo de acceso uniforme a los
recursos del sistema a travs de todas las plataformas, permitiendo construir a los
programadores aplicaciones que utilizan los mismos mtodos de acceso a los datos.
Hay distintos tipos pero todos tiene la capacidad de esconder la complejidad y disparidad de
los diferentes protocolos de red y SO.
Arquitectura middleware
Hay componentes tanto cliente como servidor.
El propsito bsico es permitir a una aplicacin o usuario en el cliente acceder a una
variedad de servicios en el servidor sin preocuparse de las diferencias entre los servidores.
Proporciona una capa de SW que permite un acceso uniforme a sistemas diferentes.
Es responsable de guiar la peticin al servidor apropiado.
Se basan en el paso de mensajes y las llamadas a procedimiento remoto.

14.2 PASO DE MENSAJES DISTRIBUIDO

66

Un proceso cliente necesita algn servicio y enva un mensaje con la peticin de servicio a
un proceso servidor. El proceso servidor realiza la peticin y enva un mensaje con la
respuesta.

FIABLE VS. NO FIABLE


Garantiza la entrega si es posible. Hacen uso de un protocolo de transporte fiable o de una
lgica similar, y realiza comprobacin de errores, acuse de recibo, retransmisin y
reordenamiento de mensajes desordenados. Si falla se informa al proceso emisor
El no fiable simplemente enva el mensaje por la redo peor no se le indica ni el xito ni el
fracaso. Reduce la complejidad y la sobrecarga de procesamiento y comunicacin de
servicio de paso de mensaje.

BLOQUEANTE VS. NO BLOQUEANTE


Con las no bloqueantes no se suspende a un proceso como resultado de realizar la primitiva
Las no bloqueantes proporcionan un uso eficiente y flexible de los servicios de paso de
mensajes por parte de los procesos. La desventaja es la dificultad de chequear y depurar
programas que utilicen estas primitivas.

14.3 LLAMADAS A PROCEDIMIENTO REMOTO


Lo esencial de esta tcnica es permitir a los programas en diferentes mquinas interactuar a
travs del uso de llamadas a procedimiento, tal y como lo haran dos programas que
interactan en la misma mquina.
Permite especificar las interfaces remotas, como un conjunto de operaciones con nombre y
tipos de datos dados.
Los desarrolladores pueden escribir cdigos altamente portables

REPRESENTACIN DE LOS PARMETROS


Si los programas llamado y llamante estn escritos en el mismo lenguaje de programacin,
en el mismo tipo de mquina y con el mismo SO no hay problema
Si se utiliza una arquitectura de computacin completa, este problema se gestiona en la
capa de presentacin
En el llamado a procedimiento remoto la responsabilidad de la conversin recae sobre el
servicio de la llamada a procedimiento remoto.

ENLACE CLIENTE/SERVIDOR
El enlace especifica cmo se establece la relacin entre un procedimiento remoto y el
programa llamante.
Un enlace no permanente significa que la conexin lgica se establece entre los dos
procesos en el momento de la llamada a procedimiento remoto y que, tan pronto como se
devuelven los valores, se cierra la conexin. Esto consume recurso y genera sobrecarga en
la conexin. Inapropiado para llamados frecuentas
Enlaces persistentes es lo opuesto.

SNCRONOS VS ASNCRONOS
Son equiparables al concepto e bloqueante y no bloqueante.

14.4 CLUSTERS
Sistemas que proporcionan un alto rendimiento y una alta disponibilidad y que son
particularmente atractivos para aplicaciones de servidor.

67

Es un grupo de computadoras (nodos) completas e interconectadas que trabajan juntas


como un recurso de computacin unificado y que pueden crear la ilusin de ser una nica
mquina.
Cuatro beneficios:
o Escalabilidad absoluta
o Escalabilidad incremental
o Alta disponibilidad
o Relacin precio/prestacin

CONFIGURACIONES DE LOS CLUSTERS


Los clusters de dos nodos las mquinas estn interconectadas a travs de un enlace de alta
velocidad que puede ser utilizado para el intercambio de mensajes y para coordinar la
actividad del cluster.
Cluster de disco compartido: hay un subsistema de discos que estn directamente enlazados
con mltiples computadoras del cluster.
Mtodo de cluster
Pasivo en Espera

Secundario Activo

Diferentes Servidores

Servidores conectados a
discos

Servidores Comparten
Discos

Descripcin
En caso de fallo en el
servidor primario, un
servidor secundario toma el
control
El servidor secundario
tambin se utiliza para
procesamiento de tareas
Cada servidor tiene sus
propios discos. Los datos se
copian continuamente del
servidor primario al
secundario
Los servidores est unidos
a los mismos discos, pero
cada servidor posee sus
propios discos. Si un
servidor falla el otro
servidor toma control de
sus discos
Varios servidores comparte
acceso a disco de forma
simultnea

Beneficios
Fcil de Implementar

Coste reducido porque el


servidor secundario puede
ser utilizado para
procesamiento
Alta disponibilidad

Limitaciones
Alto coste debido a i.e. el
servidor secundario no est
disponible para procesar
otras tareas
Creciente complejidad

Alta sobrecarga de red de


servidor debido a las
operaciones de copia

Sobrecarga de red y de
servidores reducida debido
a la eliminacin de las
operaciones de copia

Normalmente requiere
tecnologas de aplicacin de
discos o RAID para
compensar el riesgo de fallo
de disco

Baja sobrecarga de red y de


servidores. Reducido riesgo
de perodos de inactividad
causados por fallos de
disco.

Requiere sw de gestin de
cerrojos. Normalmente se
utiliza con tecnologas de
replicacin de discos o
RAID

ASPECTOS DE DISEO DE SISTEMAS OPERATIVOS


Gestin de Fallos:
Existen dos enfoques:
Cluster con alta disponibilidad: ofrece alta disponibilidad de que todos los recursos estn en
servicio. Si sucede algn fall se pierde las peticiones en progreso. Cualquier peticin
perdida que se reintente, ser atendida por una computadora diferente del cluster
Cluster con tolerancia a fallos: asegura que todos los recursos estn siempre disponibles.
Esto se logra a travs del uso de discos redundantes compartidos y mecanismo para
deshacer transacciones incompletas.
La funcin de intercambiar una aplicacin de datos de un sistema fallido por un sistema
alternativo del cluster se llama recuperacin de fallos.

68

Para volver a como estaba antes una vez que se soluciono el problema se llama restauracin de
fallos.
Computacin paralela
Compilacin paralela: determina en tiempo de compilacin, que partes de la aplicacin se
pueden ejecutar en paralelo.
Aplicaciones paralelas: el programador escribe las aplicaciones para que ejecuten en un cluster
y utiliza paso de mensajes para mover datos entre nodos.
Computacin paramtrica: este enfoque se puede utilizar si la esencia de la aplicacin es un
algoritmo que se debe ejecutar un gran nmero de veces, cada vez con un conjunto diferente de
condiciones o parmetros iniciales.

ARQUITECTURA DE UN CLUSTER
Las computadoras estn conectadas a una LAN de velocidad o conmutador hw.
Cada computadora es capaz de operar independientemente.
Cada computadora est instalada a una capa de sw middleware que permite la operacin del
cluster.
El middleware del cluster proporciona una imagen nica al usuario, conocida como imagen
nica del sistema. Tambin podra ser responsable de proporcionar alta disponibilidad, a travs
del balanceado de carga y de la respuesta a los fallos de componentes.
Servicios deseables en un cluster:
nico punto de entrada
Una nica jerarqua de ficheros
nico punto de control: hay nodos por defecto encargados de gestionar y controlar el
cluster
nica red virtual: cualquier nodo puede acceder a cualquier otro punto del cluster
nico espacio de memoria
nico sistema de control de trabajos: con un planificador de trabajos en el cluster, un
usuario puede enviar su trabajo sin especificar la computadora que lo ejecutar
nico interfaz de usuario
nico espacio de E/S: cualquier nodo puede acceder remotamente a cualquier perifrico de
E/S o disco, sin conocer su localizacin fsica.
nico espacio de procesos: se utiliza un esquema uniforme de identificacin de procesos.
Un porotes en cualquier nodo puede crear o se puede comunicar con cualquier otro proceso
en un nodo remoto.
Punto de control: esta funcin salva peridicamente el estado del proceso y los resultados
de computacin intermedios, para permitir recuperarse despus de un fallo
Migracin de procesos: permite balanceo de carga

CLUSTER FRENTE A SMP


SMP es ms fcil de gestionar y configurar que un cluster
SMP normalmente ocupa menos espacio fsico y gasta menos energa que un cluster
comparable.
SMP bien establecido y muy estable.
Cluster superior al SMP en relacin a la escalabilidad incremental y absoluta. Y en trminos de
disponibilidad porque todos los componentes puede ser altamente redundantes.

CAPITULO 15 GESTIN DE PROCESOS DISTRIBUIDOS


69

15.1 MIGRACIN DE PROCESOS


La migracin de procesos es la transferencia de suficiente cantidad del estado de un proceso
de un computador a otro para que le proceso ejecute en la maquina destino.

MOTIVACIN
Comparticin de Carga: moviendo procesos de un sistema muy cargado a otro poco
cargado, la carga puede equilibrarse para mejorar el rendimiento global.
Rendimiento de las comunicaciones: los procesos que interaccionan intensivamente puede
llevarse al mismo nodo para reducir el coste de la comunicacin mientras dure su
interaccin
Disponibilidad: se puede necesitar que los procesos de larga duracin se muevan para
sobrevivir en el caso de fallos conocidos con anticipacin
Utilizacin de facilidades especiales: moverse para conseguir ventajas de facilidades de
HW o SW existentes en un nodo en particular

MECANISMOS PARA MIGRCIN DE PROCESOS


Inicio de la migracin
Quin la inicia depende del objetivo del servicio de migracin.
Si el objetivo es el equilibrio de la carga, lo hace un monitor de carga
Si el objetivo es alcanzar los recursos el que lo inicia es el que lo necesita.
Qu se migra?
Cuando se migra un proceso es necesario destruir el proceso en el sistema origen y crearlo
en el sistema destino.
Se necesita, la imagen del proceso consistiendo como mnimo el bloque de control de
proceso.
Cualquier vinculo entre este procesos y otros deben actualizarse (responsabilidad SO)
Estrategias para el espacio de direcciones de proceso y ficheros asignados al proceso:
o Ambicioso (todas): transferir el espacio de direcciones completo en el momento de
la migracin. Si el espacio de direcciones es muy grande y el proceso no va a
necesitar la mayor parte de l entonces es costoso.
o Precopia: el proceso contina la ejecucin en el nodo origen mientras el espacio de
direcciones se copia en el nodo destino. Reduce el tiempo que el proceso pasa
congelado y sin poder ejecutar durante la migracin.
o Ambicioso (sucias): transfiere solo aquellas pginas del espacio de direcciones que
estn en memoria principal t han sido modificadas. Cualquier otro espacio de
direcciones virtual se transfiere bajo demanda. La maquina origen sigue
involucrada en la vida del proceso manteniendo tablas de pginas y segmentos y
requiere soporte para la paginacin remota.
o Copiar-al-referenciar: las pginas son entregadas solo cuando se les hace referencia.
Menor coste inicial de migracin.
o Volcado: las pginas del proceso se eliminan de la memoria principal del origen
volcando las pginas sucias a disco. Luego se accede a las pginas segn se
necesiten desde el disco en vez de desde la memoria. Libera al origen.
Si el proceso est estructurado con hilos lo mejor es la paginacin remota
Si el fichero est inicialmente en el mismo sistema que el proceso a migrar y el fichero esta
bloqueado para accesos exclusivo por tal proceso, entonces transferir el fichero junto con el
proceso.

70

Cuando la migracin no la pide el mismo proceso el proceso migrador copia la imagen del
proceso y todas las direcciones y destruye el proceso anterior.
Mensajes y seales
Se deben almacenar durante la migracin y despus redireccionarlas
Negociacin de la migracin
En algunos sistemas el sistema destino participa en la decisin de la migracin. Esto puede
ser para preservar el tiempo de respuesta al usuario.

DESALOJO
El mecanismo de negociacin permite que el sistema de destino rechace o acepte la
migracin de un proceso.
Tambin puede ser til permitir que un sistema expulse a un proceso que inmigr a l.

TRANSFERENCIA EXPUSLIVA VERSUS NO EXPULSIVA


La no expulsiva es la ms sencilla e involucra solo procesos que no han comenzado su
ejecucin y por lo tanto no requieren la transferencia del estado del proceso.
La no expulsiva puede ser til para el equilibrado de carga que se aprovecha de poder evitar
la sobrecarga al migrar procesos en todos sus estados pero no reacciona bien a los cambios
sbitos de distribucin.

15.2 ESTADOS GLOBALES DISTRIBUIDOS


ESTADOS GLOBALES E INSTANTANEAS DISTRIBUIDAS
No existe un estado global del sistema
Los retardos de tiempo impuestos por la naturaleza de los sistemas distribuidos complican
todos los aspectos de concurrencia.
Trminos:
o Canal: existe un canal entre dos procesos si intercambian mensajes. Medio por el
cual el mensaje se transfiere
o Estado: secuencia de mensajes que se haya enviado y recibido a travs de los
canales
o Instantnea: registra el estado de un proceso. Cada instantnea incluye un registro
de todos los mensajes enviados y recibidos en todos los canales desde la ltima
instantnea
o Estado global: estado combinado de todos los procesos
o Instantnea distribuida: coleccin de instantneas, una por proceso
Un estado global es consistente si cada estado de proceso que registra la recepcin un
mensaje el envi de tal mensaje esta registrado en el proceso que envi dicho mensaje.
Un estado global inconsistente surge si un proceso ha registrado la recepcin de un mensaje
pero el proceso emisor no la ha registrado

ALGORITMO DE INSTANTNEA DISTRIBUIDA


El algoritmo asume que los mensajes se entregan en el orden en que se envan y no se
pierden mensajes.
El algoritmo hace uso de un mensaje de control especial denominado marcador.
Algn proceso inicial el algoritmo registrando su propio estado y enviando un marcador por
todos los canales salientes antes de enviar algn mensaje.
o P registra su estado local Sp

71

o P registra el estado del canal entrante desde q a p como vaci


o P propaga el marcador a todos sus vecinos a travs de todos los canales salientes.
En algn momento tras recordar su estado, cuando p recibe un marcador desde otro canal
realiza:
o P registra el estado del canal de r a p como las secuencias de mensajes que p ha
recibido de r desde que p registro su estado local Sp en el instante que reciba el
marcador de r
El algoritmo termina para un proceso una vez que ha recibido el marcador de cada canal
entrante.
Cualquier proceso puede comenzar el algoritmo enviando un marcador
El algoritmo termina en un tiempo finito si cada mensaje se entrega en un tiempo finito
Cada proceso es responsable de registrar su propio estado y el estado de todos los canales
entrantes.
El estado global consistente obtenido por el algoritmo puede ensamblarse en cada proceso
haciendo que cada proceso envi los datos de estado que ha registrado a travs de cada
saliente y haciendo que cada proceso reenve los datos de estado que recibe a travs de cada
canal saliente.

15.3 EXCLUSIN MUTA DISTRIBUIDA


Depende del intercambio de mensajes

CONCEPTOS DE EXCLUSIN MUTUA DISTRIBUIDA


Se deben cumplir los requisitos de la exclusin mutua.
En un algoritmo centralizado del todo, se designa un nodo como nodo de control para
controlar el acceso a todos los objetos compartidos.
Cuando cualquier proceso requiere acceso a un recurso crtico emite una solicitud a su
proceso local controlador de recursos. Este proceso enva un mensaje de solicitud al nodo
de control, que devuelve un permiso cuando el objeto compartido pasa a estar disponible.
Cuando un proceso libera un recurso manda un mensaje al controlador.
o Solamente el nodo de control toma decisiones de ubicacin de recursos
o Toda la informacin necesaria est centrada en el nodo de control.
o El nodo de control puede fallar terminando con la exclusin mutua y puede ser un
cuello de botella.
Un algoritmo distribuido se caracteriza por las siguiente propiedades:
o Todos los nodos tiene igual cantidad de informacin, por trmino medio
o Cada nodo tiene solamente una visin parcial del sistema total y debe tomar
decisiones basndose en esa informacin
o Todos los nodos tienen igual responsabilidad sobre la decisin final
o Todos los nodos tienen igual responsabilidad sobre la decisin final
o El fallo de un nodo, no conlleva al colapso del sistema
o No existe un reloj global comn con el que regular los eventos.

ORDENACIN DE EVENTOS EN UN SISTEMA DISTRIBUIDO


Debe haber un retardo entre la ocurrencia relativa de un evento y el momento en que es
observado en algn otro sistema.
La falta de sincronizacin lleva a una variacin en las lecturas del reloj en diferentes
sistemas
Se usa el sello de tiempo que ordena los eventos en un sistema distribuido sin utilizar un
reloj fsico.

72

Para los algoritmos basados en este sistema no importa que evento (mensaje) sucedi
primero sino que todos los procesos que implementan el algoritmo acuerdan un orden nico
que es impuesto sobre los eventos.

COLA DISTRIBUIDA
Primera versin
Asunciones:
o Consiste en N nodos numerados. Cada uno contiene un proceso que realiza las
peticiones de acceso en exclusin mutua.
o Un mensaje enviado de un nodo a otro se recibe en el orden de envi
o Cada mensaje se entrega correctamente en un tiempo finito
o Cualquier proceso puede enviar mensajes directamente a otro proceso directamente
Cada nodo tiene la copia de la cola de solicitudes mercado con el sello de tiempo.
Para que un proceso puede tomar una decisin basndose en su propia cola, necesita haber
recibido un mensaje cada uno de los otros sitios de manera que pueda garantizar que no hay
ningn mensaje en trnsito ms reciente que el de la cabeza de su cola.
El algoritmo tiene tres tipos de mensajes: Solicitud, Respuesta y Liberar.
Cuando uno quiere acceder a un recurso enva una solicitud con su sello de tiempo y lo
coloca en su cola. Los que reciben su solicitud ponen el mensaje en su vector. Si no tiene
otro mensaje de solicitud manda una respuesta. Luego lo libera.
Se cumplen:
o Exclusin mutua: las solicitudes de entrada en la seccin critica se sirven conforme
a la ordenacin impuesta por el mecanismo de sello de tiempo
o Equitativo: las solicitudes se conceden estrictamente sobre la base de la ordenacin
de sellos de tiempo
o Libre de interbloqueo: dado que la ordenacin por sello de tiempo se mantiene
consistente en todos los sitios
o Libre de hambruna
Segunda versin
Se optimiza el algoritmo evitando el mensaje de liberacin.
Se basa en que cuando un mensaje quiere entrar a una seccin crtica enva una solicitud y
cuando recibe una repuesta de todos puede hacerlo.
Si alguien esta o esta esperando por entrar a su seccin crtica posterga la respuesta.

UN ENFOQUE DE PASO DE TESTIGO

El testigo es una entidad que en cualquier momento posee uno de los procesos.
El proceso que tiene el testigo puede entrar a su seccin crtica sin pedir permiso
Cuando un proceso abandona su seccin crtica pasa el testigo a otro proceso.
Se elige quien va a recibir el testigo segn el vector de solicitudes y testigo.

15.4 INTERBLOQUEO DISTRIBUIDO


Se complica porque ningn nodo tiene un conocimiento preciso del estado actual del
sistema global y porque la transferencia de cada mensaje entre procesos involucra un
retardo impredecible.
Hay dos tipos de interbloqueo distribuidos:
o Por recursos: sucede si cada proceso de un conjunto de procesos solicita un recurso
que tiene otro proceso del conjunto

73

Por comunicacin de mensajes: los procesos de un conjunto esperan por un


mensaje de otro proceso en el conjunto y ningn proceso en el conjunto enva
nunca un mensaje

INTERBLOQUEO EN LA UBICACIN DE RECURSOS


En un sistema distribuido, los recursos estn distribuidos sobre varios sitios y el acceso a
ellos se regula por procesos de control que tienen un conocimiento completo y actualizado
del estado global del sistema y por tanto deben tomar sus decisiones sobre la base de
informacin local.
Se puede producir un interbloqueo fantasma que es una deteccin falsa debido a la falta de
un estado global como el que existira en un sistema centralizado.
Prevencin de interbloqueo
La condicin de espera circular puede prevenirse definiendo una ordenacin lineal de los
tipos de recurso. Una desventaja es que los recursos pueden no solicitarse en la ordenacin
en la cual se van a utilizar, reservndolos ms tiempo del necesario.
La condicin de tener y esperar puede prevenirse exigiendo que un proceso solicite a la vez
todos los recursos que necesita y bloqueando al proceso hasta que todas las solicitudes
pueden satisfacer simultneamente. Un proceso puede quedar esperando durante mucho
tiempo hasta que se complete la solicitud de todos sus recursos. Los recursos asignados a un
proceso pueden permanecer sin usarse durante un perodo considerable.
Se usa sello de tiempo para prevenir la espera circular
Esperar-morir: si un proceso espera por un recurso y el que lo tiene pide uno que esta
ocupado se lo mata
Herir-esperar: concede inmediatamente la solicitud de una transaccin ms antigua matando
a la transaccin ms joven que est utilizando el recurso solicitado
Evitacin del interbloqueo
No es practico porque:
o Cada nodo debe seguirle la pisa al estado global del sistema
o El proceso de comprobar que un estado global es seguro debe ser mutuamente
exclusivo
o La comprobacin de estados seguros conlleva una sobrecarga de procesamiento
considerable para un sistema distribuido con un gran nmero de procesos y
recursos
Deteccin del interbloqueo
Con el control centralizado: un sitio es responsable de la deteccin de interbloqueo. Todos
los mensajes de solicitud y liberacin se envan al proceso centra as como al proceso que
control al recurso particular. Requiere gran nmero de mensajes y es vulnerable al fallo del
sitio central. Puede haber interbloqueo fantasma. Sencillo y fcil de implementar. Sitio
central tiene la info
Con el control jerrquico: los sitios se organizan en una estructura en rbol. En cada nodo
que no sea hoja se recolecta informacin a acerca de la ubicacin de recursos de todos los
nodos dependientes. Un interbloqueo es detectado por el nodo que es ancestro de todos los
sitios cuyos recursos estn entre los objetos en conflicto. No es vulnerable a un nico punto
de fallo. Mucha sobrecarga y difcil de implementar.
Con el control distribuido: todos los procesos cooperan en la tarea de detectar el
interbloqueo, pero sufre una sobrecarga significativa. No es vulnerable a un nico punto de
fallo. difcil de disear y de implementar.

74

INTERBLOQUEO EN COMUNICACIN DE MENSAJES


Espera mutua
Todos los procesos en s estn esperando parados, esperando mensajes
S contiene el conjunto de dependencias de todos los procesos s
No hay mensajes en trnsito entre los miembros de S
No disponibilidad de buffers de mensajes
Interbloqueo almacenar-y-reenviar directo y puede ocurrir si un nodo de encaminamiento
de paquetes usa un depsito comn para todos los buffers del cual se asignan buffers a
paquetes por demanda.
Interbloqueo almacenar-y-reenviar directo puede preverse no permitiendo que todos los
buffers terminen dedicados a un nico enlace. Usando buffers de tamao fijo separados,
uno como enlace, se conseguir la prevencin. Se evita si se utiliza un nico enlace que
pueda ocupar todo el espacio de buffers.
Interbloqueo almacenar-y-reenviar indirecto: para cada nodo la cola al nodo adyacente en
una direccin est repleta con paquetes destinados al siguiente nodo ms all. Una manera
sencilla de prevenir este tipo de interbloqueo es emplear un depsito estructurado de
buffers. Los buffers se organizan de manera jerrquica. Los buffers de nivel k se reservan
para mensajes que ya hayan dado k saltos. Si se llena todos los mensajes finales se pierden.
Si la operacin de envo no es bloqueante, se necesita un buffer para contener los mensajes
salientes.
El uso de canales finitos puede llevar al interbloqueo. Si es posible establecer lmites
superiores al nmero de mensajes estarn en trnsito entre cada pareja de procesos en el
sistema, entonces la estrategia de prevencin obvia ser ubicar tantos buffers como se
necesiten para todos estos canales. Si las necesidades no pueden conocerse con
anticipacin, se necesita alguna tcnica de estimacin para optimizar la ubicacin.

CAPTULO 16 SEGURIDAD
16.1 AMENAZAS DE SEGURIDAD
La seguridad tiene 4 requisitos bsicos:
o Confidencialidad: requiere que la informacin de un sistema informtica slo se
encuentre accesible para lectura para aquellas partes que estn autorizadas a este
tipo de acceso.
o Integridad: requiere que los contenidos de un sistema informtico slo podr
modificarse por las partes que se encuentren autorizadas.
o Disponibilidad: requiere que los componentes de un sistema informtico estn
disponibles para todas aquellas partes autorizadas.
o Autenticacin: requiere que el sistema informtico sea capaz de verificar la
identidad de los usuarios.

TIPOS DE PELIGROS
Existe un flujo de informacin desde una fuente, pudindose tratar de un fichero o una
regin de memoria, a un destino, que puede ser otro fichero o puede ser el mismo usuario.
Tipos:
o Interrupcin: se destruye un componente del sistema o se encuentra no disponible o
utilizable. Es un ataque centrado en la disponibilidad.
o Intercepcin: una parte no autorizada consiga acceso a un componente. Centrado en
la confidencialidad

75

o
o

Modificacin: un elemento no autorizado no slo tiene acceso a un componente


sino que tambin es capaz de modificarlo. Dirigido a la integridad.
Fabricacin: un elemento no autorizado inserta objetos extraos en el sistema.
Centrado en la autentificacin.

COMPONENTES DE UN SISTEMA INFORMTICO


Hardware: los principales peligro incluyen dao accidental o deliberado a los equipos, as
como robo.
Software: para mantener una alta disponibilidad, resulta necesaria una gestin de
configuracin del software cuidadosa, que incluya realizacin de backups y actualizacin
de versiones.
Datos
Lneas de comunicaciones y redes:
o un ataque pasivo intenta aprender o hacer uso de la informacin del sistema, pero
no afecta a los recursos del mismo espionaje y monitorio de transmisiones
(lectura de los contenidos de los mensajes y el anlisis de trfico). Son posibles de
prevenir por medio del cifrado.
o Un ataque activo intenta alterar los recursos del sistema o afectar a su operativa.
Implican modificaciones en el flujo de datos o la creacin de flujo de datos falsos:
Enmascaramiento: el elemente intenta hacerse pasar por otro diferente
Reenvi: implica la captura pasiva de una unidad de datos y su posterior
retransmisin para producir un efecto no autorizado
Modificacin de mensajes
Denegacin de servicio: previene o imposibilitar el uso normal o la gestin
de las instalaciones de comunicaciones. Otra forma es la desarticulacin de
todas las redes o bien deshabilitndolas o sobrecargndola con mensajes
para degradar su rendimiento.

16.2 PROTECCIN
La posibilidad de compartir estos recursos introduce la necesidad de la proteccin.
El SO debe ofrecer niveles de proteccin a lo largo del siguiente rango (en orden de
dificultad aprox. creciente desde el punto de vista de su implementacin, as como en orden
del detalle de proteccin que proporciona) :
o Sin proteccin alguna: apropiado por los procedimientos que son sensibles de
ejecutar en instantes diferentes
o Aislamiento: esta estrategia implica que cada proceso opera de forma separada con
otros procesos, sin comparticin ni comunicacin alguna
o Comparticin completa o sin comparticin: el propietario del objeto declara si va a
ser pblico o privado.
o Comparticin va limitaciones acceso: el sistema operativo verificar la
permisibilidad de cada acceso por parte de cada usuario especfico sobre cada
objeto.
o Acceso va capacidades dinmicas: permite la creacin de acceso a los objetos
o Uso limitado de un objeto
El sistema operativo necesita equilibrar la necesidad de permitir comparticin, que mejora
la utilidad del sistema, con la necesidad de proteger los recursos de cada uno de los
usuarios.

PROTECCIN DE LA MEMORIA
76

La separacin de los espacios de memoria de los diferentes procesos es un requisito


fundamental en los esquemas de memoria virtual.
Si lo que se busca es el aislamiento completo se hace asegurndose de que no hay entradas
duplicadas en las tablas de pginas y/o segmentos.
Si se desea permitir la comparticin entonces el mismo segmento o pgina puede aparecer
en ms de una tabla.

CONTROL DE ACCESO ORIENTADO A USUARIO


La tcnica ms comn para el control de acceso por usuario en un sistema compartido o en
un servidor es el registro o conexin de usuario, se requiere el identificador de usuario y
una contrasea.
El sistema ID/psw es poco fiable para proporcionar control de acceso a los usuarios.
El control de acceso de usuarios en un entorno distribuido se puede llevar acabo de forma
centralizado o descentralizada.
o Centralizada: la red proporciona un servicio de conexin que determina a quin est
permitido el uso de la red y con quien.
o Descentralizado: trata la red como un enlace de comunicacin transparente y el
mecanismo de acceso habitual se realiza por parte del ordenador destino.
Se puede realizar una combinacin de ambos mediante control de acceso en dos niveles.

CONTROL DE ACCESO ORIENTADO A LOS DATOS


Asociado a cada usuario puede existir un perfil que especifica las operaciones permitidas en
los accesos a ficheros.
El modelo general para el control de acceso es la matriz de acceso. Cuyos elementos
bsicos son: sujeto, objeto y derecho de acceso.
En la prctica la matriz se usa descompuesta. Por columnas, lista de control de acceso (de
cada objeto hay una lista de usuarios y derechos). Por filas, tickets de capacidades que
especifica objetos y operaciones autorizadas para un determinado usuario.

16.3 INTRUSOS
Enmascarado: un individuo que no est autorizado a utilizar un ordenador y que penetra en
los controles de acceso del sistema para aprovecharse de una cuenta de usuario legtimo
Trasgresor: un usuario legtimo que accede a datos, programas o recursos para los cuales
dicho acceso no est autorizado, o estando autorizado para dicho acceso utilizar sus
privilegios de forma maliciosa.
Usuario clandestino: un usuario que sobrepasa el control de supervisin del sistema y usa
dicho control para evadir la auditoria y el control de acceso o para suprimir la recogida de
registro de acceso.

TCNICAS DE INTRUSIN
El objetivo de un intruso es ganar acceso a un sistema o incrementar el rango de sus
privilegios de acceso a dicho sistema.
Un sistema debe mantener un fichero i.e. asocia las contraseas con cada usuario
autorizado. El fichero se puede proteger con:
o Cifrado unidimensional: el sistema almacena nicamente una forma cifrada de la
contrasea de usuario
o Control de acceso: el acceso al fichero se encuentra limitado a una o muy pocas
cuentas.
Tcnicas para conocer las contraseas:

77

o
o
o
o
o
o
o
o

Intentar las contraseas por defecto


Ensayar todas las contraseas de pequeo tamao
Probar palabras en el diccionario del sistema o una lista de contraseas habituales
Recolectar informacin de los usuarios
Intentar el nmero de telfono del usuario, de seguridad social, y la direccin del
domicilio
Probar con todos los nmeros de matrcula vlidos en dicha regin
Utilizacin de troyanos para sobrepasar las restricciones de acceso
Pinchar la lnea entre un usuario remoto y el sistema destino.

PROTECCIN DE CONTRASEAS
El identificador proporciona seguridad de la siguiente manera:
o El identificador determina si el usuario est autorizado a conseguir el acceso al
sistema
o El identificador determina los privilegios asociados al usuario
o El identificador tambin se utiliza para un control de acceso discrecional
Vulnerabilidad de las contraseas
La contrasea de texto cifrado almacena, junto con una copia en claro de calor de aderezo,
en el fichero de contraseas para el correspondiente identificador de usuario.
El valor de aderezo vale para tres fines diferentes:
o Evitar que si hay contraseas duplicadas stas sean visibles en el fichero de
contraseas. Incluso si los usuarios eligen la misma contrasea, esta contrasea
habr sido asignadas en diferentes instantes de tiempo. Por lo tanto, la contrasea
extendida de ambos usuarios ser diferente.
o Incrementa de forma efectiva la longitud de la contrasea sin requerir que el
usuario recuerde dos caracteres adicionales
o Evita la utilizacin de implementaciones hw de DES, que reduce el riesgo de
ataques por fuerza bruta.
La rutina de cifrado de diseo para desalentar los intentos de adivinacin de las
contraseas.
Existen dos peligros en el esquema de contraseas de UNIX: un usuario puede conseguir el
acceso a un sistema utilizando una cuenta de invitado o por cualquier otro mecanismo y
ejecutar un programa de adivinacin de contraseas.
Control de acceso
Una forma de protegerse de los ataques de contraseas es denegar el acceso al oponente al
cierto de contraseas. Pero esta estrategia falla porque:
o Muchos sistemas son susceptibles a intromisiones de una forma que no venga
anticipada.
o Un accidente en la proteccin puede hacer que el fichero de contraseas sea legible,
comprometiendo de esta forma todas las cuentas
o Algunos de los usuarios pueden tener cuentas en otras mquinas bajo otro dominio
de proteccin y en algunos casos utilizar la misma contrasea.

ESTRATEGIAS DE SELECCIN DE CONTRASEAS


El objetivo es eliminar las contraseas adivinables mientras que permitimos que los
usuarios seleccionen unas que sean fciles de memorizar, pare ello se utiliza:
o Educacin de los usuarios

78

o
o

Contrasellas generadas por el ordenador: difciles de memorizar por el usuario


Verificacin reactiva de las contraseas: el sistema de forma peridica ejecuta su
propio programa de adivinacin para encontrar posibles contraseas adivinables. El
sistema cancela cualquier contrasea adivinada y notifica al usuario. Uso intensivo
de recursos y las contraseas son vulnerables entre chequeos.
Verificacin proactiva de las contraseas: en el momento de la seleccin el sistema
prueba a ver si la contrasea est permitida y si no es as la rechaza. Si es muy
difcil el usuario si queja y si es muy simple es una gua para los password crackers.
Otra opcin es simplemente recopilar un gran diccionario de lo que posiblemente
sean mala contraseas. El problema es el espacio t el tiempo.
Todas las contraseas deben tener al menos ocho caracteres de longitud
En los primero ocho caracteres deben incluir al menos uno en maysculas
otro en minsculas, un dgito y un signo de puntuacin.

DETECCIN DE INTRUSOS
Motivos para la deteccin:
o Si una intrusin se detecta suficientemente rpido puede ser identificado y
expulsado del sistema antes de que haga dao o llegue a comprometer algn dato.
o Un sistema de deteccin que resulte efectivo puede actuar de forma disuasoria, de
forma de prevenir intrusiones
o La deteccin de intrusos permiten la recoleccin de informacin sobre las tcnicas
de intrusin y pueden utilizarse para reforzar los servicios de prevencin.
La deteccin de intrusos se basa en la suposicin que el comportamiento de un intruso
difiere del de un usuario legtimo de forma que pueda ser cuantificado.
Existe un solapamiento entre estos dos comportamientos, por lo que existen las siguiente
tcnicas:
o Deteccin estadstica de anomalas: implica la recoleccin de datos relativos al
comportamiento de los usuarios legtimos durante un perodo de tiempo. Se aplican
test estadsticos. Son efectivas para el caso de ataques enmascarados.
Deteccin por umbral: esa estrategia implica definicin de umbrales para la
frecuencia de determinados eventos
Basado en el perfil: se desarrolla un perfil de actividad para cada uno de los
usuarios
o Deteccin basada en reglas: implica un intento de definir un conjunto de reglas que
se pueden utilizar para decidir si un comportamiento dado es o no el de un intruso.
Mejor para la deteccin de trasgresores.
Deteccin de anomalas: reglas desarrolladas para detectar la desviacin de
los patrones de usos previos.
Identificacin de penetracin: un sistema experto que busca
comportamiento sospechoso.
Una herramienta fundamental para deteccin de intrusos es el registro de auditoria:
o Registros de auditoria nativos: registra la actividad de los usuarios. Ventaja: no se
requiere ningn tipo de SW adicional para recoger estos datos. Desventaja: puede
no tener la informacin necesaria.
o Registros de auditoria especficos para deteccin: ventaja realizarse de forma
independiente del vendedor e implementarse en una amplia variedad de sistemas.
Desventaja sobrecarga extra Cada uno de los registros de auditoria tienen: sujeto, accin, objeto, condiciones de
excepciones, utilizacin de recursos, sello de tiempo.

79

La divisin de las operaciones de usuario en acciones elementales trae consigo tres


ventajas:
o Debido a que los objetos son las entidades del sistema bajo proteccin, la
utilizacin de acciones elementales permite una auditoria de todo comportamiento
que se refiere a un objeto.
o Los registros de auditoria basados en un objeto sencillo y en una accin sencilla
simplifica el modelo de implementacin.
o Debido a la estructura uniforme y sencilla de los registros de auditoria especficos
para deteccin es relativamente sencillo obtener esta informacin.

16.4 SOFTWARE MALICIOSO


El malware es software diseado para causar dao o utilizar recursos de un ordenador.

PROGRAMAS MALICIOSOS
Estas amenazas se pueden dividir en las que necesitan un programa anfitrin y en las que
son independientes.
Tambin podemos diferenciar los que se puede replicar de los que no
Puerta secreta
Es un punto de entrada secreto dentro de un programa que permite a alguien que conoce la
existencia de dicha puerta tener acceso sin utilizar los procedimientos de acceso de
seguridad estndar.
Para depurar el programa, el desarrollador puede querer ganar privilegios especiales o
evitar toda la configuracin y autenticacin estndar. Tambin puede querer asegurarse de
que existe un mtodo para activar el programa si en algn momento se da un problema
como la autenticacin que est incluido dentro de la aplicacin.
Puede convertirse en una amenaza porque es difcil para el SO implementar controles sobre
las puertas secretas.
Bomba lgica
Es un cdigo insertado dentro de un programa legtimo que explorar bajo ciertas
condiciones.
Troyano
Es un programa til, o aparentemente til, o mandato que contiene un cdigo oculto que, al
invocarse realiza una funcin no deseada o daina.
Los programas troyanos se utilizan para realizad tareas de forma indirecta que el usuario no
autorizado no podr realizar directamente
Otra motivacin habitual es la destruccin de datos.
Virus
Es un programa que puede infectar otros programas modificndolos; las modificaciones
incluyen la copia del programa virus, que puede a continuacin infectar otros programas.
Contiene cdigo de instrucciones que se encarga de realizar copias de si mismo.
Gusano
Utilizan las conexiones de red para expandirse de un sistema a otro.

80

Una vez que se encuentra activos dentro de un sistema, un gusano de red se puede
comportar como un virus informtico, puede implantar troyanos o realizar cualquier otro
tipo de acciones destructivas
Para replicarse a si mismo, el gusano de red utiliza algn tipo de vehculo de comunicacin:
herramientas de corre electrnico, capacidad ejecucin remota, capacidad de conexin
remota.
En un sistema multiprogramado puede disfrazar su presencia renombrndose como un
proceso de sistema o utilizar cualquier otro nombre que no resulte sospechoso.
Zombies
Un programa zombie toma el control de otro ordenador conectado a Internet y
posteriormente utiliza el mismo para lanzar ataques que son difciles de trazar como
provenientes de creador del zombie.

LA NATURALEZA DE LOS VIRUS


Una vez que un virus est en ejecucin, puede realizar cualquier funcin que est permitida
con los privilegios del usuario en cuestin.
Un virus tpico pasa por las siguientes cuatro etapas:
o Fase latente: el virus est dormido.
o Fase de propagacin: el virus inserta copias idnticas de si mismo en otros
programas o reas de disco.
o Fase de activacin
o Fase de ejecucin

TIPOS DE VIRUS
Virus parsito: se inserta a si mismo dentro de ficheros ejecutables y se replica, cuando el
programa infectado se encuentra en ejecucin, buscando otros ficheros ejecutables que
infectar.
Virus residente en memoria: infecta la memoria principal como parte del programa
residente
Virus en el sector de arranque: infecta el sector de arranque maestro y se dispersa cando el
sistema arranca desde el disco que contiene el virus
Virus oculto: se esconde en el sw de deteccin de los antivirus
Virus polimrfico: muta con cada infeccin, hacindose que la deteccin por medio de la
firma del virus sea imposible.

VIRUS BASADOS EN MACROS


Son especialmente peligrosos porque:
o Es independiente de la plataforma
o Infectan documentos, no fragmentos de cdigo ejecutables
o Tiene una distribucin ms sencilla.

ESTRATEGIAS DE LOS ANTIVIRUS:


Deteccin: una vez que ha ocurrido una infeccin, determinar que ha habido una infeccin
y localizar el virus
Identificacin: una vez que la deteccin se ha llevado acabo, identificar qu virus especfico
ha infectado el programa
Eliminacin: se eliminan todos los restos y se recupera el estado original.

81

Descifrado genrico: permite a los programas antivirus detectar fcilmente incluso a los virus
polimrficos ms complejos manteniendo unas velocidades de exploracin altas. Todos los ficheros
ejecutables se recorren con un escner GD que contiene:
o Emulador de cpu
o Escner de firma de virus
o Mdulo de control de la emulacin
Si se encuentra un virus se implementa ese cdigo y el virus mismo exponen su cdigo al
antivirus.
Sistema de inmunidad digital: proporciona una emulacin de propsito general y un sistema de
deteccin de virus. Cuando un nuevo virus entra en una organizacin, el sistema de inmunidad
automticamente lo captura, lo analiza, aade mecanismos de deteccin y defensa contra l, lo
elimina y pasa informacin sobre dicho virus a los sistemas que ejecutan IBM Anti virus de forma
que pueda detectarse antes de que se permita su ejecucin en cualquier otro lugar

16.5 SISTEMAS CONFIABLES


Para un sistema confiables se requiere la proteccin de datos o de recursos por medio de
niveles de seguridad, habitualmente clasificado, por medio de la nomenclatura militar no
clasificada (N), confidencial (C ), secreta (S), de alto secreto (AS), o incluso niveles
superiores.
Cuando se definen mltiples niveles, o categoras de datos, a los requisitos se les
denominan seguridad multinivel. Se basa en que el sujeto a un nivel alto no puede
compartir informacin con un sujeto a un nivel inferior o no comparable a menos que el
flujo de informacin refleje la voluntad de un usuario autorizado. Debe proporcionar:
o No leer hacia arriba: se denomina propiedad de seguridad simple.
o No escribir hacia abajo: un sujeto solo puede escribir en un objeto de su nivel de
seguridad igual o superior.
o Se suele utilizar mediante un monitor de referencias que es un elemento de control
en el hw con el SO de un ordenador que regula el acceso de sujetos a objetos en
base a unos parmetros de seguridad. Tiene las siguientes propiedades
Mediacin completa: impone penalizacin de rendimiento
Aislamiento
Verificabilidad
Un sistema que puede proporcionar verificacin matemtica es un sistema confiable

APNDICE 16A CRIPTOGRAFA


Se utilizan dos enfoques fundamentales: criptografa simtrica o convencional y
criptografa de clave-pblica o simentrica

CRIPTOGRAFA SIMTRICA
Tiene 5 ingredientes:
o Texto claro
o Algoritmo de cifrado
o Clave secreta
o Texto cifrado
o Algoritmo de descifrado
Dos requisitos para el uso seguro de este mtodo:
o Algoritmo criptogrfico slido

82

Emisor y receptos deben haber obtenido copias de la clave secreta de manera


seguro y deben guardar la clave con seguridad.
El primer ataque se conoce como criptoanlisis que se basan en la naturaleza del algoritmo
y en cierto conocimiento de caractersticas generales del texto en claro.
Segundo mtodo es el ataque por fuerza-bruta que consiste en probar cada clave hasta
encontrar la que haga el texto entendible.
Los algoritmos de cifrado simtricos usados ms comnmente son los cifrados de bloques.
Procesa el texto en claro introducido en bloques de tamao fijo y produce un bloque de
texto cifrado de igual tamao por cada bloque de texto claro.
o

CRISTOLOGA DE CLAVE PBLICA


Se basa en funciones matemticas
Es asimtrica, requiere el uso de dos claves separadlas.
Ingredientes:
o Texto claro
o Algoritmo de cifrado
o Clave pblica y clave privada
o Texto cifrado
o Algoritmo de descifrado
Caractersticas importantes:
o Es computacionalmente irrealizable determinar la clave de descifrado conociendo
solamente el algoritmo criptogrfico y la clave de cifrado.
o Cualquier de las dos claves relacionadas puede usarse para el cifrado y usarse la
otra para el descifrado
Pasos esenciales
o Cada usuario genera un par de claves al mismo tiempo, una la pone en el registro
pblico y la otra se la queda.
o Si alguien desea enviar un mensaje privado a otra persona, cifra el mensaje usando
la clave pblica de esa persona. El que lo recibe lo descifra con su clave privada.
La clave utilizada en criptografa simtrica se conoce como clave secreta. Las dos claves
utilizadas para criptografa de clave pblica son la clave pblica y la clave privada.

APNDICE A TEMAS DE CONCURRENCIA


A1. EXCLUSIN MUTUA. TCNICAS DE SOFTWARE
Estas tcnicas normalmente asumen exclusin muta elemental a nivel de acceso a memoria.
Se serealizan accesos simultneos a la misma ubicacin de memoria principal por alguna
clase de rbitro de memoria aunque no se especifique por anticipado el orden de acceso
resultante.
No se asume soporte de HW, SO o lenguaje de programacin.

ALGORITMO DE DEKKER
Primera tentativa
En un determinado momento solo se puede hacer un acceso a una ubicacin de memoria.
Se utiliza un turno para acceder a la misma. Si se desea ingresar y el valor del turno es igual
al de su proceso, el proceso entra. Sino se produce espera activa
Cuando termina actualiza el turno
Dos desventajas:

83

Los procesos deben alternarse estrictamente en el uso de su seccin crtica por lo


que el ritmo de ejecucin viene dictado PR el proceso ms lento.
o Si un proceso falla el otro proceso se encuentra permanentemente bloqueado.
Es inadecuada para dar soporte a multiprocesamiento.
o

Segunda tentativa
Cada proceso debera tener una llave para entrar a la seccin crtica si uno falla el otro no se
bloquea a menos que sea en la seccin crtica.
Cuando un proceso desea entrar a su seccin crtica peridicamente comprueba el estado
del otro hasta que tenga el valor false, lo que indica que el otro proceso no se encuentra en
su seccin crtica.
No garantiza la exclusin muta en todos los caso.
La solucin propuesta no es independiente de las velocidades relativas de ejecucin de los
procesos.
Falla debido a que un proceso puede cambiar su estado despus de que otro proceso lo haya
cambiado pero antes de que otro proceso pueda entrar a su seccin crtica.
Tercera tentativa
Se usa un intercambio de dos sentencias.
Si ambos procesos establecen su estado a verdadero antes de que haya ejecutado la
sentencia while, cada uno de los procesos pensar que ha entrado a su seccin critica,
causando un interbloqueo.
Cuarta tentativa
Cada proceso establece su estado para indicar su deseo de entrar en la seccin crtica pero
est preparada para cambiar su estado si otro desea entrar.
Se puede producir un crculo vicioso.
Solucin vlida
Se utiliza una variable estado que es observada por todos los procesos
Se debe establecer un rden de actividad de los dos procesos para evitar el problema de
cortesa mutua
Se puede utilizar la variable turno.

ALGORITMO DE PETERSON
La variable global estado indica la posicin de cada proceso con respecto a la exclusin
muta y la variable global turno resuelve conflictos simultneos.

A2 CONDICIONES DE CARRERA Y SEMFOROS


PRIMERA ALTERNATIVA
Protocolo de handshaking: cuando un hilo esta listo para intercambiar mensajes enva una
seal a un hilo del otro entonces espera que este listo.
Cuando vuelve una seal de este, se asume que esta listo y se lleva acabo el intercambio.
Puede llevar a la condicin de carrera por compartir una variable entre mltiples procesos a
menos que se use la exclusin mutua apropiada.

SEGUNDA ALTERNATIVA
Proteger una nica variable puede ser insuficiente si el uso de dicha variable es parte de una
larga secuencia de ejecucin. Se debe proteger la secuencia de ejecucin completa.

84

TERCERA ALTERNATIVA
Se expande la seccin critica para incluir el intercambio de mensajes completo pero un
nico semforo es insuficiente porque podra llevar al nter bloqueo.
Si tenemos varios grupos de hilos cooperando, la exclusin mutua garantizada para un
grupo no puede prevenir de la interferencia de los hilos de otro grupo.

CUARTA ALTERNATIVA
Utilizar lo mismo que antes pero con un semforo de exclusin muta.
Esto puede llevar a la condicin de carrera si el semforo de exclusin muta no es liberado
por su propietario.

ALTERNATIVA CORRECTA
La seccin de intercambio de mensajes es mutuamente exclusiva dentro del grupo de hilos.
Una vez que dos hilos entran en sus secciones crticas intercambian mensajes sin
interferirse entre s.
Despus de que un hilo abandona su seccin crtica ningn otro hilo del mismo grupo
puede darse prisa y estropear el mensaje existente.

85

Você também pode gostar