Sistemas Operativos ISC

También podría gustarte

Está en la página 1de 233

Sistemas Operativos

Unidad Temas Subtemas


1 Introduccin a los
sistemas operativos.
1.1 Definicin y concepto.
1.2Funciones y caractersticas.
1.!volucin "istrica.
1.#$lasificacin.
1.%!structura &niveles o estratos de
dise'o(.
1.)*+cleo.
1.).1 Interrupciones &F,I-(.
1.).2 Despac"ador&Sc"eduler(.
1.). .rimitivas de
comunicacin&I.$(.
2 /dministracin de
procesos y del
procesador.
2.1 $oncepto de proceso.
2.2 !stados y transiciones de los
procesos
2. .rocesos li0eros &-ilos o "ebras(.
2.# $oncurrencia y secuenciabilidad.
2.#.1 !1clusin mutua de
secciones criticas.
2.#.2 Sincroni2acin de
procesos en S.$.
2.#.2.1 3ecanismo de
sem4foros.
2.#.2.2 3ecanismo de
monitores.
2.#. Interblo5ueo &Dead,oc6(.
2.#..1 .revencin.
2.#..2 Deteccin.
2.#.. 7ecuperacin.
2.% *iveles8 ob9etivos y criterios de
planificacin.
2.) T:cnicas de administracin
del planificador.
2.).1 FIFO
2.).2 S;F
2.). 77
2.).# <ueves multi=level.
2.).% 3ulti=level feedbac6
5ueves.
/dministracin de
memoria.
.1 .oltica y filosofa.
.2 3emoria real.
.2.1 /dministracin de
almacenamiento.
.2.2 ;erar5ua.
.2. !strate0ia de administracin
de memoria.
.2.# /si0nacin conti0ua v.s. no
conti0ua.
.2.% 3ultipro0ramacin de
particin fi9a8 particin
variable8 con intercambio de
almacenamiento.
. Or0ani2acin de memoria virtual.
..1 !valuacin de las
or0ani2aciones de
almacenamiento.
..2 .a0inacin.
.. Se0mentacin.
..# Sistemas de pa0inacin
se0mentacin.
.# /dministracin de memoria virtual.
.#.1 !strate0ias de
administracin.
.#.2 T:cnicas de reempla2o
de p40inas.
.#. .a0inacin por demanda.
.#.# .a0inacin anticipada.
.#.% ,iberacin de p40ina.
.#.) Tama'o de p40ina.
# /dministracin de
entrada>salida.
#.1 Dispositivos y mane9adores de
dispositivos &device drivers(.
4.2 Mecanismos y funciones de los
manejadores de dispositivos (device
drivers).
4.3 Estructuras de datos para manejo de
dispositivos.
4.4 Operaciones de Entrada /salida.
% Sistema de arc"ivos. %.1$oncepto.
%.2*ocin de arc"ivo real y virtual.
%.$omponentes de un sistema de
arc"ivos.
%.#Or0ani2acin l0ica y fsica.
%.%3ecanismos de acceso a los
arc"ivos.
%.)3ane9o de espacio en memoria
secundaria.
5.7Modelo jerrquico.
%.?3ecanismos de recuperacin en caso
de falla.
) .roteccin y se0uridad. ).1$oncepto y ob9etivos de proteccin.
).2Funciones del sistema de proteccin.
).Implantacin de matrices de acceso.
6.4Proteccin basada en el lenguaje.
).%$oncepto de se0uridad.
6.6Clasificaciones de la seguridad.
).@Aalidacin y amena2as al sistema.
).?$ifrado.
Unidad 1 Introduccin a los sistemas
operativos.
1.@ Definicin y concepto.
Un sistema operativo es el programa que oculta la verdad del hardware al programador y presenta una
vista simple y agradable de los archivos nominados que pueden leerse y escribirse. Es sistema operativo
resguarda al programador del hardware del disco y presenta una interfaz simple orientada al archivo,
tambin disimula mucho del trabajo concerniente a interrupciones, relojes o cronmetros, manejo de
memoria y otras caractersticas de bajo nivel.
Desde su creacin, las computadoras digitales han utilizado un sistema de codificacin de instrucciones
en sistema de numeracin binaria, es decir con los 0S. Esto se debe a que los circuitos integrados
funcionan con este principio, es decir, hay corriente o no hay corriente.
En el origen de la historia de las computadoras ( hace unos cuarenta aos), los sistemas
operativos no existan y la introduccin de un programa para ser ejecutado se converta en un increble
esfuerzo que solo poda ser llevado a cabo por muy pocos expertos. Esto hacia que las computadoras
fueran muy complicadas de usar y que se requiriera tener altos conocimientos tcnicos para operarlas.
Era tan complejo su manejo, que en algunos casos el resultado llegaba a ser desastroso.
Adems, el tiempo requerido para introducir un programa en aquellas grandes mquinas de lento
proceso superaba por mucho el de ejecucin y resultaba poco provechosa la utilizacin de computadoras
para resolucin de problemas prcticos.
Se buscaron medios ms elaborados para manipular la computadora, pero que a su vez
simplificaran la labor del operador o el usuario. Es entonces cuando surge la idea de crear un medio para
que el usuario pueda operar la computadora con un entorno, lenguaje y operacin bien definido para
hacer un verdadero uso y explotacin de esta. Surgen los sistemas operativos.
Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de
operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas
necesarias y especificas para completar una orden.
El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto til.
Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilizacin de este
enredo de cables y circuitos, que de otra manera serian difciles de controlar. Un sistema operativo se
define como un conjunto de procedimientos manuales y automticos, que permiten a un grupo de
usuarios compartir una instalacin de computadora eficazmente.
Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definicin exacta, es
decir una que sea estndar; a continuacin se presentan algunas:
1.- Se pueden imaginar un Sistema Operativo como los programas, instalados en el software o firmware,
que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de cmputo"; los sistemas
operativos ponen dicha capacidad de cmputo al alcance de los usuarios y administran cuidadosamente
el hardware para lograr un buen rendimiento.
2.- Los Sistemas Operativos son ante todo administradores de recursos; el principal recurso que
administran es el hardware del computador ;adems de los procesadores, los medios de
almacenamiento, los dispositivos de entrada/salida, los dispositivos de comunicacin y los datos.
3.- Un Sistema Operativo es un programa que acta como intermediario entre el usuario y el hardware del
computador y su propsito es proporcionar el entorno en el cual el usuario pueda ejecutar programas.
Entonces, el objetivo principal de un Sistema Operativo es, lograr que el sistema de computacin se use
de manera cmoda, y el objetivo secundario es que el hardware del computador se emplee de manera
eficiente. 4.- Un Sistema Operativo es un conjunto de programas que controla la ejecucin de programas
de aplicacin y acta como una interfaz entre el usuario y el hardware de una computadora, esto es, un
Sistema Operativo explota y administra los recursos de hardware de la computadora con el objeto de
proporcionar un conjunto de servicios a los usuarios del sistema.
En resumen, se podra decir que los Sistemas Operativos son un conjunto de programas que crean la
interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son:
o Gestionar el hardware.- Se refiere al hecho de administrar de una forma ms eficiente los
recursos de la mquina.
o Facilitar el trabajo al usuario.-Permite una comunicacin con los dispositivos de la
mquina.
El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un
pedazo de cdigo que se encuentra en el procesador, el cual carga el BOS, y este a su vez carga el
Sistema Operativo que carga todos los programas de aplicacin y software variado.
1.2 Funciones y caractersticas.
La funcin del sistema operativo es la de presentar al usuario con el equivalente de una mquina
ampliada o mquina virtual que sea ms fcil de programar que el hardware implcito.
nterpreta los comandos que permiten al usuario comunicarse con el ordenador.
Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las
unidades de disco, el teclado o el mouse.
Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos
duros, discos compactos o cintas magnticas.
Gestiona los errores de hardware y la prdida de datos.
Servir de base para la creacin del software logrando que equipos de marcas distintas funcionen
de manera anloga, salvando las diferencias existentes entre ambos.
Configura el entorno para el uso del software y los perifricos; dependiendo del tipo de mquina
que se emplea, debe establecerse en forma lgica la disposicin y caractersticas del equipo.
Como por ejemplo, una microcomputadora tiene fsicamente dos unidades de disco, puede
simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la
memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se
convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o
recursos que comparten. De igual forma, provee de proteccin a la informacin que almacena.
Funciones de los sistemas operativos.
1.- Aceptar todos los trabajos y conservarlos hasta su finalizacin.
2.- nterpretacin de comandos: nterpreta los comandos que permiten al usuario comunicarse con el
ordenador.
3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las
impresoras, las unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento,
como discos flexibles, discos duros, discos compactos o cintas magnticas.
5.- Manejo de errores: Gestiona los errores de hardware y la prdida de datos.
6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los
procesos. Definir el orden. (Quien va primero y quien despus).
7.- Proteccin: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario.
8.- Multiacceso: Un usuario se puede conectar a otra mquina sin tener que estar cerca de ella.
9.- Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados
recursos.
Caractersticas de los sistemas operativos.
En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas:
Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una computadora.
Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la
manera ms eficiente posible.
Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera que permita el
desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema sin interferir con el servicio.
Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una
mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada
proceso una parte del procesador para poder compartir los recursos.
Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se debe encargar de
comunicar a los dispositivos perifricos, cuando el usuario as lo requiera.
Organizar datos para acceso rpido y seguro.
Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta
facilidad todo lo referente a la instalacin y uso de las redes de computadoras.
Procesamiento por bytes de flujo a travs del bus de datos.
Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario el acceso y
manejo de los dispositivos de Entrada/Salida de la computadora.
El software de aplicacin son programas que se utilizan para disear, tal como el procesador de palabras,
lenguajes de programacin, hojas de clculo, etc.
El software de base sirve para interactuar el usuario con la mquina, son un conjunto de programas que
facilitan el ambiente plataforma, y permite el diseo del mismo.
El Software de base est compuesto por :
o Cargadores.
o Compiladores.
o Ensambladores.
o Macros.
1. !volucin "istrica.
Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de
cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido
marcadas por grandes avances en los componentes utilizados, pasando de vlvulas ( primera generacin
) a transistores ( segunda generacin ), a circuitos integrados ( tercera generacin), a circuitos integrados
de gran y muy gran escala (cuarta generacin). Cada generacin Sucesiva de hardware ha ido
acompaada de reducciones substanciales en los costos, tamao, emisin de calor y consumo de
energa, y por incrementos notables en velocidad y capacidad.
Beneracion $ero &d:cada de 1C#D(
Los primeros sistemas computacionales no posean sistemas operativos. Los usuarios tenan completo
acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano.
.rimera Beneracion &d:cada de 1C%D(
Los sistemas operativos de los aos cincuenta fueron diseados para hacer mas fluida la transicin entre
trabajos. Antes de que los sistemas fueran diseados, se perda un tiempo considerable entre la
terminacin de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento
por lotes, donde los trabajos se reunan por grupos o lotes. Cuando el trabajo estaba en ejecucin, este
tenia control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el
cual limpiaba y lea e iniciaba el trabajo siguiente.
Al inicio de los 50's esto haba mejorado un poco con la introduccin de tarjetas perforadas (las cuales
servan para introducir los programas de lenguajes de mquina), puesto que ya no haba necesidad de
utilizar los tableros enchufables.
Adems el laboratorio de investigacin General Motors implement el primer sistema operativo para la
BM 701. Los sistemas de los 50's generalmente ejecutaban una sola tarea, y la transicin entre tareas se
suavizaba para lograr la mxima utilizacin del sistema. Esto se conoce como sistemas de procesamiento
por lotes de un slo flujo, ya que los programas y los datos eran sometidos en grupos o lotes.
La introduccin del transistor a mediados de los 50's cambi la imagen radicalmente.
Se crearon mquinas suficientemente confiables las cuales se instalaban en lugares especialmente
acondicionados, aunque slo las grandes universidades y las grandes corporaciones o bien las oficinas
del gobierno se podan dar el lujo de tenerlas.
Para poder correr un trabajo (programa), tenan que escribirlo en papel (en Fortran o en lenguaje
ensamblador) y despus se perforara en tarjetas. Enseguida se llevara la pila de tarjetas al cuarto de
introduccin al sistema y la entregara a uno de los operadores. Cuando la computadora terminara el
trabajo, un operador se dirigira a la impresora y desprendera la salida y la llevara al cuarto de salida,
para que la recogiera el programador.
Se0unda Beneracion &a mitad de la d:cada de 1C)D(
La caracterstica de los sistemas operativos fue el desarrollo de los sistemas compartidos con
multiprogramacin, y los principios del multiprocesamiento. En los sistemas de multiprogramacin, varios
programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se
cambia rpidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios
procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de
procesamiento de la maquina.
La independencia de dispositivos aparece despus. Un usuario que desea escribir datos en una cinta en
sistemas de la primera generacin tenia que hacer referencia especifica a una unidad de cinta particular.
En la segunda generacin, el programa del usuario especificaba tan solo que un archivo iba a ser escrito
en una unidad de cinta con cierto numero de pistas y cierta densidad.
Se desarrollo sistemas compartidos, en la que los usuarios podan acoplarse directamente con el
computador a travs de terminales. Surgieron sistemas de tiempo real, en que los computadores fueron
utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer
una respuesta inmediata.
Tercera Beneracion &mitad de d:cada 1C)D a mitad d:cada de 1C@D(
Se inicia en 1964, con la introduccin de la familia de computadores Sistema/360 de BM. Los
computadores de esta generacin fueron diseados como sistemas para usos generales . Casi siempre
eran sistemas grandes, voluminosos, con el propsito de serlo todo para toda la gente. Eran sistemas de
modos mltiples, algunos de ellos soportaban simultneamente procesos por lotes, tiempo compartido,
procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se haba
construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del
presupuesto y mucho despus de lo que el planificador marcaba como fecha de terminacin.
Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la
cual, en un principio, no estaban acostumbrados los usuarios.
$uarta Beneracion &mitad de d:cada de 1C@D en adelante(
Los sistemas de la cuarta generacin constituyen el estado actual de la tecnologa. Muchos diseadores
y usuarios se sienten aun incmodos, despus de sus experiencias con los sistemas operativos de la
tercera generacin.
Con la ampliacin del uso de redes de computadores y del procesamiento en lnea los usuarios obtienen
acceso a computadores alejados geogrficamente a travs de varios tipos de terminales.
Los sistemas de seguridad se ha incrementado mucho ahora que la informacin pasa a travs de varios
tipos vulnerables de lneas de comunicacin. La clave de cifrado esta recibiendo mucha atencin; han
sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son
expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.
El porcentaje de la poblacin que tiene acceso a un computador en la dcada de los ochenta es mucho
mayor que nunca y aumenta rpidamente.
El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles
fsicos de; sistema de computacin que esta siendo accedida. En su lugar, el usuario ve un panorama
llamado maquina virtual creado por el sistema operativo.
Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad
orientada hacia la informacin, y el trabajo de las bases de datos es hacer que esta informacin sea
conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.
-istoria de los Sistemas Operativos.
Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales
caractersticas de un Sistema Operativo contemporneo, es til considerar como han ido evolucionando
stos con el tiempo.
Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas Operativos
La primera de estas versiones podra ser esta:
En los 40's, se introducen los programas bit a bit, por medio de interruptores mecnicos y despus se
introdujo el leng. mquina que trabajaba por tarjetas perforadas.
Con las primeras computadoras, desde finales de los aos 40 hasta la mitad de los aos 50, el
programador interactuaba de manera directa con el hardware de la computadora, no exista realmente un
Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y los programas se
realizaban a travs del lenguaje mquina (bits) o a travs de interruptores.
Durante los aos 50's y 60's.- A principio de los 50's, la compaa General's Motors implanto el primer
sistema operativo para su BM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten que los
usuarios (que en ese tiempo eran programadores, diseadores, capturistas, etc.), se encarguen de
modificar sus programas. Establecan o apartaban tiempo, metan o introducan sus programas, corregan
y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se traduca en
prdida de tiempo y tiempos de programas excesivos.
En los aos 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los
procesos Batch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos
de una sola vez. En esta poca surgen las unidades de cinta y el cargador de programas, el cual se
considera como el primer tipo de Sistema Operativo.
En los 80's, inici el auge de la NTERNET en los Estados Unidos de Amrica. A finales de los aos 80's
comienza el gran auge y evolucin de los Sistemas Operativos. Se descubre el concepto de
multiprogramacin que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema
principal de los Sistemas Operativos actuales.
Los 90's y el futuro, entramos a la era de la computacin distribuida y del multiprocesamiento a travs de
mltiples redes de computadoras, aprovechando el ciclo del procesador.
Se tendr una configuracin dinmica con un reconocimiento inmediato de dispositivos y software que se
aada o elimine de las redes a travs de procesos de registro y localizadores.
La conectividad se facilita gracias a estndares y protocolos de sistemas abiertos por organizaciones
como la Org. ntern. de normas, fundacin de software abierto, todo estar mas controlado por los
protocolos de comunicacin OS y por la red de servicios digital SDN.
Se ha desarrollado otra versin, la cual se ha hecho en base a etapas o generaciones:
1a. !tapa &1C#%=1C%%( E Fulbos y cone1iones.
Despus de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construccin de las
computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la dcada de los 40's, Howard
Aiken (Harvard), John Von Newman (nstituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y
Williams Mauchley (Universidad de Pennsylvania), as como Conrad Zuse (Alemania), entre otros
lograron construir mquinas de clculo mediante bulbos. Estas mquinas eran enormes y llenaban
cuartos completos con decenas de miles de bulbos, pero eran mucho ms lentas que la computadora
casera ms econmica en nuestros das.
Toda la programacin se llevaba a cabo en lenguaje de mquina absoluto y con frecuencia se utilizaban
conexiones para controlar las funciones bsicas de la mquina. Los lenguajes de programacin eran
desconocidos (incluso el lenguaje ensamblador). No se oa de los Sistemas Operativos el modo usual de
operacin consista en que el programador reservaba cierto perodo en una hoja de reservacin pegada a
la pared, iba al cuarto de la mquina, insertaba su conexin a la computadora y pasaba unas horas
esperando que ninguno de los 20,000 o ms bulbos se quemara durante la ejecucin. La inmensa
mayora de los problemas eran clculos numricos directos, por ejemplo, el clculo de valores para tablas
de senos y cosenos.
A principio de la dcada de los 50's la rutina mejoro un poco con la introduccin de las tarjetas
perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo
dems el proceso era el mismo.
2a. !tapa. &1C%%=1C)%( E Transistores y Sistemas de .rocesamiento por lotes.
La introduccin del transistor a mediados de los aos 50's modific en forma radical el panorama. Las
computadoras se volvieron confiables de forma que podan fabricarse y venderse a clientes, con la
esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma.
Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por
dems rpidas vas para reducir el tiempo invertido. La solucin que, por lo general se adopt, fue la del
sistema de procesamiento por lotes.
ra !tapa &1C)%=1C?D ( E $ircuitos inte0rados y multipro0ramacin.
La 360 de BM fue la primera lnea principal de computadoras que utiliz los circuitos integrados, lo que
proporcion una gran ventaja en el precio y desempeo con respecto a las mquinas de la segunda
generacin, construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme
y extraordinariamente complejo. A pesar de su enorme tamao y sus problemas el sistema operativo de
la lnea BM 360 y los sistemas operativos similares de esta generacin producidos por otros fabricantes
de computadoras realmente pudieron satisfacer, en forma razonable a la mayora de sus clientes.
Tambin popularizaron varias tcnicas fundamentales, ausentes de los sistemas operativos de la
segunda generacin, de las cuales la ms importante era la de multiprogramacin.
Otra caracterstica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al
cuarto de cmputo. As, siempre que concluyera un trabajo el sistema operativo poda cargar un nuevo
trabajo del disco en la particin que quedara desocupada y ejecutarlo.
#ta !tapa &1C?D=/ctualidad( E $omputadoras personales.
Un interesante desarrollo que comenz a llevarse a cabo a mediados de la dcada de los ochenta ha sido
el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas
operativos distribuidos.
En los sistema operativo de red, los usuarios estn conscientes de la existencia de varias computadoras
y pueden conectarse con mquinas remotas y copiar archivos de una mquina a otra. Cada mquina
ejecuta su propio sistema operativo local y tiene su propio usuario.
Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un
sistema tradicional de un solo procesador, aun cuando est compuesto por varios procesadores. En un
sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se
ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automtica y
eficaz por el sistema operativo.
1.# $lasificacin.
Sistema Operativo 3ultitareas.
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el
cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas.
La conmutacin de contextos (context Switching) es un tipo muy simple de multitarea en el que
dos o ms aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la
aplicacin que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se
encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que
contenga esa aplicacin. En la multitarea cooperativa, la que se utiliza en el sistema operativo
Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos
muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicacin esta
esperando informacin del usuario), y siempre que esta aplicacin lo permita. En los sistemas
multitarea de tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador
durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel
de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es
mucho ms lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea
en tiempo compartido parecen ser simultneas.
Sistema Operativo 3onotareas.
Los sistemas operativos monotareas son ms primitivos y es todo lo contrario al visto
anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede
ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un
documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se
termine la impresin.
Sistema Operativo 3onousuario.
Los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario,
gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se
este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida
y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones
que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y estn orientados
principalmente por los microcomputadores.
Sistema Operativo 3ultiusuario.
Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas
que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos
recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Secuencia por ,otes.
La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecucin
de una lista de comandos del sistema operativo uno tras otro sin intervencin del usuario. En los
ordenadores ms grandes el proceso de recogida de programas y de conjuntos de datos de los
usuarios, la ejecucin de uno o unos pocos cada vez y la entrega de los recursos a los usuarios.
Procesamiento por lotes tambin puede referirse al proceso de almacenar transacciones durante
un cierto lapso antes de su envo a un archivo maestro, por lo general una operacin separada
que se efecta durante la noche.
Los sistemas operativos por lotes (batch), en los que los programas eran tratados por
grupos (lote) en ves de individualmente. La funcin de estos sistemas operativos consista en
cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una
direccin de memoria desde donde reasuma el control del sistema operativo que cargaba el
siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminua
considerablemente.
Tiempo 7eal.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una
vez que han sido procesadas muestra el resultado. Este tipo tiene relacin con los sistemas
operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador
entre varias solicitudes.
Su caracterstica principal es dar respuestas rpidas; por ejemplo en un caso de peligro
se necesitaran respuestas inmediatas para evitar una catstrofe.
Tiempo $ompartido.
El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema
por ms de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de
forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En
este aspecto, es similar a la capacidad de multitareas que es comn en la mayora de los
microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia
generalmente con el acceso de varios usuarios a computadoras ms grandes y a organizaciones
de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la
realizacin de mltiples tareas por un solo usuario.
CLASIFICACIN DE LOS SISTEMAS OPERATIVOS
Los sistemas operativos se clasifican en:
Sistemas operativos por lotes.
Sistemas operativos multiprogramacin o de multitarea.
Sistemas operativos multiusuario.
Sistemas operativos de tiempo compartido.
Sistemas operativos de tiempo real.
Sistemas operativos distribuidos.
Sistemas operativos de red.
Sistemas operativos paralelos.
Sistemas operativos por lotes.
Los sistemas operativos por lotes requieren que la informacin est reunida en bloque o "lote" (el
programa, los datos, y las instrucciones). Los trabaos son procesados en el orden de admisin,
seg!n el modelo de "primero en llegar primero en ser atendido". "n estos sistemas la memoria se
divide en dos #onas. $na de ellas es ocupada por el sistema operativo, y la otra se usa para cargar
programas transitorios para su eecucin. %uando termina la eecucin de un programa se carga
un nuevo programa en la misma #ona de memoria.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE,
del DC6600, el cual est orientado a procesamiento cientico pesado, ! el
E"EC ## para el $%#&AC ''0(, orientado a procesamiento acad)mico*
Algunas otras caractersticas con +ue cuentan los Sistemas Operativos por
lotes son,
-e+uiere +ue el programa, datos ! .rdenes al sistema sean
remitidos todos juntos en orma de lote*
Permiten poca o ninguna interacci.n usuario/programa en
ejecuci.n*
0a!or potencial de utili1aci.n de recursos +ue procesamiento
serial simple en sistemas multiusuarios*
%o conveniente para desarrollo de programas por 2ajo tiempo de
retorno ! depuraci.n uera de lnea*
Conveniente para programas de largos tiempos de ejecuci.n 3Ej*,
anlisis estadsticos, n.minas de personal, etc*4*
Se encuentra en muc5os computadores personales com2inados
con procesamiento serial*
Planiicaci.n del procesador sencilla, tpicamente procesados en
orden de llegada*
Planiicaci.n de memoria sencilla, generalmente se divide en
dos, parte residente del S*O* ! programas transitorios*
%o re+uieren gesti.n crtica de dispositivos en el tiempo*
Suelen proporcionar gesti.n sencilla de manejo de arc5ivos, se
re+uiere poca protecci.n ! ning6n control de concurrencia para el
acceso*
Figura. Traa!os m"s #omu$es %ue reali&a el Sistema Operativo por lotes.
Sistemas operativos multiprograma#i'$ o (e multitareas.
Los sistemas de multiprogramacin son capaces de soportar dos o m&s procesos concurrentes
m!ltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los
datos procedentes de dos o m&s procesos. "stos sistemas implican la operacin de multiproceso,
para el maneo de la informacin. Se caracteri#an principalmente por un gran n!mero de
programas activos simult&neamente que compiten por los recursos del sistema, como el
procesador, la memoria, y los "dispositivos de "'S". "stos sistemas monitorean el estado de todos
los programas activos y recursos del sistema.
Sistemas Operativos como $%#", 7indo8s 9:, 7indo8s 9;, 7indo8s %<,
0AC=OS, OS/>, soportan la multitarea*
?as caractersticas de un Sistema Operativo de multiprogramaci.n o
multitarea son las siguientes,
0ejora productividad del sistema ! utili1aci.n de recursos*
0ultiplexa recursos entre varios programas*
@eneralmente soportan m6ltiples usuarios 3multiusuarios4*
Proporcionan acilidades para mantener el entorno de usuarios
individuales*
-e+uieren validaci.n de usuario para seguridad ! protecci.n*
Proporcionan conta2ilidad del uso de los recursos por parte de los
usuarios*
0ultitarea sin soporte multiusuario se encuentra en algunos
computadores personales o en sistemas de tiempo real*
Sistemas multiprocesadores son sistemas multitareas por
deinici.n !a +ue soportan la ejecuci.n simultnea de m6ltiples
tareas so2re dierentes procesadores*
En general, los sistemas de multiprogramaci.n se caracteri1an
por tener m6ltiples programas activos compitiendo por los
recursos del sistema, procesador, memoria, dispositivos
peri)ricos*
Sistemas operativos multiusuario.
Los sistemas operativos multiusuario permiten acceder simult&neamente a un sistema de
computadoras a travs de dos o m&s terminales. "ste tipo de sistema operativo es fundamental en
el maneo de redes de computadoras actualmente.
Sistemas operativos (e tiempo #omparti(o
Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo de los
recursos comunes para dar la impresin a los usuarios de que poseen una computadora
independiente. "n estos sistemas el administrador de memoria proporciona aislamiento y
proteccin de los programas, ya que generalmente no tienen necesidad de comunicarse entre
ellos. "l control de "'S se encarga de proporcionar o retirar la asignacin a los dispositivos de
forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. "l
administrador de arc(ivos proporciona proteccin y control en el acceso de la informacin, dada
la posibilidad de concurrencia y conflictos al tratar de acceder a los arc(ivos.
Ejemplos de Sistemas Operativos de tiempo compartido son 0ultics, OS/A60
! DEC='0*
Caractersticas de los Sistemas Operativos de tiempo compartido,
Populares representantes de sistemas multiprogramados
multiusuario, Ej*, sistemas de diseBo asistido por computador,
procesamiento de texto, etc*
Dan la ilusi.n de +ue cada usuario tiene una m+uina para s*
0a!ora utili1an algoritmo de reparto circular*
Programas se ejecutan con prioridad rotatoria +ue se incrementa
con la espera ! disminu!e despu)s de concedido el servicio*
Evitan monopoli1aci.n del sistema asignando tiempos de
procesador 3time slot4*
@esti.n de memoria proporciona protecci.n a programas
residentes*
@esti.n de arc5ivo de2e proporcionar protecci.n ! control de
acceso de2ido a +ue pueden existir m6ltiples usuarios accesando
a un mismo arc5ivo*
Sistemas operativos (e tiempo real
?os Sistemas Operativos de tiempo real son a+uellos en los cuales no tiene
importancia el usuario, sino los procesos* Por lo general, estn su2utili1ados
sus recursos con la inalidad de prestar atenci.n a los procesos en el
momento +ue lo re+uieran* Se utili1an en entornos donde son procesados un
gran n6mero de sucesos o eventos*
0uc5os Sistemas Operativos de tiempo real son construidos para
aplicaciones mu! especicas como control de trico a)reo, 2olsas de
valores, control de reineras, control de laminadores* <am2i)n en el ramo
automovilstico ! de la electr.nica de consumo, las aplicaciones de tiempo
real estn creciendo mu! rpidamente* Otros campos de aplicaci.n de los
Sistemas Operativos de tiempo real son los siguientes,
Control de trenes*
<elecomunicaciones*
Sistemas de a2ricaci.n integrada*
Producci.n ! distri2uci.n de energa el)ctrica*
Control de ediicios*
Sistemas multimedia*
Algunos ejemplos de Sistemas Operativos de tiempo real son, &x7orCs,
Solaris, ?!ns OS ! Spectra* ?os Sistemas Operativos de tiempo real, cuentan
con las siguientes caractersticas,
Se dan en entornos en donde de2en ser aceptados ! procesados
gran cantidad de sucesos, la ma!ora externos al sistema
computacional, en 2reve tiempo o dentro de ciertos pla1os*
Se utili1an en control industrial, conmutaci.n tele.nica, control
de vuelo, simulaciones en tiempo real*, aplicaciones militares,
etc*
O2jetivo es proporcionar rpidos tiempos de respuesta*
Procesa ragas de miles de interrupciones por segundo sin
perder un solo suceso*
Proceso se activa tras ocurrencia de suceso, mediante
interrupci.n*
Proceso de ma!or prioridad expropia recursos*
Por tanto generalmente se utili1a planiicaci.n expropiativa
2asada en prioridades*
@esti.n de memoria menos exigente +ue tiempo compartido,
usualmente procesos son residentes permanentes en memoria*
Po2laci.n de procesos esttica en gran medida*
Poco movimiento de programas entre almacenamiento
secundario ! memoria*
@esti.n de arc5ivos se orienta ms a velocidad de acceso +ue a
utili1aci.n eiciente del recurso*
Sistemas Operativos (istriui(os.
Permiten distri2uir tra2ajos, tareas o procesos, entre un conjunto de
procesadores* Puede ser +ue este conjunto de procesadores est) en un
e+uipo o en dierentes, en este caso es transparente para el usuario* Existen
dos es+uemas 2sicos de )stos* $n sistema uertemente acoplado es a es
a+uel +ue comparte la memoria ! un reloj glo2al, cu!os tiempos de acceso
son similares para todos los procesadores* En un sistema d)2ilmente
acoplado los procesadores no comparten ni memoria ni reloj, !a +ue cada
uno cuenta con su memoria local*
?os sistemas distri2uidos de2en de ser mu! conia2les, !a +ue si un
componente del sistema se compone otro componente de2e de ser capa1 de
reempla1arlo*
Entre los dierentes Sistemas Operativos distri2uidos +ue existen tenemos
los siguientes, Sprite, Solaris=0C, 0ac5, C5orus, Spring, Amoe2a, <aos, etc*
Caractersticas de los Sistemas Operativos distri2uidos,
Colecci.n de sistemas aut.nomos capaces de comunicaci.n !
cooperaci.n mediante interconexiones 5ard8are ! sot8are*
@o2ierna operaci.n de un S*C* ! proporciona a2stracci.n de
m+uina virtual a los usuarios*
O2jetivo clave es la transparencia*
@eneralmente proporcionan medios para la compartici.n glo2al
de recursos*
Servicios aBadidos, denominaci.n glo2al, sistemas de arc5ivos
distri2uidos, acilidades para distri2uci.n de clculos 3a trav)s de
comunicaci.n de procesos internodos, llamadas a procedimientos
remotos, etc*4*
Sistemas Operativos de red.
Son a+uellos sistemas +ue mantienen a dos o ms computadoras unidas a
trav)s de alg6n medio de comunicaci.n 3sico o no4, con el o2jetivo
primordial de poder compartir los dierentes recursos ! la inormaci.n del
sistema*
El primer Sistema Operativo de red esta2a enocado a e+uipos con un
procesador 0otorola 6;000, pasando posteriormente a procesadores #ntel
como %ovell %et8are*
?os Sistemas Operativos de red ms ampliamente usados son, %ovell
%et8are, Personal %et8are, ?A% 0anager, 7indo8s %< Server, $%#",
?A%tastic*
Figura. Se muestra u$ Sistema Operativo e$ re(.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende +ue cuando existan dos o
ms procesos +ue compitan por alg6n recurso se puedan reali1ar o ejecutar
al mismo tiempo*
En $%#" existe tam2i)n la posi2ilidad de ejecutar programas sin tener +ue
atenderlos en orma interactiva, simulando paralelismo 3es decir, atender de
manera concurrente varios procesos de un mismo usuario4* As, en lugar de
esperar a +ue el proceso termine de ejecutarse 3como lo 5ara
normalmente4, regresa a atender al usuario inmediatamente despu)s de
5a2er creado el proceso*
Ejemplos de estos tipos de Sistemas Operativos estn, Alp5a, P&0, la serie
A#", +ue es utili1ado en los sistemas -S/6000 de #D0*
Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras,
dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de
Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas:
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para
realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento
en serie. Estos sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor de 1956
para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin muy alto, porque el
procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad
de la ejecucin de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est
orientado a procesamiento cientfico pesado, y el EXEC para el UNVAC 1107, orientado a
procesamiento acadmico.
Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de
lote.
Permiten poca o ninguna interaccin usuario/programa en ejecucin.
Mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas
multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de
lnea.
Conveniente para programas de largos tiempos de ejecucin (ej, anlisis estadsticos, nminas
de personal, etc.)
Se encuentra en muchos computadores personales combinados con procesamiento serial.
Planificacin del procesador sencilla, tpicamente procesados en orden de llegada.
Planificacin de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y
programas transitorios.
No requieren gestin crtica de dispositivos en el tiempo.
Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn
control de concurrencia para el acceso.
Figura. Trabajos ms comunes que realiza el Sistema Operativo por lotes.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquelos en los cuales no tiene importancia el usuario, sino
los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los
procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran nmero
de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como
control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el
ramo automovilstico y de la electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy
rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo real son los siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricacin integrada.
Produccin y distribucin de energa elctrica.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los
Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la
mayora externos al sisterma computacional, en breve tiempo o dentro de ciertos plazos.
Se utlizan en control industrial, conmutacin telefnica, control de vuelo, simulaciones en tiempo
real., aplicaciones militares, etc.
Objetivo es proporcionar rpidos tiempos de respuesta.
Procesa rfagas de miles de interrupciones por segundo sin perder un solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupcin.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utliza planificacin expropiativa basada en prioridades.
Gestin de memoria menos exigente que tiempo compartido, usualmente procesos son
residentes permanentes en memoria.
Poblacin de procesos esttica en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestin de archivos se orienta ms a velocidad de acceso que a utlizacin eficiente del recurso.
Sistemas Operativos de multipro0ramacin &o Sistemas Operativos de multitarea(.
Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se
estn ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento
(UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno est usando el
procesador, o un procesador distinto, es decir, involucra mquinas con ms de una UCP.
Sistemas Operativos como UNX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la
multitarea.
Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes:
Mejora productividad del sistema y utilizacin de recursos.
Multiplexa recursos entre varios programas.
Generalmente soportan mltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios inndividuales.
Requieren validacin de usuario para seguridad y proteccin.
Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
Multitarea sin soprte multiusuario se encuentra en algunos computadores personales o en
sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definicin ya que soportan la
ejecucin simultnea de mltiples tareas sobre diferentes procesadores.
En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas
activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.
Sistemas Operativos de tiempo compartido.
Permiten la simulacin de que el sistema y sus recursos son todos para cada usuarios. El usuario hace
una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en
la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente
utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado
para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo,
principalmente en la administracin de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Caractersticas de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseo
asistido por computador, procesamiento de texto, etc.
Dan la ilusin de que cada usuario tiene una mquina para s.
Mayora utilizan algoritmo de reparto circular.
Programas se ejcutan con prioridad rotatoria que se incrementa con la espera y disminuye
despus de concedido el servicio.
Evitan monopolizacin del sistema asignando tiempos de procesador (time slot).
Gestin de memoria proporciona proteccin a programas residentes.
Gestin de archivo debe proporcionar proteccin y control de acceso debido a que pueden
existir mltiples usuarios accesando un mismo archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este
conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario.
Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la
memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un
sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta
con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone
otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-
MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Caracteristicas de los Sistemas Operativos distribuidos:
Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante
interconexiones hardware y software .
Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la comparticin global de recursos.
Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para
distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a
procedimientos remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o ms computadoras unidas atravs de algn medio de
comunicacin (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la
informacin del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000,
pasando posteriormente a procesadores ntel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN
Manager, Windows NT Server, UNX, LANtastic.

Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que
compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo.
En UNX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma
interactiva, sinulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo
usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara normalmente),
regresa a atender al usuario inmediatamente despus de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AX, que es utilizado en los
sistemas RS/6000 de BM.
1.% !structura &niveles o estratos de dise'o(.
nternamente los sistemas operativos estructuralmente de se clasifican segn como se hayan organizado
intrnamente en su diseo, por esto la clasificacin ms comn de los S.O. son:
Sistemas monolticos:
En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales
puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta tcnica, cada
procedimiento del sistema tiene una interfaz bien definida en trminos de parmetros y resultados, y cada
una tiene la libertad de llamar a cualquiera otra, si la ltima ofrece algn clculo til que la primera
necesite.
Para construir el programa objeto real del sistema operativo cuando se usa este mtodo, se compilan
todos los procedimientos individuales a archivos que contienen los procedimientos y despus se
combinan todos en un solo archivo objeto con el enlazador.
En trminos de ocultamiento de informacin, esencialmente no existe ninguno; todo procedimiento es
visible para todos (al contrario de una estructura que contiene mdulos o paquetes, en los cuales mucha
informacin es local a un mdulo y slo pueden llamar puntos de registro designados oficialmente del
exterior del mdulo)
Esta organizacin sugiere una estructura bsica del sistema operativo:
1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)
2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema.
3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio
Sistemas en estratos:
Estos sistemas operativos se organizan como una jerarqua de estratos, cada uno construido arriba del
que est debajo de l. El primer sistema construido en esta forma fuel el sistema THE que se fabric en
Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos. El sistema THE
era un sistema de lote para una computadora alemana, la Electrolgica X8, que tena 32K de palabras de
27 bits ( los bits eran costosos en aquellos das)
El sistema tena 6 estratos, estos se muestran en la siguiente tabla:
5 Operador de THE
4 Programas del usuario
3 Administracin de Entrada/Salida
2 Comunicacin entre el operador y el proceso
1 Administracin de la memoria y el tambor magntico
0 Distribucin del procesador y multiprogramacin
- El estrato 0 trabajaba con la distribucin del procesador, cambiando entre procesos cuando ocurran
interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos secuenciales,
cada uno de los cuales poda programarse sin tener que preocuparse por el hecho de que mltiples
procesos estuvieran corriendo en un solo procesador. En otras palabras, el estarto 0 ofreca la
multiprogramacin bsica de la CPU.
El estrato 1 realizaba el manejo de memoria. Este distribua espacio para procesos contenidos en la
memoria central y en un tambor de 512K palabras que se usaba para contener partes de procesos
(pginas) para las cuales no haba espacio en la memoria central. Sobre el estrato 1, los procesos no
tena que preocuparse de si estaban en la memoria o en el tambor; el software del estrato 1 se haca
cargo de asegurar que las pginas se trajeran a la memoria siempre que se necesitaran.
El estrato 2 manejaba la comunicacin entre cada proceso y la consola de operador.
El estrato 3 se haca cargo de manejar los dispositivos de E/S y de separar la informacin en flujo que
entraba y sal de ellos. Sobre el estrato 3 cada proceso poda trabajar con dispositivos de E/S abstractos
con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades
El estrato 4 era donde se encontraban los programas de los usuarios. No tenan que preocuparse por el
manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se localizaba en el
estrato 5.
En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de tener
una idea ms extensa de cmo esta estructurado el sistema operativo. Veremos brevemente algunas
estructuras de diseos de sistemas operativos.
!structura modular.
Tambin llamados sistemas monolticos. Este tipo de organizacin es con mucho la mas comn; bien
podra recibir el subtitulo de "el gran embrollo". La estructura consiste en que no existe estructura alguna.
El sistema operativo se escribe como una coleccin de procedimientos, cada uno de los cuales puede
llamar a los dems cada vez que as lo requiera. Cuando se usa esta tcnica, cada procedimiento del
sistema tiene una interfaz bien definida en trminos de parmetros y resultados y cada uno de ellos es
libre de llamar a cualquier otro, si este ultimo proporciona cierto clculo til para el primero. Sin embargo
incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al
sistema) que proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien
definidos, como en los registros o en la pila, para despus ejecutar una instruccin especial de trampa de
nombre "llamada al ncleo" o "llamada al supervisor".
Esta instruccin cambia la mquina del modo usuario al modo ncleo y transfiere el control al sistema
operativo, lo que se muestra en el evento (1) de la figura 1. El sistema operativo examina entonces los
parmetros de la llamada, para determinar cual de ellas se desea realizar, como se muestra en el evento
(2) de la figura 1. A continuacin, el sistema operativo analiza una tabla que contiene en la entrada k un
apuntador al procedimiento que realiza la k-esima llamada al sistema. Esta operacin que se muestra en
(3) de la figura 1, identifica el procedimiento de servicio, al cual se llama. Por ultimo, la llamada al sistema
termina y el control regresa al programa del usuario.
Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa del usuario es atrado
hacia el ncleo. (2) el sistema operativo determina el nmero del servicio solicitado. (3) el sistema
operativo localiza y llama al procedimiento correspondiente al servicio. (4) el control regresa al programa
del usuario.
Esta organizacin sugiere una organizacin bsica del sistema operativo:
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de servicio.
En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga de l.
Los procedimientos utilitarios hacen cosas necesarias para varios procedimientos de servicio, por ejemplo
buscar los datos de los programas del usuario.
!structura por micro6ernel.
Las funciones centrales de un SO son controladas por el ncleo (kernel) mientras que la interfaz del
usuario es controlada por el entorno (shell). Por ejemplo, la parte ms importante del DOS es un
programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se mantiene
en memoria en todo momento, contiene el cdigo mquina de bajo nivel para manejar la administracin
de hardware para otros programas que necesitan estos servicios, y para la segunda parte del
COMMAND.COM el shell, el cual es el interprete de comandos
Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn separadas, de tal
forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto
es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell,
reemplazando la interfaz de lnea de comandos con una interfaz grfica del usuario. Existen muchos
"shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo
SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado DOS SHELL.
Estructura por anillos concntricos (capas).
El sistema por "capas" consiste en organizar el sistema operativo como una jerarqua de capas, cada una
construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema THE
(Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus
estudiantes.
El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignacin del
procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los cronmetros.
Sobre la capa 0, el sistema consta de procesos secunciales, cada uno de los cuales se podra
programar sin importar que varios procesos estuvieran ejecutndose en el mismo procesador, la capa 0
proporcionaba la multiprogramacin bsica de la CPU.
La capa 1 realizaba la administracin de la memoria. Asignaba el espacio de memoria principal para los
procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los procesos
(pginas) para las que no exista lugar en la memoria principal. Por encima de la capa 1, los procesos no
deban preocuparse si estaban en la memoria o en el recipiente; el software de la capa 1 se encargaba
de garantizar que las pginas llegaran a la memoria cuando fueran necesarias.
La capa 2 se encargaba de la comunicacin entre cada proceso y la consola del operador. Por encima de
esta capa, cada proceso tiene su propia consola de operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de informacin entre
ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S con
propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es donde
estaban los programas del usuario, estos no tenan que preocuparse por el proceso, memoria, consola o
control de E/S. el proceso operador del sistema se localizaba en la capa 5
Una generalizacin mas avanzada del concepto de capas se presento en el sistema MULTCS. En lugar
de capas, MULTCS estaba organizado como una serie de anillos concntricos, siendo los anillos
interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a un
procedimiento de un anillo interior, debi hacer el equivalente a una llamada al sistema
Mientras que el esquema de capas de THE era en realidad un apoyo al diseo, debido a que todas las
partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTCS, el mecanismo de
anillos estaba mas presente durante el tiempo de ejecucin y era reforzado por el hardware. La ventaja
del mecanismo de anillos es su facilidad de extensin para estructurar subsistemas del usuario.
5 El operador
4 Programas del usuario
3 Control de entrada/salida
2 Comunicacin operador-proceso
1 Administracin de la memoria y del disco
0 Asignacin del procesador y multiprogramacin
Figura 3. Estructura del sistema operativo THE.
Estructura cliente servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el cdigo a capas
superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo mnimo. El
punto de vista usual es el de implantar la mayora de las funciones del sistema operativo en los procesos
del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un proceso del
usuario (denominado proceso cliente) enva la solicitud a un proceso servidor, que realiza entonces el
trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo nico que hace el ncleo
es controlar la comunicacin entre los clientes y los servidores. Al separar el sistema operativo en partes,
cada una de ellas controla una faceta del sistema, como el servicio a archivos, servicios a procesos,
servicio a terminales o servicio a la memoria, cada parte es pequea y controlable. Adems como todos
los servidores se ejecutan como procesos en modo usuario y no en modo ncleo, no tienen acceso
directo al hardware. En consecuencia si hay un error en el servidor de archivos, ste puede fallar, pero
esto no afectar en general a toda la mquina.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin para su uso en los
sistemas distribuidos
Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje
se maneja en forma local, en su mquina, o si se enva por medio de una red a un servidor en una
mquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envi una solicitud y
se recibi una respuesta.
Sistemas Operativos por su !structura &Aisin Interna(.
Segn, se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales
son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso al que se le
quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operacin,
restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
A continuacin se describen las distintas estructuras que presentan los actuales sistemas operativos para
satisfacer las necesidades que de ellos se quieren obtener.
Estructura Monoltica.
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo
programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a
cualquier otra. Las caractersticas fundamentales de este tipo de estructura son:
Construccin del programa final a base de mdulos compilados separadamente que se unen a
travs del ligador.
Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede
provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los
recursos de la computadora, como memoria, disco, etc.
Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero
por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de
aplicaciones.
!structura ;er4r5uica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo
necesaria una mayor organizacin del software, del sistema operativo, donde una parte del sistema
contena subpartes y esto organizado en forma de niveles.
Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con un claro interface con el resto de elementos.
Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los cuales
fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con fines
didcticos. Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y Unix caen
en esa categora.
En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales. Otra
forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings".
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde
pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas del sistema
operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde las capas ms
externas. Las capas ms internas sern, por tanto, ms privilegiadas que las externas.
345uina Airtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una
mquina que parece idntica a la mquina real subyacente. Estos sistemas operativos separan dos
conceptos que suelen estar unidos en el resto de sistemas: la multiprogramacin y la mquina extendida.
El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos sistemas operativos
dando la sensacin de ser varias mquinas diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como misin llevar a cabo la
multiprogramacin, presentando a los niveles superiores tantas mquinas virtuales como se soliciten.
Estas mquinas virtuales no son mquinas extendidas, sino una rplica de la mquina real, de manera
que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que ofrezca la
mquina extendida al usuario
$liente=Servidor&3icro6ernel(.
El tipo ms reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado
en la mayora de las computadoras, ya sean grandes o pequeas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con las
mismas actividades que los sistemas operativos convencionales.
El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los procesos
pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin normal es un cliente
que llama al servidor correspondiente para acceder a un archivo o realizar una operacin de
entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor
para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el
sistema final, ya que el ncleo provee solamente funciones muy bsicas de memoria, entrada/salida,
archivos y procesos, dejando a los servidores proveer la mayora que el usuario final o programador
puede usar. Estos servidores deben tener mecanismos de seguridad y proteccin que, a su vez, sern
filtrados por el ncleo que controla el hardware. Actualmente se est trabajando en una versin de UNX
que contempla en su diseo este paradigma.
1.) *+cleo.
El Ncleo del Sistema Operativo.
Todas las operaciones en las que participan procesos son controladas por la parte del sistema operativo
denominada ncleo (nucleus, core o kernel, en ingls). El ncleo normalmente representa slo una
pequea parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el
cdigo que ms se utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal, mientras
que otras partes del sistema operativo son cargadas en la memoria principal slo cuando se necesitan.
Los ncleos se disean para realizar "el mnimo" posible de procesamiento en cada interrupcin y dejar
que el resto lo realice el proceso apropiado del sistema, que puede operar mientras el ncleo se habilita
para atender otras interrupciones.
El ncleo de un sistema operativo normalmente contiene el cdigo necesario para realizar las siguientes
funciones:
Manejo de interrupciones.
Creacin y destruccin de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensin y reanudacin de procesos.
Sincronizacin de procesos.
Comunicacin entre procesos.
Manipulacin de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
Apoyo para asignacin y liberacin de memoria.
Apoyo para el sistema de archivos.
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.
Ncleo o Kernel y niveles de un Sistema Operativo.
El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se encargan de controlar
y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos,
este se divide en 5 capas:
Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para la gestin de memoria
secundaria necesaria para la ejecucin de procesos.
Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos,
creando interrupciones de hardware cuando no son respetadas.
Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos
por procesos.
Nivel 4. nformacin o Aplicacin o nterprete de Lenguajes: Facilita la comunicacin con los lenguajes y
el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan
ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos
correspondientes.
Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y
manipulacin de archivos con nombre, va asignando espacio y acceso de datos en memoria.
El ncleo y los procesos.
El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin es la de gestionar el
procesador, la memoria, la entrada/salida y el resto de procesos disponibles en la instalacin. Toda esta
gestin la realiza para atender al
funcionamiento y peticiones de los trabajos que se ejecutan en el sistema.
Los procesos relacionados con la entidad bsica de los sistemas operativos actuales: Los procesos.
El esquema general del mismo es el siguiente:
Definicin y concepto de proceso.
El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el estado del
proceso.
Estados por los que pasa un proceso a lo largo de su existencia en la computadora.
Operaciones que se pueden realizar sobre un proceso.
Clasificacin de los procesos segn su forma de ejecucin, de carga, etc.
1.).1 Interrupciones &F,I-(.
El B!STO7 D! I*T!77U.$IO*!S D! .7I3!7 *IA!,E F,I-
(First Level nterruption Handler): `Algo' que gestione las interrupciones
!, $O*T7O,/DO7 D! I*T!77U.$IO*!S D! .7I3!7 *IA!,E !, F,I-
En principio, una seal es una indicacin por la que se altera la secuencia de ejecucin. Hay varios tipos de interrupcin, que se
clasifican en funcin de su origen:
! EXTERNAS: Se producen fuera del procesador
! NTERNAS: Se producen dentro del procesador
Si precisamos ms:
Las interrupciones EXTERNAS, las denominamos:
NTERRUPCONES
Las interrupciones NTERNAS, pueden ser:
EXTRACDGOS: Operaciones que manipulan elementos internos del
procesador
TRAPS o EXCEPCONES
La misin del FLH, est en el ncleo, para dar una respuesta a cualquier tipo de seal que se produce en el sistema.
Al producirse una seal, la atrapa el Hardware de interrupciones, que como mnimo, salva el contenido del PC en el PCB del
proceso. Adems, puede que tambin salve el resto del entorno voltil (tambin en el PCB). Tambin direcciona al FLH, es decir,
pone en el PC la direccin del FLH.
Por lo tanto, podemos decir, que el FLH es un elemento software, es un proceso.
Ya hemos dicho que el FLH es Software, pues se trata de un sencillo programa definido sobre un rea de memoria dedicada a l,
un rea de memoria especfica; es decir, el FLH siempre est en la misma parte de la memoria.
El FLH hace dos cosas:
1) Determina el origen de la interrupcin
(Averigua qu interrupcin se ha producido)
2) Direcciona la rutina que trata esa interrupcin
Si el FLH es un programa, necesita parte del entorno voltil: PC, ACC, ... Por ello, debe salvarse el entorno voltil del proceso
interrumpido. El entorno voltil del proceso interrumpido, se puede salvar en dos momentos:
Puede salvarlo el Hardware de interrupciones
Si no lo salva el Hardware de interrupciones, ser lo primero que haga el FLH, antes incluso de determinar el origen de la
interrupcin
*OT/E
Hay sistemas que definen unos registros mquina para uso exclusivo por parte del Sistema Operativo, para evitar tener que estar
salvando y restaurando el contenido del entorno voltil.
Formas de determinar el ori0en de una interrupcinE
MEDANTE SOFTWARE:
Mediante una cadena de saltos o Fs (o con una CASE)
El FLH, tiene un +nico punto de entrada:
Ventaja: ! Es muy sencillo
Desventaja: ! Rendimiento muy pobre (Cuantas ms interrupciones, peor
rendimiento)
Posible solucin:
Poner al principio de la cadena de saltos las comprobaciones de las
interrupciones ms frecuentes.
MEDANTE HARDWARE:
Mediante el uso de un comparador simultneo, incluido en el Hardware de interrupciones.
El origen de la interrupcin, no lo va a detectar el FLH, lo va a detectar el Hardware de interrupciones.
El FLH, tiene N puntos de entrada, siendo N el nmero de interrupciones que reconoce el sistema.
Ventaja: ! Es casi simultneo, mucho ms rpido que la secuencia de Fs
Desventaja: ! Coste Elevado: Un comparador para muchas interrupciones es
muy caro
COMBNANDO SOFTWARE Y HARDWARE:
El comparador distingue los TPOS de interrupcin.
Las interrupciones se agrupan por tipos.
EL Hardware de interrupciones:
1) Salva el contenido del entorno voltil
2) Mediante un comparador simultneo, determina el tipo al que pertenece la
interrupcin producida
3) Se direcciona al FLH, donde una pequea cadena de saltos determina la
interrupcin en concreto que se ha producido
Si N es el nmero de tipos de interrupciones, el FLH tiene N puntos de entrada.
Cuando el FLH est atendiendo una interrupcin, pueden producirse otras.
Qu hacemos con esas otras interrupciones que se producen?
nhibir (ignorar) el resto de interrupciones mientras se atiende una. Pero esto no puede hacerse siempre
Las interrupciones ms prioritarias deben tratarse nada ms producirse
Posible solucin:
Definir niveles de prioridad entre las interrupciones, de forma que si
se est atendiendo una interrupcin, quedarn pendientes (o
inhibidas) las de menor o igual prioridad.
Problema:
Si se produce una interrupcin ms prioritaria que la que se est atendiendo, debe dejarse de atender la que se estaba
atendiendo para atender la ms prioritaria. Por lo tanto, debe guardarse el entorno voltil de la interrupcin que estaba
atendiendo. La interrupcin que pasa a ser atendida, tambin puede tener que dejarse, al llegar otra de mayor prioridad ...
Por tanto, es necesario un lugar a para almacenar entornos voltiles, es decir, un PCB, por cada prioridad de interrupcin
- 1.
Inicio del servicio de una interrupcinE
Las interrupciones no pueden estar inhibidas mucho tiempo, es decir, el tiempo de tratamiento del FLH debe ser corto.
Problema:
Hay interrupciones cuyo tratamiento lleva mucho tiempo. En ese caso, el FLH, slo inicia su tratamiento, y luego, lama a
otra rutina ajena o externa a l, que realiza el resto del tratamiento.
Una interrupcin puede implicar cambio(s) de estado en algn(os) proceso(s).
TPOS DE NTERRUPCONES:
nterrupciones que provocan cambios de estado del proceso en ejecucin
Algunos extracdigos: Peticiones de E/S
Seales de error para suspensin
nterrupciones de reloj: nterrupciones por expiracin del temporizador
nterrupciones que provocan cambios de estado en procesos que no estn en ejecucin
nterrupciones de E/S
"ttpE>>"tml.rincondelva0o.com>sistemas=operativosG2C."tml
1.).2 Despac"ador&Sc"eduler(.
Schedulling.-
Colas de Schedulling: Los procesos que estn en estado de espera se quedan en una lista llamada lista o
cola de ready. Los procesos que hacen uso de E/S se guardan en una cola de E/S. Hay una cola de E/S
por cada dispositivo.
Schedullers: Componente del sistema operativo responsable de decidir quien hara uso de la CPU.
/l0oritmos de Sc"edullin0.=
F$FS &First $ome First Served(
Cuando un proceso llega a la cola de ready su PCB es agregado al final de la lista. El uso de la CPU es
otorgado al primero de la lista y una vez que un proceso comienza a ejecutar no deja de hacerlo hasta
que se termina. El tiempo medio de espera para este algoritmo suele ser bastante alto.
S;F &S"ortest ;ob First(
Una vez que un proceso ejecuta no deja de hacerlo hasta que voluntariamente cambia de estado (no hay
interrupcin por tiempo). Asocia a cada proceso el tiempo de CPU que habr de usar en su prxima
vuelta y va a decidir por el ms pequeo. Si hubiera mas de uno utiliza FCFS para desempatar. El mayor
problema de este algoritmo radica en el clculo de tiempo de uso de CPU. Este se puede aproximar a:
Tn+1= .tn+(1- )Tn
0< <1 Tiempo calculado en la vuelta n
Prximo uso de CPU Tiempo usado en la vuelta n
El problema de este algoritmo es que el tiempo de espera para los procesos largos puede ser demasiado
largo. Constantemente se estn entregando los procesos mas cortos y el ms grande nunca ser
ejecutado.
El FJS se puede subdividir en 2 tipos de algoritmos: PREEMPTVO o NO PREEMPTVO
Preemptivo significa que si mientras un proceso se esta ejecutando, entra a la cola de ready un proceso
mas corto, el proceso en la cola de ready se apropia de la CPU y comienza su ejecucin.
.riority Sc"edullin0
Asocia a cada proceso una prioridad. Luego selecciona el proceso con mas prioridad para desempatar.
En caso de que hubieran dos o mas procesos con la misma prioridad, se usa FCFS para desempatar.
Hay dos tipo de prioridad en los procesos: la prioridad externa definidas a travs del sistema operativo y
la prioridad interna definida por el tiempo de uso de la CPU, el control de E/S, etc. Este algoritmo tambin
se puede ejecutar de dos maneras: preemptivo y no preemptivo. El algoritmo soluciona el problema del
looping pero el problema es que los procesos con prioridad muy baja tienen chance de no ejecutarse
nunca. Para solucionar este problema de espera infinita el envejecimiento de un proceso eleva su
prioridad.
7ound 7obin
Este es un algoritmo basado en FCFS. Trata la cola de ready como una lista circular. ntroduce el
concepto de "Quantum" o "Time slice" : mayor tiempo de cpu que podr hacer uso un proceso en cada
vuelta. Si el valor del Quantum fuese muy grande, el algoritmo funcionara como un FCFS. Si el Quantum
fuera muy chico se produce un overhead por context switch (significa que el Quantum se setea en un
tiempo menor al que demora el context switch). Este algoritmo es fuertemente dependiente del Quantum
o Time Slice. El Quantum debe ser mayor que el 80% de los tiempos de CPU que hagan uso los
procesos, pero no el proceso entero sino por cada burst.
3<S &3ultilevel <ueue Sc"edullin0(
Este algoritmo parte la cola de ready en un numero de colas n. Luego existe un criterio para clasificar en
que cola ser colocado un proceso cuando que queda en estado de ready. Cada cola puede manejar su
propio algoritmo de schedulling
3F<S &3ultilevel Feed Fac6 <ueue Sc"edullin0(
Define los siguientes parmetros:
Numero de colas
Algoritmo de schedulling usado en cada cola
Mtodo para decidir a que cola entrara un proceso cuando entre a estado de ready
Mtodo para decidir cuando un proceso ser enviado a una cola de menor prioridad.
Mltiple CPU
Para que mas de una CPU no tomen el mismo proceso de la cola de ready se utilizan mecanismos de
sincronizacin. Otro mecanismo seria partir la cola en n colas (n CPUs), pero si se hiciera esto podra
llegar a suceder que los procesos de una CPU fueran todos cortos y los de otra fueran largos por lo cual
habra una CPU que quedara libre y otra ejecutando. Otra forma sera que una CPU decidiera cual CPU
va a ejecutar cual proceso. Esto puede llevar a que la CPU que esta seleccionando quede un poco mas
cargada porque en algn momento estar ejecutando el algoritmo de seleccin y un proceso asignado a
ella.
1.). .rimitivas de comunicacin&I.$(.
)ay varias primitivas de comunicacin entre procesos (*+% abreviadamente). La mayor,a de ellas
requieren alg!n tipo de modificacin a los programas para poder usarlas, pero (ay una que es
f&cilmente accesible desde la l,nea de comandos usando la met&fora de fic(eros est&ndar en
$-*. y que no requiere modificacin alguna a los programas. Se trata de las tuer)as. Siguiendo
la met&fora, $-*. nos permite manear tuber,as como si fueran fic(eros normales.
(ttp:''///.es.embnet.org'0oc'"%1'"%123445267'dbpipes.es.(tml
Primitivas (e #omu$i#a#i'$
8lgunos 9ernel tienen operaciones espec,ficas austadas a la invocacin remota. 8moeba, por
eemplo, tiene DoOperation/GetRequest--SendReply.
"s m&s eficiente que el simple Send2:eceive (y m&s fiable y legible).
8moeba y otros sistemas tienen tambin comunicacin con grupos o radiado (parcial)
(broadcast).
"s importante para tolerancia de fallos, meora de rendimiento y reconfigurabilidad.
0iversas variantes: como mensaes, como m!ltiples :+%s, con un slo valor devuelto, con varios
valores devueltos (todos untos o pidiendo uno a uno), etc.
"n la pr&ctica, mecanismos de comunicacin de alto nivel tales como :+%':;*, radiado y
notificacin de sucesos (parecido a los maneadores de interrupciones), se implementan en
middle/are y no en el 9ernel.
-ormalmente, sobre un nivel <%+'*+, por ra#ones de transportabilidad, (aunque resulta ==caro").
La PC ofrece un mecanismo que permite a los procesos cumunicarse y sincronizar sus acciones. La mejor forma de proveer la
comunicacin entre procesos es mediante un sistema de mensajes.
La funcin de un sistema de mensaje es permitir a los procesos comunicarse entre s sin tener que recurrir a variables compartidas.
Un recurso PC ofrece por los menos 2 operaciones:
enviar (mensaje) (send) y recibir (mesanje) (receive).
Sea P y Q dos procesos que requieren comunicarse debern enviarse mensajes; para ello debe existir un enlace de
comunicacin entre ellos. Este enlace puede implementarse de diversas maneras.
Los mtodos para implementar lgicamente un enlace y las operaciones de enviar / recibir son:
Comunicacin directa o indirecta
Uso de buffer automtico o explcito
Envo por copia o envo por referencia
Mensajes de tamao fijo o variables
$omunicacin directaE
Aqu cada proceso que desee comunicarse debe nombrar explcitamente el destinatario o el remitente de la comunicacin. Este
esquema se define las primitivas de la sig. manera:
Enviar(P,mensaje): Enviar un mensaje al proceso P.
Recibir(Q. Mensaje): Recibir un mensaje del proceso Q.
Con las siguientes propiedades:
Se establece automticamente el enlace entre cada par de procesos. Lo procesos slo necesitan conocer la identidad de
otro para la comunicacin.
Solo hay un enlace entre cada par de procesos.
El enlace puede ser unidireccional o bidireccional.
Este esquema exhibe un simetra de direccionamiento; es decir, los procesos tanto emisor como receptor necesitan nombrar al otro
para comunicarse.
Otra variante de este esquema es utilizar asimetra de direccionamiento, con la sig. primitivas:
Enviar(P,mensaje): enviar un mensaje al proceso P.
Recibir(d,mensaje) : recibir un mensaje de cualquier proceso con el que hubo comunicacin.
Aqu slo el emisor nombra al destinatario; el destinatario no sta obligado a nombrar al emisor.
$omunicacin indirectaE
Aqu los mensajes se envan a, y se reciben de, buzones (tambin llamados PUERTOS). Un buzn puede considerarse en lo
abstracto como un objeto en el que los procesos pueden colocar mensajes y del cual se pueden sacar mensajes. Cada buzn tiene
una identificacin nica. Aqu dos proceso se pueden comunicarse slo si comparten un buzn. Las primitivas se definen como:
Enviar (A,mensaje): enviar un mensaje al buzn A.
Recibir (A,mensaje): recibir un mensaje del buzn A.
Un enlace de comunicacin tiene las sig. propiedades:
Se establece un enlace entre un par de procesos slo si tienen un buzn compartido.
Un enlace puede estar asociado a ms de dos procesos.
Entre cada par de procesos en comunicacin puede haber varios enlaces distintos, cada uno de los cuales corresponder
a un buzn.
Los enlaces pueden ser unidireccionales o bidereccionales.
Hay varias formas de designar el dueo de y los usuarios de un buzn dado. Una posibilidad es permitir que un proceso declare
variables de tipo buzn. El proceso que declara un buzn es el dueo de ese buzn. Cualquier otro proceso que conozca el nombre
de dicho buzn podr usarlo.
Por otro lado, un buzn propiedad del S.O tiene existencia propia; es independiente y no est unido a ningn proceso especfico. El
S.O establece un mecanismo que permite a un proceso:
Crear un buzn nuevo
Enviar y recibir mensajes a travs del buzn
Destruir un buzn.
(ttp:''(tml.rincondelvago.com'sistemas2operativos>7?.(tml
$omunicacin entre procesos &I.$(
Los procesos en $-*. no comparten memoria, ni siquiera los padres con sus (ios. +or tanto,
(ay que establecer alg!n mecanismo en caso de que se quiera comunicar informacin entre
procesos concurrentes. "l sistema operativo $-*. define tres clases de (erramientas de
comunicacin entre procesos (*+%): los sem&foros, la memoria compartida y los mensaes.
"l tipo de llamadas al sistema para estos *+%s es an&logo al de los sem&foros: e@isten sendas
funciones shmget y msgget para crear o enla#arse a un segmento de memoria compartida o a
una cola de mensaes, respectivamente. +ara alterar propiedades de estos *+%s, incluyendo su
borrado, est&n las funciones shmctl y msgctl.
+ara enviar o recibir mensaes, se utili#an las funciones msgsnd y msgrcv.
"n este apartado se describir&n brevemente algunas llamadas al sistema disponibles para el uso
de las *+%s dentro de la programacin en %.
Sem"*oros
ABu es un sem&foro para el $-*.C Dormalmente es muy similar a la definicin cl&sica de
0i9stra, en el sentido de que es una variable entera con operaciones atmicas de iniciali#acin,
incremento y decremento con bloqueo.
"l $-*. define tres operaciones fundamentales sobre sem&foros:
E semget %rea o toma el control de un sem&foro
E semctl Fperaciones de lectura y escritura del estado del sem&foro. 0estruccin del sem&foro
E semop Fperaciones de incremento o decremento con bloqueo
%omo el lenguae % no tiene un tipo "sem&foro" predefinido, si queremos usar sem&foros
tenemos que crearlos mediante una llamada al sistema (semget). "sta llamada permite crear un
conunto de sem&foros, en lugar de uno solo. Las operaciones se reali#an atmicamente sobre
todo el conuntoG esto evita interbloqueos y oscuras programaciones en muc(os casos, pero para
esta pr&ctica es m&s bien un engorro.
8l crear un sem&foro se nos devuelve un n!mero identificador, que va a funcionar casi igual que
los identificadores de fic(ero de las llamadas open, creat, etc. La funcin semget nos permite
adem&s "abrir" un sem&foro que ya est creado. 8s,, por eemplo, si un proceso crea un sem&foro,
otros procesos pueden sincroni#arse con aqul (con ciertas restricciones) disponiendo del
sem&foro con semget.
+ara darle un valor inicial a un sem&foro, se utili#a la funcin semctl.
"l $-*. no ofrece las funciones cl&sicas + y H o equivalentes, sino que dispone de una funcin
general llamada semop que permite reali#ar una gama de operaciones que incluyen las + y H.
semctl tambin se emplea para destruir un sem&foro.
Llama(as al sistema para sem"*oros
"sta es una descripcin resumida de las tres llamadas al sistema para operar con sem&foros
(semget, semctl y semop). +ara una informacin m&s completa y fidedigna, dir,anse al manual
de llamadas al sistema (seccin 7).
+ara el correcto uso de todas estas funciones, (an de incluir el fic(ero cabecera <sys/sem.h>
Las tres funciones devuelven 23 si algo (a ido mal y en tal caso la variable errno informa del
tipo de error.
Apertura o #rea#i'$ (e u$ sem"*oro
Sinta@is:
int semget ( key_t key, int nsems, int semflg )G
semget devuelve el identificador del sem&foro correspondiente a la clave 9ey. +uede ser un
sem&foro ya e@istente, o bien semget crea uno nuevo si se da alguno de estos casos:
a) 9ey vale IPC_PRI!"#. "ste valor especial obliga a semget a crear un nuevo y !nico
identificador, nunca devuelto por ulteriores llamadas a semget (asta que sea liberado con
semctl.
b) 9ey no est& asociada a ning!n sem&foro e@istente, y se cumple que (semflg I IPC_CR#!") es
cierto.
8 un sem&foro puede accederse siempre que se tengan los permisos adecuados.
Si se crea un nuevo sem&foro, el par&metro nsems indica cu&ntos sem&foros contiene el conunto
creadoG los 4 bits inferiores de semflg contienen los permisos estilo $-*. de acceso al sem&foro
(usuario, grupo, otros).
semflg es una m&scara que puede contener IPC_CR#!", que ya (emos visto, o IPC_#$C%, que
(ace crear el sem&foro, pero fracasando si ya e@ist,a.
"emplo:
int semid & semget ( IPC_PRI!"#, ', IPC_CR#!" ( )*++ ),
Opera#io$es (e #o$trol sore sem"*oros
Sinta@is:
int semctl ( int semid, int semnum, int cmd... ),
"sta es una funcin complea (y de interfa# poco elegante) para reali#ar ciertas operaciones con
sem&foros. semid es un identificador de sem&foro (devuelto previamente por semget) y
semnum, el sem&foro del conunto sobre el que quieren trabaar. cmd es la operacin aplicadaG a
continuacin puede aparecer un par&metro opcional seg!n la operacin definida por cmd.
Las operaciones que les interesan a ustedes son
-#"!% semctl retorna el valor actual del sem&foro
.#"!% se modifica el valor del sem&foro (un cuarto par&metro entero da el nuevo valor)
IPC_R/I0 destruye el sem&foro
"emplos:
valor & semctl (semid,semn1m,-#"!%),
semctl (semid,semn1m,.#"!%,n1evo_valor),
Opera#io$es sore sem"*oros
Sinta@is:
int semop ( int semid, str1ct sem2134 sops, 1nsigned nsops ),
"sta funcin reali#a atmicamente un conunto de operaciones sobre sem&foros, pudiendo
bloquear al proceso llamador. semid es el identificador del sem&foro y sops es un apuntador a un
vector de operaciones. nsops indica el n!mero de operaciones solicitadas.
La estructura sem213 tiene estos campos:
struct sembuf {
unsigned short sem_num; // nmero del sem!foro dentro del
con"unto
short sem_op; // clase de operaci#n
// segn sea $%& '% o ((%
short sem_flg; // modificadores de operaci#n
);
%ada elemento de sops es una operacin sobre alg!n sem&foro del conunto de semid. "l
algoritmo simplificado de la operacin reali#ada es ste (semval es el valor entero contenido en el
sem&foro donde se aplica la operacin).
si semop'%
si sem*al $( +semop+
sem*al -( +semop+
si sem*al ' +semop+
si ,semflag - ./0_1O23.456(%
la funci#n semop,5 retorna
si no
bloquearse hasta que sem*al $( +semop+
sem*al -( +semop+
si semop$%
sem*al 7( semop
si semop((%
si sem*al ( %
S8./
si sem*al 6( %
si ,semflag - ./0_1O23.456(%
la funci#n semop,5 retorna
si no
bloquearse hasta que sem*al (( %
:esumiendo un poco, si el campo semop de una operacin es positivo, se incrementa el valor del
sem&foro. 8simismo, si semop es negativo, se decrementa el valor del sem&foro si el resultado no
es negativo. "n caso contrario el proceso espera a que se d esa circunstancia. "s decir,
semopJJ3 produce una operacin H y semopJJ23, una operacin +.
E!emplos (e uso
+ara ilustrar de forma concreta el empleo de sem&foros bao $-*., les mostramos unos eemplos
de subrutinas en % que les pueden servir como modelos para elaborar sus rutinas de
sincroni#acin en las pr&cticas de la asignatura.
"n concreto, son unas funciones que implementan las operaciones + y H de un sem&foro cl&sico
(iniciali#acin, incremento y decremento con posible bloqueo del proceso llamador). 8s,
definidas, o con pocas modificaciones, les pueden servir como la interfa# para uso de sem&foros
en sus aplicaciones.
9include 'sys/types:h$ /; para <ey_t ;/
/; 0rea un sem!foro con un *alor inicial& dada una cla*e ;/
/; De*uel*e el identificador ,*!lido o no5 del sem!foro ;/
int crea_sem , <ey_t cla*e& int *alor_inicial 5;
/; Operaciones / y = sobre un sem!foro ;/
*oid sem_/ , int semid 5;
*oid sem_= , int semid 5;
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
/;;;;;;;; .>/?@>@1430.A1 ;;;;;;;/
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
9include 'sys/ipc:h$
9include 'sys/sem:h$
9define /@R>.SOS %BCC
/; crea_semD abre o crea un sem!foro ;/
int crea_sem , <ey_t cla*e& int *alor_inicial 5
{
int semid ( semget, /; 3bre o crea un sem!foro::: ;/
cla*e& /; con una cierta cla*e ;/
E& /; con un solo elemento
;/
./0_0R@34+/@R>.SOS /; lo crea ,./0_0R@345 con
unos /@R>.SOS ;/
5;
if , semid((-E 5 return -E;
/; Da el *alor inicial al sem!foro ;/
semctl , semid& %& S@4=3?& *alor_inicial 5;
return semid;
)
/; abre_semD 3brir un sem!foro que otro proceso ya cre# ;/
int abre_sem ,<ey_t cla*e5
{
return semget,cla*e&E&%5;
)
/; Operaciones / y = ;/
*oid sem_/ , int semid 5 /; Operaci#n / ;/
{
struct sembuf op_/ FG (
{
%& -E& % /; Decrementa sem*al o bloquea si cero ;/
);
semop , semid& op_/& E 5;
)
*oid sem_= , int semid 5 /; Operaci#n = ;/
{
struct sembuf op_= FG (
{
%& E& % /; .ncrementa en E el sem!foro ;/
);
semop , semid& op_=& E 5;
)
(ttp:''labsopa.dis.ulpgc.es'prog>c'*+%.)<;
Unidad 2 /dministracin de procesos y del
procesador.
Aer arc"ivoE Unidad2.pdf
2.@ $oncepto de proceso.
Un proceso es un programa en ejecucin. Un proceso simple tiene un hilo de ejecucin, por el momento
dejemos esta ltima definicin como un concepto, luego se ver en ms detalle el concepto de hilo. Una
vez definido que es un proceso nos podramos preguntar cul es la diferencia entre un programa y un
proceso, y bsicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un
programa, entradas salidas y estados.
Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos
interactan entre s y pertenecen a una misma aplicacin. En el caso de procesos independientes en
general se debe a que no interactan y un proceso no requiere informacin de otros o bien porque son
procesos que pertenecen a distintos usuarios.
K .roceso - un programa en ejecucin; la ejecucucin del proceso debe progresar de manera
secuencial.
K Un proceso incluye:
L program counter
L stack
L data section
Estados de los procesos
K *uevo: El proceso es creado.
K !9ecucin: Se ejecutan instruccines.
K !spera: El proceso esta en espera por la ocurrencia de algn evento.
K ,isto: El proceso esta esperando a que le asignen el procesador.
K Terminado: El proceso finaliza su ejecucin.
K Diagrama de estados de los procesos.
nformacin asociada con cada proceso:
K Estado del proceso
K Program counter
K Registros del CPU
K nformacin de planificacin del CPU
K Memoria
K nformacin para administracin
K nformacin de estatus de E/S
Pro#eso+
programa o comando en eecucin.
%aracter,sticas:
$n proceso consta de cdigo, datos y pila.
Los procesos e@isten en una erarqu,a de &rbol (varios )ios, un slo padre).
"l sistema asigna un identificador de proceso (+*0) !nico al iniciar el proceso.
"l planificador de tareas asigna un tiempo compartido para el proceso seg!n su
prioridad (slo root puede cambiar prioridades).
E!e#u#i'$ e$ ,er pla$o+
proceso iniciado por el usuario o interactivo.
E!e#u#i'$ e$ -o pla$o+
proceso no interactivo que no necesita ser iniciado por el usuario.
Demo$io+
proceso en 7o plano siempre disponible, que da servicio a varias tareas (debe ser
propiedad del usuario root).
Pro#eso &omi+
proceso parado que queda en la tabla de procesos (asta que termine su padre. "ste (ec(o
se produce cuando el proceso padre no recoge el cdigo de salida del proceso (io.
Pro#eso .u/r*a$o+
proceso en eecucin cuyo padre (a finali#ado. "l nuevo identificador de proceso padre
(++*0) coincide con el identificador del proceso i$it (3).
Co$#epto (e pro#eso.
$n proceso es b&sicamente como un programa en eecucin. %onsta del programa
eecutable, los datos y la pila del programa, su contador de programa, apuntador de pila y otros
registros, y la otra informacin que se necesita para eecutar el programa.
La manera sencilla de tener una nocin intuitiva de lo que es un proceso consiste en
pensar en los sistemas con tiempo compartido. "n forma peridica el sistema operativo decide
suspender la eecucin de un proceso y dar inicio a la eecucin de otro, por eemplo, porque el
primero (aya tomado ya m&s de su parte del tiempo del %+$, en terrenos del segundo.
%uando un proceso se suspende temporalmente como ste, debe reiniciarse despus
e@actamente en el mismo estado en que se encontraba cuando se detuvo. "sto significa que toda
la informacin relativa al proceso debe guardarse en forma e@pl,cita en alg!n lugar durante la
suspensin.
"n muc(os sistemas operativos, toda la informacin referente a cada proceso, diferente
del contenido de su espacio de direcciones, se almacena en una tabla de sistema operativo,
llamada tabla de procesos, la cual es un arreglo o lista enla#ada de estructuras, una para cada
proceso en e@istencia corriente.
Si un proceso puede crear uno o m&s procesos diferentes (conocidos como proceso (io) y
estos procesos a la ve# originan procesos (ios, se llega r&pidamente a la estructura del &rbol de
procesos, observe figura # 14.
Figura # 14. Estru#tura (e "rol. Pro#eso Pa(re 0 1i!o.
"l proceso 8 cre dos procesos derivados, M y %. "l proceso M cre tres derivados, 0, " y D.
Se dispone de otras llamadas al sistema para solicitar m&s memoria ( o para liberar
memoria no utili#ada), esperar a que termine un proceso (io y cubrir su programa con uno
diferente.
"n un sistema de multiprogramacin, el (%+$) tambin cambia de un programa a otro,
eecutando cada uno en decenas o cientos de milisegundos. "n tanto que, en rigor, en cualquier
instante de tiempo, el %+$ est& eecutando slo un programa, en el curso de un segundo puede
trabaar en varios programas, con la ilusin de paralelismo.
Proceso: *nformalmente se define como la actividad que resulta cuando un proceso eercita un
programa, y formalmente consiste en un vector formado por lo siguiente, figura # 15:
P 2 3 C4 Co4 E4 S4 A 5
Algoritmo
Datos (e sali(a
Co$!u$to (e (atos (e e$tra(a 6E,4 E-4 ... E$7
Co$te8to i$i#ial
Co$!u$to (e #o$te8to i$i#ial 6C94 C,4 C-4 ... C$7

Figura # 15.
$n proceso puede tomar diferentes estados, puede estar corriendo, puede estar libre o
puede estar detenido. Si consideramos que todo proceso esta constituido de una serie finita de
actividades elementales una regin crtica de un proceso se define como el conunto de
actividades elementales cuya eecucin e@ige el monopolio de recursos compartidos.
Dormalmente se define como el conunto de partes de los conte@tos internos compartidos.
Figura # 16
Figura # 16. egiones crticas.
Los problemas que deben resolverse en un conte@to de procesos concurrentes (como regiones
cr,ticas) son los siguientes:
2 "@clusin mutua.
2 Sincroni#acin.
2 0ead loc9 (8braso mortal *nterbloqueo)
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_211.html
2.? !stados y transiciones de los procesos
Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecucin y Bloqueado.
Los procesos en el estado listo son los que pueden pasar a estado de ejecucin si el planificador los
selecciona. Los procesos en el estado ejecucin son los que se estn ejecutando en el procesador en
ese momento dado. Los procesos que se encuentran en estado bloqueado estn esperando la respuesta
de algn otro proceso para poder continuar con su ejecucin. Por ejemplo operacin de E/S.
Un proceso puede variar entre 5 distintos estados:
*eH: cuando el proceso esta siendo creado.
7unnin0: cuando el proceso se esta ejecutando.
Iaitin0: cuando el proceso esta esperando que se cumpla algn otro evento.
7eady: cuando el proceso esta pronto para ejecutar, esperando por la CPU.
Terminated: cuando el proceso esta terminado.
!stado de los .rocesos.
Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un
estado particular de los procesos, existiendo en cada bloque, entre otras informaciones. Los estados de
los procesos son internos del sistema operativo y transparentes al usuario.
Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.
1.- Estados activos: Son aquellos que compiten con el procesador o estn en condiciones de hacerlo. Se
dividen en:
Ejecucin. Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un
sistema monoprocesador este estado slo lo puede tener un proceso.
Preparado. Aquellos procesos que estn dispuestos para ser ejecutados, pero no estn en ejecucin por
alguna causa (nterrupcin, haber entrado en cola estando otro proceso en ejecucin, etc.).
Bloqueado. Son los procesos que no pueden ejecutarse de momento por necesitar algn recurso no
disponible (generalmente recursos de entrada/salida).
2.- Estados inactivos: Son aquellos que no pueden competir por el procesador, pero que pueden volver a
hacerlo por medio de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso
aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo que lo
han impedido y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que
volver a ejecutarse desde el principio.
Son de dos tipos:
Suspendido bloqueado. Es el proceso que fue suspendido en espera de un evento, sin que hayan
desaparecido las causas de su bloqueo.
Suspendido programado. Es el proceso que han sido suspendido, pero no tiene causa parta estar
bloqueado.
Esta(os (e los pro#esos
K -uevo: "l proceso es creado.
K "ecucin: Se eecutan instruccines.
K "spera: "l proceso esta en espera por la ocurrencia de alg!n evento.
K Listo: "l proceso esta esperando a que le asignen el procesador.
K <erminado: "l proceso finali#a su eecucin.
K 0iagrama de estados de los procesos.
I$*orma#i'$ aso#ia(a #o$ #a(a pro#eso+
K "stado del proceso
K +rogram counter
K :egistros del %+$
K *nformacin de planificacin del %+$
K ;emoria
K *nformacin para administracin
K *nformacin de estatus de "'S
Crea#i'$ (e Pro#esos.
"n $-*. el lan#amiento de procesos se reali#a a travs de la llamada al sistema fork().
+ara utili#ar esta llamada al sistema se emplea el (eader Nunistd.(O.
Su sinta@is es:
+idJfor9()G
$na llamada e@itosa a for9() crea un proceso que es una copia del proceso que lo invoco. 0uplica
las variables del proceso original con una e@cepcin, el nuevo proceso creado recibe le nombre
de proceso (io. "l proceso que lo creo se denomina proceso padre, y el sistema devuelve un 6 al
proceso (io y un valor positivo distinto de 6 (pid del (io) al proceso padre.
0espus de la llamada e@itosa a for9(), tanto el proceso padre como el (io corren en forma
simultanea a partir del punto siguiente a la invocacin del for9.
La figura siguiente muestra esta situacin:
P..
+rintf(Q8ntes del for9 RnS)G
+idJfor9()G
+rintf(Q0espus del for9RnS)G
PP.
8%
8
8ntes
222222222222222222222222222222222222222222 for9 222222222222222222222222222222222222222222222222222222222222
0espus
"n la figura se muestran T l,neas de cdigo de un procesoG un printf, un for9 y otro printf.
)ay 7 secciones en la figura: antes y despus. La seccin antes muestra la situacin antes de la
invocacin al for9. Slo e@iste el proceso 8. "l 8puntador 8% (apuntador de cdigo) seUala a la
instruccin que se est& eecutando. %omo se est& indicando el primer printf *mprime el te@to
Q8ntes del for9S.
La seccin despus muestra la situacin inmediatamente despus de la llamada a for9. "@isten
a(ora 7 procesos: 8y M. 8 es el proceso original, es decir, el proceso padre. M es una copia de 8,
es decir el proceso (io. 8mbos corren en forma simult&nea. 0ado que el apuntador 8%, seUala al
!ltimo printf, se imprime el te@to Q0espus del for9S. Se imprime 7 veces, una por parte del
padre y la otra por parte del (io.
http://www.ittehuacan.edu.mx/lolguin/Procesos_final.doc
Des#riptor (e pro#esos : re#ursos.
"s una estructura de datos asociada a una entidad inform&tica ya sea un (:ecurso o
+roceso), en la cual se indica y actuali#a todas las informaciones relativas a dic(a entidad.
"n el caso de un proceso la informacin general que contiene es:
,;.0 I(e$ti*i#a(or+ Bue puede ser interno y e@terno.
0 I$ter$o+ Sistemas.
0 E8ter$o+ $suario.
-;.0 Des#rip#i'$ (e la m"%ui$a virtual aso#ia(a: como espacio virtual asignado, tipo de
mapeo, tipo de acceso.
<;.0 Des#rip#i'$ (e los re#ursos (e la m"%ui$a %ue usa #omo: Lista de recursos que el
proceso tiene derec(o a solicitar, direccin real en la memoria principal, estado de las
variables internas del %+$, prioridad, etc.
=;.0 Esta(os *u$#io$ales (el pro#eso+ Los estados de los procesos son internos del
sistema operativo y transparente al usuario. +ara ste, su proceso estar& siempre en
eecucin independientemente del estado en que se encuentre internamente el sistema.
P..
+rintf(Q8ntes del for9 RnS)G
+idJfor9()G
+rintf(Q0espus del for9RnS)G
PP.
8%
8
P..
+rintf(Q8ntes del for9 RnS)G
+idJfor9()G
+rintf(Q0espus del for9RnS)G
PP.
8%
M
Los procesos se pueden encontrar en tres estados, observe *igura > <=.

Figura > <=. Esta(os (e los pro#esos.
$n proceso puede encontrarse en estado de eecucin, bloqueado o listo (que tambin se
llama eecutable).
0e estos estados de los procesos se derivan las siguientes transiciones y estados:
Tra$si#i'$: "l paso de un estado a otro.
Tra$si#io$es+
3. "l proceso se bloquea en la entrada.
7. "l planificador elige otro proceso.
T. "l planificador elige este proceso.
V. La entrada se vuelve disponible.
Esta(os+
,. E!e#u#i'$ (que en realidad (ace uso del %+$ en ese instante).
-. ?lo%uea(o (incapa# de correr (asta que suceda alg!n evento e@terno.
<. Listo (eecutableG se detiene temporalmente para permitir que se eecute otro
proceso).
E$ estos tres esta(os so$ posiles #uatro tra$si#io$es+
,. Fcurre cuando un proceso descubre que no puede continuar. "n alg!n sistema el proceso
debe eecutar una llamada al sistema, MLF%W, para entrar en estado bloqueado.
- : <. Son ocasionadas por el planificador del proceso, que es parte del sistema operativo sin que
el proceso llegue a saber de ella.
-. Fcurre cuando el planificador decide que el proceso en eecucin ya (a corrido el tiempo
suficiente y es tiempo de permitir que otro proceso tome tiempo de %+$.
<. Fcurre cuando todos los procesos (an utili#ado su parte del tiempo y es (ora de que el
primer proceso vuelva a correr.
=. Fcurre cuando aparece el evento e@terno que estaba esperando un proceso (como el arribo
de alguna entrada). Si ning!n otro proceso corre en ese instante, la transicin T se
activar& de inmediato y el proceso iniciara su eecucin, de lo contrario tendr& que
esperar, en estado listo.
Los estados de los procesos se pueden dividir en dos tipos: a#tivos e i$a#tivos.
@ Esta(os a#tivos.
Son aquellos que compiten por el procesador o est&n en condiciones de (acerlo. Se
dividen en, observe la *igura > <A.
Figura > <A. Esta(os (e u$ pro#eso : sus tra$si#io$es.
. E!e#u#i'$. "stado en el que se encuentra un proceso cuando tiene el control del
procesador. "n un sistema monoprocesador este estado slo lo puede tener
proceso.
. Listo. 8quellos procesos que est&n dispuestos para ser eecutados, pero no
est&n en eecucin por alguna causa (interrupcin, (aber entrado, en la cola
estando otro proceso en eecucin, etc.
. ?lo%uea(os. Son los procesos que no pueden eecutarse de momento por necesitar
alg!n recurso no disponible (generalmente recursos de "'S).
@ Esta(os i$a#tivos.
Son aquellos que no pueden competir por el procesador, pero que puedan volver a (acerlo
por medio de ciertas operaciones. "n estos estados se mantiene el bloque de control de proceso
suspendido (asta que vuelva a ser activado.
!on de dos tipos:
Suspe$(i(o lo%uea(o.
"s el proceso que fue suspendido en espera de un evento, sin que (ayan
desaparecido las causas de su bloqueo.
Suspe$(i(o prepara(o.
"s el proceso que (a sido suspendido, pero no tiene causa para estar bloqueado.
Tra$si#io$es (e esta(o.
<odo proceso a lo largo de su e@istencia puede cambiar de estado varias veces. %ada uno
de estos cambios se denomina transicin de estado.
<ransiciones de estado de proceso, *igura > <B.
Figura > <B. Tra$si#io$es (e esta(o.
La asignacin del %+$ al primer proceso de la lista de listos es llamada despac(o, y es eecutado
por la entidad del sistema llamada despac(ador. *ndicamos esta transicin de la manera siguiente:
"espac#o $nom%re del proceso&: 'isto en e(ecucin.
;ientras el proceso tenga %+$, se dice que esta en eecucin. +ara prevenir que
cualquier proceso monopolice el sistema, ya sea de manera accidental o maliciosamente el
sistema operativo austa un relo de interrupcin del (ard/are para permitir al usuario eecutar su
proceso durante un intervalo de tiempo especifico o cuanto. Si el proceso no abandona
voluntariamente el %+$, antes de que e@pire el intervalo, el relo genera una interrupcin,
(aciendo que el sistema operativo recupere el control. "l sistema operativo (ace que el proceso
que anteriormente se (allaba en estado de eecucin pase al de listo, y (ace que el primer proceso
de la lista de listos pase al estado de eecucin.
Estas tra$si#io$es (e esta(o se i$(i#a$ #omo+
) tiempo e*cedido $nom%re del proceso&: en e(ecucin 'isto
) %lo+ueado $nom%re del proceso&: en e(ecucin %lo+ueado
El pro#eso #amia (el esta(o lo%uea(o al esta(o listo+
) despertar $ nom%re del proceso&: %lo+ueado 'isto.
Co$ esto te$emos (e*i$i(as = tra$sa##io$es (e esta(o.
0 despac#o $ nom%re del proceso&: 'isto en e(ecucin
) tiempo e*cedido $ nom%re del proceso&: en e(ecucin 'isto
) %lo+ueado $ nom%re del proceso&: en e(ecucin %lo+ueado
) despertar $ nom%re del proceso &: %lo+ueado 'isto.
Suspe$si'$ : Rea$u(a#i'$.
$n proceso suspendido no puede proseguir sino (asta que lo reanuda otro proceso.
:eanudar (o activar) un proceso implica reiniciarlo a partir del punto en el que se suspendi.
Las operaciones de suspensin y reanudacin son importantes por diversa ra#ones:
E Si un sistema est& funcionando mal y es probable que falle, se puede suspender los
procesos activos para reanudarlos cuando se (aya corregido el problema.
E $n usuario que desconf,e de los resultados parciales de un proceso puede suspenderlo
(en ve# de abortarlo) (asta que verifique si el proceso funciona correctamente o no.
E 8lgunos procesos se puede suspender como respuesta a las fluctuaciones a corto pla#o
de la carga del sistema y reanudarse cuando las cargas regresen a niveles normales.
La figura # ,-. Muestra los procesos con suspensin y reanudacin.
Figura > <C. Tra$si#io$es (e esta(os (e los pro#esos #o$ suspe$si'$ : rea$u(a#i'$.
La *igura > <C, muestra el diagrama de transiciones de estado de los procesos,
modificado para incluir las operaciones de suspensin y reanudacin. Se (an aUadido dos nuevos
estados, denominados suspendido2listo y suspendido bloqueadoG no (ay necesidad de un estado
suspendido2eecutado. Sobre la l,nea discontinua se encuentran los estados activos, y debao de
ella los estados suspendidos.
$na suspensin puede ser iniciada por el propio proceso o por otro. "n un sistema con un
solo procesador el proceso en eecucin puede suspenderse a si mismoG ning!n otro proceso
podr,a estar en eecucin al mismo tiempo para reali#ar la suspensin (aunque otro proceso s,
podr,a solicitar la suspensin cuando se eecute). "n un sistema de m!ltiples procesadores, un
proceso en eecucin puede suspender a otro que se est eecutando en ese mismo momento en un
procesador diferente.
Solamente otro proceso puede suspender un proceso listo. La transicin correspondiente
es:
,; Suspe$(er D$omreE(elEpro#eso;+ Listo Suspe$(i(o0Listo.
$n proceso puede (acer que otro proceso que se encuentre en el estado suspendido2listo pase al
estado listo. La transicin correspondiente es:
-; rea$u(ar D $omreE(elEpro#eso;+ Suspe$(i(o0Listo Listo.
$n proceso puede suspender a otro proceso que est bloqueado. La transicin
correspondiente es:
<; suspe$(er D $omreE(elEpro#eso;+ ?lo%uea(o Suspe$(i(o0?lo%uea(o.
$n proceso puede reanudar otro proceso que est suspendido2bloqueado. La transicin
correspondiente es:
=; rea$u(ar D $omreE(elEpro#eso;+ Suspe$(i(o0?lo%uea(o ?lo%uea(o.
%omo la suspensin es por lo general una actividad de alta prioridad, se debe reali#ar de
inmediato. %uando se presenta finalmente el trmino de la operacin ( si es que termina),
el proceso suspendido2bloqueado reali#a la siguiente transicin.
A; #ompletarD$omreE(el Epro#eso;+ suspe$(i(o0lo%uea(o suspe$(i(o0listo.
B; suspe$(er D$omreE(elEpro#eso;+ E!e#u#i'$ Suspe$(i(o0Listo.
"n conclusin los sistemas que administran procesos deben ser capaces de reali#ar ciertas
operaciones sobre procesos y con ellos. <ales operaciones incluyen:
2 %rear un proceso.
2 0estruir un proceso.
2 Suspender un proceso.
2 :eanudar un proceso.
2 %ambiar la prioridad de un proceso.
2 Mloquear un proceso.
2 0espertar un proceso.
2 0espac(ar un proceso.
2 +ermitir que un proceso se comunique con otro (esto se denomina
comunicacin entre procesos).
Crear u$ pro#eso impli#a opera#io$es #omo+
2 0ar un nombre a un proceso.
2 *nsertarlo en la lista de procesos conocidos del sistema ( o tabla de procesos)
2 0eterminar la prioridad inicial de proceso.
2 %rear el bloque de control de proceso.
2 8signar los recursos iniciales al proceso.
$n proceso puede crear un nuevo proceso. Si lo (ace el proceso creador se denomina
proceso padre, y el proceso creado, proceso (io. Slo se necesita un padre para crear un (io. <al
creacin origina una estructura er&rquica de procesos. -o se puede destruir un proceso cuando
este (a creado otros procesos.
0estruir un proceso implica eliminarlo del sistema. Se le remueve de la tabla o listas del
sistema, sus recursos se devuelven al sistema y su bloque de control de proceso se borra (es decir,
el espacio de memoria ocupado por su +%M se devuelve al espacio de memoria disponible.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_411.html
Opera#io$es (e pro#esos : re#ursos.
Los sistemas operativos poseen una serie de funciones cuyo obetivo es el de la
manipulacin de los procesos. "n general las operaciones que se pueden (acer sobre un proceso
son las siguientes:
. Crear el pro#eso. Se produce con la orden de eecucin del programa y suele necesitar
varios argumentos, como el nombre y la prioridad del proceso, *igura > <C.

Figura > <C. Crea#i'$ (e u$ pro#eso.
La #rea#i'$ (e u$ pro#eso pue(e ser (e (os tipos+
. Fer"r%ui#a. "n ella cada proceso que se crea es (io del proceso creador y (ereda el entorno
de eecucin de su padre. "l primer proceso que eecuta un usuario ser& (io del intrprete de
comandos con el que interact!a, *igura > <G.
Figura > <G. Ferar%u)a (e pro#esos.
. No !er"r%ui#o. %ada proceso creado por otro proceso se eecuta independientemente de su
creador con un entorno diferente. "s un tipo de creacin que no suele darse en los sistemas
operativos actuales.
A(em"s (e los (os tipos a$teriores se pue(e$ reali&ar las opera#io$es siguie$tes+
. "estruir un proceso. Se trata de la orden de eliminacin del proceso con la cual el
sistema operativo destruye su PC? D Pro#es #o$trol ?lo#H;.
. !uspender un proceso. "s una operacin de alta prioridad que parali#a un proceso que
puede ser reanudado posteriormente. Suele utili#arse en ocasiones de mal funcionamiento
o sobrecarga del sistema.
. eanudar un proceso. <rata de activar un proceso que (a sido previamente
suspendido.
. %ambiar la prioridad de un proceso.
. .empori/ar la e(ecucin de un proceso. )ace que un determinado proceso se eecute
cada cierto tiempo (segundos, minutos, (oras,...) por etapas o de una sola ve#, pero
transcurrido un periodo de tiempo fio.
. Despertar u$ pro#eso. "s una forma de desbloquear un proceso que (abr& sido
bloqueado previamente por tempori#acin o cualquier otra causa.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_412.html
2.C .rocesos li0eros &-ilos o "ebras(.
.rocesos li0eros
Los procesos ligeros son programas en ejecucin son bsicamente procesos pero a diferencia de stos
ltimos que solo tienen un hilo de ejecucin los primeros tienen el hilo principal ms hilos secundarios o
hijos, en ste caso todos los procesos hijos comparten la informacin del hilo principal pero adems
puede cada hilo tener su informacin privada.
Dentro de la informacin propia tenemos:
Contador de programa
Pila
Registros.
Estado del proceso ligero.
Dentro de la informacin compartida tenemos:
Variables globales.
Archivos abiertos
Seales
Semforos.
Contabilidad.
Los hilos o procesos ligeros son una parte de cdigo o miniprograma que puede ser
ejecutada independientemente, de forma que una aplicacin o un applet puede tener
varios hilos ejecutndose simultneamente y efectuando distintas tareas; estos hilos se
encuentran dentro de un programa y son parte de l.
Los hilos, a veces tambin llamados contextos de ejecucin, pueden ser utilizados para
la implementacin de algoritmos paralelos o procesos concurrentes, sin ser necesario
disponer de equipos con estructura de multiprocesador. En el caso de un solo
procesador, los procesos ligeros incorporan mecanismos para compartirlo,
establecindose prioridades
entre ellos y tambin facilidades de sincronizacin, cuando es necesario.
Multiproceso se refiere a dos programas que se ejecutan "aparentemente" a la vez, bajo
el control del sistema operativo.
Multihilo se refiere a que dos o mas tareas se ejecutan "aparentemente" a la vez, dentro
de un mismo programa.
"ttpE>>HHH.mono0rafias.com>traba9os2D>paradi0mas=de=
pro0ramacion>paradi0mas=de=pro0ramacion.s"tml
ver arc"ivoE procesosli0eros.doc e "ilos.pdf
2.1D $oncurrencia y secuenciabilidad.
Pro#esos #o$#urre$tes.
Los procesos son concurrentes si e@isten simult&neamente. Los procesos concurrentes
pueden funcionar en forma totalmente independiente unos de otros, o pueden ser as,ncronos, lo
cual significa que en ocasiones requiere cierta sincroni#acin y cooperacin.
'as siguientes definiciones son esenciales para comprender los conceptos de
concurrencia y secuencialidad.
@ A#tivi(a(.
. Pro#esos: "s un programa en eecucin.
. Tarea: Son las distintas partes de un proceso que se eecutan simult&neamente.
@ Sistemas+
. Multiprograma#i'$: 8dmiten varias actividades que comparten el procesador, pero slo
una puede estar eecut&ndose en un momento dado.
. Multipro#eso: Las actividades se eecutan en sus propios procesadores, conectados
a travs de una red de comunicaciones.
@ Paralelismo+
"s la eecucin de diversas actividades simult&neamente en varios procesadores. Si slo
e@iste un procesador gestionando multiprogramacin, se puede decir que e@iste pseudo2
paralelismo. Se trata de un concepto f,sico producido por la e@istencia de varios procesadores.
@ Co$#urre$#ia+
"s la e@istencia de varias actividades eecut&ndose simult&neamente, y necesitan
sincroni#arse para actuar conuntamente. Se trata, en este caso, de un concepto lgico, ya que
slo (ace referencia a las actividades, sin importar el n!mero de procesadores presentes.
+ara que dos actividades, sean concurrentes, es necesario que tengan relacin entre s,,
como puede ser la cooperacin en un trabao determinado o el uso de informacin compartida.
"n un sistema monoprocesador, la e@istencia de multiprogramacin es condicin
necesaria, pero no suficiente para que e@ista concurrencia, ya que los procesos pueden eecutarse
independientemente. +or eemplo, un editor y un compilador pueden estar eecut&ndose
simult&neamente en una computadora sin que e@ista concurrencia entre ellos. +or otro lado si un
programa se est& eecutando y se encuentra grabando datos en un arc(ivo, y otro programa
tambin en eecucin est& leyendo datos de ese mismo arc(ivo, s, e@iste concurrencia entre ellos,
pues el funcionamiento de uno interfiere en el funcionamiento de otro.
Si un sistema es multiprocesador, tambin pueden presentarse situaciones de concurrencia
siempre y cuando las actividades necesiten actuar entre s,, bien por utili#ar informacin com!n, o
por cualquier otra causa.
Los procesos del sistema pueden eecutarse concurrentemente, puede (aber m!ltiples
tareas en el %+$ con varios procesos. "@isten varias ra#ones para permitir la eecucin
concurrente:
E 0ompartir recursos fsicos .
Xa que los recursos del (ard/are de la computadora son limitados, nos podemos ver
obligados a compartirlos en un entorno multiusuario.
@ Compartir re#ursos l'gi#os.
+uesto que varios usuarios pueden interesarse en el mismo elemento de informacin (por
eemplo un arc(ivo compartido), debemos proporcionar un entorno que permita el acceso
concurrente a estos tipos de recursos.
1 2celerar los c3lculos.
Si queremos que una tarea se eecute con mayor rapide#, debemos dividirla en subtareas,
cada una de las cuales se eecutara, en paralelo con las dem&s.
@ Mo(ulari(a(.
+odremos construir el sistema en forma modular, dividiendo las funciones del sistema en
procesos separados.
1 0omodidad .
$n usuario puede tener que eecutar varias tareas a la ve#, por eemplo puede editar,
imprimir y compilar en paralelo.
La eecucin concurrente que requiere la cooperacin entre procesos necesita un
mecanismo para la sincroni#acin y comunicacin de procesos, e@clusin mutua y
sincroni#acin.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G212."tml
.roblemas de $oncurrencia
En los sistemas de tiempo compartido (aquellos con varios usuarios, procesos, tareas, trabajos que
reparten el uso de CPU entre estos) se presentan muchos problemas debido a que los procesos
compiten por los recursos del sistema. magine que un proceso est escribiendo en la unidad de cinta y
se le termina su turno de ejecucin e inmediatamente despus el proceso elegido para ejecutarse
comienza a escribir sobre la misma cinta. El resultado es una cinta cuyo contenido es un desastre de
datos mezclados. As como la cinta, existen una multitud de recursos cuyo acceso debe der controlado
para evitar los problemas de la concurrencia.
El sistema operativo debe ofrecer mecanismos para sincronizar la ejecucin de procesos: semforos,
envo de mensajes, 'pipes', etc. Los semforos son rutinas de software (que en su nivel ms interno se
auxilian del hardware) para lograr exclusin mutua en el uso de recursos. Para entender este y otros
mecanismos es importante entender los problemas generales de concurrencia, los cuales se describen
enseguida.
Condiciones de Carrera o Competencia: La condicin de carrera (race condition) ocurre cuando
dos o ms procesos accesan un recurso compartido sin control, de manera que el resultado combinado
de este acceso depende del orden de llegada. Suponga, por ejemplo, que dos clientes de un banco
realizan cada uno una operacin en cajeros diferentes al mismo tiempo.
El usuario A quiere hacer un depsito. El B un retiro. El usuario A comienza la transaccin y lee
su saldo que es 1000. En ese momento pierde su turno de ejecucin (y su saldo queda como 1000) y el
usuario B inicia el retiro: lee el saldo que es 1000, retira 200 y almacena el nuevo saldo que es 800 y
termina. El turno de ejecucin regresa al usuario A el cual hace su depsito de 100, quedando saldo =
saldo + 100 = 1000 + 100 = 1100. Como se ve, el retiro se perdi y eso le encanta al usuario A y B, pero
al banquero no le convino esta transaccin. El error pudo ser al revs, quedando el saldo final en 800.
Postergacin o Aplazamiento ndefinido(a): Esto se mencion en el apartado anterior y consiste
en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de ejecucin para terminar
su tarea. Por ejemplo, que un proceso ocupe un recurso y lo marque como 'ocupado' y que termine sin
marcarlo como 'desocupado'. Si algn otro proceso pide ese recurso, lo ver 'ocupado' y esperar
indefinidamente a que se 'desocupe'.
Condicin de Espera Circular: Esto ocurre cuando dos o ms procesos forman una cadena de
espera que los involucra a todos. Por ejemplo, suponga que el proceso A tiene asignado el recurso 'cinta'
y el proceso B tiene asignado el recurso 'disco'. En ese momento al proceso A se le ocurre pedir el
recurso 'disco' y al proceso B el recurso 'cinta'. Ahi se forma una espera circular entre esos dos procesos
que se puede evitar quitndole a la fuerza un recurso a cualquiera de los dos procesos.
Condicin de No Apropiacin: Esta condicin no resulta precisamente de la concurrencia, pero
juega un papel importante en este ambiente. Esta condicin especifica que si un proceso tiene asignado
un recurso, dicho recurso no puede arrebatrsele por ningn motivo, y estar disponible hasta que el
proceso lo 'suelte' por su voluntad.
Condicin de Espera Ocupada: Esta condicin consiste en que un proceso pide un recurso que
ya est asignado a otro proceso y la condicin de no apropiacin se debe cumplir. Entonces el proceso
estar gastando el resto de su time slice checando si el recurso fue liberado. Es decir, desperdicia su
tiempo de ejecucin en esperar. La solucin ms comn a este problema consiste en que el sistema
operativo se d cuenta de esta situacin y mande a una cola de espera al proceso, otorgndole
inmediatamente el turno de ejecucin a otro proceso.
Condicin de Exclusin Mutua: Cuando un proceso usa un recurso del sistema realiza una serie
de operaciones sobre el recurso y despus lo deja de usar. A la seccin de cdigo que usa ese recurso
se le llama 'regin crtica'. La condicin de exclusin mutua establece que solamente se permite a un
proceso estar dentro de la misma regin crtica. Esto es, que en cualquier momento solamente un
proceso puede usar un recurso a la vez. Para lograr la exclusin mutua se ideo tambin el concepto de
'regin crtica'. Para logar la exclusin mutua generalmente se usan algunas tcnicas para lograr entrar a
la regin crtica: semforos, monitores, el algoritmo de Dekker y Peterson, los 'candados'. Para ver una
descripcin de estos algoritmos consulte
Condicin de Ocupar y Esperar un Recurso: Consiste en que un proceso pide un recurso y se le
asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado.
Los problemas descritos son todos importantes para el sistema operativo, ya que debe ser capaz de
prevenir o corregirlos. Tal vez el problema ms serio que se puede presentar en un ambiente de
concurrencia es el 'abrazo mortal', tambin llamado 'trabazn' y en ingls deadlock. El deadlock es una
condicin que ningn sistema o conjunto de procesos quisiera exhibir, ya que consiste en que se
presentan al mismo tiempo cuatro condiciones necesarias: La condicin de no apropiacin, la condicin
de espera circular, la condicin de exclusin mutua y la condicin de ocupar y esperar un recurso. Ante
esto, si el deadlock involucra a todos los procesos del sistema, el sistema ya no podr hacer algo
productivo. Si el deadlock involucra algunos procesos, stos quedarn congelados para siempre.
2.1D.1 !1clusin mutua de secciones criticas.
E8#lusi'$ Mutua.
%onsiste en garanti#ar que durante la eecucin de una regin cr,tica los recursos
compartidos solo se asignen a uno y solo a uno de los procesos.
Si un recurso compartido es una variable, la e@clusin mutua asegura que a lo m&s un
proceso a la ve# (a accedido a ella durante la actuali#acin cr,tica que conduce a valores
temporalmente inestables. %onsecuentemente los otros procesos ven solamente valores estables
de las variables compartidas. %on los dispositivos compartidos la necesidad para la e@clusin
mutua puede ser incluso m&s obvia cuando uno considera el problema que puede provocar sus
usos.
+or eemplo, supongamos que en el sistema e@iste un arc(ivo formado por registros
compuestos por Y campos, figura # 14:
Figura # 14. Registro (e A #ampos.
+ara que un registro sea valido debe estar totalmente actuali#ado, es decir, si se modifica
el valor del campo 8, el resto de los campos deben ser co(erentes con el nuevo valor de dic(o
campo, ya que de otro modo el registro ser,a inconsistente.
Si en el momento en que un proceso escribe o modifica un registro y e@iste otro proceso
que reali#a la lectura de ese mismo registro, y el primero de ellos slo (ubiese tenido tiempo de
modificar el campo 8, la informacin obtenida por el segundo proceso seria inconsistente. +ara
evitar esto se deben sincroni#ar los procesos de manera que mientras uno escribe, otro pueda leer.
"sto no ocurre en aquellos casos en que dos procesos tratan de leer en el mismo arc(ivo,
a!n coincidiendo en el mismo registro.
Zenerali#ando. Supongamos que los dos procesos que coinciden en el mismo registr,
uno esta escribiendo y el otro leyendo, llamados "S%:*M*: y L"":, se encuentran en un
sistema monoprocesador multiprogramado y son los !nicos presentes en ese momento, ver figura
# 15
Figura # 15. Co$#urre$#ia
"n el momento de un cambio de proceso del uno al otro se pueden producir las siguientes
situaciones:
. Si$ si$#ro$i&a#i'$ e$tre pro#esos. +uede darse el caso de que "S%:*M*: est actuali#ando un
registro y se quede a med,as, sorprendindole el cambio de proceso, por tanto, terminar& de
escribirlo cuando vuelva a (acer uso del procesador. %on el cambio le tocar& el turno al proceso
L"":, que acceder& a dic(o registro pudiendo leerlo completamente. "s evidente que los datos
le,dos ser&n inconsistentes.
. Co$ si$#ro$i&a#i'$ e$tre pro#esos. Supongamos alg!n mecanismo que pro(,ba la lectura
(bloqueo de registros) a cualquier proceso, mientras el proceso "S%:*M*: est reali#ando alguna
operacin. "n este caso, L"":, al (acer uso del procesador que se encuentra bloqueado, quedar,a
en espera de que el registro quede totalmente escrito y se proceda a su desbloqueo, L"": pasar,a
a estado bloqueado, "S%:*M*: terminar,a su trabao sobre el registro y en el siguiente cambio
L"": proceder,a a (acer el suyo.
"sta sincroni#acin por la cual una actividad impide que otras puedan tener acceso a un
dato mientras se encuentra reali#ando una operacin sobre el mismo es lo que se conoce como
e@clusin mutua.
La #ona de cdigo de un proceso que no puede ser interrumpida por otro, por los motivos
e@puestos anteriormente se le llama :egin %r,tica.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso,Iso,E-,=..tml
Regio$es #r)ti#as.
"s el conunto de actividades elementales cuya eecucin e@ige el monopolio de recursos.
+or eemplo, para indicar que alguna accin se reali#ar& con acceso e@clusivo a ciertos datos
compartidos.
egin datos ) compartidos do accin
KComo evitar la regi'$ #riti#aL. La clave para prevenir el problema aqu, y en muc(as
otras situaciones en que interviene la memoria compartida, arc(ivos compartidos y todo lo que se
comparte, consiste en determinar alguna manera de pro(ibir que un proceso lea y escriba los
datos compartidos al mismo tiempo.
0e otra manera lo que se necesita es la sincroni#acin. $na manera de asegurar de que si
un proceso sta utili#ando una variable o arc(ivo compartido, es que los otros procesos no
pueden (acer lo mismo.
+ara tener una solucin adecuada a la regi'$ #r)ti#a se necesita que se cumplan cuatro
condiciones:
3. -unca dos procesos pueden encontrarse simult&neamente dentro de sus regiones cr,ticas.
7. -o se (acen suposiciones acerca de las velocidades relativas de los procesos o del
-!mero de %+$.
T. -ing!n proceso suspendido fuera de la regin cr,tica debe bloquear a otros procesos.
V. -unca un proceso debe querer entrar en forma arbitraria en su regin cr,tica.
:epresentacin de regiones criticas, observe figura # 1-
Figura # 1-. Represe$ta#i'$ (e regio$es #riti#as
%uando se diseUa un proceso que debe contener una o varias regiones cr,ticas se deben de tomar
en cuenta las siguientes consideraciones:
. La regin cr,tica debe ser eecutada lo m&s r&pido posible.
. $n programa no debe ,nter bloquearse en una regin cr,tica.
. Las regiones cr,ticas deben ser programadas con muc(o cuidado (no se permiten
%iclos indefinidos).
. ;ientras un proceso est& en su regin cr,tica otros procesos pueden continuar
"ecut&ndose fuera de las regiones cr,ticas.
. %uando se tienen procesos que comparten datos, si un proceso dea la regin
%r,tica otro de los procesos que espera a entrar en su regin cr,tica puede proceder.
%uando el proceso termina, voluntaria o involuntariamente, el sistema operativo debe de
reali#ar la limpie#a propia de fin de proceso y liberar la e@clusin mutua de otros procesos.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_213.html
,a e1clusin mutua: Forma de asegurar que si un proceso est usando una variable o
archivo compartido, los otros procesos quedarn excluidos de hacer lo mismo.
Los procesos pueden tener en su cdigo secciones en que realizan clculos internos y
operaciones que no dan lugar a condiciones de competencia. Sin embargo existen
secciones de programa en que el proceso est accediendo a recursos compartidos que
pueden dar pi a condiciones de competencia.
La parte del programa en que se accede a un recurso compartido se denomina seccin
o re0in crtica (requisito necesario, pero no suficiente). Los requisitos para que
procesos paralelos cooperen de manera correcta usando datos compartidos son los
siguientes:
Dos procesos nunca pueden estar simultneamente dentro de sus regiones
crticas.
No se puede suponer nada acerca de las velocidades de ejecucin de los
procesos o el nmero de las CPU.
Ningn proceso que se ejecute fuera de su regin crtica puede bloquear a otros
procesos.
Ningn proceso deber tener una espera indefinida para entrar en su regin
crtica.
La exclusin mutua debe ponerse en prctica slo cuando los procesos obtienen
acceso a datos compartidos modificables; cuando los procesos realizan operaciones
que no entran en conflicto con otras, deben permitirse que procedan concurrentemente.
Cuando un proceso obtiene acceso a datos compartidos modificables, se dice que se
encuentra en una seccin crtica. Es evidente que, para evitar la clase de problemas
observados en la seccin anterior, debe asegurarse que cuando un proceso se
encuentre en una seccin crtica, los dems procesos (o al menos los que tengan
acceso a los datos compartidos) no pueden entrar a sus propias secciones crticas.
Mientras un proceso se encuentra en su seccin crtica, otros procesos pueden, claro
est, seguir ejecutndose fuera de sus secciones crticas. Cuando un proceso
abandona su regin crtica, otro proceso que espera entrar en su propia seccin crtica
(si existe algn proceso en espera). Lograr que se cumpla la exclusin mutua es uno de
los problemas fundamentales de la programacin concurrente. Se han propuesto
muchas soluciones, algunas de software y otras de hardware, algunas sencillas y otras
complejas, y algunas que requieren la cooperacin voluntaria de los procesos y otras
que exigen un escrito ajuste a rgidos protocolos.
Encontrarse dentro de una regin crtica es un estado especial concedido a un proceso.
El proceso tiene acceso exclusivo a los datos compartidos y los dems procesos que
requieran acceso a los datos en ese momento deben esperar. As pues, las secciones
crticas deben ejecutarse tan rpido como sea posible; un proceso no se debe bloquear
dentro de su propia seccin crtica y las secciones crticas deben codificarse con mucho
cuidado (para evitar, por ejemplo, la posibilidad de ciclos infinitos).
Si un proceso de una seccin crtica termina, ya sea voluntaria o involuntariamente, el
sistema operativo, al realizar su mantenimiento de terminaciones, debe liberar la
exclusin mutua de manera que otros procesos puedan entrar en sus regiones crticas.
!l problema de la Seccin $rtica
n procesos compitiendo para utilizar algn dato compartido.
Cada proceso tiene un segmento de cdigo, llamado seccin crtica, en el que se
accede al dato compartido.
Problema asegurarse de que cuando un proceso esta ejecutndose en su
seccin crtica, a ningn otro proceso se le permite ejecutar la suya.
Estructura del proceso Pi
repeat
entry section
seccin crtica
exit section
seccin restante
until false;
Solucin al problema de la Seccin $rtica
Una solucin al problema de la seccin crtica debe satisfacer los siguientes tres
requerimientos:
3. !1clusin 3+tua. Si un proceso Pi esta ejecutandose en su seccin
crtica, entonces ninguno de los otros procesos puede estar en su seccin
crtica
7. .ro0reso. Si ningn proceso esta ejecutndose en su seccin crtica y
existen procesos que quieren entrar en su seccin crtica, entonces la
seleccin del prximo proceso que entrar a la seccin crtica no puede
ser pospuesta indefinidamente.
T. !spera limitada. Debe existir un lmite del nmero de veces que se les
permite a otros procesos entrar en sus secciones crticas en el intervalo
entre que un proceso ha hecho un requerimiento para entrar en su
seccin crtica y que se le concede el permiso.
Se supone que cada proceso se ejecuta a velocidad distinta de cero.
Ninguna suposicin respecto a la velocidad relativa de los n procesos.
Intentos iniciales para resolver el problema
nhibir las interrupciones.
Solo dos procesos, P0 and P1
Estructura general del proceso Pi
repeat
entry section
seccin crtica
exit section
seccin restante
until false;
Los procesos pueden compartir algunas variables comunes para sincronizar sus
acciones.
/l0oritmo 1
Variables compartidas:
var turn: (0..1);
inicialmente turn = 0
turn = i ? Pi puede entrar en su seccin crtica
Proceso Pi
repeat
H"ile turn ? i do no-op;
seccin crtica
turn := j;
seccin restante
until false;
Satisface la condicin de exclusin mtua, pero no la de progreso (si turn=0 y P1 esta
listo para entrar en su seccin crtica, P1 no puede hacerlo, incluso aunque P0 este en
la seccin restante)
/l0oritmo 2
Variables compartidas
var flag: array [0..1] of boolean;
inicialmente flag [0] = flag [1] = false.
flag [i] = true ? Pi listo para entrar en su seccin crtica
Proceso Pi
repeat
flag[i] := true;
H"ile flag[j] do no-op;
seccin crtica
flag [i] := false;
seccin restante
until false;
Satisface la exclusin mtua, pero no el requerimiento de progreso. (P0 pone flag[0 ]
=true y P1 pone flag[1 ] =true; cada uno esperando al otro indefinidamente)
/l0oritmo
- Combinacin de las variables compartidas de los algoritmos 1 y 2.
- Proceso Pi
repeat
flag [i] := true;
turn := j;
H"ile (flag [j] and turn = j) do no-op;
seccin crtica
flag [i] := false;
seccin restante
until false;
- Cumple los tres requerimientos; resuelve el problema de la seccin crtica para dos
procesos.
/l0oritmo del panadero
Antes de entrar a su seccin crtica, los procesos reciben unnmero. El que
posea el nmero menor entra en la seccin crtica.
Si los procesos Pi y Pj reciben el mismo nmero, si i < j, entonces Pi es servido
primero; si no lo es Pj .
El esquema de numeracin siempre genera nmeros en orden creciente; por
ejemplo 1,2,3,3,3,3,4,5...
2.1D.2 Sincroni2acin de procesos en S.$.
Si$#ro$i&a#i'$.
"n procesos concurrentes, la eecucin de un proceso se desarrolla en forma as,ncrona
respecto a los otros. Sin embargo cuando dos, o m&s procesos necesitan entrar en regin cr,tica,
es necesario que e@ista una sincroni#acin entre ellos a fin de garanti#ar que al menos uno y solo
un proceso entrar& en regin cr,tica.
Si una actividad desea impedir que otra acceda a ciertos datos compartidos, mientras no se
cumpla una determinada condicin, debemos sincroni#ar las actividades con dic(a condicin. +or
tanto, la sincroni#acin es un elemento necesario para asegurar la e@clusin mutua.
E8iste$ tres algoritmos (iseMa(os para este *i$4 so$ los siguie$tes+
Espera A#tiva.
Espera $o A#tiva
Me#a$ismos (e 1ar(Nare.
Algoritmo (e Espera a#tiva.
"stos algoritmos establecen la espera de entrada a la regin cr,tica con un bucle
que ser& roto en el momento en que se cumpla una determinada condicin. Se, les llama as, por
que el proceso no queda bloqueado en su eecucin, sino que constantemente compite por el
procesador. "ntre los distintos algoritmos de este tipo e@istentes podemos citar:
. Espera #o$ mute8. 8lgoritmo que utili#a un s/itc( (;$<".) a travs del
cual se produce la sincroni#acin.
. Alter$a$#ia. Ligeramente meor que el anterior, utili#a tambin una
variable turno para reali#ar el sincronismo entre los
+rocesos.
. Algoritmo (e DEOOER. :esuelve el problema mediante la solucin propuesta
por 0"WW":, basando su funcionamiento en una
<abla unidimensional de dos elementos lgicos
(S/itc(es).
Algoritmo (e Espera $o a#tiva.
Son los algoritmos que establecen la espera para entrar en la regin cr,tica bloqueando, el
proceso, (aciendo que dee de competir por el procesador (asta que se cumpla la condicin de
desbloqueo.
E$tre estos algoritmos e8iste$ los siguie$tes:
. Sem"*oros+ +ara eliminar los problemas que se producen con los algoritmos de espera activa,
fundamentalmente los referidos a la sobrecarga que producen en el sistema, 0i9stra(34?Y)
diseUo un mecanismo basado en una variable entera utili#ada como contador de peticiones de
entrada a una seccin cr,tica. "sta variable es compartida por todos los procesos del sistema. "ste
nuevo tipo de variable se denomin sem&foro, por su capacidad de gestionar el tr&fico de los
proceso que desean acceder a datos compartidos.
%on este sistema, cuando un proceso intente entrar en una regin cr,tica mientras otro
est& accediendo a los datos compartidos, se bloquear& de igual manera que cuando un proceso
accede a un recurso que est& ocupado.
$n sem&foro se define como una variable entera que puede iniciali#arse y su valor no
debe ser negativo y solo puede ser manipulada por las operaciones P y V.
. Opera#io$es P : V. "stas operaciones son indivisibles, es decir que cuando un proceso eecuta
una de ellas no puede ser interrumpida.
Opera#i'$ V+ "sta operacin consiste en incrementar en uno el valor del sem&foro sobre el que
act!a, tambin es conocida como signal. "s una operacin de liberacin.
8s,, si se tiene un sem&foro S4 V (e S VDS; o sig$alDS; causara S2SP,. VDMQTER; 0
libera
Opera#i'$ P+ Mloqueo, decrementa en uno el valor del sem&foro sobre el que act!a siempre y
cuando el valor del sem&foro es OJ9 (positivo) tambin se le conoce en la literatura inglesa
como Sait. +or eemplo si tenemos PDS;4 SaitDS; si S2S0,. PDMQTER; 2 "spera el proceso.
0e las definiciones anteriores se puede observar que el valor de un sem&foro esta
relacionado con el n!mero de veces que se eecutan, dic(as operaciones es decir, el valor del
sem&foro S es igual a su valor inicial m&s n!mero de operaciones V menos n!mero de
operaciones P reali#adas por ese sem&foro.
VALDS; 2 CDS; P NVDS; 0 NPDS; NPD ; 32 NVD ; P,
VALOR VALOR INICIAL
+or definicin se tiene que el valor del sem&foro debe ser mayor que cero, VALDS;59. "n
el caso cuando el valor del sem&foro es cero que relacin nos queda:
NPDS; 2 CDS; P NVDS;
"s importante seUalar que la relacin anterior ser& siempre valida independientemente del
n!mero de operaciones P y V eecutadas sobre el sem&foro.
. Regio$es #r)ti#as+ Son sistemas que permiten establecer protecciones contra una mala
utili#acin de los usuarios. +ara ello slo permiten que los datos compartidos se puedan acceder
desde determinadas regiones quedando transparentes desde el resto.
<iene inconvenientes relacionados con la sincroni#acin y no permite que varias actividades
puedan reali#ar operaciones de lectura simult&nea.
. Regio$es #riti#as #o$(i#io$ales+ "s una meora del mtodo anterior tratando de resolver
algunos problemas de sincroni#acin que se presentan.
. Mo$itores+ $no de los problemas en los mecanismos anteriores es que el programador tiene
que proporcionar de forma e@pl,cita el modo de sincroni#acin. +ara evitarlo ?. 1a$se$ :
C.A.R. 1oare desarrollarn un nuevo mecanismo denominado Mo$itor4 que debe ser soportado
por el lenguae correspondiente.
$n monitor permite compartir, segura y eficientemente, datos entre varias actividades,
garanti#ando la e@clusin mutua, sin necesidad de que el programador tenga que suministrarla
e@pl,citamente.
Se basa en dos premisas: la primera es la abstraccin de datos consistente en una tcnica
capa# de separar las operaciones a eecutar sobre los datos, de los detalles de diseUo propio de los
mismos (los lenguaes ;odula y 8da soportan este tipo de estructuras). La segunda es que
reali#an la e@clusin mutua de forma impl,cita.
La finalidad m&s !til de los monitores es reunir todas las funciones que operan sobre un
conunto de datos compartidos en un slo mdulo, de manera que todos los accesos a esos datos
estar&n for#ados a utili#ar dic(as funciones.
. Co$ta(ores (e eve$tos+ "s un mecanismo para sincroni#ar actividades sin que sea necesario
for#ar la e@clusin mutua, ya sea por que no deseamos limitar la concurrencia de las actividades,
o simplemente porque no lo necesitamos. Se basa en una variable entera que cuenta determinadas
operaciones.
. Me$sa!es+ ;ecanismo que permite intercambiar informacin necesaria durante el desarrollo
normal de un proceso en eecucin. "s m&s un mecanismo de cooperacin que de sincroni#acin.
E8iste$ (os tipos (e #omu$i#a#i'$ e$tre pro#esos+
0 Dire#ta: "nvi y recepcin de mensaes entre siG de manera que se asocia un enlace
vi direccional !nico entre cada dos procesos.
0 I$(ire#ta+ ;ensaes enviados y recibidos a travs de mail bo@ees o bu#ones de correo. %on
este mtodo cada proceso puede estar relacionado con tantos bu#ones como desee consiguiendo
comunicarse con tantos procesos como sea necesario.
Me#a$ismos (e 1ar(Nare
Son instrucciones (ard/are que aseguran la e@clusin mutua. "ntre las m&s utili#adas son
las siguientes:
. Des.ailitar i$terrup#io$es.
Se puede for#ar la e@clusin mutua des(abilitando las interrupciones mientras (aya
alguna actividad en la regin cr,tica. 0e este modo, dic(a actividad no podr& ser interrumpida y,
por tanto, no se podr& producir ning!n cambio de proceso. La (abilitacin y des(abilitacin se
reali#a con una instruccin m&quina, es una operacin r&pida.
. I$stru##i'$ TEST0AND0SET.
Dor#a la e@clusin mutua. La ventaa es que no puede ser interrumpida por que no muc(as
computadoras la poseen.
. Lo#H.
Se basa en la instruccin anterior y permite el acceso a la regin cr,tica a un proceso en
caso de no e@istir otra actividad dentro de su regin cr,tica, no permitiendo en caso contrario.
KComo resolver la e8#lusi'$ mutua usa$(o sem"*orosL.
+ara resolver el problema de debe (acer lo siguiente:
3.2 *dentificar todas las regiones cr,ticas.
7.2 0efinir tantos sem&foros como regiones cr,ticas se tengan, dic(os sem&foros se
iniciali#ar&n con 3.
T.2 %'$ de las regiones cr,ticas ser& antecedida por la operacin + y precedida por la
operacin H.
"emplo: ;$<". es el sem&foro
:egin cr,tica.
%on lo anterior solo un proceso podr& entrar a la regin cr,tica con lo que se esta asegurando la
e@clusin mutua.
MQTER 2 ,
E Bue pasa si se tiene:
A; PDMQTER; E$tra el pro#eso4 se (e#reme$ta e$ u$o el sem"*oro
SECCION CRITICA pero $o liera4 por lo ta$to .a: u$ (ea( lo#H4 $o
PDMQTER; .a: si$#ro$i&a#i'$ e$tre pro#esos $i e8#lusi'$
mutua
?; VDMQTER; Sale el pro#eso se i$#reme$ta e$ u$o el sem"*oro
SECCION CRITICA liera el pro#eso4 por lo ta$to $o .a: (ea( lo#H4 $o
VDMQTER; origi$a pro#eso (e e8#lusi'$ mutua.
C; VDMQTER; Sale el pro#eso se i$#reme$ta e$ u$o el sem"*oro
SECCION CRITICA pero $o liera4 por lo ta$to $o .a: (ea( lo#H.
PDMQTER;
D; PDMQTER; E$tra el pro#eso #o$sume : liera4 por lo ta$to $o
SECCION CRITICA .a: (ea( lo#H4 : (a solu#i'$ a la e8#lusi'$ mutua
VDMQTER; : a la si$#ro$i&a#i'$.
Pregu$ta. @ Harios procesos actuali#an en forma concurrente a una lista ligada.
a) Bue problema se puede producir.
:.2 Se puede producir un problema de sincroni#acin y no (ay e@clusin mutua.
b) "s un problema de e@clusin mutua.
:.2 "@clusin mutua.
c) %omo resolver el problema.
:.2 0ando solucin a la e@clusin mutua.
E Si las operaciones + y H no fueran atmicas, la e@clusin mutua seria violada.
:.2 Si por que los procesos pueden tomar el mismo valor y no se incrementa dos veces
sino solo una.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G21%."tml
Prolemas #l"si#os (e si$#ro$i&a#i'$.
"ste tipo de problemas constituyen eemplos de una amplia clase de problemas de control
de concurrencia. "stos problemas se utili#an para probar casi todos los esquemas de
sincroni#acin propuestos. "n las soluciones se emplean sem&foros para la solucin.
@ El prolema (e u**er limita(o.
Supongamos que el depsito consiste en n buffers, cada uno capa# de almacenar un
elemento. "l sem&foro ;$<". proporciona la e@clusin mutua para los accesos al depsito de
buffers y se le asigna un valor inicial de 3. Los sem&foros vac,os y llenos cuentan el n!mero de
buffers vac,os y llenos, respectivamente. "l sem&foro vac,o recibe 3 un valor inicial nG al
sem&foro lleno se le asigna el valor inicial 6.
@ El prolema (e los le#tores : es#ritores.
$n obeto de datos (como un arc(ivo o un registro) va a ser compartido por varios
procesos concurrentes. 8lgunos de estos procesos slo quieren leer el contenido del obeto
compartido, mientras que otros quieren actuali#arlos (o sea, leerlo y escribirlo), (acemos una
distincin entre estos dos tipos de procesos refirindonos a los procesos interesados slo en leer
como lectores y escritores y a los dem&s como escritores. Fbviamente, el que dos lectores tengan
acceso simult&neo al obeto de datos compartido no tendr& ning!n efecto adversoG sin embargo, si
un escritor y otro proceso (ya sea lector o escritor) tiene acceso simult&neo al obeto compartido,
puede surgir el caos.
+ara asegurar que no suran estas dificultades, es necesario que los escritores tengan
acceso e@clusivo al obeto compartido. 8 este problema de sincroni#acin se le conoce como
problema de los lectores y escritores, el cual es (a utili#ado para probar casi todas las nuevas
primitivas de sincroni#acin.
@ El prolema (e los *il'so*os #ome$sales.
%inco filsofos pasan su vida comiendo u pensando. Los filsofos comparten una mesa
circular rodeada por cinco sillas, una para cada uno de ellos. "n el centro de la mesa se encuentra
una fuente de arro#, y tambin sobre la mesa (ay cinco palillos c(inos. %uando un filsofo
piensa, no interact!a con sus colegas. Fcasionalmente, un filsofo tiene (ambre y trata de coger
los dos palillos que est&n m&s cerca de l (los palillos colocados entre l y sus vecinos de la
derec(a y de la i#quierda). $n filsofo slo puede coger un palillo a la ve# y, obviamente, no
puede ser el que esta en la mano de un vecino. %uando un filsofo ambiento tiene sus dos palillos
al mismo tiempo come sin soltarlos. %uando termina de comer, coloca ambos palillos sobre la
mesa y comien#a a pensar otra ve#.
E Prolema (el pro(u#tor #o$sumi(or.
"n un conte@to de procesos concurrentes, se tiene un conunto de procesos productores de
mensaes y otro conunto de procesos consumidores de mensaes. La #ona donde se depositar&n y
recoger&n los mensaes es un buffer de tamaUo $ ($ localidades).
<anto productores como consumidores eecutaran c,clicamente los siguientes algoritmos.
6er figura # 78.
Figura # 78. Productor consumidor.
"l recurso que se va a compartir es el buffer por lo tanto la seccin critica ser& el acceso y
manipulacin de dic(o buffer.
E +ara resolver el problema de e@clusin mutua ser& necesario definir un sem&foro para controlar
el acceso al buffer, figura # 71.
Figura # 71. De*i$i#i'$ (e u$ sem"*oro para #o$trolar el a##e(o a u**er.
2 %uando el consumidor se apodera del buffer + ( ) [Sorpresa esta va#)o T
Pro(u#tor ga$a
se apo(era (el u**er
TTTsorpresa el u**er esta lle$oUUU
$o va a po(er (epositar
: por lo ta$to va a lierar el u**er
$u$#a .a#e VD ;.
+roductor consumidor utili#ando espera activa, *igura > --.
Pro(u#tor Co$sumi(or
Pro(u#e msg. Lo#H De8iste msg.;
Lo#H Despa#io (ispo$ile; Lo#H Da##eso a u**er;
Lo#H Da##eso a u**er; e8trae msg.
Deposita msg. Q$lo#H Da##eso a u**er;
Q$lo#H Da##eso a u**er; Q$lo#H Despa#io (ispo$ile;
Q$lo#H De8iste msg.; Co$sume msg.
Figura > --.
+roblema de sincroni#acin. La sincroni#acin entre productor y consumidor es necesaria
debido a lo siguiente: Los productores no deben depositar mensaes si el buffer se encuentra lleno
y los consumidores no deben accesar el buffer cuando este se encuentre vaci.
+ara resolver el problema de definir& un sem&foro que defina el espacio disponible y ser&
iniciali#ado con un valor igual a n y un sem&foro que defina la e@istencia de mensae el cual ser&
iniciali#ado con un 6.
Pro(u#tor Co$sumi(or
pro(u#e msg. P De8iste msg.;
R P Despa#io (ispo$ile; P Da##eso s u**er;
P Da##eso a u**er; e8trae msg.
@ (eposita msg V Da##eso a u**er;
V Da##eso a u**er; V Despa#io (ispo$ile;
R V De8iste msg; Co$sume msg.
Solu#i'$ a la e8#lusi'$ mutua R V
0 Solu#i'$ (e la si$#ro$i&a#i'$
2 Muffer lleno "spacio disponibleJ-, e@iste msgJ6.
%asos cr,ticos
2 Muffer vac,o
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G21)."tml
2.1D.2.1 3ecanismo de sem4foros.
Semforos
Son una herramienta de sincronizacin. Es una variable protegida que solo puede ser modificada por la
rutina de inicializacin y por otras dos operaciones atmicas:
P( ) <- wait
V( ) <- signal
Las operaciones a las cuales se puede acceder son:
nicializacin: Crea un nuevo semforo asignndole un valor inicial
P(s): while (s=0) do no_op ATMCA
s:=s-1
V(s): s:=s+1 ATMCA
Existen bsicamente dos tipos de semforos:
Semforos contadores: Toman valores positivos mayores o iguales a 0. Se utilizan para
sincronizacin de procesos.
Semforos binarios: Toman los valores 0 1 y se utilizan para exclusin mutua.
A continuacin se presenta una solucin mediante semforos del problema productor/consumidor.
#define N 100
semaphore mutex = 1;
semaphore empty = N;
semaphore full = 0;
void productor(void)
{int item;
while(1){
produce_item(item);
down(empty);
down(mutex);
enter_item(item);
up(mutex);
up(full);}
}
void consumidor(void)
{ int item;
while(1){
down(full);
down(mutex);
remove_item(&item);
up(mutex);
up(empty);
consume_item(item);}
}
En este caso tenemos la utilizacin de 3 semforos, uno destinado al control de la exclusin mutua y los
otros dos destinados a la sincronizacin de los procesos para el control de buffer lleno y vaco.
Podramos utilizar semforos para un algoritmo de espera ocupada con n procesos, pero los n procesos
que estn ejecutando el while de la funcin P(s) van a la cola de ready en un instante de tiempo
reduciendo la performance general del equipo.
Para evitar la espera ocupada se crea un semforo que sea un registro de un nuevo tipo:
Semforo = Record
Valor:nteger
L:Lista_de_Procesos
End
P(s) {
s.Valor:= s.valor - 1
if s.Valor < 0 then agregar este proceso a s.L
bloquear;
end}
V(s){
s.Valor:=s.Valor + 1
if s.Valor 0 then quitar un proceso y a s.L
despertar(y) }
Sem"*oros
$n sem&foro es un tipo de datos abstracto que permite el uso de un recurso de manera e@clusiva
cuando varios procesos est&n compitiendo.
"l tipo de datos abstracto cumple la siguiente sem&ntica:
"l estado interno del sem&foro cuenta cuantos procesos todav,a pueden utili#ar el recurso.
Se puede reali#ar, por eemplo, con un n!mero entero que nunca llega a ser negativo.
"@iten tres operaciones con un sem&foro: init,5, Hait,5, y signal,5 que reali#an lo
siguiente:
init()
: *niciali#a el sem&foro antes de que cualquier proceso (aya eecutado ni una operacin
Hait,5 ni una operacin signal,5 al l,mite de n!mero de procesos que tengan derec(o a
acceder el recurso. Si se iniciali#a con 3, se (a contruido un sem&foro binario.
5ait()
: Si el estado indica cero, el proceso se queda atrapado en el sem&foro (asta que sea
despertado por otro proceso. Si el estado indica que un proceso m&s puede acceder el
recurso se decrementa el contador y la operacin termina con e@ito.
La operacin Hait,5 tiene que est&r implementada como una instruccin atmica. Sin
embargo, en muc(as implementaciones la operacin Hait,5 puede ser interrumpida.
-ormalmente e@iste una forma de comprobar si la salida del Hait,5 es debido a una
interrupcin o porque se (a dado acceso al sem&foro.
signal()
: $na ve# se (a terminado el uso del recurso, el proceso lo seUali#a al sem&foro. Si queda
alg!n proceso bloqueado en el sem&foro uno de ellos sea despertado, sino se incrementa
el contador.
La operacin signal,5 tambin tiene que est&r implementada como instruccin atmica.
"n algun&s implementaciones es posible comprobar si se (aya despertado un proceso con
e@ito en caso que (ubiera alguno bloqueado.
+ara despertar los procesos se puede implementar varias formas que se destinguen en sus
grados de usticia, por eemplo con un simple sistema tipo D*DF.
"l acceso mutuo a regiones cr,ticas se arregla con un sem&foro que permita el acceso a un slo
proceso
S:init,E5
/E /I
aD loop loop
bD S:Hait,5 S:Hait,5
cD critical region critical region
dD S:signal,5 S:signal,5
eD non-critical region non-critical region
fD endloop endloop
Fbservamos los siguiente detalles:
Si alg!n proceso no libera el sem&foro, se puede provocar un bloqueo.
-o (ace falta que un proceso libere su propio recurso, es decir, la operacin signal,5
puede sea eecutada por otro proceso.
%on simples sem&foros no se puede imponer un orden en los procesos accediendo a
diferentes recursos.
Si e@isten en un entorno solamente sem&foros binarios, se puede simular un sem&foro general
usando dos sem&foros binarios y un contador, por eemplo, con las variables delay, muteJ y
count.
La operacin init,5 iniciali#a el contador al n!mero m&@imo permitido. "l sem&foro muteJ
asegura acceso mutuamente e@clusivo al contador. "l sem&foro delay atrapa a los procesos que
superan el n!mero m&@imo permitido.
La operacin Hait,5 se implementa de la siguiente manera:
delay:Hait,5
muteJ:Hait,5
decrement count
if count greater % then delay:signal,5
muteJ:signal,5
y la operacin signal,5 se implementa de la siguiente manera:
muteJ:Hait,5
increment count
if count equal E then delay:signal,5
muteJ:signal,5
$nas principales desventaas de sem&foros son:
no se puede imponer el uso correcto de los Hait,5s y signal,5s
no e@iste una asociacin entre el sem&foro y el recurso
entre Hait,5 y signal,5 el usuario puede reali#ar cualquier operacin con el recurso
http://trevinca.ei.uvigo.es/~formella/doc/cd04/node64.html
2.1D.2.2 3ecanismo de monitores.
Mo$itores
<odas las estructuras que (emos visto (asta a(ora siguen provocando problemas para el
programador:
el control sobre los recursos est& distribuido por varios puntos de un programa
no (ay proteccin de las variables de control que siempre fueron globales
+or eso se usa el concepto de monitores que implementan un nivel a!n m&s alto de abstraccin
facilitando el acceso a recursos compartidos.
$n monitor es un tipo de datos abstracto que contiene
un conunto de procedimientos de control de los cuales solamente un subconunto es
visible desde fuera
un conunto de datos privados, es decir, no visibles desde fuera
"l acceso al monitor est& permitido solamente a travs de los procedimientos p!blicos y el
compilador garanti#a e@clusin mutua para todos los procedimientos. La implementacin del
monitor controla la e@clusin mutua con colas de entrada que contengan todos los procesos
bloqueados. +ueden e@istir varias colas y el controlador del monitor elige de cual cola se va a
escoger el siguiente proceso para actuar sobre los datos. $n monitor no tiene acceso a variables
e@teriores con el resultado de que su comportamiento no puede depender de ellos.
$na desventaa de los monitores es la e@clusividad de su uso, es decir, la concurrencia est&
limitada si muc(os procesos (acen uso del mismo monitor.
$n aspecto que se encuentra en muc(as implementaciones de monitores es la sincroni#acin
condicional, es decir, mientras un proceso est& eecutando un procedimiento del monitor (con
e@clusin mutua) puede dar paso a otro proceso liberando el cerroo. "stas operaciones se suele
llamar Hait,5 o delay,5. "l proceso que (a liberado el cerroo se queda bloqueado (asta que
otro proceso le despierta de nuevo. "ste bloqueo temporal est& reali#ado dentro del monitor
(dic(a tcnica se reflea en 1ava con Hait,5 y notify,5).
La tcnica permite la sincroni#acin entre procesos porque actuando sobre el mismo recurso los
procesos pueden cambiar el estado del recurso y pasar as, informacin de un proceso al otro.
Lenguaes de alto nivel que facilitan la programacin concurrente suelen tener monitores
implementados dentro del lenguae (por eemplo ref1ava;onitores1ava usa el concepto de
monitores para reali#ar el acceso mutuamente e@clusivo a sus obetos).
"l uso de monitores es bastante costoso, porque se pierde eficiencia por tanto bloqueo de los
prosesos. +or eso se intenta aprovec(ar de primitivas m&s potentes para aliviar este problema,
como vemos en la siguiente seccin.
http://trevinca.ei.uvigo.es/~formella/doc/cd04/node!.html
"onitores
Es un tipo de procedimientos, variables y estructuras de datos que se agrupan en un tipo de modulo
especial. Tienen una propiedad importante: solo un proceso puede estar activo en un monitor en un
instante de tiempo.
Los monitores proveen un nuevo tipo de variables de condicin con dos operaciones que operan sobre el
(solo se usan dentro del procedimiento de el monitor).
Wait -> waita! : produce que el proceso que ejecuta la instruccin sea interrumpido y removido de la cola
de ready hasta que otro proceso lo habilite ejecutando la instruccin signal( )con la misma variable de
condicin.
Signal -> signala! : Habilita la ejecucin de algn proceso en espera por la ejecucin de la instruccin
wait con la misma variable de condicin.
2.1D. Interblo5ueo &Dead,oc6(.
Deadloc6s
Si un conjunto de procesos esta en estado de espera por recursos y nunca cambia de estado porque los
recursos por los que espera estn siendo utilizados por otros procesos en estado de espera tenemos un
DEADLOCK. Los recursos son la memoria, dispositivos de E/S, semforos, archivos, etc. La forma en
que un proceso hace uso de un recurso es:
Solicitud: si el recurso esta disponible se le otorga, si no el proceso pasa a estado de espera.
"so: El proceso utiliza el recurso
#iberacin: el proceso debe liberar el recurso.
Condiciones $ecesarias para %ue se produ&ca '()'#*C+
Si se presentan simultneamente las cuatro siguientes condiciones el sistema esta en DEADLOCK.
1. EXCLUSON MUTUA: Por lo menos un proceso que tenga otorgado un recurso en forma
exclusiva.
2. USO Y ESPERA: Debe existir al menos un proceso que este haciendo uso de un recurso y que
este esperando por otros recursos asignados a otros procesos.
3. NO NTERRUPCON: Los recursos no pueden ser retirados al proceso. Si un proceso hace uso
de un recurso no le podr ser retirado hasta que voluntariamente el proceso lo libere.
4. ESPERA CRCULAR: Debe existir un conjunto de procesos {P1.....Pn} tal que P1 espera por un
recurso utilizado por P2,......,Pn espera por un recurso utilizado por P1.
,esourse )llocation -raph-ra.o de utili&acion de recursos!
Conjunto de Vrtices: U =P U R
P={P1,P2,....,Pn}
R={R1,R2,...,Rn}
Conjunto de Aristas:
Una arista de un proceso Pi a un Recurso Rj significa que el proceso i esta haciendo una solicitud por el
recurso Rj.
Una arista del recurso Rj al proceso Pi, significa que el recurso esta asignado al proceso.
Si un RAG no tiene ciclos el sistema no esta en DEADLOCK, sis si los tiene no se puede afirmar nada.
Mecanismos para tratar con 'eadloc/s
Evasion de Deadlocks
Si se tiene cuidado al en la forma de asignar los recursos se pueden evitar situaciones de Deadlock.
Supongamos un ambiente en el que todos los procesos declaren a priori la cantidad mxima de recursos
que hab de usar.
Estado Seguro: un estado es seguro si se pueden asignar recursos a cada proceso (hasta su mximo) en
algn orden sin que se genere Deadlock. El estado es seguro si existe un ordenamiento de un conjunto
de procesos {P1...Pn} tal que para cada Pi los recursos que Pi podr utilizar pueden ser otorgados por los
recursos disponibles mas los recursos utilizados por los procesos Pj,j<i. Si los recursos solicitados por Pi
no pueden ser otorgados, Pi espera a que todos los procesos Pj hayan terminado.
Algoritmo del banquero de Dijkstra
Asigna peticiones de recursos siempre que las mismas den como resultado estados seguros. Solicitudes
que den como resultado estados inseguros sern negadas hasta que puedan ser satisfechas. Este
algoritmos evita situaciones de Deadlock asignando los recursos en forma correcta.
Las debilidades del algoritmo son: que requiere que la cantidad de recursos del sistema sea constante,
requiere una cantidad de procesos constante y requiere que los procesos garanticen que los recursos van
a ser devueltos en un intervalo finito de tiempo.
En el rea de la informtica, el problema del deadlock ha provocado y producido una serie de estudios y
tcnicas muy tiles, ya que ste puede surgir en una sola mquina o como consecuencia de compartir
recursos en una red.
En el rea de las bases de datos y sistemas distribuidos han surgido tcnicas como el 'two phase locking'
y el 'two phase commit' que van ms all de este trabajo. Sin embargo, el inters principal sobre este
problema se centra en generar tcnicas para detectar, prevenir o corregir el deadlock.
Las tcnicas para prevenir el deadlock consisten en proveer mecanismos para evitar que se presente una
o varias de las cuatro condiciones necesarias del deadlock. Algunas de ellas son:
Asignar recursos en orden lineal: Esto significa que todos los recursos estn etiquetados con un
valor diferente y los procesos solo pueden hacer peticiones de recursos 'hacia adelante'. Esto es, que si
un proceso tiene el recurso con etiqueta '5' no puede pedir recursos cuya etiqueta sea menor que '5'. Con
esto se evita la condicin de ocupar y esperar un recurso.
Asignar todo o nada: Este mecanismo consiste en que el proceso pida todos los recursos que va
a necesitar de una vez y el sistema se los da solamente si puede drselos todos, si no, no le da nada y lo
bloquea.
Algoritmo del banquero: Este algoritmo usa una tabla de recursos para saber cuntos recursos
tiene de todo tipo. Tambin requiere que los procesos informen del mximo de recursos que va a usar de
cada tipo. Cuando un proceso pide un recurso, el algoritmo verifica si asignndole ese recurso todava le
quedan otros del mismo tipo para que alguno de los procesos en el sistema todava se le pueda dar hasta
su mximo. Si la respuesta es afirmativa, el sistema se dice que est en 'estado seguro' y se otorga el
recurso. Si la respuesta es negativa, se dice que el sistema est en estado inseguro y se hace esperar a
ese proceso.
Para detectar un deadlock, se puede usar el mismo algoritmo del banquero, que aunque no dice que hay
un deadlock, s dice cundo se est en estado inseguro que es la antesala del deadlock. Sin embargo,
para detectar el deadlock se pueden usar las 'grficas de recursos'. En ellas se pueden usar cuadrados
para indicar procesos y crculos para los recursos, y flechas para indicar si un recurso ya est asignado a
un proceso o si un proceso est esperando un recurso. El deadlock es detectado cuando se puede hacer
un viaje de ida y vuelta desde un proceso o recurso. Por ejemplo, suponga los siguientes eventos:
evento 1: Proceso A pide recurso 1 y se le asigna.
evento 2: Proceso A termina su time slice.
evento 3: Proceso B pide recurso 2 y se le asigna.
evento 4: Proceso B termina su time slice.
evento 5: Proceso C pide recurso 3 y se le asigna.
evento 6: Proceso C pide recurso 1 y como lo est ocupando el proceso A, espera.
evento 7: Proceso B pide recurso 3 y se bloquea porque lo ocupa el proceso C.
evento 8: Proceso A pide recurso 2 y se bloquea porque lo ocupa el proceso B.
En la figura 5.1 se observa como el 'resource graph' fue evolucionando hasta que se present el
deadlock, el cual significa que se puede viajar por las flechas desde un proceso o recurso hasta regresar
al punto de partida. En el deadlock estn involucrados los procesos A,B y C.
Una vez que un deadlock se detecta, es obvio que el sistema est en problemas y lo nico que resta por
hacer es una de dos cosas: tener algn mecanismo de suspensin o reanudacin [Deitel93] que permita
copiar todo el contexto de un proceso incluyendo valores de memoria y aspecto de los perifricos que
est usando para reanudarlo otro da, o simplemente eliminar un proceso o arrebatarle el recurso,
causando para ese proceso la prdida de datos y tiempo.
Dea(lo#H
$n S.F. tiene un n!mero limitado de recursos y procesos que solicitan los recursos.
\%omo diseUador de un sistema operativo, Acu&l es el problema para ti si algunos
procesos un tu sistema est&n en deadloc9 esperando recursosC
Los recursos retenidos por los procesos en deadloc9 no est&n disponibles para otros
procesos, y los procesos en deadloc9 no pueden avan#ar (es mal para los dueUos de los
procesos).
;uc(os SS.FF. modernos no tienen apoyo especial para prevenir deadloc9 (porque
cuesta), pero es com!n en programacin de sistemas en general (e.g., en programacin
distribuida).
Cara#ter)sti#as (e (ea(lo#H
"l sistema tiene recursos de varios tipos: memoria, arc(ivos, grabadores, impresoras, etc.
+odemos tener m&s de un eemplar de un tipo de recurso (e.g., tres impresoras). %ada uno
de los eemplares pueden satisfacer un solicitud de un proceso para el recurso.
Los recursos son compartibles y permiten acceso a muc(os procesos (e.g., los arc(ivos de
slo lectura) o no compartibles (e.g., un grabador).
"emplo: <res procesos en un sistema con tres grabadores, cada proceso tiene un grabador
y cada uno necesita uno m&s.
%ondiciones necesarias de deadloc9:
o \ E8#lusi'$ mutua. +or lo menos un recurso debe retenerse no compartido. A+or
quC
o Rete$#i'$ : espera. 0ebe (aber un proceso que retenga por lo menos un recurso
y espere adquirir m&s recursos retenidos por otros.
o No apropia#i'$. Los recursos no se pueden e@propiar. Los procesos liberan
recursos slo voluntariamente.
o Espera #ir#ular. 0ebe (aber un conunto ]+
6
, +
3
, ..., +
n
^ de procesos en espera
tales que +
6
espere un recurso de +
3
, +
3
un recurso de +
7
, ..., y +
n
un recurso de +
6
.
+odemos usar un grafo de asignacin de recursos para describir deadloc9. <enemos
procesos (c,rculos), recursos (rect&ngulos con un punto para cada eemplar), aristas de
solicitud y de asignacin (cambio instant&neamente).
$n grafo sin ciclos implica que no (ay deadloc9. Si (ay un ciclo, es posible que e@ista
deadloc9. $n ciclo es una condicin necesaria pero no suficiente para deadloc9.
(ttp:''///.cs.virginia.edu'_9nabe'iic7TT7'notes6`.(tml
A$"lisis.
0efinicin. Araso Mortal DDea( lo#H; o tambin llamado )$ter lo%ueo. "n un
conte@to de procesos concurrentes, si el an&lisis de recursos a compartir no se (ace
cuidadosamente, se puede tener el riesgo de que dos o m&s procesos acaparen alg!n recurso y que
se pongan en espera de que otro u otros liberen los recursos para poder continuar su eecucin, de
tal manera que cada proceso permanecer& en una espera indefinida (infinita), observe el eemplo
de la figura # 7, "emplo: Se tienen 7 procesos +3 y +7. Se tiene 7 recursos *mpresora y $nidad
de disco:
Figura # 7,. Dea( Lo#H.
%uando un proceso espera un evento que nunca se va a dar y el otro tambin lo espera
Dea( lo#H (e u$ re#urso simple.
;uc(os de los dead loc9 se deben a que un proceso retiene un recurso que debe ser usado
en forma e@clusiva. "s decir, el proceso tiene un recurso que slo puede ser usado por un usuario
a la ve#. 8 estos recursos se les conoce como reutili#ables en serie.
Dea( lo#H e$ sistemas (e spool.
Los sistemas de spool suelen ser los m&s propensos al dead loc9. Harios trabaos
parcialmente compleos que generan l,neas de impresin a un arc(ivo de spool pueden
interbloquearse si el espacio disponible para trabaar se llena antes de completarse alguno de esos
trabaos. La solucin m&s com!n es limitar los spoolers de entrada de modo que no se lean m&s
arc(ivos cuando se llega al l,mite de su capacidad.
Posterga#i'$ i$(e*i$i(a.
"n los sistemas que mantienen procesos en espera mientras reali#an la asignacin de
recursos y'o procesan la planificacin de decisiones, es posible que un proceso sea postergado de
manera indefinida mientras otro reciben la atencin del sistema. 8 esta situacin se le conoce
como postergacin indefinida, es diferente del dead loc9 pero sus consecuencias son igual de
negativas.
"n algunos sistemas la postergacin indefinida se evita aumentando la prioridad de un
proceso mientras espera por un recurso, a esto se le llama enveecimiento.
Co$#eptos sore re#ursos.
$n sistema operativo es sobre todo un administrador de recursos, e@isten b&sicamente dos
tipos de recursos:
E Re#ursos $o apropiativos. $n recurso que no se puede liberar antes de completar su
actividad sin perder la valide# del proceso que lo usa, se dice que un recurso no apropiativo. $na
impresora o una unidad de cinta no pueden ser liberados (asta que no termine su trabao.
E Re#ursos apropiativos. $n recurso que puede ser usado temporalmente por varios
procesos sin comprometer el correcto funcionamiento de dic(os procesos se dice que es un
recurso apropiativo. "l CPQ y la memoria principal (mediante las tcnicas de paginacin) son
recursos que pueden ser asignados temporalmente por varios procesos. La apropiatividad de
recursos es e@tremadamente importante en los sistemas de multiprogramacin.
Los datos y los programas son recursos que tienen caracter,sticas especiales. "n un
sistema multiusuario donde se pueden compartir editores, compiladores y programas en general,
es ineficiente cargar una copia de ellos para cada usuario que lo solicite. "n lugar de ello se carga
una sola ve# a la memoria y se (acen varias copias de los datos, una por cada usuario.
"l cdigo que no cambia mientras est& en uso se llama #'(igo re/$trate. "l cdigo que
puede ser cambiado pero que se iniciali#a cada ve# que se usa se llama reutili&ale e$ serie. "l
cdigo rentrate puede ser compartido simult&neamente por varios procesos mientras que el
reutili#able en serie slo puede ser usado por un proceso a la ve#.
;todos para manear los 0ead Loc9, *igura > -=.
) Prevencin
) 9o permitirlos
) :vitarlos
) "ifcil y caro
) Permitirlos y recuperarlos ) Por perdida
) de informacin
Figura # 74. Prevencin de "ead 'ock.
"n principio e@isten cuatro &reas importantes en la investigacin del dead loc9, a saber:
,; Preve$#i'$+
"n las tcnicas de prevencin el inters se centra en condicionar un sistema para que
elimine toda probabilidad de que ocurra un dead loc9 (normalmente a costa de recursos).
-; Evita#i'$+
"n las tcnicas para evitar, la idea es poner condiciones menos estrictas que la prevencin,
para lograr una meor utili#acin de los recursos, pero procurando no caer en un dead loc9.
<; Dete##i'$+
Los mtodos de deteccin se usan en sistemas que permiten la ocurrencia de un dead loc9
de forma voluntaria o involuntaria.
=; Re#upera#i'$+
Los mtodos de recuperacin se usan para romper los dead loc9 en un sistema, para poder
liberarlo de ellos y los procesos estancados pueden continuar y llegar a su fin.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T33.(tml
Mo(elo (el sistema.
$n sistema se compone de un n!mero finito de recursos que se distribuyen entre varios
procesos que compiten por ellos. Los recursos se dividen en varios tipos, cada uno de los cuales
consiste en varios eemplares idnticos. Los ciclos del $%+, el espacio de memoria, los arc(ivos
y los dispositivos de "'S (como impresoras y unidades de cinta) son eemplos de tipos de
recursos.
$n proceso debe solicitar un recurso antes de usarlo, y liberarlo al terminar su uso. $n
proceso puede solicitar cuantos recursos quiera para llevar a cabo su tarea. Fbviamente, el
n!mero no puede e@ceder del total de recursos disponibles del sistema. "n otras palabras, un
proceso no puede solicitar tres impresoras si el sistema solo dispone de dos.
"n el modo de operacin normal, un proceso solo puede utili#ar un recurso en la
secuencia siguiente:
3. Solicitud. Si la solicitud no puede atenderse de inmediato (por eemplo, otro proceso
est& utili#ando ese recurso), entonces el proceso solicitante debe esperar (asta que pueda
adquirir el recurso.
7. $tili#acin. "l proceso puede trabaar con el recurso (por eemplo, si el recurso es una
impresora, el proceso puede imprimir en ella).
T. Liberacin. "l proceso libera el recurso.
La solicitud y liberacin de recursos son llamadas al sistema. 8lgunos eemplos son las
llamadas Solicitar y Liberar dispositivos, 8brir y %errar arc(ivos, y 8signar y Liberar memoria.
La solicitud y liberacin de otros recursos puede lograrse atreves de las operaciones espera (+) y
seUal (H) sobre sem&foros. 8dem&s la utili#acin de recursos solo puede conseguirse mediante
llamadas al sistema (por eemplo, para leer o escribir en un arc(ivo o dispositivo de "'S), de
modo que para cada utili#acin, el sistema operativo verifica que el proceso que dispone del
recurso ya lo (ab,a solicitado y ya se le (ab,a asignado. $na tabla del sistema registra si cada uno
de los recursos est& libre o asignado y, de estar asignado, a qu proceso. Si un proceso solicita un
recurso que se encuentra asignado a otro, puede aUadirse a la cola de procesos que esperan tal
recurso.
$n conunto de procesos se encuentra en estado de bloqueo mutuo cuando cada uno de
ellos espera un suceso que slo puede originar otro proceso del mismo conunto.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T37.(tml
Cara#teri&a#i'$.
0ebe ser obvio que los bloqueos mutuos son indeseables, pues cuando se dan, los
procesos nunca terminan su eecucin y los recursos del sistema se parali#an, impidiendo que se
inicien otros procesos. 8ntes de anali#ar los distintos mtodos para tratar el problema del bloqueo
mutuo se describir&n las circunstancias que los caracteri#an.
Co$(i#io$es $e#esarias para %ue o#urra u$ Dea( Lo#H.
Co**ma$4 Elp.i#H : S.os.a$i. "stablecieron las cuatro condiciones necesarias para que
se produ#ca un dead loc9.
3.2 Los procesos reclaman control e@clusivo de los recursos que solicitan (e8#lusi'$ mutua).
7.2 Los procesos mantienen los recursos que se les (an asignado mientras esperan por recursos
adicionales (#o$(i#i'$ (e espera).
T.2 -o se pueden tomar los recursos que los procesos tienen (asta su completa utili#acin
(#o$(i#i'$ (e $o apropiativi(a().
V.2 "@iste una cadena circular de procesos en la cual cada uno de ellos mantiene uno o m&s
recursos que son requeridos por el siguiente proceso de la cadena (#o$(i#i'$ (e espera
#ir#ular).
Se deben presentar las cuatro condiciones para que puede aparecer un 0ead Loc9. La
condicin de espera circular implica la condicin de retencin y espera, por lo que las cuatro
condiciones no son completamente independientes.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3T.(tml
2.1D..1 .revencin.
Preve$#i'$.
"n las estrategias de prevencin de dead Loc9s, los recursos son otorgados a los procesos
solicitados, de tal manera que la solicitud de un recurso nunca llega a un 0ead Loc9. "sta
estrategia se cerciora de que cuando menos una de cuatro condiciones de 0ead Loc9 nunca llegue
a ocurrir.
@ E8#lusi'$ mutua.
La condicin de e@clusin mutua debe conservarse para recursos no compartibles. Los
recursos compartibles, no requieren acceso mutuamente e@cluyente y, por tanto, no pueden
participar en un dead loc9. Los arc(ivos de slo lectura son un buen eemplo de recursos
compartibles. Si varios procesos tratan de abrir al mismo tiempo un arc(ivo de slo lectura, se
les puede otorgar accesos simult&neos al arc(ivo, por lo general no es posible evitar dead loc9=s
negando la condicin de e@clusin mutua. +or su naturale#a algunos recursos no pueden
compartirse.
@ -egacin de la condicin de Wespera porW.
La primera estrategia de 1ave$(er requiere que todos los recursos que va a necesitar un
proceso sean pedidos de una sola ve#. "l sistema deber& asignarlos seg!n el principio Wto(o o
$a(aW. Si el conunto de recursos que necesita un proceso est& disponible se le asigna (todo) y se
le permite entrar en eecucin. Si no es as,, el proceso deber& esperar (asta que su conunto de
recursos est disponible. ;ientras un proceso espera. -o podr& tener ning!n recurso.
Esta estrategia prese$ta las siguie$tes (esve$ta!as+
E +uede llevar a la postergacin indefinida, ya que qui#& todos los recursos requeridos
estn disponibles al mismo tiempo (costos de operacin altos).
E +uede llevar un serio desperdicio de recursos, se requiere tener una gran cantidad de
recursos para poder responder a cumplir peticin.
E "s ineficiente por que decrementa la concurrencia del sistema.
$na variante consiste en dividir el programa en bloques que puedan ser eecutados con
relativa independencia uno del otro. "sto reduce el desperdicio, pero implica un trabao e@tra en
el diseUo de las aplicaciones.
@ Nega#i'$ (e la #o$(i#i'$ (e Wno apropiatividadW.
%uando un sistema cuenta con los recursos suficientes para que los procesos puedan
funcionar sin problemas (bloqueos). %uando el sistema permite compartir los recursos y los
procesos mantienen los que otros necesitan sucede un dead loc9.
La segunda estrategia sugiere que cuando a un proceso que mantiene recursos se le niegue
una peticin de recursos adicionales deber& liberar sus recursos y, si es necesario, pedirlos de
nuevo, unto con los adicionales.
8l retirar los recursos a un proceso que no puede avan#ar se niega la condicin de W$o
apropiativi(a(W. $n problema de esta pol,tica es la postergacin indefinida.
@ Nega#i'$ (e la #o$(i#i'$ (e Wespera #ir#ularW.
Si se da a los recursos una manera e@clusiva y se obliga a los procesos a pedirlos en forma
ascendente es imposible que ocurra una espera circular. "sta propuesta considera:
a Los recursos deben ser numerados refleando el orden en el cual la mayor,a de los trabaos
los usan, *igura > -A.
a Los procesos deben pedir los recursos en forma ascendente, figura # 75.
a +ara los procesos que requieren de los recursos en un orden diferente, los recursos
deber&n ser tomados y retenidos muc(o antes de su utili#acin. (*mplica el desperdicio de
los recursos mantenidos pero no usados).
Figura # 75. Or(e$amie$to li$eal (el re#urso.
"l ordenamiento lineal elimina la posibilidad de la espera circular, pero, obliga al
diseUador a trabaar m&s con sus cdigos. 8dem&s, los n!meros de recursos son asignados por la
instalacin y (ay que vivir con ellos durante largos periodos (meses o aUos). Si los n!meros
cambian se tienen que rescribir los programas y los sistemas e@istentes.
La forma m&s simple de prevenir un 0ead Loc9 es obteniendo todos los recursos
necesarios antes que el proceso continu y as, se elimine la W#o$(i#i'$ (e esperaW.
"n otro mtodo de prevencin de dead loc9, un proceso bloqueado devuelve los recursos
solicitados por un proceso activo, al igual que elimina la condicin de W$o apropiativi(a(W
osenkrant/ et al. )a propuesto la siguiente optimi#acin de este mtodo. <odos los procesos
son asignados a prioridades !nicas que pueden ser totalmente ordenadas. $n proceso de retencin
cede el derec(o de prioridad a otro proceso que sostiene el recurso necesario solo si el proceso de
retencin tiene el recurso necesario solo si el proceso de retencin tiene mayor prioridad.
"ste mtodo reduce los derec(os de prioridad al Y6b al igual que previene los dead
loc9s. "n el ordenamiento de )avendercs todos los recursos son ordenados de manera !nica y
todos los procesos solicitan los recursos de manera ascendente.
dnicamente eliminando la condicin de "espera circular". Si un proceso ya sostiene
algunos recursos, entonces puede pedir solo aquellos acomodos en un rango superior en el orden.
Fbteniendo recursos, de sta forma, previene la formacin de un ciclo o de un "9not".
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3V.(tml
Preve$ir
Se puede prevenir el bloqueo siempre y cuando se consiga que alguna de las condiciones
necesarias para la e@istencia de un bloqueo no se produ#ca.
3. los procesos tienen que compartir recursos con e@clusin mutua:
o -o se de a un proceso directamente acceso e@clusivo al recurso, si no se usa otro
proceso que reali#a el trabao de todos los dem&s maneando una cola de tareas
(por eemplo, un demonio para imprimir con su cola de documentos por imprimir).
7. los procesos quieren acceder a un recurso m&s mientras ya tienen acceso e@clusivo a otro:
o Se e@ige que un proceso pida todos los recursos que va a utili#ar al comien#o de
su trabao
T. los recursos no permiten ser usados por m&s de un proceso al mismo tiempo:
o Se permite que un proceso aborte a otro proceso con el fin de obtener acceso
e@clusivo al recurso. )ay que tener cuidado de no caer en livelock
V. e@iste una cadena circular entre peticiones de procesos y alocacin de recursos:
o Se ordenan los recursos l,nealmente y se fuer#a a los procesos que accedan a los
recursos en el orden impuesto. 8s, es imposible que se produ#ca un ciclo.
"n las pr&cticas aplicamos dic(o mtodo para prevenir bloqueos en la lista concurrente.
http://trevinca.ei.uvigo.es/~formella/doc/cd04/node71.html
Prevencin de Deadlocks
La estrategia consiste en anular alguna de las cuatro condiciones necesarias para que se produzca un
Deadlock.
1. No puede ser anulada porque existen recursos que deben ser usados en modalidad exclusiva.
2. La alternativa sera hacer que todos los procesos solicitaran todos los recursos que habrn de
utilizar antes de utilizarlos al momento de su ejecucin lo cual sera muy ineficiente.
3. Para anular esta condicin cuando un proceso solicita un recurso y este es negado el proceso
deber liberar sus recursos y solicitarlos nuevamente con los recursos adicionales. El problema
es que hay recursos que no pueden ser interrumpidos.
4. Espera Circular: esta estrategia consiste en que el sistema operativo numere en forma exclusiva
los recursos y obligue a los procesos a solicitar recursos en forma ascendente. El problema de
esto es que quita posibilidades a la aplicacin.
Preve$#i'$ (e (ea(lo#H
\ 0eadloc9 no puede occurir a menos que tenemos todas las cuatro condiciones. Si
aseguramos que no puede occurir por lo menos una de las condiciones, no podemos tener
deadloc9.
\ E8#lusi'$ mutua. "n general, no podemos eliminar esta condicin. )ay recursos como
impresoras que no son compartibles.
\ Rete$#i'$ : espera. +ara no occurir esta condicin, cuando un proceso solicita
recursos, no puede retener otros. +rotocolos:
o $n proceso puede solicitar recursos solamente si no tiene ningunos.
o $n proceso tiene que solicitar todos los recursos antes de la eecucin.
\ +roblemas:
o La utili#acin de recursos puede ser baa.
o Starvation (bloqueo indefinido) si se necesitan algunos recursos populares.
No apropia#i'$. Si un proceso retiene varios recursos y solicita otro que no est&
disponible, se le e@propian todos los recursos que retiene. "l proceso tiene que recuperar
todos los recursos antes de eecutar otra ve#.
+ero en general no podemos e@proprian recursos como impresoras y grabadores.
Espera #ir#ular. )acemos una ordenacin de los tipos de recursos en el sistema (:
3
,
:
7
, ...). $n proceso tiene que solicitar sus recursos en orden (y todos los eemplares de un
tipo al mismo tiempo). Si necesita un tipo de recurso m&s baa en la ordenacin, tiene que
liberar los otros que retiene.
+roblemas con la prevencin de deadloc9: $tili#acin baa de recursos y reduccin de la
productividad del sistema.
"ttpE>>HHH.cs.vir0inia.edu>J6nabe>iic22>notesD@."tml
Evitar
"l sistema no da permiso de acceso a recursos si es posible que el proceso se bloquee en el
futuro. $n mtodo es el algoritmo del banquero (0i9stra) que es un algoritmo centrali#ado y por
eso posiblemente no muy practicable en muc(as situaciones.
Se garanti#a que todos los procesos actuan de la siguiente manera en dos fases:
3. primero se obtiene todos los cerroos necesarios para reali#ar una tarea, eso se reali#a
solamente si se puede obtener todos a la ve#,
7. despues se reali#a la tarea durante la cual posiblemente se liberan recursos que no son
necesarias.
E!emplo+
8sumimos que tengamos T procesos que actuan con varios recursos. "l sistema dispone de 37
recursos.
proceso recursos pedidos recursos reservados
8 V 3
M ? V
% 5 Y
suma 35 36
es decir, de los 37 recursos disponibles ya 36 est&n ocupados. La !nica forma que se puede
proceder es dar el acceso a los restantes 7 recursos al proceso M. %uando M (aya terminado va a
liberar sus ? recursos que incluso pueden estar distribuidos entre 8 y %, as, que ambos tambin
pueden reali#ar su trabao.
%on un argumento de induccin se verifica f&cilmente que nunca se llega a ning!n bloqueo.
"ttpE>>trevinca.ei.uvi0o.es>Jformella>doc>cdD#>node@D."tml
Evita#i'$.
$n mtodo para evitar los 0ead Loc9=s consiste en requerir informacin adicional sobre
cmo se solicitar&n los recursos. +or eemplo en un sistema con una unidad de cinta y una
impresora, podr,amos saber que el proceso + solicitar& primero la unidad de cinta y luego la
impresora, antes de liberar ambos recursos. "l proceso B, por otra parte, solicitar& primero la
impresora y despus la unidad de cinta. %on este conocimiento de la secuencia completa de la
solicitud y liberacin para cada proceso para cada solicitud requiere que el sistema considera los
recursos disponibles en ese momento, los actualmente asignados a cada proceso y las futuras
solicitudes y liberaciones de cada proceso para decidir si puede satisfacer la solicitud presente o
debe esperar para evitar un posible dead loc9 futuro.
Los diversos algoritmos difieren en la cantidad y tipo de informacin que requieren.
"l modelo m&s sencillo y !til requiere que cada proceso declare el nmero mximo de
recursos de cada tipo que puede necesitar. %on informacin a priori para cada proceso es posible
construir un algoritmo que asegure que el sistema nunca entrar& en estado de dead loc9. "ste
algoritmo define la estrategia de evitacin de dead loc9=s.
"l estado de asignacin de recursos viene definido por el n!mero de recursos disponibles
y asignados, y por la demanda m&@ima de los procesos. $n estado es seguro si el sistema puede
asignar recursos a cada proceso ((asta el m&@imo) siguiendo alg!n orden u aun as, evitar el dead
loc9.
;&s formalmente, un sistema se encuentra en estado seguro slo si e@iste una secuencia
segura. Si no e@iste esta secuencia, se dice que el estado del sistema es inseguro.
$n estado seguro no es un estado de dead loc9, y un estado de dead loc9 es un estado
inseguroG pero no todos los estados inseguros son dead loc9=s.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so1>so1G1%."tml
2.1D..2 Deteccin.
Dete#tar : a#tuar
Se implementa un proceso adicional que vigila si los dem&s forman una cadena circular.
;&s preciso, se define el grafo de asignacin de recursos:
Los procesos y los recursos representan los nodos de un grafo.
Se aUade cada ve# una arista entre un nodo tipo recurso y un nodo tipo proceso cuando el
proceso (a obtenido acceso e@clusivo al recurso.
Se aUade cada ve# una arista entre un nodo tipo recurso y un nodo tipo proceso cuando el
proceso est& pidiendo acceso e@clusivo al recurso.
Se eliminan las aristas entre proceso y recurso y al revs cuando el proceso ya no usa el
recurso.
%uando se detecta en el grafo resultante un ciclo, es decir, cuando ya no forma un grafo ac,clico,
se (a producido una posible situacin de un bloqueo.
Se puede reaccionar de dos maneras si se (a encontrado un ciclo:
-o se da permiso al !ltimo proceso de obtener el recurso.
S, se da permiso, pero una ve# detectado el ciclo se aborta todos o algunos de los procesos
involucrados.
Sin embargo, las tcnicas pueden dar como resultado que el programa no avance, incluso, el
programa se puede quedar atrapado (aciendo trabao in!til: crear situaciones de bloqueo y abortar
procesos continuamente.
http://trevinca.ei.uvigo.es/~formella/doc/cd04/node69.html
Deteccin y Recuperacin de Deadlocks
Algoritmos de Deteccin de Deadlock
1. Cuando hay una nica ocurrencia de cada recurso. (variante del grafo de "wait .or graph").
Consiste en reducir el grafo, retirando las aristas que van de recursos a procesos y de procesos a
recursos, colocando nuevas aristas que reflejan la situacin de espera entre procesos. Si el grafo
reducido tiene ciclos el sistema esta en Deadlock. Orden de operaciones = n^2 , n = cantidad de
aristas.
2. Cuando hay mltiples ocurrencias de cada recurso
Procedure detecta_deadlock
var Disponible:array[1..n] of integer //# de recursos
Usados:array[1..n] of integer
Solicitados:array[1..n] of integer
Finalizado:array[1..n] of boolean
Begin
Work:=Disponibles;
For i:=1..n do if(usados[i]=0) then finish[i]:=false
Else finish[i]:=true;
While(encontrar_indice_i = true) do {
Work:=work + usados[i];
Finish[i]:=true; }
f ((finish[i] = false) para algun i), 1>i>n then El sistema esta en Deadlock.
End
Function encontrar_indice_i : Boolean
Begin
f (existe i tal que (Finish[i]=false && solicitados[i] > work)
Then -> true
Else -> false
End
Dete##i'$ (e (ea(lo#H
La evitac,on de deadloc9 tiene un costo porque todos los estados inseguros no son estados
de deadloc9. "sto implica que (ay tiempos cuando algunos procesos tienen que esperar y
recursos est&n desocupados sin que es necesario.
"l sistema operativo puede c(equear de ve# en cuando si (ay un deadloc9. A%u&n
frecuentemente debieramos c(equear si (ay deadloc9C
o "l costo de algoritmo vs. el n!mero de procesos en deadloc9.
o Saber quien cre el deadloc9.
o \ %uando la utili#acin de la %+$ es baa.
<enemos que eliminar los deadloc9s que encontramos. +osibilidades:
o 8bortar todos los procesos en deadloc9. e"sto es un mtodo com!n[
o 8bortar procesos uno a la ve# (asta que no (aya deadloc9.
o :etroceder los procesos a alg!n punto y reiniciar. "l deadloc9 puede reocurrir.
o "@propiar recursos de procesos (asta que no (aya deadloc9. :etrocedemos los
procesos e@propiados.

<enemos que seleccionar un proceso para abortar o retroceder. Dactores:


o La prioridad
o "l tiempo que el proceso (a corrido
o "l n!mero y tipo de los recursos adquiridos
o La clase de proceso (batc( o interactiva)
La starvation es un problema.
"ttpE>>HHH.cs.vir0inia.edu>J6nabe>iic22>notesDC."tml
Dete##i'$ : Re#upera#i'$.
"s el (ec(o de determinar si e@iste o no un 0ead Loc9, e identificar cuales son los
procesos y recursos implicados en l. "l uso de algoritmos de deteccin de interbloqueo implica
una sobrecarga en el tiempo de eecucin. +ara ser correcto, un algoritmo de deteccin de
interbloqueo debe de cumplir dos criterios:
3) 0ebe detectar todos los dead loc9fs e@istentes en un tiempo finito.
7) -o debe reportar "falsos" 0ead Loc9cs.
Xra*o (e asig$a#i'$ (e re#ursos.
Los 0ead Loc9 pueden describirse con mayor precisin en funcin de un grafo dirigido
llamado grafo de asignacin de recursos, que consiste en un conunto de vrtices H y aristas 8. "l
conunto de vrtices H se divide en dos tipos, + J ]+3,+7, ... , +n^, el conunto formado por
todos los procesos del sistema, y : J]:3,:7, ... ,:n^, el conunto integrado por todos los tipos
de recursos del sistema.
Represe$ta#i'$ me(ia$te gra*os (el esta(o (el sistema.
"l estado de un sistema es din&micoG esto es, los procesos del sistema toman y liberan
recursos continuamente. La representacin del dead loc9 requiere la representacin del estado
de la interaccin procesos 2 recursos, la representacin se (ace mediante un grafo dirigido que se
conoce como gr&fica de asignacin de recursos .
"n los sistemas de bases de datos distribuidos (DD?S) est& representacin se conoce como
gr&fica de espera de transaccin (Tra$sa#tio$ Sait0For TSF).
Los dead loc9=s pueden describirse con mayor precisin en funcin de un grafo dirigido
llamado grafo de asignacin de recursos.
La simbologia es la siguiente de acuerdo a las figura # 76. a4 4 # : (.
Figura # 76. Xr"*i#a (e asig$a#i'$ : peti#i'$ (e re#ursos
La t/#$i#a para la re(u##i'$ (e gr"*i#as impli#a las #o$si(era#io$es siguie$tes+
E Si las peticiones de recursos de un proceso piden ser concedidas, entonces la gr&fica
puede
ser reducida.
E La reduccin de una gr&fica consiste en retirar las flec(as que van de los recursos a los
procesos y retirar las flec(as que van del proceso al recurso.
E Si una gr&fica puede ser reducida para todos sus procesos entonces no (ay dead loc9.
E Si una gr&fica no puede ser reducida para todos sus procesos, entonces los procesos
irreducibles constituyen la serie de procesos interbloqueados de la gr&fica.
E 0eteccin de interbloqueo mediante grafos.
Un grafo ; consiste de un conunto finito no vac!o.
V 2 CDX; de: P puntos (vrtices) conunto R de % pareas desordenadas de puntos de
VDaristas;.
cada par R 2 6Q4V7 de puntos en R y una l,nea de X por lo tanto R 2 QV.
$n grafo de p puntos y % l,neas se denomina un grafo Dp4%;, el grafo D,49; es trivial.
Peti#i'$ 2 Pro#eso 0 Re#urso
Pi
R8 R: "l proceso Pi tiene el recurso R8 y solicita el recurso R:.
+ara determinar si e@iste un ciclo en un grafo se puede usar la representacin matricial del
grafo dirigido. 0ado que se tienen pareas ordenadas 6R84 R:7, la matri# se construye colocando
un 3 en la diagonal en D848; y D:4:; y un 3 en la posicin D84:; de la matri#. "emplo figura # 7-.
Figura # 7-. Represe$ta#i'$ matri#ial (el gra*o.
:educcin de la matri# del grafo de la figura # 7- $%&. Fbserve figura # 74.
Figura # 74. Re(u##i'$ (e la matri& (el gra*o.
:educcin de la matri# de un grafo correspondiente. -o e@isten vrtices terminalesG los vrtices 3
y 7 son iniciales y pueden ser eliminadosG e@iste un *nter bloqueo.
"emplo, *igura > -G. Xra*o.
Figura # 75. a; Represe$ta#i'$ matri#ial ; Re(u##i'$ (e la matri& (el gra*o.
:epresentacin vectorial que solo almacena la informacin que presenta el grafo, de la figura #
75. "emplo figura # ,8.
Figura # ,8. Represe$ta#i'$ ve#torial
$n vrtice terminal slo aparece en la columna requiere y un vrtice inicial slo aparece
en la columna <iene. +ara reducir esta representacin se recorren de arriba a abao los vectores y
se buscan los vrtices terminales e iniciales y se elimina su rengln.
"l proceso se repite (asta:
,; No e8iste$ re$glo$es o
-; No se pue(e$ elimi$ar re$glo$es.
Si no se pueden eliminar renglones las transiciones producen un 0ead Loc9.
+ara el grafo de la Dfigura # ,8 $a& ; en el primer paso se eliminan los procesos +3 (vrtice
inicial), +7 y +T (vrtice terminal). "n el segundo paso se elimina el proceso +V (vrtice
terminal), inicial.
+ara el grafo de la Dfigura # ,8 $%&; el primero se eliminan los procesos +3,+7,+T (vrtices
iniciales), +V(vrtice inicial al eliminar el proceso +3), Los procesos restantes no pueden ser
eliminados, por lo tanto e@iste un dead loc9. "l resultado de la reduccin es, observe figura # ,1.
Figura # ,1. Re(u##i'$ (el ve#tor (el gra*o.
2.1D.. 7ecuperacin.
Recuperacin ante Deadlocks
1. Cancelacin de procesos
a. Cancelacin de todos los procesos involucrados. Esto resuelve la situacin de Deadlock
pero tiene un costo muy alto de reprocesamiento.
b. Cancelacion de un proceso por vez hasta resolver la situacin de Deadlock. La ventaja
de esto es que el costo de reprosesamiento de la informacin es menor pero cada vez
que se cancela un proceso debe ejecutarse el algoritmo de deteccin de deadlock. Los
criterios para elegir el candidato a ser cancelado son: por prioridad, por tiempo de uso de
CPU, por cantidad de recursos utilizados y por cuantos recursos adicionales habr de
utilizar.
2. Obtencin de recursos (resourse Preemption). El sistema operativo selecciona un proceso y le
quita los recursos otorgados. Los criterios para seleccionar el candidato son los mismos que para
la cancelacin. El proceso seleccionado se le quitan los recursos y se le lleva a un estado
consistente (Rollback).
Re#upera#i'$ (e u$ Dea( Lo#H.
La !nica forma en que el sistema operativo puede recuperarse de un interbloqueo es
retirando uno o m&s procesos y reclamar sus recursos para que otros procesos puedan terminar.
-ormalmente varios procesos perder&n una parte o la totalidad del trabao reali#ado (asta ese
momento. "ste puede parecer un precio pequeUo comparado con dear que el interbloqueo se
complique por varios factores.
E "n primer lugar, puede no estar claro que el sistema este bloqueado o no.
E ;uc(os sistemas tienen medios pobres para suspender un proceso por tiempo indefinido
y reanudarlo m&s tarde.
E 8!n cuando e@istan medios efectivos de suspensin 'reanudacin, con toda seguridad,
estos implicar&n una sobrecarga, considerable y pueden requerir la atencin de un
operador altamente calificado. -o siempre se dispone de tales operadores.
E :ecuperarse de un interbloqueo de proporciones modestas puede suponer una cantidad
ra#onable de trabao.
$na forma de elegir los procesos que pueden ser retirados es de acuerdo a las prioridades de los
procesos. +ero esto tambin tiene sus dificultades.
E Las prioridades de los procesos bloqueados pueden no e@istir, as, que el operador deber&
tomar una decisin arbitraria.
E Las prioridades pueden ser incorrectas, o un poco confusas debido a consideraciones
especiales.
E La decisin ptima de cu&les procesos retirar pueden requerir de un esfuer#o considerable
para determinarla.
"l enfoque m&s deseable a la recuperacin del 0ead Loc9 est&n un mecanismo efectivo de
Suspensin ' reanudacin. "sto permitir& detener temporalmente los procesos y despus
reanudarlos sin prdida del trabao.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3?.(tml
MECANISMOS PARA EVITARLOS.
1ave$(er lleg a la conclusin de que si no se cumple una de las cuatro condiciones
necesarias para el interbloqueo es posible que ste ocurra.
+ara evitarlo sugiri:
E %ada proceso deber& pedir todos los recursos requeridos de una sola ve# y no podr&
proceder (asta que le (ayan sido asignados todos.
E Si un proceso que mantiene ciertos recursos se le niega una nueva peticin, este proceso
deber& liberar sus recursos originales y en caso necesario pedirlos de nuevo con los
recursos adicionales.
E Se impondr& la ordenacin lineal de los tipos de recursos en todos los procesos, es decir,
si a un proceso le (an sido asignados recursos de un tipo dado, en lo sucesivo slo podr&
pedir aquellos recursos de los tipos que siguen en el ordenamiento.
Ftra alternativa, para manear los dead loc9, es tener informacin acerca de como los
recursos se van a requerir, el modelo m&s simple y m&s !til requiere que en cada proceso declare
el m&@imo n!mero de recursos que van a requerir con lo cual es posible construir un algoritmo
que asegure que el sistema no entrara en dead loc9.
$n estado es seguro si el sistema puede asignar recursos a cada proceso en alg!n orden
evitando el dead loc9.
Dormalmente un sistema esta en estado seguro solamente si e@iste una secuencia segura.
$na secuencia de procesos N +3, +7, ... +nO esta en secuencia segura si para cada +i, los
recursos que +i pueda requerir pueden ser satisfec(os por los recursos disponibles m&s los
recursos que tuvieron los + donde N i. Si no se puede satisfacer +i entonces +i espera (asta
que los + terminen.
%uando +i termine +ia3 puede obtener sus recursos y as, sucesivamente.
"emplo, figura # ,7. Se tienen ,- u$i(a(es (e #i$ta se tiene < pro#esos A"se sistema esta en
estado seguro o noC.
Figura # ,7. Re%uerimie$to pro#esos 0 re#ursos.
:equerimiento m&@imo 2 -ecesidad actual J -ecesidad m&s (0isponible).
Se tiene 37 recursos por lo tanto 3724 J T, entonces la secuencia es segura.
La secuencia segura es 3 P,4P94P-5
)aga una situacin en la cual el sistema estar,a es estado inseguro.
$n estado seguro esta libre de dead loc9 y un estado de dead loc9, es un estado inseguro pero no
todos los estados inseguros producen dead loc9.
Si se esta en un estado seguro se puede pasar a un estado inseguro.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T3`.(tml
Estrategias para evitarlos.
"vitacin del interbloqueo y el algoritmo de Di!Hstra. Si las condiciones necesarias para
que tenga lugar un interbloqueo est&n en su lugar, a!n es posible evitar el interbloqueo teniendo
cuidado al asignar los recursos.
"l algoritmo de planificacin que pueda evitar los interbloqueos fue ideado por Di!Hstra
(34?Y) y se le conoce como algoritmo del banquero. "n ese algoritmo se modela la forma en que
un banquero puede tratar a un grupo de clientes a quienes les (a otorgado l,neas de crdito. en la
(figura # ,6 $a&) se observan cuatro clientes, a cada uno de los cuales se le (a otorgado cierto
n!mero de unidades de crdito. "l banquero sabe que los clientes no necesitan su l,mite de
crdito m&@imo de inmediato, de manera que slo (a reservado 36 unidades en lugar de 77 para
darles servicio.
Los clientes emprenden sus respectivos negocios, (aciendo solicitudes de prstamo de
cuando en cuando. "n cierto momento, la situacin es como la que se muestra en la (figura #
,,&. 8 una lista de clientes que muestra el dinero que ya se present y el m&@imo del crdito
disponible se le llama estado del sistema.
Figura # ,,. Tres esta(os (e asig$a#i'$ (e re#ursos
Da; Seguro. D; Seguro. D#; I$seguro.
$n estado es seguro si e@iste una secuencia de estados que lleva a todos los clientes que
obtienen prstamos (asta sus l,mites de crdito. "l estado de la (figura #,, $%& ) es seguro por
que con las dos restantes, el banquero puede demorar cualquier solicitud salvo la de %arlos, con
lo que permite que termine y devuelva sus cuatro recursos. %on cuatro unidades, el banquero
puede permitir que 0avid o M&rbara tengan las unidades que necesitan para terminar y as,
sucesivamente.
Si estando en el estado de la ( figura #,, $%& ) se le otorga una unidad m&s a M&rbara,
(Figura #,, $c& ), el banquero no podr& completar ninguna de la l,nea de crdito de su clientes.
$n estado inseguro no tiene que conducir a un interbloqueo, ya que un cliente podr,a no
necesitar su l,nea de crdito disponible, pero el banquero no puede confiar en ese
comportamiento.
)aciendo una analog,a con un Sistema Fperativo tenemos: "l estado actual del sistema se
denomina seguro, Si el Sistema Fperativo puede permitir a los usuarios actuales completar sus
trabaos en un intervalo de tiempo finito. 0e lo contrario se le denomina inseguro. "n otras
palabras: $n estado seguro es aquel en el cual la asignacin de recursos es tal que los usuarios
pueden llegar a terminar. $n estado seguro es aquel que puede llegar a terminar. $n estado
inseguro es aquel que puede llegar a un dead loc9, (nunca termina).
La asignacin de recursos por el algoritmo del banquero es la siguiente:
E Se permite todas las condiciones de e@clusin mutua, espera por y no apropiatividad.
E Se permite a los procesos mantener sus recursos mientras esperan por otros.
E "l sistema slo concede peticiones que den como resultado estados seguros.
@ El algoritmo (el a$%uero para $ re#ursos D(e Di!Hstra;.
Sea n un n!mero de proceso y m un n!mero de recurso y sea disponible un vector de
longitud m que indica el n!mero de recursos disponibles y sea m&@ima una matri# de ( n @ m)
que define la m&@ima demanda de cada proceso as, por eemplo si tuviramos m&@ima ( i, ) J 9
define los recursos asignados a cada proceso, por eemplo la asignacin ( i , ) J 9 quiere decir
que el proceso i tiene asignado W instancias del recurso necesidades ( n E m ), que indica los
recursos que requieren los procesos. -ecesidades ( i , ) J ;&@ima ( i , ) 2 8signacin ( i , ).
Se puede considera cada rengln de las matrices asignacin y necesidades como vectores
y referirnos como asignacin de i y necesidades de i.
Algoritmo+
Sea requerimiento de i un vector de requerimientos de proceso i.
%uando un requerimiento de un recurso es (ec(o por el proceso i se reali#aran las
siguientes acciones:
,;.0 Si Re%uerimie$to (e i 32 Ne#esi(a(es (e i ir al segu$(o paso. Si$o error.
-;.0 Si re%uerimie$to (e i 32 (ispo$ile ir al ter#er paso. Si $o re#urso $o (ispo$ile Pi
(ee esperar.
<;.0 1a#er Dispo$ile 2 Dispo$ile 0 Re%uerimie$to4
Asig$a#i'$ 2 Asig$a#i'$ P Re%uerimie$to4
Ne#esi(a(es 2 Ne#esi(a(es 0 Re%uerimie$to.
Si el estado es seguro se completa la transaccin de lo contrario el proceso debe esperar y
el estado anterior es restablecido.
Algoritmo para ver si el esta(o es seguro.
Sea trabao (m) y final (n) vectores de longitud m y n respectivamente, (acer
<rabao J 0isponible y final ( i ) J falso para i J 3,...n
,;.0 E$#ue$tre u$a i tal %ue *i$al D i ; (e i < falso : 9ecesidades $ i & =< .ra%a(o si $o
e8iste ir al pu$to tres.
-;.0 .ra%a(o < .ra%a(o > 2signacin $ i &4 Final $ i & < verdad ir al paso u$o.
<;.0 Si final $ i& < verdad para to(a i e$to$#es el sistema esta e$ esta(o seguro (e lo
#o$trario esta e$ esta(o i$seguro.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>T35.(tml
2.11 *iveles8 ob9etivos y criterios de planificacin.
Uno de los mdulos ms importantes de un sistema operativo es la de administrar los procesos y tareas
del sistema de cmputo. En esta seccin se revisarn dos temas que componen o conciernen a este
mdulo: la planificacin del procesador y los problemas de concurrencia.
Planificacin del procesador
La planificacin del procesador se refiere a la manera o tcnicas que se usan para decidir cunto tiempo
de ejecucin y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es
monousuario y monotarea nohay mucho que decidir, pero en el resto de los sistemas esto es crucial para
el buen funcionamiento del sistema.
Niveles de planificacin
En los sistemas de planificacin generalmente se identifican tres niveles: el alto, em medio y el bajo. El
nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos
compitiendo por los recursos del sistema; el nivel intermedio decide que procesos se suspenden o
reanudan para lograr ciertas metas de rendimiento mientras que el planificador de bajo nivel es el que
decide que proceso, de los que ya estn listos (y que en algn momento paso por los otros dos
planificadores) es al que le toca ahora estar ejecutndose en la unidad central de procesamiento. En este
trabajo se revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen
al proceso en ejecucin.
Objetivos de la planificacin
Una estrategia de planificacin debe buscar que los procesos obtengan sus turnos de ejecucin
apropiadamente, conjuntamente con un buen rendimiento y minimizacin de la sobrecarga (overhead) del
planificador mismo. En general, se buscan cinco objetivos principales:
Justicia o mparcialidad: Todos los procesos son tratados de la misma forma, y en algn
momento obtienen su turno de ejecucin o intervalos de tiempo de ejecucin hasta su terminacin
exitosa.
Maximizar la Produccin: El sistema debe de finalizar el mayor numero de procesos en por
unidad de tiempo.
Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les
responde consistentemente a sus requerimientos.
Evitar el aplazamiento indefinido: Los procesos deben terminar en un plazo finito de tiempo.
El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rpido y
con cargas pesadas debe ir degradndose paulatinamente. Otro punto de vista de esto es que si se
ejecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe
ser similar.
Caractersticas a considerar de los procesos
No todos los equipos de cmputo procesan el mismo tipo de trabajos, y un algoritmo de
planificacin que en un sistema funciona excelente puede dar un rendimiento psimo en otro cuyos
procesos tienen caractersticas diferentes. Estas caractersticas pueden ser:
Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de
entrada y salida (aplicaciones de bases de datos, por ejemplo).
Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y
salida, sino que usan intensivamente la unidad central de procesamiento. Por ejemplo, operaciones con
matrices.
Procesos de Lote o nteractivos: Un proceso de lote es ms eficiente en cuanto a la lectura de
datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho
tiempo (no es lo mismo el tiempo de lectura de un archivo que la velocidad en que una persona teclea
datos) por las respuestas de los usuarios.
Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que
tengan prioridad para los turnos de ejecucin.
Longevidad de los Procesos: Existen procesos que tipicamente requeriran varias horas para
finalizar su labor, mientras que existen otros que solonecesitan algunos segundos.
Planificacin apropiativa o no apropiativa (preemptive or not preemptive)
La planificacin apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de ejecucin
ya no puede ser suspendido, ya no se le puede arrebatar la unidad central de procesamiento. Este
esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos,
el resto de los procesos pueden quedar aplazados indefinidamente. Una planificacin no apropiativa es
aquella en que existe un reloj que lanza interrupciones periodicas en las cuales el planificador toma el
control y se decide si el mismo proceso seguir ejecutndose o se le da su turno a otro proceso. Este
mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema. Por ejemplo en los
sistemas UNX existen los 'cronjobs' y 'atjobs', los cuales se programan en base a la hora, minuto, da del
mes, da de la semana y da del ao.
En una planificacin no apropiativa, un trabajo muy grande aplaza mucho a uno pequeo, y si entra un
proceso de alta prioridad est tambin debe esperar a que termine el proceso actual en ejecucin.
.lanificacin de procesos
La planificacin es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La
seleccin del proceso se basa en alguno de los algoritmos de planificacin que se describen ms abajo.
!1pulsin
Es la caracterstica por el cual el sistema operativo puede o no expulsar del estado de ejecucin a un
proceso dado. En este sentido entonces tenemos la planificacin apropiativa en la cual el sistema
operativo puede cortar en cualquier momento la ejecucin de un proceso y la planificacin no apropiativa
en la cual una vez que el proceso esta en ejecucin el sistema operativo no puede sacarlo de ese estado.
Ob9etivos de la planificacin
Los objetivos de la planificacin de proceso son:
Equidad, todos los procesos deben poder ejecutarse
Eficacia, mantener ocupada la CPU un 100% del tiempo
Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener
sus resultados
Rendimiento, maximizar el nmero de tareas procesadas por hora.
/l0oritmos de planificacin
Los algoritmos de planificacin son los que definen que poltica se va a seguir para que un proceso pase
al estado de ejecucin.
.lanificacin 7ound=7obin
En este tipo de planificacin cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el
caso de que no pueda terminar la ejecucin en su quantum el proceso pasa de nuevo a la cola de
procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los
procesos reciban ese quantum de procesamiento.
.lanificacin por prioridad
En la planificacin round-robin todos los procesos son tratados con la misma prioridad. Para el caso de
este tipo de planificacin a cada proceso se le asigna una prioridad y los mismos son ejecutados
$olas m+ltiples
Las colas mltiples estn basadas en una pila que sirve como ndice de una lista de procesos que se
tienen que ejecutar.
Primero el trabajo ms corto
Este tipo de algoritmo de planificacin se usa para trabajos en batch o de procesamiento or lotes en los
cuales se puede saber cual es el tiempo de duracin de la ejecucin de cada proceso y entonces se
puede seleccionar primero el trabajo ms corto. El problema que se presenta con ste algoritmo es que
los grandes procesos podran sufrir de inanicin dado que cualquier proceso pequeo se "cuela" sobre
uno de mayor tamao y como resultado final se podra dar el caso que el proceso grande nunca obtenga
procesamiento.
.lanificacin 0aranti2ada
En este modelo de planificacin se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a
cada uno el tiempo de ejecucin de 1/n (siendo n la cantidad total de usuarios) de esa forma el
planificador tiene que llevar cuenta del tiempo de ejecucin de los procesos y balancear el tiempo que
estn utilizando el procesador para cumplir con la ecuacin previa.
Co$#eptos (e pla$i*i#a#i'$.
"l obetivo de la multiprogramacin es que en todo momento se eecute un proceso para
ma@imi#ar la utili#acin del %+$. "n un sistema monoprocesador nunca (abr& m&s de un
proceso en eecucin. Si (ay m&s procesos tendr&n que esperar a que el %+$ est libre y pueda
volver a planificarse.
"l concepto de multiprogramacin es muy sencillo: un proceso se eecuta (asta que tenga
que esperar, generalmente a que termine una solicitud de "'S. "n un sistema de computo sencillo,
el %+$ permanecer& inactivoG todo este tiempo de espera se desperdicia sin efectuar una
actividad !til. %on la multiprogramacin tratamos de emplear productivamente este tiempo.
Harios procesos se conservan en la memoria a la ve#, y cuando uno de ellos tiene que esperar, el
sistema operativo le quita el %+$ al proceso y se lo da a otroG este modelo contin!a, %ada ve#
que un proceso tiene que esperar, otro pueda utili#ar el %+$.
Los beneficios de la multiprogramacin son un aumento de la utili#acin del %+$ y una
mayor productividad.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_415.html
Pla$i*i#a#i'$ (el CPQ
La planificacin es una funcin fundamental del sistema operativo. %asi todos los
recursos de una computadora se planifican antes de usarse. +or supuesto, el %+$ es una de los
principales
:ecursos de la computadora, de modo que su planificacin es parte modular del diseUo de
los sistemas operativos.
0 Ci#lo (e r"*aga (el CPQ : (e EIS.
"l @ito de la planificacin del %+$ depende de la siguiente prioridad observada de los
procesos: la eecucin de un proceso consiste en un ciclo de eecucindel %+$ y de "'S, y los
procesos se alternan entre estos dos estados. La eecucin del proceso se inicia con una rafaga de
%+$G a sta le siguen una r&faga de "'S, otra r&faga de %+$, una m&s de "'S, etc. Dinalmente, la
!ltima r&faga de %+$ terminar& con una solicitud al sistema para que concluya la eecucin, en
ve# de otra r&faga de "'S.
Las duraciones de estas r&fagas de %+$ se (an medido, y, aunque var,an
considerablemente de un proceso a otro y entre computadoras, tienden a presentar una curva de
frecuencias similar a la que se muestra en la figura # 41. Zeneralmente la curva se caracteri#a
como e@ponencial o (iper(e@ponencial. )ay un gran n!mero de r&fagas de %+$ de corta
duracin y un pequeUo n!mero de larga duracin.
Figura # 41. )istograma de tiempos de r&faga del %+$.
0 Pla$i*i#a(or (el CPQ.
Siempre que el %+$ queda inactivo, el sistema operativo debe seleccionar para su
eecucin uno de sus procesos de la cola de procesos listos. "l proceso de seleccin es revisado
por el planificador a corto pla#o. (o planificador del %+$). "l planificador selecciona uno de los
procesos en memoria que est&n listos para eecucin y le asigna el %+$.
0 Estru#tura (e pla$i*i#a#i'$.
Las decisiones de planificacin del %+$ pueden efectuarse en una de las cuatro
circunstancias siguientes:
3. %uando un proceso cambia del estado de eecucin a estado de espera (por eemplo,
solicitud de "'S peticin de esperar la terminacin de uno de los procesos (io).
7. %uando un proceso cambia del estado de eecucin al estado listo (por eemplo, cuando
ocurre una interrupcin)
T. %uando un proceso cambia del estado de espera al estado listo (por eemplo, al
completarse la "'S).
V. %uando termina un proceso.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_416.html
2.12 T:cnicas de administracin del planificador.
Algoritmos (e pla$i*i#a#i'$.
Pla$i*i#a#i'$ a pla&o *i!o.
"n la planificacin a pla#o fio, ciertos trabaos se planifican para ser terminados en un
periodo espec,fico. "stos trabaos tienen un alto valor si se entregan a tiempo y pueden carecer
de valor si se entregan despus del l,mite. La planificacin a pla#o fio es complea por muc(as
ra#ones:
E Los usuarios deben proporcionar por adelantado y en forma precisa las necesidades de
recursos de su trabao. <al informacin rara ve# est& disponible.
E "l sistema debe eecutar el programa de pla#o fio sin una severa degradacin de
servicio para los otros usuarios.
E "l sistema debe planificar cuidadosamente las necesidades de recursos permitiendo un
libre tr&nsito del pla#o fio. "sto puede ser dif,cil debido a la llegada de programas nuevos
con demandas impredecibles.
E Si se activan muc(os trabaos de pla#o fio, la planificacin puede llegar a ser tan
complea que necesite mtodos de optimi#acin sofisticados para asegurar que el pla#o
fio se cumpla.
E "l maneo intenso de recursos requeridos por la planificacin de pla#o fio puede
generar una sobrecarga sustancial.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>V3`.(tml
2.12.1 FIFO
Pla$i*i#a#i'$ Primero e$ llegar 0 Primero e$ Salir DFIFO;.
"s la disciplina m&s simple4 *igura > =-. Los procedimientos son despac(ados de acuerdo
al orden de llegada a la cola de listos. $na ve# que un proceso tiene el %+$, se eecuta (asta su
terminacin. "sta planificacin es -o apropiativaG es usta en el sentido formal, pero algo inusta
porque los grandes procesos (acen esperar a trabaos pequeUos y, los trabaos sin importancia
(acen esperar a los trabaos importantes.
Figura > =-. Pla$i*i#a#i'$ primero e$ llegar primero e$ salir.
La +lanificacin FIFO ofrece una varian#a en tiempo de respuesta relativamente pequeUa
y es, por tanto, m&s predecible que otros esquemasG no es un esquema !til en la planificacin de
procesos interactivos porque no garanti#a buenos tiempos de respuesta.
FFO (Firs n First Out).-
Asocia a cada pgina el tiempo en que fue cargada en memoria. Cuando debe reemplazar una pgina, se
selecciona la que hace mas tiempo que esta en memoria. Tambin se puede implementar mediante la
utilizacin de una lista. Se reemplazan las pginas de la cabeza y se agregan al final.
Pla$i*i#a#i'$ (el Primero e$ E$trar Primero e$ Salir DFIFO;
"s muy simple, los procesos se despac(an de acuerdo con su tiempo de llegada a la cola de listos.
$na ve# que el proceso obtiene la cpu, se eecuta (asta terminar, ya que es una disciplina Qno
apropiativaS.
+uede ocasionar que procesos largos (agan esperar a procesos cortos y que procesos no
importantes (agan esperar a procesos importantes.
"s m&s predecible que otros esquemas.
-o puede garanti#ar buenos tiempos de respuesta interactivos.
Suele utili#arse integrado a otros esquemas, por eemplo, de la siguiente manera:
Los procesos se despac(an con alg!n esquema de prioridad.
Los procesos con igual prioridad se despac(an QD*DFS.
SC1EDEFIFO+ Pla$i*i#a#i'$ FIFO D,Y e$ e$trar4 ,Y e$ salir;.
"#$%&'()(* slo puede emplearse con prioridades est&ticas mayores que 6, lo que significa
que cuando un proceso "#$%&'()(* se convierte en eecutable, siempre prevalecer&
inmediatamente sobre cualquier otro proceso normal "#$%&'*+$%, eecut&ndose.
"#$%&'()(* es un simple algoritmo de planificacin sin rodaas de tiempo. +ara procesos
planificados bao la pol,tica "#$%&'()(*, se aplican las siguientes reglas: $n proceso
"#$%&'()(* que (a sido apropiado por otro proceso de mayor prioridad permanecer& en la
cabe#a de la lista para su prioridad y reanudar& su eecucin tan pronto como todos los procesos
de prioridad m&s alta se bloqueen de nuevo. %uando un proceso "#$%&'()(* llegue a ser
eecutable, se insertar& al final de la lista para su prioridad. $na llamada a s#.e(Esets#.e(uler o
a s#.e(Esetparam pondr& el proceso "#$%&'()(* identificado por pid al final de la lista si era
eecutable. $n proceso que llame a s#.e(E:iel( ser& colocado al final de la lista. -ing!n otro
suceso mover& un proceso planificado bao la pol,tica "#$%&'()(* en la lista de espera de
procesos eecutables con igual prioridad est&tica. $n proceso "#$%&'()(* se eecuta (asta que
es bloqueado por una peticin de "'S, (asta que sea apropiado por un proceso de m&s alta
prioridad, o (asta que llame a s#.e(E:iel(.
http://www.hispafuentes.com/hf-doc/man/man2/sched_setscheduler.2.html
2.12.2 S;F
Pla$i*i#a#i'$ (el traa!o m"s #orto DSFF;.
La disciplina del trabao m&s corto primero es -F apropiativa y en ella el trabao o
proceso con tiempo estimado de eecucin (asta terminacin m&s corto, es el siguiente en ser
eecutado. "l S1D reduce el tiempo de espera de los procesos, sin embargo, tiene una varian#a
mayor (es decir, es menos predecible) que en D*DF, sobre todo para los trabaos largos.
S1D favorece a los procesos cortos a costa de los procesos largos. 8dem&s, selecciona los
trabaos que ser&n atendidos y que dear&n el sistema lo antes posible. "sto !ltimo traduce en
listas de espera cortas. "l S1D es -F apropiativo por lo que resulta de poca utilidad en ambientes
de tiempo compartido.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso,Iso,E=,C..tml
Pla$i*i#a#i'$ (el Traa!o M"s Corto Primero DSFF;
"s una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo
compartido.
"l proceso en espera con el menor tiempo estimado de eecucin (asta su terminacin es el
siguiente en eecutarse.
Los tiempos promedio de espera son menores que con QD*DFS.
Los tiempos de espera son menos predecibles que en QD*DFS.
Davorece a los procesos cortos en detrimento de los largos.
<iende a reducir el n!mero de procesos en espera y el n!mero de procesos que esperan detr&s de
procesos largos.
:equiere un conocimiento preciso del tiempo de eecucin de un proceso, lo que generalmente se
desconoce.
Se pueden estimar los tiempos en base a series de valores anteriores.
Pla$i*i#a#i'$ (el Tiempo Resta$te M"s Corto DSRT;
"s la contraparte apropiativa del S1D.
"s !til en sistemas de tiempo compartido.
"l proceso con el tiempo estimado de eecucin menor para Pnali#ar es el siguiente en ser
eecutado.
$n proceso en eecucin puede ser apropiado por un nuevo proceso con un tiempo estimado de
eecucin menor.
<iene mayor sobrecarga que la planificacin S1D.
0ebe mantener un registro del tiempo de servicio transcurrido del proceso en eecucin, lo que
aumenta la sobrecarga.
Los trabaos largos tienen un promedio y una varian#a de los tiempos de espera a!n mayor que en
S1D.
La apropiacin de un proceso a punto de terminar por otro de menor duracin recin llegado
podr,a significar un mayor tiempo de cambio de conte@to (administracin del procesador) que el
tiempo de finali#acin del primero.
-l dise.arse los "istemas *perativos se debe considerar cuidadosamente la sobrecarga de los
mecanismos de administracin de recursos comparndola con los beneficios esperados.
Pla$i*i#a#i'$ el Siguie$te #o$ Rela#i'$ (e Respuesta M"8ima D1RN;
%orrige algunas de las debilidades del S1D, tales como el e@ceso de peruicio (acia los procesos
(trabaos) largos y el e@ceso de favoritismo (acia los nuevos trabaos cortos.
"s una disciplina no apropiativa.
La prioridad de cada proceso est& en funcin no slo del tiempo de servicio del trabao, sino que
tambin influye la cantidad de tiempo que el trabao (a estado esperando ser servido.
%uando un proceso (a obtenido la cpu, corre (asta terminar.
Las prioridades, que son din&micas, se calculan seg!n la siguiente frmula, donde p
r
es la
/prioridad0, t
e
es el /tiempo de espera0 y t
s
es el /tiempo de servicio01
Pla$i*i#a#i'$ (el tiempo resta$te m"s #orto primero DSRT;.
La S:< es apropiativa, en ella el proceso con el tiempo estimado de eecucin menor para
llegar a su terminacin es el siguiente en ser eecutado, incluyendo las nuevas llegadas. "n la
disciplina S1D, una ve# que el trabao comien#a su eecucin sigue (asta que termina. "n S:<, un
proceso en eecucin puede ser apropiado por un nuevo proceso con n tiempo estimado de
eecucin menor.
La S:< tiene una sobrecarga mayor que la S1D. 0ebe mantener un registro del tiempo de
servicio transcurrido del trabao en eecucin y debe controlar las apropiaciones ocasionales.
Pla$i*i#a#i'$ el siguie$te #o$ rela#i'$ (e respuesta m"8ima D1RT;.
?ri$#. 1a$se$ (34`3) desarroll la estrategia el siguiente con relacin de respuesta
m&@ima ():<), que corrige algunas de las debilidades de S1D, en especial el favoritismo por los
tamaUos pequeUos. La ):< es una disciplina de planificacin -F apropiativa en la cual la
prioridad de cada trabao est& en funcin, no slo del tiempo de servicio del trabao, sino del
tiempo que un proceso (a estado esperando a ser servido, $na ve# que un trabao obtiene el %+$,
se eecuta (asta su terminacin. Las prioridades din&micas en ):< se calculan seg!n la frmula
Tiempo de espera + Tiempo de servicio
Prioridad =
Tiempo de servicio
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>V3`.(tml
2.12. 77
Pla$i*i#a#i'$ Rou$( Roi$ DRR;.
"n esta planificacin, *igura > =<. Los procesos son despac(ados en D*DF, pero, se les
otorga una cantidad limitada de tiempo de %+$ llamada divisin de tiempo (time 2 slice) o cuanto
(quantum). Si un proceso no termina antes de que se termine su tiempo de %+$, el %+$ es
apropiado y asignado al siguiente proceso en espera. "l proceso apropiado se coloca al final de la
lista de listos.
Figura > =<. Pla$ea#i'$ rou$( roi$.
"l esquema ound ro%in es efectivo en un ambiente de tiempo compartido en el cual el
sistema necesita garanti#ar un tiempo de respuesta ra#onable para los usuarios interactivos. La
sobre carga de la apropiacin se mantiene baa mediante eficientes mecanismos de cambio de
conte@to y proporcionado suficiente memoria para que los procesos residan en ella al mismo
tiempo.
"@iste una variante de este esquema llamada selfis# round ro%in $!&. "n este esquema
los procesos que entran al sistema se colocan primero en una lista de espera (asta que su
prioridad alcan#a el nivel de proceso para la lista de activos. ;ientras un proceso est& en la lista
de espera, su prioridad aumenta en una relacin a? cuando un proceso entra a la lista de activos su
prioridad se incrementa en una relacin %.
TamaMo (el #ua$to.
La determinacin del tamaUo del cuanto es decisiva para la operacin efectiva de un
sistema computacional. A0ebe ser pequeUo o grande el cuantoC A0ebe ser fio o variableC A0ebe
ser el mismo para todos los usuarios, o debe ser diferente para cada grupo de usuariosC.
%uando se tiene un cuanto grande cada proceso pude recibir todo el tiempo que necesita
para su terminacin, de manera que el esquema round robin se convierte en un D*DF. %uando el
cuanto es pequeUo, la sobrecarga por el intercambio de conte@to se convierte en un factor
dominante y el rendimiento del sistema se degrada.
A%u&l es el cuanto ptimo C "s claro que cambia de un sistema a otro y que varia de
acuerdo a la carga del sistema.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so3'so3>V3`.(tml
SC1EDERR+ Pla$i*i#a#i'$ #ir#ular DRou$( Roi$;.
"#$%&',, es una meora simple de "#$%&'()(*. <odo lo descrito arriba para "#$%&'()(*
se aplica tambin a "#$%&',,, e@cepto que a cada proceso slo se le permite eecutarse durante
un cuanto de tiempo m&@imo. Si un proceso "#$%&',, (a estado eecut&ndose durante un
periodo de tiempo igual o mayor que el cuanto de tiempo, ser& puesto al final de la lista para su
prioridad. $n proceso "#$%&',, que (a sido apropiado por un proceso de m&s alta prioridad y
subsecuentemente reanuda su eecucin como un proceso en eecucin, completar& la porcin no
e@pirada de su cuanto de tiempo de asignacin en rueda. La cantidad del cuanto de tiempo puede
ser obtenida con s#.e(ErrEgetEi$terval.
.ttp+IINNN..ispa*ue$tes.#omI.*0(o#Ima$Ima$-Is#.e(Esets#.e(uler.-..tml
Pla$i*i#a#i'$ (e Asig$a#i'$ e$ Rue(a DRR+ Rou$( Roi$;
Los procesos se despac(an en QD*DFS y disponen de una cantidad limitada de tiempo de cpu,
llamada Qdivisin de tiempoS o QcuantoS.
Si un proceso no termina antes de e@pirar su tiempo de cpu ocurren las siguientes acciones:
3. La cpu es apropiada.
7. La cpu es otorgada al siguiente proceso en espera.
T. "l proceso apropiado es situado al final de la lista de listos.
"s efectiva en ambientes de tiempo compartido.
La sobrecarga de la apropiacin se mantiene baa mediante mecanismos eficientes de intercambio
de conte@to y con suficiente memoria principal para los procesos.
TamaMo (el Cua$to o Zua$tum
La determinacin del tamaUo del cuanto es decisiva para la operacin efectiva de un sistema
computacional g`, 0eitelh.
Los interrogantes son: Acuanto pequeUo o grandeC, Acuanto fio o variableC y Acuanto igual para
todos los procesos de usuarios o determinado por separado para cada uno de ellosC.
Si el cuanto se (ace muy grande, cada proceso recibe todo el tiempo necesario para llegar a su
terminacin, por lo cual la asignacin en rueda (Q::S) degenera en QD*DFS.
Si el cuanto se (ace muy pequeUo, la sobrecarga del intercambio de conte@to se convierte en un
factor dominante y el rendimiento del sistema se degrada, puesto que la mayor parte del tiempo
de cpu se invierte en el intercambio del procesador (cambio de conte@to) y los procesos de
usuario disponen de muy poco tiempo de cpu.
"l cuanto debe ser lo suficientemente grande como para permitir que la gran mayor,a de las
peticiones interactivas requieran de menos tiempo que la duracin del cuanto, es decir que el
tiempo transcurrido desde el otorgamiento de la cpu a un proceso (asta que genera una peticin
de "ntrada ' Salida debe ser menor que el cuanto establecido, de esta forma, ocurrida la peticin
la cpu pasa a otro proceso y como el cuanto es mayor que el tiempo transcurrido (asta la peticin
de "ntrada ' Salida, los procesos trabaan al m&@imo de velocidad, se minimi#a la sobrecarga de
apropiacin y se ma@imi#a la utili#acin de la
"ntrada ' Salida.
"l cuanto ptimo var,a de un sistema a otro y con la carga, siendo un valor de referencia 366
mseg (cien milisegundos).
2.12.# <ueves multi=level.
Pla$i*i#a#i'$ (e Dos Niveles
Los esquemas anali#ados (asta a(ora suponen que todos los procesos eecutables est&n en la
memoria principal.
Si la memoria principal es insuficiente, ocurrir& lo siguiente g7T, <anenbaumh:
)abr& procesos eecutables que se mantengan en disco.
)abr& importantes implicaciones para la planificacin, tales como las siguientes:
o "l tiempo de alternancia entre procesos para traer y procesar un proceso del disco
es considerablemente mayor que el tiempo para un proceso que ya est& en la
memoria principal.
o "s m&s eficiente el intercambio de los procesos con un planificador de dos niveles.
"l esquema operativo de un planificador de dos niveles es como sigue:
3. Se carga en la memoria principal cierto subconunto de los procesos eecutables.
7. "l planificador se restringe a ellos durante cierto tiempo.
T. +eridicamente se llama a un planificador de nivel superior para efectuar las siguientes
tareas:
3. "liminar de la memoria los procesos que (ayan permanecido en ella el tiempo
suficiente.
7. %argar a memoria los procesos que (ayan estado en disco demasiado tiempo.
V. "l planificador de nivel inferior se restringe de nuevo a los procesos eecutables que se
encuentren en la memoria.
Y. "l planificador de nivel superior se encarga de despla#ar los procesos de memoria a disco
y viceversa.
Los criterios que podr,a utili#ar el planificador de nivel superior para tomar sus decisiones son los
que se indican a continuacin:
A%u&nto tiempo (a transcurrido desde el !ltimo intercambio del procesoC.
A%u&nto tiempo de cpu (a utili#ado recientemente el procesoC.
ABu tan grande es el procesoC (generalmente los procesos pequeUos no causan tantos
problemas en este sentido).
ABu tan alta es la prioridad del procesoC.
"l planificador de nivel superior podr,a utili#ar cualquiera de los mtodos de planificacin
anali#ados.
2.12.% 3ulti=level feedbac6 5ueves.
Colas (e Retroalime$ta#i'$ (e Niveles M[ltiples
+roporcionan una estructura para lograr los siguientes obetivos:
Davorecer trabaos cortos.
Davorecer trabaos limitados por la "ntrada ' Salida para optimi#ar el uso de los
dispositivos de "ntrada ' Salida.
0eterminar la naturale#a de un trabao lo m&s r&pido posible y planificar el trabao
(proceso) en consecuencia.
$n nuevo proceso entra en la red de l,nea de espera al final de la cola superior.
Se mueve por esta cola QD*DFS (asta obtener la cpu.
Si el trabao termina o abandona la cpu para esperar por la terminacin de una operacin de
"ntrada ' Salida o la terminacin de alg!n otro suceso, el trabao abandona la red de l,nea de
espera.
Si su cuanto e@pira antes de abandonar la cpu voluntariamente, el proceso se coloca en la parte
trasera de la cola del siguiente nivel inferior.
"l trabao recibe servicio al llegar a la cabe#a de esta cola si la primera est& vac,a.
;ientras el proceso contin!e consumiendo totalmente su cuanto en cada nivel, continuar&
movindose (acia el final de las colas inferiores.
Zeneralmente (ay una cola en la parte m&s profunda a travs de la cual el proceso circula en
asignacin de rueda (asta que termina.
"@isten esquemas en los que el cuanto otorgado al proceso aumenta a medida que el proceso se
mueve (acia las colas de los niveles inferiores, en tal caso, cuanto m&s tiempo (aya estado el
proceso en la red de l,nea de espera, mayor ser& su cuanto cada ve# que obtiene la cpu y no podr&
obtener la cpu muy a menudo debido a la mayor prioridad de los procesos de las colas superiores.
$n proceso situado en una cola dada no podr& ser eecutado (asta que las colas de los niveles
superiores estn vac,as.
$n proceso en eecucin es apropiado por un proceso que llegue a una cola superior.
"s un mecanismo adaptable, es decir que se adapta a cargas variables.
8 los efectos de una revisin gr&fica de lo enunciado precedentemente, ver la figura 7.Y g`,
0eitelh.
(ttp:''e@a.unne.edu.ar'depar'areas'informatica'SistemasFperativos'SF7.(tmi++
Unidad
/dministracin de memoria.
.% .oltica y filosofa.
POLITICAS \ FILOSOFIA DE LA ADMINISTRACION DE LA MEMORIA.
La memoria principal es el lugar donde el %+$ lee las instrucciones a eecutar, asi
como algunos datos a emplear.
$na de las funciones basicas que debe implementar un SF es la 8dministracion de la
;emoria para tener un control sobre los lugares donde estan almacenados los procesos
y datos que actualmente se estan utili#ando.
"L retiro del administrador de la memoria del 9ernel es un eemplo de la separacin de
pol,tica y mecanismo. Las decisiones acerc& de que proceso se colocar& en que sitio de
la memoria (pol,tica) son tomadas por el administrador de la mempria. La colocacin
real de mapa de memoria para los procesos (mecanismo) es reali#ado por la tarea
contenida en 9ernel. "sta divisin facilita en forma relativa el cambio de la pol,tica de
administracin de la memoria (algoritmos,ect) sin tener que modificar los estratos
inferiores del sistema operativo.
3.? *mplantacin de mecanismo de memeoria virtual. M8S" L*;*<". $na solucin alternativa a
los problemas de recoleccin y proteccin consiste en equipar la m&quina con dos registros
especiales de (ard/are, llamados registro de base y de l,mite. %uando se programa un proceso, el
registro de base se craga con la direccin del inicio de su particin y el registro de l,mite se
encarga con la longitud de la particin. <oda direccin de la memoria generada automaticamente
tiene el contenido de registro de base sumado a l antes de enviarselo a la memoria. Las
direcciones tambien se verifican contra el registro de limite para asegurar que no intentan
direccionar la memoria fuera de la particin corriente. "l (ard/are protege los registro de base y
de l,mite para evitar que los programas de los usuaris los modifiquen. $na ventaa adicional de
utili#ar un registro de base para la recolocacin es que un programa se pueda despla#ar a la
memoria despues de que (aya iniciado la eecucin. 0espus de que sa (a movido, todo lo que se
necesita (acer para dearlo listo para la eecucin es cambiar el valor del registro de base.
.) 3emoria real.
Memoria real
La memoria real o principal es en donde son ejecutados los programas y procesos de
una computadora y es el espacio real que existe en memoria para que se ejecuten los
procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria,
pero el acceso a la informacin contenida en ella es de ms rpido acceso. Solo la
memoria cache es ms rpida que la principal, pero su costo es a su vez mayor.
"ttpE>>HHH.mono0rafias.com>traba9os1>0esme>0esme.s"tml
.).1/dministracin de almacenamiento.
Asignacin del espacio de almacenamiento
El subsistema de archivos se debe encargar de localizar espacio libre en los medios de almacenamiento
para guardar archivos y para despus borrarlos, renombrarlos o agrandarlos. Para ello se vale de
localidades especiales que contienen la lista de archivos creados y por cada archivo una serie de
direcciones que contienen los datos de los mismos. Esas localidades especiales se llaman directorios.
Orga$i&a#i'$ : A(mi$istra#i'$ (el Alma#e$amie$to
Orga$i&a#i'$ (el Alma#e$amie$to
)istricamente el almacenamiento principal se (a considerado como un recurso costoso, por lo
cual su utili#acin deb,a optimi#arse g`, 0eitelh.
+or organi#acin del almacenamiento se entiende la manera de considerar este almacenamiento:
A se coloca un solo programa de usuario o varios C.
Si se encuentran varios programas de usuario:
o A se concede a cada uno la misma cantidad de espacio o se divide el
almacenamiento en porciones o /particiones0 de diferente tamaUo C.
o A se utili#ar& un esquema r,gido de n!mero y tamaUo de particiones o un esquema
din&mico y adaptable C.
o A se requerir& que los trabaos de los usuarios sean diseUados para funcionar en
una particin espec,fica o se permitir& que se eecuten en cualquiera donde quepan
C.
o A se requerir& o no que cada trabao sea colocado en un bloque contiguo de
memoria C.
A(mi$istra#i'$ (el Alma#e$amie$to
*ndependientemente del esquema de organi#acin (ay que decidir las estrategias que se utili#ar&n
para optimi#ar el rendimiento.
Las /estrategias de administracin0 deben considerar:
A cu&ndo se consigue un nuevo programa para colocar en la memoria C:
o A cuando el sistema lo pide espec,ficamente o se intenta anticiparse a las
peticiones C.
A dnde se colocar& el programa que se eecutar& a continuacin C:
o A se priori#a el tiempo de carga o la optimi#acin en el uso del almacenamiento C.
A con qu criterio se despla#ar&n programas C.
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO3.htm#OAA
.).2;erar5ua.
Ferar%u)a (e Alma#e$amie$to
Los programas y datos tienen que estar en la memoria principal para poder eecutarse o ser
referenciados g`, 0eitelh.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario.
"l almacenamiento principal es m&s costoso y menor que el secundario pero de acceso m&s
r&pido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar
el movimiento de programas y datos entre niveles (ver Digura T.3 g`, 0eitelh).
$n nivel adicional es el /cac230 o memoria (e alta velo#i(a(, que posee las siguientes
caracter,sticas:
"s m&s r&pida y costosa que la memoria principal.
*mpone al sistema un nivel m&s de traspaso:
o Los programas son traspasados de la memoria principal al cac( antes de su
eecucin.
Los programas en la memoria cac( eecutan muc(o m&s r&pido que en la memoria
principal.
8l utili#ar memoria cac( se espera que:
o La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro
sea muc(o menor que la meora en el rendimiento obtenida por la posibilidad de
una eecucin muc(o m&s r&pida en la cac(.
.).!strate0ia de administracin de memoria.
Estrategias (e A(mi$istra#i'$ (el Alma#e$amie$to
"st&n dirigidas a la obtencin del meor uso posible del recurso del almacenamiento principal g`,
0eitelh.
Se dividen en las siguientes #ategor)as+
"strategias de b!squeda:
o "strategias de b!squeda por demanda.
o "strategias de b!squeda anticipada.
"strategias de colocacin.
"strategias de reposicin.
Las /estrategias de bs4ueda0 est&n relacionadas con el (ec(o de cu&ndo obtener el siguiente
fragmento de programa o de datos para su insercin en la memoria principal.
"n la /bs4ueda por demanda0 el siguiente fragmento de programa o de datos se carga al
almacenamiento principal cuando alg!n programa en eecucin lo referencia.
Se considera que la /bs4ueda anticipada0 puede producir un meor rendimiento del sistema.
Las /estrategias de colocacin0 est&n relacionadas con la determinacin del lugar de la memoria
donde se colocar& (cargar&) un programa nuevo.
Las /estrategias de reposicin0 est&n relacionadas con la determinacin de qu fragmento de
programa o de datos despla#ar para dar lugar a los programas nuevos.
Intercambio
El objetivo del intercambio es dar cabida a la ejecucin de mas aplicaciones de las que
pueden residir simultneamente en la memoria del sistema:
Consiste en trasladar el cdigo y los datos de un proceso completo de memoria al
sistema de almacenamiento secundario , para cargar otro previamente almacenado, no
permite a un proceso utilizar mas memoria RAM de la que realmente existe en el
sistema. Esta tcnica puede ser ineficiente ya que se tiene que hacer el intercambio
completo del proceso, aunque ste solo vaya a ejecutar una pequea porcin del
cdigo.
Durante el intercambio un proceso puede ser sacado temporalmente de memoria y
llevado a un lugar especial del disco y posteriormente vuelto a memoria y continuada su
ejecucin..
El lugar de almacenamiento temporal suele ser un espacio suficientemente grande
como para acomodar copias de las imgenes de meoria de todos los usuarios.
Asignacion Contigua
La memoria principal normalmente se divide en dos particiones:
Sistema operativo residente, normalmente en la parte baja de memoria con los vectores de
interrupcin.
Procesos de usuario en la parte alta.
Asignacin de particin simple:
Puede utilizarse un esquema de registro de relocalizacin y limite para proteger un
proceso de usuario de otro y de cambios del cdigo y datos del sistema operativo .
El registro de relocalizacin contiene la direccin contiene la direccin fsica mas
pequea; el registro limite contiene el rango de las direcciones lgicas cada direccin
lgica debe ser menor al registro limite
Asignacin de particiones mltiples:
Bloques de distintos tamaos estn distribuidos en memoria , cuando llega un proceso
se le asigna un hueco suficientemente grande para acomodarle.
El sistema operativo debe tener informacin sobre:
a. Particiones asignadas
b. Particiones libres (huecos)
Asignacin de particin dinmica
El proceso de compactacin es una instancia particular del problema de asignacin de
memoria dinmica, el cual es el cmo satisfacer una necesidad de tamao n con una
lista de huecos libres. Existen muchas soluciones para el problema. El conjunto de
huecos es analizado para determinar cul hueco es el ms indicado para asignarse.
Las estrategias ms comunes para asignar algn hueco de la tabla son:
Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La bsqueda puede
iniciar ya sea al inicio o al final del conjunto de huecos o en donde termin la ltima bsqueda. La
bsqueda termina al encontrar un hueco lo suficientemente grande.
Mejor ajuste: Busca asignar el espacio ms pequeo de los espacios con capacidad suficiente.
La bsqueda se debe de realizar en toda la tabla, a menos que la tabla est ordenada por tamao. Esta
estrategia produce el menor desperdicio de memoria posible.
Peor ajuste: Asigna el hueco ms grande. Una vez ms, se debe de buscar en toda la tabla de
huecos a menos que est organizada por tamao. Esta estrategia produce los huecos de sobra ms
grandes, los cuales pudieran ser de ms uso si llegan procesos de tamao mediano que quepan en ellos.
Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son
mejores que el peor ajuste en cuanto a minimizar tanto el tiempo del almacenamiento.
Ni el primer o el mejor ajuste es claramente el mejor en trminos de uso de espacio,
pero por lo general el primer ajuste es ms rpido.
Problema: La fragmentacin.
#. Fra0mentacin
La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de
gestin de memoria que se vieron en los mtodos anteriores. Tanto el primer ajuste,
como el mejor y el peor producen fragmentacin externa.
La fragmentacin es generada cuando durante el reemplazo de procesos quedan
huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de
soportar ningn proceso de la lista de espera.
La fragmentacin puede ser:
Fragmentacin Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero
no es contigua.
Fragmentacin nterna: la memoria asignada puede ser ligeramente mayor que la requerida; esta
referencia es interna a la particin, pero no se utiliza.
La fragmentacin externa se puede reducir mediante la compactacin para colocar toda
la memoria libre en un solo gran bloque, pero est a solo es posible si la relocalizacin
es dinmica y se hace en tiempo de ejecucin.
%. .a0inacin
Es una tcnica de manejo de memoria, en la cual el espacio de memoria se divide en
secciones fsicas de igual tamao, denominadas marcos de pgina. Los programas se
dividen en unidades lgicas, denominadas pginas, que tienen el mismo tamao que
los marcos de pginas. De esta forma, se puede cargar una pgina de informacin en
cualquier marco de pgina.
Las pginas sirven como unidad de almacenamiento de informacin y de transferencia
entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por
la direccin de marco, que esta en la posicin fsica de la primera palabra en el marco
de pgina.
Las pginas de un programa necesitan estar contiguamente en memoria, aunque el
programador lo observe de esta forma. Los mecanismos de paginacin permiten la
correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las
direcciones reales de la memoria que se reverencien.
Cada pagina consiste en z palabras contiguas; un espacio de direcciones N de un
programa consiste de n paginas (0,1,2,3.n-1) (n*z direcciones virtuales) y el espacio
de memoria consiste de m marcos de paginas (0,z,2z,.,(m-1)z)(m*z posiciones). Una
direccin virtual a es equivalente a una direccin dada como una dupla (p, d), en la cual
p es el nmero de la pgina y d el nmero de la palabra dentro de la pgina, de acuerdo
con la relacin:
a=p*z+d (0<=d<z)
p=(a/z) (parte entera de la division)
d=a mod z (resto de divisor a/z)
En las maquinas que usan aritmtica binaria, el calculo de (p, d) es trivial, si z es
potencia de 2. Por ejemplo, si el campo de direcciones de la instruccin es de m bits
(m>6), los cuatro bits mas significativos indican el numero de la pagina y los m-4 bits
restantes, el desplazamiento.
Para tener el control de las pginas, debe mantenerse una tabla en memoria que se
denomina tabla de Mapas de Pagina (PMT) para cada uno de los procesos.
Hasta ahora, los mtodos que hemos visto de la administracin de la memoria principal,
nos han dejado con un problema: fragmentacin, (huecos en la memoria que no pueden
usarse debido a lo pequeo de su espacio) lo que nos provoca un desperdicio de
memoria principal.
Una posible solucin para la fragmentacin externa es permitir que espacio de
direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as
permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que est
disponible, aunque est dividida. Una forma de implementar esta solucin es a travs
del uso de un esquema de paginacin. La paginacin evita el considerable problema de
ajustar los pedazos de memoria de tamaos variables que han sufrido los esquemas de
manejo de memoria anteriores. Dado a sus ventajas sobre los mtodos previos, la
paginacin, en sus diversas formas, es usada en muchos sistemas operativos.
Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de
memoria, sino que van a una unidad administradora de la memoria (MMU Memory
Management Unit). Estas direcciones generadas por los programas se llaman
direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se
divide en unidades llamadas pginas. Las unidades correspondientes en la memoria
fsica se llaman marcos para pgina o frames. Las pginas y los frames tienen siempre
el mismo tamao.
Tablas de pginas
Cada pgina tiene un nmero que se utiliza como ndice en la tabla de pginas, lo que
da por resultado el nmero del marco correspondiente a esa pgina virtual. Si el bit
presente / ausente es 0, se provoca un sealamiento (trap) hacia el sistema operativo.
Si el bit es 1, el nmero de marco que aparece en la tabla de pginas se copia en los
bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual
se copia sin modificaciones de la direccin virtual de entrada. Juntos forman una
direccin fsica de 15 bits. El registro de salida se coloca entonces en el bus de la
memoria como la direccin en la memoria fsica.
En teora, la asociacin de las direcciones virtuales con las fsicas se efecta segn lo
descrito. El nmero de pgina virtual se divide en un nmero de pgina virtual (los bits
superiores)y un ajuste (los bits inferiores). El nmero de pgina virtual se utiliza como
un ndice en la tabla de pginas para encontrar la entrada de esa pgina virtual. El
nmero de marco (si existe) se determina a partir de la tabla de pginas. El nmero de
marco se asocia al extremo superior del ajuste y reemplaza al nmero de pgina virtual
para formar una direccin fsica que se puede enviar a la memoria.
La finalidad de la tabla de pginas es asociar las pginas virtuales con los marcos. En
trminos matemticos, la tabla de pginas es una funcin, cuyo argumento es el
nmero de pgina virtual y como resultado el nmero del marco fsico. Mediante el
resultado de esta funcin, se puede reemplazar el campo de la pgina virtual de una
direccin virtual por un campo de marco, lo que produce una direccin en la memoria
fsica. Sin embargo hay que enfrentar dos aspectos fundamentales:
1. La tabla de pginas puede ser demasiado grande.
2. La asociacin debe ser rpida.
El primer punto proviene del hecho de que las computadoras modernas utilizan
direcciones virtuales de al menos 32 bits. Por ejemplo, si el tamao de pgina es de 4K,
un hueco de direcciones de 32 bits tiene un milln de pginas; en el caso de un hueco
de direcciones de 64 bits, se tendra ms informacin de la que uno quisiera
contemplar.
El segundo punto es consecuencia del hecho de que la asociacin virtual fsica debe
hacerse en cada referencia a la memoria. Una instruccin comn tiene una palabra de
instruccin y tambin un operando de memoria. Entonces es necesario hacer una, dos
o ms referencias a la tabla de pginas por cada instruccin.
Caractersticas de la paginacin:
El espacio de direcciones lgico de un proceso puede ser no contiguo.
Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames).
Se divide la memoria en bloques de tamao llamados paginas.
Se mantiene informacin en los marcos libres.
Para correr un programa de n paginas de tamao, se necesitan encontrara n marcos y cargar el
programa.
Se establece una tabla de paginas para trasladar las direcciones lgicas a fsicas.
Se produce fragmentacin interna.
Ventajas de la paginacin
1. Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y
el resto se cargara bajo la solicitud.
2. No es necesario que las paginas estn contiguas en memoria, por lo que no se necesitan
procesos de compactacin cuando existen marcos de paginas libres dispersos en la memoria.
3. Es fcil controlar todas las pginas, ya que tienen el mismo tamao.
4. El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos de espacio de
direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario.
Y. Se libera al programador de la restriccin de programar para un tamao fsico de memoria, con lo
que s e aumenta su productividad. Se puede programar en funcin de una memoria mucho ms
grande a la existente.
6. Al no necesitarse cargar un programa completo en memoria para su ejecucin, se puede
aumentar el numero de programas multiprogramndose.
7. Se elimina el problema de fragmentacin externa.
Desventajas de la paginacin
3. El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y
el mecanismo de traduccin de direcciones necesario. Se consume mucho mas recursos de
memoria, tiempo en el CPU para su implantacin.
2. Se deben reservar reas de memoria para las PMT de los procesos. Al no ser fija el tamao de
estas, se crea un problema semejante al de los programas (como asignar un tamao ptimo sin
desperdicio de memoria, u "ovearhead" del procesador).
3. Aparece el problema de fragmentacin interna. As, si se requieren 5K para un programa, pero
las paginas son de 4K, debern asignrseles 2 paginas (8k), con lo que quedan 3K sin utilizar. La
suma de los espacios libres dejados de esta forma puede ser mayor que el de varias paginas,
pero no podr ser utilizados. Debe asignarse un tamao promedio a las pginas, evitando que si
son muy pequeas, se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se
incremente el grado de fragmentacin interna.
Traduccin de Direcciones
La direccin generada por la CPU se divide en:
Numero de pagina (p): utilizado como indice en la tabla de pagins que contiene la direccin base
de cada pagina en la memoria fisica.
Offset de la pagina (d): combinado con la direccin base dfine la direccion fisica que ser enviada
a la unidad de memoria.
Ejemplo de paginacin:
). Se0mentacin
Es un esquema de manejo de memoria mediante el cual la estructura del programa
refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en
bloques de tamao variable denominados segmentos. Cada uno de ellos tienen
informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de
direcciones de programa consiste de una coleccin de segmentos, que generalmente
reflejan la divisin lgica del programa.
La segmentacin permite alcanzar los siguientes objetivos:
1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y
recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamao
y este puede variar.
3. Proteccin: se puede proteger los mdulos del segmento contra accesos no autorizados.
4. Comparicin: dos o ms procesos pueden ser un mismo segmento, bajo reglas de proteccin;
aunque no sean propietarios de los mismos.
5. Enlace dinmico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de
comenzar a ejecutar un programa. Los enlaces se establecern solo cuando sea necesario.
Ventajas de la segmentacin
El esquema de segmentacin ofrece las siguientes ventajas:
El programador puede conocer las unidades lgicas de su programa, dndoles un tratamiento
particular.
Es posible compilar mdulos separados como segmentos el enlace entre los segmentos puede
suponer hasta tanto se haga una referencia entre segmentos.
Debido a que es posible separar los mdulos se hace ms fcil la modificacin de los mismos.
Cambios dentro de un modulo no afecta al resto de los mdulos.
Es fcil el compartir segmentos.
Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en
ejecucin.
Existe la posibilidad de definir segmentos que aun no existan. As, no se asignara memoria, sino
a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serian los arreglos
cuya dimensin no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos,
incluso podra retardar la asignacin de memoria hasta el momento en el cual se referencia el arreglo u
otra estructura de dato por primera vez.
Desventajas de la segmentacin
Hay un incremento en los costos de hardware y de software para llevar a cabo la implantacin,
as como un mayor consumo de recursos: memoria, tiempo de CPU, etc.
Debido a que los segmentos tienen un tamao variable se pueden presentar problemas de
fragmentacin externas, lo que puede ameritar un plan de reubicacin de segmentos en memoria
principal.
Se complica el manejo de memoria virtual, ya que los discos almacenan la informacin en
bloques de tamaos fijos, mientras los segmentos son de tamao variable. Esto hace necesaria la
existencia de mecanismos ms costosos que los existentes para paginacin.
Al permitir que los segmentos varen de tamao, puede ser necesarios planes de reubicacin a
nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos.
No se puede garantizar, que al salir un segmento de la memoria, este pueda ser trado fcilmente
de nuevo, ya que ser necesario encontrar nuevamente un rea de memoria libre ajustada a su tamao.
La comparticion de segmentos permite ahorrar memoria, pero requiere de mecanismos
adicionales da hardware y software.
Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como
Segmentacin paginada.
@. Se0mentacin .a0inada
Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca
brindar las ventajas enunciadas anteriormente.
Para la segmentacin se necesita que estn cargadas en memoria, reas de tamaos
variables. Si se requiere cargar un segmento en memoria; que antes estuvo en ella y
fue removido a memoria secundaria; se necesita encontrar una regin de la memoria lo
suficientemente grande para contenerlo, lo cual no es siempre factible; en cambio
"recargar" una pagina implica solo encontrar un merco de pagina disponible.
A nivel de paginacin, si quiere referenciar en forma cclicas n paginas, estas debern
ser cargadas una a una generndose varias interrupciones por fallas de paginas; bajo
segmentacin, esta pagina podra conformar un solo segmento, ocurriendo una sola
interrupcin, por falla de segmento. No obstante, si bajo segmentacin, se desea
acceder un rea muy pequea dentro de un segmento muy grande, este deber
cargarse completamente en memoria, desperdicindose memoria; bajo paginacin solo
se cargara la pgina que contiene los tems referenciados.
Puede hacerse una combinacin de segmentacin y paginacin para obtener las
ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este
puede dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de
pginas.
Los segmentos son usualmente mltiplos de pginas en tamao, y no es necesario que
todas las pginas se encuentren en memoria principal a la vez; adems las pginas de
un mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan
estarlo en memoria real.
Las direcciones tienen tres componentes: (s, p,d), donde la primera indica el numero del
segmento, la segunda el numero de la pagina dentro del segmento y la tercera el
desplazamiento dentro de la pagina. Se debern usar varias tablas:
SMT (tabla de mapas de segmentos): una para cada proceso. En cada entrada de la SMT se
almacena la informacin descrita bajo segmentacin pura, pero en el campo de direccin se indicara la
direccin de la PMT (tabla de mapas de pginas) que describe a las diferentes pginas de cada
segmento.
PMT (tabla de mapas de pginas): una por segmento; cada entrada de la PMT describe una
pgina de un segmento; en la forma que se presento la pagina pura.
TBM (tabla de bloques de memoria): para controlar asignacin de pginas por parte del sistema
operativo.
JT (tabla de Jobs): que contiene las direcciones de comienzo de cada una de las SMT de los
procesos que se ejecutan en memoria.
En el caso, de que un segmento sea de tamao inferior o igual al de una pagina, no se
necesita tener la correspondiente PMT, actundose en igual forma que bajo
segmentacin pura; puede arreglarse un bit adicional (S) a cada entrada de la SMT,
que indicara si el segmento esta paginado o no.
Ventajas de la segmentacin paginada
El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin y la
paginacin:
Debido a que los espacios de memorias son segmentados, se garantiza la facilidad de implantar
la comparticion y enlace.
Como los espacios de memoria son paginados, se simplifican las estrategias de almacenamiento.
Se elimina el problema de la fragmentacin externa y la necesidad de compactacin.
Desventajas de la segmentacin paginada
Las tres componentes de la direccin y el proceso de formacin de direcciones hace que se
incremente el costo de su implantacin. El costo es mayor que en el caso de de segmentacin pura o
paginacin pura.
Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor
costo de almacenamiento.
Sigue existiendo el problema de fragmentacin interna de todas- o casi- todas las
pginas finales de cada uno de los segmentos. Bajo paginacin pura se desperdician
solo la ltima pgina asignada, mientras que bajo segmentacin paginada el
desperdicio puede ocurrir en todos los segmentos asignados.
http://www.monografias.com/trabajos13/gesme/gesme.shtml
.).#/si0nacin conti0ua v.s. no conti0ua.
Para asignarle espacio a los archivos existen tres criterios generales que se describen enseguida.
Asignacin contigua: Cada directorio contiene la los nombres de archivos y la direccin del
bloque inicial de cada archivo, as como el tamao total de los mismos. Por ejemplo, si un archivo
comienza en el sector 17 y mide 10 bloques, cuando el archivo sea accesado, el brazo se mover
inicialmente al bloque 17 y de ah hasta el 27. Si el archivo es borrado y luego creado otro ms pequeo,
quedarn huecos intiles entre archivos tiles, lo cual se llama fragmentacin externa.
Asignacin encadenada: Con este criterio los directorios contienen los nombres de archivos y por
cada uno de ellos la direccin del bloque inicial que compone al archivo. Cuando un archivo es ledo, el
brazo va a esa direccin inicial y encuentra los datos iniciales junto con la direccin del siguiente bloque y
as sucesivamente. Con este criterio no es necesario que los bloques estn contiguos y no existe la
fragmentacin externa, pero en cada "eslabn" de la cadena se desperdicia espacio con las direcciones
mismas. En otras palabras, lo que se crea en el disco es una lista ligada.
Asignacin con ndices ( indexada ): En este esquema se guarda en el directorio un bloque de
ndices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de mabnera que el
acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos
apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos: uno al
bloque de ndices y otro a la direccin deseada. Este es un esquema excelente para archivos grandes
pero no para pequeos, porque la relacin entre bloques destinados para ndices respecto a los
asignados para datos es incosteable.
Asig$a#i'$ Co$tigua (e Alma#e$amie$to Versus No Co$tigua
"n la /asignacin contigua0 cada programa ocupa un bloque contiguo y sencillo de
locali#aciones de almacenamiento.
"n la /asignacin no contigua0 un programa se divide en varios bloques o /segmentos0 que
pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que
es m&s complea pero m&s eficiente que la asignacin continua.
Asig$a#i'$ Co$tigua (e Alma#e$amie$to (e Q$ Solo Qsuario
Se consideran S. F. que ya poseen desarrollado el /sistema de control de entrada 5 salida0:
*F%S: input ' output control system (ver Digura T.7 g`, 0eitelh).
"l tamaUo de los programas est& limitado por la cantidad de memoria principal, pero se puede
superar este l,mite con tcnicas de /recubrimientos0, con las siguientes caracter,sticas (ver
Digura T.T g`, 0eitelh):
Si una seccin particular del programa ya no es necesaria, se carga otra seccin desde el
almacenamiento secundario ocupando las &reas de memoria liberadas por la seccin que
ya no se necesita.
La administracin manual por programa del recubrimiento es complicada y dificulta el
desarrollo y el mantenimiento.
Prote##i'$ e$ los sistemas (e u$ solo usuario
"l usuario tiene un completo control sobre la totalidad del almacenamiento principal:
"l almacenamiento se divide en porciones que contienen el S. F., el programa del usuario
y una porcin sin usar.
"l programa del usuario podr,a destruir &reas del S. F. que podr,an:
o 0etener el sistema.
o +roducir salidas errneas.
"l S. F. debe estar protegido contra el proceso usuario:
o La proteccin se instrumenta mediante un /registro de l!mites0 incorporado a la
cpu:
%ontiene la direccin de la instruccin m&s alta utili#ada por el S. F.
Si se intenta ingresar al S. F. la instruccin es interceptada y el proceso
finali#a.
Pro#esamie$to por lotes (e *lu!o [$i#o
Los sistemas de un solo usuario se dedican a un trabao durante m&s tiempo del que toma su
eecucin.
Los trabaos requieren de:
/tiempo de instalacin01 el necesario para preparar el entorno operativo requerido.
/tiempo de descarga01 el necesario para desmontar el entorno operativo que fue
requerido.
0urante la instalacin y descarga de los trabaos la cpu no est& eecutando dic(os trabaos
requeridos, por lo cual:
8utomati#ar la /transicin de trabao a trabao0 reduce la cantidad de tiempo perdido
entre trabaos.
Surgieron los sistemas de /procesamiento por lotes0.
"n el /procesamiento por lotes de fluo nico0 los trabaos se agrupan en /lotes0 encol&ndose
para su eecucin.
"l /procesador de fluos de trabaos01
Lee las instrucciones del /lenguae de control de trabaos0.
Dacilita la preparacin del trabao siguiente.
"mite instrucciones al operador del sistema.
8utomati#a funciones anteriormente manuales.
%uando finali#a un trabao efect!a las /operaciones de mantenimiento0 apropiadas para
facilitar la transicin del siguiente trabao.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
M]TODOS DE ASIXNACIN DE ESPACIO EN DISCO.
$n mtodo de asignacin de espacio en disco determina la manera en que un Sistema
Fperativo controla los lugares del disco ocupados por cada arc(ivo de datos. Se debe controlar
b&sicamente la identificacin del arc(ivo, sector de inicio y sector final.
+ara el control del espacio ocupado en disco se puede utili#ar como base alguno de los
mtodos tericos: 2signacin 0ontigua@ 2signacin 'igada@ 2signacin Ande*ada.

ASIXNACIN CONTIXQA.
"ste mtodo consiste en asignar el espacio en disco de tal manera que las direcciones de todos los
bloques correspondientes a un arc(ivo definen un orden lineal. +or eemplo:





VENTAFAS DESVENTAFAS
2 La cabe#a de lectura no se mueve demasiado
en la lectura de un arc(ivo.
2 +roduce fragmentacin e@terna.
ASIXNACIN LIXADA
"n este mtodo, cada arc(ivo es una lista ligada de bloques de disco. "n el directorio (ay un
apuntador al bloque de inicio y un apuntador al bloque final para cada arc(ivo. "n cada uno de
los bloques donde se encuentra un arc(ivo (ay un apuntador al siguiente bloque de la lista. +or
eemplo:


VENTAFAS DESVENTAFAS
2 -o produce fragmentacin e@terna.

La cabe#a de lectura se puede mover
demasiado en la lectura de un arc(ivo.
2 Si una liga se pierde, se perder& el
arc(ivo completo.
"s ineficiente para la implementacin de
arc(ivos directos.
Se necesita un campo e@tra para el
apuntador.
ASIXNACIN INDERADA
%omo ya se vio, la asignacin ligada resuelve problemas de fragmentacin e@terna, sin embargo,
la asignacin ligada no soporta eficientemente el acceso directo a los arc(ivos. La asignacin
inde@ada resuelve este problema poniendo todos los apuntadores en una sola localidad: %l blo4ue
!ndice.
%ada arc(ivo tiene su bloque ,ndice, "l cual es un arreglo de direcciones de bloques de disco.
La i63sima entrada en el bloque ,ndice apunta al i63simo bloque que conforma el arc(ivo. "n el
directorio se controla la direccin del bloque ,ndice de cada arc(ivo, por eemplo:



VENTAFAS DESVENTAFAS
-o produce fragmentacin e@terna.
"ficiente para la implementacin de
arc(ivos directos.

"@iste desperdicio cuando (ay arc(ivos
muy c(icos.
0esbordamiento de bloque ,ndice.
(Solucin: creacin de un esquema
ligadoG el ultimo bloque ,ndice apunta a
otro ,ndice)
"ttpE>>HHH.itlp.edu.m1>publica>tutoriales>sistemasoperativos2>unidad#."tmK/SIB
*/$IL*M2D$O*TIBU/.
.).%3ultipro0ramacin de particin fi9a8 particin
variable8 con intercambio de almacenamiento.
Multiprogramacin de particin fija.-
La memoria se divide en particiones de tamao fijo (puede ser distinto el tamao de cada particin).
Originalmente los programas se compilaban y link editaban para ejecutar en una particin en particular
(direcciones absolutas). Posteriormente los compiladores y link editores generan cdigo reubicable para
que un programa pudiera ejecutar en cualquier particin de memoria suficientemente grande.
Con esta estructura de administracin de memoria se desperdicia memoria y tiempo de CPU (si hay un
programa corriendo los dems quedan encolados aunque haya otra particin libre).
Multiprogramacin de particin variable.-
Cada programa o usuario utiliza tanta memoria como sea necesaria siempre que quepa en el
almacenamiento real. Cuando los programas van terminando su ejecucin se van generando agujeros en
memoria.
Particiones fijas o particiones variables
En el esquema de la multiprogramacin en memroia real se manejan dos alternativas para asignarle a
cada programa su particin correspondiente: particiones de tamao fijo o particiones de tamao variable.
La alternativa ms simple son las particiones fijas. Dichas particiones se crean cuando se enciende el
equipo y permanecern con los tamaos iniciales hasta que el equipo se apague. Es una alternativa muy
vieja, quien haca la divisin de particiones era el operador analizando los tamaos estimados de los
trabajos de todo el da. Por ejemplo, si el sistema tena 512 kilobytes de RAM, podia asignar 64 k para el
sistema operativo, una particin ms de 64 k, otra de 128k y una mayor de 256 k. Esto era muy simple,
pero inflexible, ya que si surgan trabajos urgentes, por ejemplo, de 400k, tenan que esperar a otro da o
reparticionar, inicializando el equipo desde cero. La otra alternativa, que surgi despus y como
necesidad de mejorar la alternativa anterior, era crear particiones contiguas de tamao variable. Para
esto, el sistema tena que mantener ya una estructura de datos suficiente para saber en dnde haban
huecos disponibles de RAM y de dnde a dnde haban particiones ocupadas por programas en
ejecucin. As, cuando un programa requera ser cargado a RAM, el sistema analizaba los huecos para
saber si haba alguno de tamao suficiente para el programa que queria entrar, si era as, le asignaba el
espacio. Si no, intentaba relocalizar los programas existentes con el propsito de hacer contiguo todo el
espacio ocupado, as como todo el espacio libre y as obtener un hueco de tamao suficiente. Si an as
el programa no caba, entonces lo bloqueaba y tomaba otro. El proceso con el cual se juntan los huecos o
los espacios ocupados se le llama `compactacin'. El lector se habr dado cuenta ya de que surgen
varios problemas con los esquemas de particiones fijas y particiones variables: En base a qu criterio
se elige el mejor tamao de particin para un programa ? Por ejemplo, si el sistema tiene dos huecos,
uno de 18k y otro de 24 k para un proceso que desea 20 k, Cual se le asigna ? Existen varios
algoritmos para darle respuesta a la pregunta anterior, los cuales se ennumeran y describen enseguida.
Primer Ajuste: Se asigna el primer hueco que sea mayor al tamao deseado.
Mejor Ajuste: Se asigna el hueco cuyo tamao exceda en la menor cantidad al tamao deseado.
Requiere de una bsqueda exhaustiva.
Peor Ajuste: Se asigna el hueco cuyo tamao exceda en la mayor cantidad al tamao deseado.
Requiere tambin de una bsqueda exhaustiva.
El Siguiente Ajuste: Es igual que el `primer ajuste' con la diferencia que se deja un apuntador al
lugar en donde se asign el ltimo hueco para realizar la siguiente bsqueda a partir de l.
Ajuste Rpido: Se mantienen listas ligadas separadas de acuerdo a los tamaos de los huecos,
para as buscarle a los procesos un hueco ms rpido en la cola correspondiente.
Otro problema que se vislumbra desde aqu es que, una vez asignado un hueco, por ejemplo, con "el
peor ajuste", puede ser que el proceso requiriera 12 kilobytes y que el hueco asignado fuera de 64
kilobytes, por lo cual el proceso va a desperdiciar una gran cantidad de memoria dentro de su particin, lo
cual se le llama `fragmentacin interna'.
Por otro lado, conforme el sistema va avanzando en el da, finalizando procesos y comenzando otros, la
memoria se va configurando como una secuencia contigua de huecos y de lugares asignados,
provocando que existan huecos, por ejemplo, de 12 k, 28k y 30 k, que sumados dan 70k, pero que si en
ese momento llega un proceso pidindolos, no se le pueden asignar ya que no son localidades contiguas
de memoria ( a menos que se realice la compactacin ). Al hecho de que aparezcan huecos no contiguos
de memoria se le llama `fragmentacin externa'.
De cualquier manera, la multiprogramacin fue un avance significativo para el mejor aprovechamiento de
la unidad central de procesamiento y de la memoria misma, as como dio pie para que surgieran los
problemas de asignacin de memoria, proteccin y relocalizacin, entre otros.
Los overlays
Una vez que surgi la multiprogramacin, los usuarios comenzaron a explorar la forma de ejecutar
grandes cantidades de cdigo en reas de memoria muy pequeas, auxiliados por algunas llamadas al
sistema operativo. Es as como nacen los `overlays'.
Esta tcnica consiste en que el programador divide lgicamente un programa muy grande en secciones
que puedan almacenarse el las particiones de RAM. Al final de cada seccin del programa ( o en otros
lugares necesarios ) el programador insertaba una o varias llamadas al sistema con el fin de descargar la
seccin presente de RAM y cargar otra, que en ese momento resida en disco duro u otro medio de
almacenamiento secundario. Aunque esta tcnica era eficaz ( porque resolva el problema ) no era
eficiente ( ya que no lo resolva de la mejor manera ). Esta solucin requera que el programador tuviera
un conocimiento muy profundo del equipo de cmputo y de las llamadas al sistema operativo. Otra
desventaja era la portabilidad de un sistema a otro: las llamadas cambiaban, los tamaos de particiones
tambin. Resumiendo, con esta tcnica se podan ejecutar programas ms grandes que las particiones
de RAM, donde la divisin del cdigo corra a cuenta del programador y el control a cuenta del sistema
operativo.
Multiprograma#i'$ (e Parti#i'$ Fi!a
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a
que g`, 0eitelh (ver Digura T.V g`, 0eitelh):
%uando ocurre una peticin de e ' s la cpu normalmente no puede continuar el proceso
(asta que concluya la operacin de e ' s requerida.
Los perifricos de e ' s frenan la eecucin de los procesos ya que comparativamente la
cpu es varios rdenes de magnitud m&s r&pida que los dispositivos de e ' s.
Los sistemas de /multiprogramacin0 permiten que varios procesos usuarios compitan al mismo
tiempo por los recursos del sistema:
$n trabao en espera de e ' s ceder& la cpu a otro trabao que est listo para efectuar
cmputos.
"@iste paralelismo entre el procesamiento y la e ' s.
Se incrementa la utili#acin de la cpu y la capacidad global de eecucin del sistema.
"s necesario que varios trabaos residan a la ve# en la memoria principal.
Multiprograma#i'$ (e Parti#i'$ Fi!a+ Tra(u##i'$ : Carga Asolutas
Las QparticionesS del almacenamiento principal:
Son de tamaUo fio.
8loan un proceso cada una.
La cpu se cambia r&pidamente entre los procesos creando la ilusi'$ (e simulta$ei(a(.
Los trabaos se traduc,an con ensambladores y compiladores absolutos para ser eecutados solo
dentro de una particin espec,fica (ver Digura T.Y g`, 0eitelh).
"l S. F. resulta de implementacin relativamente sencilla pero no se optimi7a la utili7acin de la
memoria.
Multiprograma#i'$ (e Parti#i'$ Fi!a+ Tra(u##i'$ : Carga Relo#ali&ales
Los compiladores, ensambladores y cargadores de relocali#acin:
Se usan para producir programas relocali#ables que puedan ser eecutados en cualquier
particin disponible de tamaUo suficiente para aceptarlos (ver Digura T.? g`, 0eitelh).
Son m&s compleos que los absolutos.
;eoran la utili#acin del almacenamiento.
%onfieren m&s fle@ibilidad en el armado de la carga de procesos.
Prote##i'$ e$ los Sistemas (e Multiprograma#i'$
Si se utili#a asignacin contigua de memoria la proteccin suele implementarse con varios
/registros de l!mites0 (ver Digura T.` y Digura T.5 g`, 0eitelh).
Los e@tremos superior e inferior de una particin pueden ser:
0elineados con dos registros.
*ndicados el l,mite inferior o superior y el tamaUo de la particin o regin.
Fragme$ta#i'$ e$ la Multiprograma#i'$ (e Parti#i'$ Fi!a
La /fragmentacin de almacenamiento0 ocurre en todos los sistemas independientemente de su
organi#acin de memoria.
"n los S. F. de multiprogramacin de particin fia la fragmentacin se produce cuando:
Los trabaos del usuario no llenan completamente sus particiones designadas.
$na particin permanece sin usar porque es demasiado pequeUa para aloar un trabao que
est& en espera.
Multiprograma#i'$ (e Parti#i'$ Variale
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio
disponible de memoria g`, 0eitelh (ver Digura T.4 g`, 0eitelh).
-o (ay l,mites fios de memoria, es decir que la particin de un trabao es su propio tamaUo.
Se consideran /es4uemas de asignacin contigua0, dado que un programa debe ocupar
posiciones adyacentes de almacenamiento.
Los procesos que terminan dean disponibles espacios de memoria principal llamados
/agueros01
+ueden ser usados por otros trabaos que cuando finali#an dean otros /agueros0
menores.
"n sucesivos pasos los /agueros0 son cada ve# m&s numerosos pero m&s pequeUos, por
lo que se genera un desperdicio de memoria principal.
Comi$a#i'$ (e agu!eros D"reas lires;
%onsiste en fusionar agueros adyacentes para formar uno sencillo m&s grande.
Se puede (acer cuando un trabao termina y el almacenamiento que libera tiene l,mites con otros
agueros.
Compresi'$ o Compa#ta#i'$ (e Alma#e$amie$to
+uede ocurrir que los agueros (&reas libres) separados distribuidos por todo el almacenamiento
principal constituyan una cantidad importante de memoria:
+odr,a ser suficiente (el total global disponible) para aloar a procesos encolados en espera
de memoria.
+odr,a no ser suficiente ning!n &rea libre individual (ver Digura T.36 g`, 0eitelh).
La tcnica de compresin de memoria implica pasar todas las &reas ocupadas del almacenamiento
a uno de los e@tremos de la memoria principal:
0ea un solo aguero grande de memoria libre contigua.
"sta tcnica se denomina /recogida de residuos0 (ver Digura T.33 g`, 0eitelh).
Pri$#ipales (esve$ta!as (e la #ompresi'$
%onsume recursos del sistema (ver Digura T.37 g`, 0eitelh).
"l sistema debe detener todo mientras efect!a la compresin, lo que puede afectar los tiempos de
respuesta.
*mplica la relocali#acin (reubicacin) de los procesos que se encuentran en la memoria:
La informacin de relocali#acin debe ser de accesibilidad inmediata.
Una alta carga de trabao significa mayor frecuencia de compresin 4ue incrementa el uso de
recursos.
Estrategias (e Colo#a#i'$ (el Alma#e$amie$to
Se utili#an para determinar el lugar de la memoria donde ser&n colocados los programas y datos
que van llegando y se las clasifica de la siguiente manera:
/%strategia de meor auste01
o $n trabao nuevo es colocado en el aguero en el cual quepa de forma m&s
austada:
0ebe dearse el menor espacio sin usar.
/%strategia de primer auste01
o $n trabao nuevo es colocado en el primer aguero disponible con tamaUo
suficiente para aloarlo.
/%strategia de peor auste01
o %onsiste en colocar un programa en el aguero en el que quepa de la peor manera,
es decir en el m&s grande posible:
"l aguero restante es tambin grande para poder aloar a un nuevo
programa relativamente grande.
Multiprograma#i'$ #o$ I$ter#amio (e Alma#e$amie$to
"n el esquema de /intercambio0 los programas del usuario no re4uieren permanecer en la
memoria principal 2asta su terminacin g`, 0eitelh.
$na variante consiste en que un trabao se eecuta (asta que ya no puede continuar:
%ede el almacenamiento y la cpu al siguiente trabao.
La totalidad del almacenamiento se dedica a un trabao durante un breve per,odo de
tiempo.
Los trabaos son /intercambiados0, d&ndose que un trabao puede ser intercambiado
varias veces antes de llegar a su terminacin.
"s un esquema ra#onable y eficiente para un n!mero relativamente reducido de procesos de
usuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de paginacin.
"l rendimiento de los sistemas de intercambio meora al reducir el tiempo (e i$ter#amio+
;anteniendo al mismo tiempo varias /imgenes de usuario o imgenes de memoria0 en
la memoria principal.
:etirando una imagen de usuario de la memoria principal solo cuando es necesario su
almacenamiento para una nueva imagen.
*ncrementando la cantidad de memoria principal disponible en el sistema.
Las im&genes de usuario (im&genes de memoria) retiradas del almacenamiento principal se
graban en el almacenamiento secundario (discos).
.@ Or0ani2acin de memoria virtual.
Multiprogramacin en memoria virtual
La necesidad cada vez ms imperiosa de ejecutar programas grandes y el crecimiento en poder de las
unidades centrales de procesamiento empujaron a los diseadores de los sistemas operativos a implantar
un mecanismo para ejecutar automticamente programas ms grandes que la memoria real disponible,
esto es, de ofrecer `memoria virtual'.
La memoria virtual se llama as porque el programador ve una cantidad de memoria mucho mayor que la
real, y en realidad se trata de la suma de la memoria de almacenamiento primario y una cantidad
determinada de almacenamiento secundario. El sistema operativo, en su mdulo de manejo de memoria,
se encarga de intercambiar programas enteros, segmentos o pginas entre la memoria real y el medio de
almacenamiento secundario. Si lo que se intercambia son procesos enteros, se habla entonces de
multiprogramacin en memoria real, pero si lo que se intercambian son segmentos o pginas, se puede
hablar de multiprogramacin con memoria virtual.
La memoria virtual se apoya en varias tcnicas interesantes para lograr su objetivo. Una de las teorias
ms fuertes es la del `conjunto de trabajo', la cual se refiere a que un programa o proceso no est usando
todo su espacio de direcciones en todo momento, sino que existen un conjunto de localidades activas que
conforman el `conjunto de trabajo'. Si se logra que las pginas o segmentos que contienen al conjunto de
trabajo estn siempre en RAM, entonces el programa se desempear muy bien.
Otro factor importante es si los programas exhiben un fenmeno llamado `localidad', lo cual quiere decir
que algunos programas tienden a usar mucho las instrucciones que estn cercanas a la localidad de la
instruccin que se est ejecutando actualmente.
.@.1!valuacin de las or0ani2aciones de
almacenamiento.
I$tro(u##i'$ a la Orga$i&a#i'$ (el Alma#e$amie$to Virtual
/-lmacenamiento virtual 0 significa la capacidad de direccionar un espacio de almacenamiento
muc2o mayor 4ue el disponible en el almacenamiento primario de determinado sistema de
computacin g`, 0eitelh.
"sta tecnolog,a apareci en 34?6 en la $niversidad de ;anc(ester (*nglaterra), en el sistema
Q8tlasS.
Los m/to(os m&s comunes de implementacin son mediante:
<cnicas de /paginacin0.
<cnicas de /segmentacin0.
$na combinacin de ambas tcnicas.
Las direcciones generadas por los programas en su eecucin no son, necesariamente, aquellas
contenidas en el almacenamiento primario (memoria real), ya que las (ire##io$es virtuales
suelen seleccionarse dentro de un n!mero muc(o mayor de direcciones que las disponibles dentro
del almacenamiento primario.
La evolu#i'$ e$ las orga$i&a#io$es (e alma#e$amie$to puede resumirse como sigue:
:eal:
o Sistemas dedicados a un solo usuario.
:eal:
o Sistemas de multiprogramacin en memoria real:
;ultiprogramacin en particin fia:
8bsoluta.
:elocali#able (reubicable).
;ultiprogramacin en particin variable.
Hirtual:
o ;ultiprogramacin en almacenamiento virtual:
+aginacin pura.
Segmentacin pura.
%ombinacin paginacin ' segmentacin.
Co$#eptos ?"si#os (e Alma#e$amie$to Virtual
La clave del concepto de memoria (almacenamiento) virtual esta en la disociacin:
0e las direcciones a las que (ace referencia un programa.
0e las direcciones disponibles en la memoria real (almacenamiento primario).
Los principales conceptos son los siguientes:
/&irecciones virtuales01
o Son las referidas por un proceso en eecucin.
/&irecciones reales01
o Son las disponibles dentro del almacenamiento primario.
/%spacio de direcciones virtuales (v)0 de un proceso:
o "s el n!mero de direcciones virtuales a que puede (acer referencia el proceso.
/%spacio de direcciones reales (r)0 de un computador:
o "s el n!mero de direcciones reales disponibles en el ordenador.
Los procesos 2acen referencia a direcciones virtuales pero stas deben eecutarse en el
almacenamiento real:
Las direcciones virtuales deben ser transformadas dentro de las direcciones reales,
mientras el proceso est& en eecucin.
La traduccin de direcciones deber& (acerse r&pidamente para no degradar al sistema.
"@isten varios medios para asociar las direcciones virtuales con las reales (ver Digura T.3T g`,
0eitelh).
Los mecanismos de /traduccin dinmica de direcciones0 (dat) convierten las direcciones
virtuales en reales al eecutarse el proceso.
Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por
qu ser contiguas dentro del almacenamiento real, a esto se denomina /contig8idad artificial 0
(ver Digura T.3V g`, 0eitelh).
Orga$i&a#i'$ (el Alma#e$amie$to (e Niveles M[ltiples
Se deben proporcionar los medios para retener programas y datos en un gran almacenamiento
au@iliar para:
+ermitir que el espacio de direcciones virtuales de un usuario sea mayor que el espacio de
direcciones reales.
Soportar multiprogramacin de forma efectiva en un sistema con muc(os usuarios que
compartan el almacenamiento real.
Se utili#a un esquema de almacenamiento de dos niveles (ver Digura T.3Y g`, 0eitelh):
+rimer nivel: /almacenamiento real 01
o "n l se eecutan los procesos y en l deben estar los datos para que un proceso
pueda referirse a ellos.
Segundo nivel: /almacenamiento auxiliar9 secundario o adicional 01
o Zeneralmente consta de discos de gran capacidad que pueden mantener los
programas y datos que no caben al mismo tiempo en el m&s limitado
almacenamiento real.
%uando se va a eecutar un proceso su cdigo y datos se pasan al almacenamiento principal.
"l almacenamiento real es #omparti(o por varios procesos:
%ada proceso puede tener un espacio de direcciones virtuales muc(o mayor que el
almacenamiento real.
Solo se mantiene al mismo tiempo una pequeUa parte de los programas y datos de cada
proceso en el almacenamiento real.
Tra$s*orma#i'$ (e ?lo%ues
Los mecanismos de traduccin din&mica de direcciones deben mantener /mapas0 que ilustren
qu direcciones del almacenamiento virtual se encuentran en el almacenamiento real y dnde se
encuentran g`, 0eitelh.
La informacin se agrupa en /blo4ues01
"l sistema est& informado del lugar del almacenamiento real donde (an sido colocados los
bloques de almacenamiento virtual.
%uanto mayor sea el bloque menor ser& la fraccin del almacenamiento real que debe
dedicarse a contener la informacin del mapa.
%on bloques grandes:
o Se reduce la sobrecarga de almacenamiento del mecanismo de transformacin.
o Se incrementa el tiempo de transferencia entre los almacenamientos secundario y
primario.
o %onsumen m&s almacenamiento real pudiendo limitar el n!mero de procesos que
pueden compartirlo.
Los bloques pueden ser de tama.o1
o )gual 1 se denominan /pginas0 y la organi#acin de almacenamiento virtual
asociada se denomina /paginacin0.
o &iferente1 se denominan /segmentos0 y la organi#acin de almacenamiento
virtual asociada se denomina /segmentacin0.
Se pueden combinar ambas tcnicas: segmentos de tamaUo variable compuestos de
p&ginas de tamaUo fio.
Las direcciones son /bidimensionales0, es decir que una direccin virtual /v0 se indica por un
par ordenado /(b9d)09 donde:
QbS: n!mero del bloque donde reside.
QdS: despla#amiento a partir del inicio del bloque.
La traduccin de una direccin virtual Qv J (b,d)S a la direccin real QrS considera lo siguiente
(ver Digura T.3? y Digura T.3` g`, 0eitelh):
%ada proceso tiene su /tabla de mapa de blo4ues0 mantenida por el sistema en el
almacenamiento real.
$n registro especial del procesador llamado /registro origen de la tabla de blo4ues0 se
carga con la direccin real QaS de la Qtabla de mapa de bloquesS:
o %ontiene una entrada para cada bloque del proceso.
o Las entradas se mantienen en orden secuencial para el bloque 6, bloque 3, etc.
o Se aUade el bloque n!mero QbS a la direccin base QaS de la Qtabla de bloquesS
para formar la direccin real de la entrada de la Qtabla de mapa de bloquesS para el
bloque QbS:
%ontiene la direccin real Qb j S para el bloque QbS.
"l despla#amiento QdS se aUade a la direccin de inicio del bloque, Qb j S,
para formar la Qdireccin realS deseada: Qr J b j a dS.
La transformacin de blo4ues se efecta en forma dinmica mientras se eecuta un proceso, por
lo cual, si la implementacin no es eficiente, su sobrecarga puede causar una degradacin del
rendimiento que podr,a eliminar en parte las ventaas de la utili#acin del almacenamiento
virtual.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.@.2.a0inacin.
Co$#eptos ?"si#os (e Pagi$a#i'$
Drecuentemente se diferencia entre la /paginacin pura0 y la /combinacin de paginacin y
segmentacin0g`, 0eitelh.
Las p&ginas se transfieren del almacenamiento secundario al primario en bloques llamados
/marcos de pginas01
<ienen el mismo tamaUo que las p&ginas.
%omien#an en direcciones del almacenamiento real que son mltiplos enteros del tamaUo
fio de la p&gina.
+odr& colocarse una nueva p&gina dentro de cualquier /marco de pgina0 o /celda de
pgina0 disponible.
La /traduccin dinmica de direcciones0 incluye:
$n proceso en eecucin (ace referencia a una direccin virtual Qv J (p,d)S (ver Digura
T.35 g`, 0eitelh).
$n mecanismo de transformacin de p&ginas busca la p&gina QpS en la /tabla de
pginas0 y determina si la p&gina QpS se encuentra en el marco de p&gina Qp j S.
La direccin de almacenamiento real se forma por la concatenacin de Qp j S y QdS.
La tabla de /mapa de pginas0 debe indicar si se encuentra o no en el almacenamiento primario
la p&gina referenciada:
"n caso afirmativo dnde est& en la memoria real.
"n caso negativo dnde puede estar en el almacenamiento secundario.
La direccin de almacenamiento primario QaS, donde comien#a el marco de pagina Qp j S
(suponiendo un tamaUo de p&gina QpS), est& dada por: Qa J (p) (p j)SG se supone marcos de p&gina
numerados 6, 3, 7, etc. (ver Digura T.34, Digura T.76 y Digura T.73 g`, 0eitelh).
Tra(u##i'$ (e Dire##io$es (e Pagi$a#i'$ por Tra$s*orma#i'$ Dire#ta
$n proceso en eecucin (ace referencia a la direccin virtual v : (p9d).
8ntes que un proceso comience su eecucin, el S. F. carga la direccin de almacenamiento
primario de la /tabla de mapa de pginas0 en el /registro origen de la tabla de mapa de
pginas0 (Her Digura T.77 g`, 0eitelh).
La direccin base de la tabla de mapa de p&ginas es /b0.
"l n!mero de p&gina es /p0.
La direccin en el almacenamiento primario de la entrada en la tabla de mapa de p&ginas para la
p&gina /p0 es /b ; p01
*ndica que el marco de p&gina /p < 0 corresponde a la p&gina virtual.
/p < 0 se concatena con el despla#amiento /d0 par formar la direccin real /r0.
/%sto es un eemplo de transformacin directa debido a 4ue la tabla de mapa de pginas
contiene una entrada por cada una de las pginas del almacenamiento virtual de este proceso0.
La direccin virtual que se est& traduciendo y la direccin base de la tabla de mapa de p&ginas
son mantenidas en un registro de alta velocidad del control del procesador.
La tabla de mapa de p&ginas transformada directamente suele mantenerse en el almacenamiento
primario:
Las referencias a esta tabla requieren un ciclo completo de almacenamiento primario, que
generalmente es la parte m&s larga de un ciclo de eecucin de instrucciones.
Se requiere otro ciclo de eecucin de almacenamiento primario para la transformacin de
p&ginas, lo que puede ocasionar degradacin equivalente a un Y6b, para lo cual una
solucin ser,a tener la tabla completa de mapa de p&ginas de transformacin directa en la
/cac230 de muy alta velocidad.
Tra(u##i'$ (e Dire##io$es (e Pagi$a#i'$ por Tra$s*orma#i'$ Aso#iativa
$na forma de acelerar la traduccin din&mica de p&ginas consiste en colocar la tabla completa de
mapa de p&ginas en un /almacenamiento asociativo0 que tenga un tiempo de ciclo muc(o m&s
r&pido que el almacenamiento primario.
$na variante es la /transformacin asociativa pura0 (ver Digura T.7T g`, 0eitelh).
$n programa en eecucin (ace referencia a la direccin virtual v : (p9d).
%ada entrada en el almacenamiento asociativo se busca de forma simult&nea para la p&gina /p01
Se obtiene /p < 0 como el marco de p&gina correspondiente a la p&gina /p0.
Se concatena /p < 0 con /d0 formando la direccin real /r0.
%ada una de las clulas del almacenamiento asociativo se registra de manera simult&nea:
)ace costoso el almacenamiento asociativo.
*mplementar la transformacin asociativa pura resulta demasiado costoso, tal lo ocurrido
con la implementacin de la transformacin directa pura utili#ando /cac230.
Tra(u##i'$ (e Dire##io$es (e Pagi$a#i'$ por Comi$a#i'$ (e Tra$s*orma#i'$ Aso#iativa I
Dire#ta
Se utili#a un almacenamiento asociativo capa# de mantener solo un pequeUo porcentae del mapa
completo de p&ginas para un proceso (ver Digura T.7V g`, 0eitelh).
Las entradas de p&gina contenidas en este mapa reducido corresponden solo a las pginas
referenciadas recientemente1
Se presupone que una p&gina recientemente referenciada tendr& posibilidades de serlo de
nuevo pr@imamente.
Los rendimientos obtenidos con este esquema de mapa asociativo parcial superan
apro@imadamente en un 366 b a los rendimientos obtenidos con esquemas de mapa
asociativo de pgina completo.
$n programa (ace referencia a la direccin virtual v : (p9d).
"l mecanismo de traduccin de direcciones intenta encontrar la p&gina /p0 en el mapa de p&gina
asociativo parcial:
Si /p0 se encuentra all,:
o "l mapa asociativo devuelve /p < 0 como el n!mero de marco de p&gina
correspondiente a la p&gina virtual /p0.
o /p < 0 se concatena con el despla#amiento /d0 para formar la direccin real /r0
que corresponde a la direccin virtual v : (p9d).
Si /p0 no se encuentra en el mapa de pagina parcial:
o Se utili#a un mapa directo convencional.
o La direccin /b0 del registro de origen de la tabla de p&ginas se aUade a /p0 para
locali#ar la entrada apropiada a la p&gina /p0 en la tabla de mapa de p&ginas de
transformacin directa del almacenamiento primario.
o La tabla indica que /p < 0 es el marco de p&gina correspondiente a la p&gina
virtual /p0.
o /p < 0 se concatena con el despla#amiento /d0 para formar la direccin real /r0
correspondiente a la direccin virtual v : (p9d).
Compartimie$to (e Re#ursos e$ u$ Sistema (e Pagi$a#i'$
"n sistemas multiprogramados, especialmente en los de tiempo compartido, es com!n que m&s de
un usuario estn eecutando los mismos programas:
+ara optimi#ar el uso de la memoria real se comparten las p&ginas que pueden ser
compartidas:
o "l compartimiento debe ser cuidadosamente controlado para evitar que un proceso
modifique datos que otro proceso esta leyendo (ver Digura T.7Y g`, 0eitelh).
o Los programas se encuentran divididos en &reas separadas de /procedimiento0 y
/datos0.
o Los procedimientos no modificables se llaman /procedimientos puros
reentrantes0.
o Los datos y procedimientos modificables no pueden ser compartidos.
o Los datos no modificables (e.: tablas fias) son compartibles.
Se debe identificar cada p&gina como compartible o no.
)abr& marcos (celdas) de p&ginas compartidos por varios procesos.
"l compartimiento:
:educe la cantidad de almacenamiento primario necesario para la eecucin efica# de un
grupo de procesos.
+uede (acer posible que un sistema determinado mantenga una cantidad mayor de
usuarios (procesos).
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO3.htm#OAA
Paginacin pura
La paginacin pura en el majejo de memoria consiste en que el sistema operativo divide dinmicamente
los programas en unidades de tamao fijo ( generalmente mltiplos de 1 kilobyte ) los cuales va a
manipular de RAM a disco y viceversa. Al proceso de intercambiar pginas, segmentos o programas
completos entre RAM y disco se le conoce como `intercambio' o `swapping'. En la paginacin, se debe
cuidar el tamo de las pginas, ya que si stas son muy pequeas el control por parte del sistema
operativo para saber cules estn en RAM y cuales en disco, sus direcciones reales, etc; crece y provoca
mucha `sobrecarga' (overhead). Por otro lado, si las pginas son muy grandes, el overhead disminuye
pero entonces puede ocurrir que se desperdicie memoria en procesos pequeos. Debe haber un
equilibrio.
Uno de los aspectos ms importantes de la paginacin, asi como de cualquier esquema de memoria
virtual, es la forma de traducir una direccin virtual a direccin real. Para explicarlo, obsrvese la figura
Como se observa, una direccin virtual `v' = ( b,d) est formada por un nmero de pgina virtual `b' y un
desplazamiento `d'. Por ejemplo, si el sistema ofrece un espacio de direcciones virtuales de 64 kilobytes,
con pginas de 4 kilobytes y la RAM slo es de 32 kilobytes, entonces tenemos 16 pginas virtuales y 8
reales. La tabla de direcciones virtuales contiene 16 entradas, una por cada pgina virtual. En cada
entrada, o registro de la tabla de direcciones virtuales se almacenan varios datos: si la pgina est en
disco o en memoria, quin es el dueo de la pgina, si la pgina ha sido modificada o es de lectura nada
mas, etc. Pero el dato que nos interesa ahora es el nmero de pgina real que le corresponde a la pgina
virtual. Obviamente, de las 16 virtuales, slo ocho tendrn un valor de control que dice que la pgina est
cargada en RAM, as como la direccin real de la pgina, denotada en la figura 4.3 como b' . Por ejemplo,
supngase que para la pgina virtual nmero 14 la tabla dice que, efectivamente est cargada y es la
pgina real 2 ( direccin de memoria 8192 ). Una vez encontrada la pgina real, se le suma el
desplazamiento, que es la direccin que deseamos dentro de la pgina buscada ( b' + d ).
La tabla de direcciones virtuales a veces est ubicada en la misma meoria RAM, por lo cual se necesita
saber en qu direccin comienza, en este caso, existe un registro con la direccin base denotada por la
letra `a' en la figura 4.3.
Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo que se llama un `fallo
de pgina' (page fault ). Esto es caro para el manejador de memoria, ya que tiene que realizar una serie
de pasos extra para poder resolver la direccin deseada y darle su contenido a quien lo pide. Primero, se
detecta que la pgina no est presente y entonces se busca en la tabla la direccin de esta pgina en
disco. Una vez localizada en disco se intenta cargar en alguna pgina libre de RAM. Si no hay pginas
libres se tiene que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a disco, se
marca su valor de control en la tabla de direcciones virtuales para indicar que ya no est en RAM,
mientras que la pgina deseada se carga en RAM y se marca su valor para indicar que ahora ya est en
RAM. Todo este procedimiento es caro, ya que se sabe que los accesos a disco duro son del orden de
decenas de veces ms lentos que en RAM. En el ejemplo anterior se mencion que cuando se necesita
descargar una pgina de RAM hacia disco se debe de hacer una eleccin. Para realizar esta eleccin
existen varios algoritmos, los cuales se describen enseguida. _ La primera en entrar, primera en salir: Se
escoge la pgina que haya entrado primero y est cargada en RAM. Se necesita que en los valores de
control se guarde un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica de
ningn sistema. Es justa e imparcial. _ La no usada recientemente: Se escoge la pgina que no haya sido
usada (referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad en el conjunto de
trabajo.
La usada menos recientemente: Es parecida a la anterior, pero escoge la pgina que se us hace
ms tiempo, pretendiendo que como ya tiene mucho sin usarse es muy probable que siga sin usarse en
los prximos ciclos. Necesita de una bsqueda exhaustiva.
La no usada frecuentemente: Este algoritmo toma en cuenta no tanto el tiempo, sino el nmero
de referencias. En este caso cualquier pgina que se use muy poco, menos veces que alguna otra.
La menos frecuentemente usada: Es parecida a la anterior, pero aqu se busca en forma
exhaustiva aquella pgina que se ha usado menos que todas las dems.
En forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e imparcial, pero
ineficiente.
Otro dato interesante de la paginacin es que ya no se requiere que los programas estn ubicados en
zonas de memoria adyacente, ya que las pginas pueden estar ubicadas en cualquier lugar de la
memoria RAM.
.@.Se0mentacin.
Segme$ta#i'$
"n los sistemas de /segmentacin0 un programa y sus datos pueden ocupar varios bloques
separados de almacenamiento real (ver Digura T.7? g`, 0eitelh).
Los blo4ues1
-o necesitan ser de igual tamaUo.
Los bloques separados no necesitan ser adyacentes.
0eben estar compuestos de posiciones contiguas de almacenamiento.
Se complica la proteccin de bloques de memoria de un proceso de usuario.
"s m&s dif,cil limitar el rango de acceso de cualquier programa g`, 0eitelh.
$n esquema posible de proteccin es el uso de claves de proteccin del almacenamiento (ver
Digura T.7` g`, 0eitelh):
Las claves est&n bao el control estricto del S. F.
$n programa de usuario, a quien corresponde una cierta clave en la cpu, solo puede (acer
referencia a los otros bloques del almacenamiento con igual clave de proteccin.
$na direccin virtual es un par ordenado v:(s9d) (ver Digura T.75 g`, 0eitelh):
/s0 es el n!mero del segmento del almacenamiento virtual en el cual residen los
elementos referidos.
/d0 es el despla#amiento en el segmento /s0 en el cual se encuentra el elemento referido.
$n proceso solo puede eecutarse si su segmento actual (como m,nimo) est& en el
almacenamiento primario.
Los segmentos se transfieren del almacenamiento secundario al primario como unidades
completas.
$n nuevo segmento puede ser colocado en una serie disponible de posiciones contiguas del
almacenamiento primario de tamaUo suficiente para aloar al segmento.
La traduccin din&mica de direcciones utili#a una /tabla de mapa de segmentos0.
I$i#io+ Fi$+
Co$trol (e A##eso e$ Sistemas (e Segme$ta#i'$
Se le otorga a cada proceso ciertos derec(os de acceso a todos los segmentos y se le niega
completamente el acceso a muc(os otros.
Si un proceso tiene /acceso de lectura0 a un segmento, puede obtener cualquier elemento de
informacin contenido en ese segmento.
Si un proceso tiene /acceso de escritura0 a un segmento, puede modificar cualquier contenido
del segmento y puede introducirle informacin adicional, incluso destruir toda la informacin del
segmento.
$n proceso con /acceso de eecucin0 de un segmento puede eecutarlo como si fuera un
programa.
$n proceso con /acceso de adicin0 puede escribir informacin adicional al final del segmento,
pero no puede modificar la informacin e@istente.
"n base a los /tipos de control de acceso0 indicados pueden crearse distintos /modos de control
de acceso0.
"emplos de combinacin de los accesos de lectura, escritura y eecucin para producir modos de
proteccin !tiles se dan en la <abla T.3 y en la <abla T.7 g`, 0eitelh.

Mo(o Le#tura Es#ritura E!e#u#i'$ E8pli#a#i'$
6 - - - -o (ay permiso de acceso
3 - - S Solo eecucin
7 S - - Solo lectura
T S - S Lectura ' eecucin
V S S -
Lectura ' escritura pero no
eecucin
Y S S S 8cceso no limitado
Tala <.,+ E!emplo (e #omi$a#i'$ (e a##esos.

Mo(o Apli#a#i'$
6 Seguridad
3
$n programa disponible a los usuarios, que no pueden copiarlo
ni modificarlo, pero s, eecutarlo
7 :ecuperacin de informacin
T
$n programa puede ser copiado o eecutado, pero no puede ser
modificado
V +rotege los datos contra un intento errneo de eecutarlos
Y "ste acceso se concede a los usuarios de confian#a
Tala <.-+ E!emplo (e apli#a#io$es (e la #omi$a#i'$ (e a##esos.
I$i#io+ Fi$+
Tra(u##i'$ (e Dire##io$es (e Segme$ta#i'$ por Tra$s*orma#i'$ Dire#ta
"@isten varias estrategias para la implementacin de la traduccin de direcciones de
segmentacin:
+or transformacin directa, asociativa o combinacin de asociativa ' directa.
%on cac( suficiente para aloar la tabla completa de mapa de segmentos o cac(
parciales que contengan solo las entradas de los segmentos de referencia ms reciente
(ver Digura T.74 g`, 0eitelh).
Se considerar& la traduccin de direcciones de segmentacin con la tabla completa de mapa de
segmentos en la cac(.
$n proceso en eecucin (ace referencia a la direccin virtual v : (s9d)1
"l segmento n!mero /s0 se aUade a la direccin base /b0 en el registro origen de la tabla
de mapa de segmentos formando la direccin de memoria real /b ; s0, de la entrada para
el segmento /s0 de la tabla de mapa de segmentos, que contiene la direccin del
almacenamiento primario /s < 0, donde comien#a el segmento.
"l despla#amiento /d0 se aUade a /s < 0 formando la direccin real /r : d ; s < 0,
correspondiente a la direccin virtual /v : (s9d)0.
$n /bit de residencia0, /r0, indica si en la actualidad el segmento se encuentra o no en el
almacenamiento primario.
Si el segmento se encuentra en el almacenamiento primario /s < 0 es la direccin en este
almacenamiento donde comien#a el segmento.
Si el segmento no se encuentra en el almacenamiento primario /a0 es la direccin en el
almacenamiento secundario de donde debe recuperarse antes que el proceso pueda continuar.
Se compara cada referencia a un segmento con los bits de proteccin para determinar si se
permite la operacin que se est& intentando.
Si el segmento buscado no est& en el almacenamiento primario se genera un /fallo de p3rdida de
segmento01
"l S. F. obtiene el control y carga el segmento referido desde la direccin /a0 del
almacenamiento secundario.
Se comprueba si el despla#amiento /d0 es menor o igual a la longitud del segmento /l 01
o Si no es as, se genera un /fallo de desbordamiento de segmento0 y el S. F.
obtiene el control y termina la eecucin del proceso.
o Si el despla#amiento est& en el rango del segmento se comprueban los bits de
proteccin para asegurarse si se permite la operacin que se est& intentando:
Si es as, entonces la direccin base del segmento, /s < 0, en el
almacenamiento primario se aUade al despla#amiento /d0 formando la
direccin de memoria real /r : s < ; d0, que corresponde a la direccin
del almacenamiento virtual /v : (s9d)0.
Si la operacin intentada no se permite se genera un /fallo de proteccin
de segmento0 y el S. F. obtiene el control y termina la eecucin del
proceso.
I$i#io+ Fi$+
Compartimie$to e$ u$ Sistema (e Segme$ta#i'$
$na de las ventaas de la segmentacin sobre la paginacin es que se trata m&s de un (ec(o
lgico que f,sico:
"n un sistema de segmentacin, una ve# que un segmento (a sido declarado como
compartido, entonces las estructuras que lo integran pueden cambiar de tamaUo.
Lo anterior no cambia el (ec(o lgico de que residen en un segmento compartido.
&os procesos pueden compartir un segmento con solo tener entradas en sus tablas generales que
apunten al mismo segmento del almacenamiento primario (ver Digura T.T6 g`, 0eitelh).
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO3.htm#OAA
Segmentacin pura
La segmentacin se aprovecha del hecho de que los programas se dividen en partes lgicas, como son
las partes de datos, de cdigo y de pila (stack). La segmentacin asigna particiones de memoria a cada
segmento de un programa y busca como objetivos el hacer fcil el compartir segmentos ( por ejemplo
libreras compartidas ) y el intercambio entre memoria y los medios de almacenamiento secundario.
Por ejemplo, en la versin de UNX SunOS 3.5, no existan libreras compartidas para algunas
herramientas, por ejemplo, para los editores de texto orientados al ratn y mens. Cada vez que un
usuario invocaba a un editor, se tena que reservar 1 megabyte de memoria. Como los editores son una
herramienta muy solicitada y frecuentemente usada, se dividi en segmentos para le versin 4.x ( que a
su vez se dividen en pginas ), pero lo importante es que la mayor parte del editor es comn para todos
los usuarios, de manera que la primera vez que cualquier usuario lo invocaba, se reservaba un megabyte
de memoria como antes, pero para el segundo, tercero y resto de usuarios, cada editor extra slo
consuma 20 kilobytes de memoria. El ahorro es impresionante. Obsrvese que en la segmentacin pura
las particiones de memoria son de tamao variable, en contraste con pginas de tamao fijo en la
paginacin pura. Tambin se puede decir que la segmentacin pura tiene una granularidad menor que la
paginacin por el taman de segmentos versus tamao de pginas. Nuevamente, para comprender mejor
la segmentacin, se debe dar un repaso a la forma en que las direcciones virtuales son traducidas a
direcciones reales, y para ellos se usa la figura 4.4. Prcticamente la traduccin es igual que la llevada a
cabo en la paginacin pura, tomando en consideraci que el tamao de los bloques a controlar por la
tabla de traduccin son variables, por lo cual, cada entrada en dicha tabla debe contener la longitud de
cada segmento a controlar. Otra vez se cuenta con un registro base que contiene la direccin del
comienzo de la tabla de segmentos. La direccin virtual se compone de un nmero de segmento (s) y un
desplazamiento ( d ) para ubicar un byte (o palabra ) dentro de dicho segmento. Es importante que el
desplazamiento no sea mayor que el tamao del segmento, lo cual se controla simplemente checando
que ese valor sea mayor que la direccin del inicio del segmento y menor que el inicio sumado al tamao.
Una ves dada una direccin virtual v=( s,d ), se realiza la operacin b + s para hallar el registro (o entrada
de la tabla de segmentos ) que contiene la direccin de inicio del segmento en la memoria real, denotado
por s'. Ya conociendo la direccin de inicio en memoria real s' slo resta encontrar el byte o palabra
deseada, lo cual se hace sumndole a s' el valor del desplazamiento, de modo que la direccin real r =
s'+ d.
Cada entrada en la tabla de segmentos tiene un formato similar al mostrado en la figura 4.5. Se tienen
campos que indican la longitud, los permisos, la presencia o ausencia y direccin de inicio en memoria
real del segmento.
Segn amplios experimentos [Deitel93] sugieren que un tamao de pginas de 1024 bytes generalmente
ofrece un desempeo muy aceptable. ntuitivamente parecera que el tener pginas del mayor tamao
posible hara que el desempeo fuera ptimo pero no es as, a menos que la pgina fuera del tamao del
proceso total. No es as con tamaos grandes de pgina menores que el proceso, ya que cuando se trae
a memoria principal una pgina por motivo de un solo byte o palabra, se estn trayendo muchsimos ms
bytes de los deseados. La dependencia entre el nmero de fallas respecto al tamao de las pginas se
muestra en la figura 4.6.
Un hecho notable en los sistemas que manejan paginacin es que cuando el proceso comienza a
ejecutarse ocurren un gran nmero de fallos de pgina, porque es cuando est referenciando muchas
direcciones nuevas por vez primera, despus el sistema se estabiliza, conforme el nmero de marcos
asignados se acerca al tamao del conjunto de trabajo.
El la figura 4.7 se muestra la relacin entre el tiempo promedio entre fallas de pgina y el nmero de
marcos de pgina asignados a un proceso. All se ve que el tiempo entre fallas decrece conforme se le
asignan ms pginas al proceso. La grfica se curva en un punto, el cual corresponde a que el proceso
tiene un nmero de pginas asignado igual al que necesita para almacenar su conjunto de trabajo.
Despus de eso, el asignarle a un proceso ms pginas que las de su conjunto de trabajo ya no
conviene, ya que el tiempo promedio entre fallas permanece sin mucha mejora. Un aspecto curioso de
aumentar el nmero de pginas a un proceso cuando el algoritmo de seleccin de pginas candidatas a
irse a disco es la primera en entrar primera en salir es la llamada `anomala FFO' a `anomala de Belady'.
Belady encontr ejemplos en los que un sistema con un nmero de pginas igual a tres tena menos
fallas de pginas que un sistema con cuatro pginas. El ejemplo descrito en [Tanxx] es injusto. Si se mira
con cuidado, obviamente si se compara un sistema con 10 pginas contra otro de 5, ya de inicio el primer
sistema tendr 5 fallos de pgina ms que el de 5, porque se necesitan diez fallos para cargarlo. A esto
debera llamrsele `anomala de Belady con correccin.
.@.#Sistemas de pa0inacin se0mentacin.
Sistemas (e Pagi$a#i'$ I Segme$ta#i'$
Ffrecen las ventaas de las dos tcnicas de organi#acin del almacenamiento virtual g`, 0eitelh.
"l tamaUo de los segmentos es m!ltiplo del de las p&ginas.
=o es necesario 4ue todas las pginas de un segmento se encuentren al mismo tiempo en el
almacenamiento primario.
Las p&ginas de almacenamiento virtual, que son contiguas en este almacenamiento, no necesitan
ser contiguas en el almacenamiento real.
"l direccionamiento es tridimensional con una direccin de almacenamiento virtual /v :
(s9p9d)01
/s0 es el n!mero del segmento.
/p0 es el n!mero de p&gina.
/d0 es el despla#amiento en la p&gina donde se encuentra asignado el elemento deseado.
I$i#io+ Fi$+
Tra(u##i'$ Di$"mi#a (e Dire##io$es e$ Sistemas (e Pagi$a#i'$ I Segme$ta#i'$
Se considera la traduccin din&mica de direcciones de virtuales a reales en un sistema de
paginacin ' segmentacin utili#ando la combinacin de transformacin asociativa ' directa (ver
Digura T.T3 g`, 0eitelh).
"l proceso en eecucin (ace referencia a la direccin virtual v : (s9p9d) (ver Digura T.T7 g`,
0eitelh).
Las pginas de referencia m&s reciente tienen entradas en un almacenamiento asociativo.
Se reali#a una b!squeda asociativa para intentar locali#ar (s9p) en el almacenamiento asociativo:
Si se encuentra (s9p), entonces el marco de p&gina /p < 0 en el cual reside dic(a p&gina en
la memoria real, se concatena al despla#amiento /d0 para formar la direccin de memoria
real /r0 correspondiente a la direccin virtual v: (s9p9d).
Si no se encuentra (s9p), entonces:
o La direccin base /b0 de la tabla de segmentos se aUade al n!mero de segmento
/s0 formando la direccin /b ; s0 de la entrada de la tabla de mapa de segmentos
para el segmento /s0 de la memoria real.
o La entrada de la tabla de mapa de segmentos indica la direccin base /s < 0 de la
tabla de p&ginas para el segmento /s0.
o "l n!mero de p&gina /p0 se aUade a /s < 0 formando la direccin /p ; s < 0 de la
entrada en la tabla de p&ginas para la p&gina /p0 del segmento /s01
*ndica que /p < 0 es el n!mero del marco correspondiente a la p&gina
virtual /p0.
/p < 0 se concatena con el despla#amiento /d0 formando la direccin real
/r 0 que corresponde a la direccin virtual v : (s9p9d).
Si el segmento /s0 no se encuentra en el almacenamiento primario se produce un /fallo de
p3rdida de segmento0, cuyo caso el S. F. locali#a el segmento en el almacenamiento secundario,
crea una tabla de p&ginas para el segmento y carga la p&gina apropiada en el almacenamiento
primario, pudiendo producir reempla#os de p&ginas.
Si el segmento /s0 est& en el almacenamiento primario y si la referencia a la tabla de mapa de
p&ginas indica que la p&gina deseada no se encuentra en el almacenamiento primario, se produce
un /fallo de p3rdida de pgina0, en tal caso el S. F. obtiene el control, locali#a la p&gina en el
almacenamiento secundario y la carga, pudiendo reempla#ar otra p&gina.
Si una direccin de almacenamiento virtual est& m&s all& del final del segmento se genera un
/fallo de desbordamiento de segmento0, el que debe ser atendido por el S. F.
Si los bits de proteccin indican que la operacin que se va a eecutar en la direccin virtual
referida no se permite, se genera un /fallo de proteccin de segmento0, el que tambin debe ser
atendido por el S. F.
Si se utili#a un mecanismo de transformacin directa pura, manteniendo el mapa completo dentro
del almacenamiento primario, la referencia promedio de almacenamiento virtual requerir,a:
$n ciclo de almacenamiento para acceder a la tabla de mapa de segmentos.
$n segundo ciclo de almacenamiento para (acer referencia a la tabla de mapa de
pginas.
$n tercer ciclo de almacenamiento para referenciar al elemento deseado del
almacenamiento real.
#ada referencia a un elemento comprende tres ciclos de almacenamiento1
"l sistema correr,a casi a 3 ' T de su velocidad nominal.
La traduccin de direcciones insumir,a 7 ' T del tiempo.
%on la utili#acin de registros asociativos (por e. 3? registros), se logran velocidades de
eecucin del 46 b o m&s de la velocidad total de procesamiento de sus procesadores de control.
La estructura de tablas de procesos, de mapas de segmentos y de mapas de p&ginas puede
consumir un porcentae importante del almacenamiento primario cuando se eecutan un gran
n!mero de procesos.
La traduccin procede muc(o m&s r&pido si todas las tablas est&n en el almacenamiento primario,
lo que resta espacio para los procesos.
I$i#io+ Fi$+
Compartimie$to e$ u$ Sistema (e Pagi$a#i'$ I Segme$ta#i'$
Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes procesos
que apunten a la misma tabla de mapa de pginas (ver Digura T.TT g`, 0eitelh).
"l compartimiento requiere una administracin cuidadosa por parte del S. F., ya sea en sistemas
de paginacin, segmentacin o paginacin ' segmentacin, pues se debe considerar qu suceder,a
si una nueva p&gina reempla#ara a otra p&gina compartida por muc(os procesos.
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO3.htm#OAA
Sistemas combinados
La paginacin y la segmentacin puras son mtodos de manejo de memoria bastante efectivos, aunque
la mayora de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la
paginacin y la segmentacin. La idea de combinar estos esquemas se debe a que de esta forma se
aprovechan los conceptos de la divisin lgica de los programas (segmentos) con la granularidad de las
pginas. De esta forma, un proceso estar repartido en la memoria real en pequeas unidades (pginas)
cuya liga son los segmentos. Tambin es factible as el compartir segmentos a medida que las partes
necesitadas de los mismos se van referenciando (pginas). Para comprender este esquema, nuevamente
se ver cmo se traduce una direccin virtual en una localidad de memoria real. Para la paginacin y
segmentacon puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos
valores para hallar la direccin real. Para el caso combinado, se puede decir que se tiene un
direccionamiento `tridimensional'. En la figura 4.8 [ Deitel93] se muestran las partes relevantes para lograr
la traduccin de direcciones. El sistema debe contar con una tabla de procesos (TP). Por cada rengln de
esa tabla se tiene un nmero de proceso y una direccin a una tabla de segmentos. Es decir, cada
proceso tiene una tabla de segmentos. Cuando un proceso hace alguna referencia a memoria, se
consulta TP para encontrar la tabla de segmentos de ese proceso. En cada tabla de segmentos de
proceso (TSP) se tienen los nmeros de los segmentos que componen a ese proceso. Por cada
segmento se tiene una direccin a una tabla de pginas. Cada tabla de pginas tiene las direcciones de
las pginas que componen a un solo segmento. Por ejemplo, el segmento `A' puede estar formado por
las pginas reales `a','b','c','p' y `x'. El segmento `B' puede estar compuesto de las pginas `f','g','j','w' y
`z'.
Para traducir una direccin virtual v=(s,p,d) donde `s' es el segmento, `p' es la pgina y `d' el
desplazamiento en la pgina se hace lo siguiente. Primero se ubica de qu proceso es el segmento y se
localiza la tabla de segmentos de ese proceso en la TP. Con `s' como ndice se encuentra un rengln
( registro) en la tabla de segmentos de ese proceso y en ese rengln est la direccin de la tabla de
pginas que componen al segmento. Una vez en la tabla de pginas se usa el valor `p' como ndice para
encontrar la direccin de la pgina en memoria real. Una vez en esa direccin de memoria real se
encuentra el byte (o palabra) requerido por medio del valor de `d'.
Ahora, en este esquema pueden haber dos tipos de fallos: por fallo de pgina y por fallo de segmento.
Cuando se hace referencia a una direccin y el segmento que la contiene no est en RAM ( aunque sea
parcialmente ), se provoca un fallo por falta de segmento y lo que se hace es traerlo del medio de
almacenamiento secundario y crearle una tabla de pginas. Una vez caragado el segmento se necesita
localizar la pgina correspondiente, pero sta no existe en RAM, por lo cual se provoca un fallo de pgina
y se carga de disco y finalmente se puede ya traer la direccin deseada por medio del desplazamiento de
la direccin virtual.
La eficiencia de la traduccin de direcciones tanto en paginacin pura, segmentacin pura y esquemas
combinados se mejora usando memorias asociativas para las tablas de pginas y segmentos, as como
memorias cache para guardar los mapeos ms solicitados.
Otro aspecto importante es la estrategia para cargar pginas ( o segmentos ) a la memoria RAM. Se usan
ms comunmente dos estrategias: cargado de pginas por demanda y cargado de pginas anticipada. La
estrategia de caragdo por demanda consiste en que las pginas solamente son llevadas a RAM si fueron
solicitadas, es decir, si se hizo referencia a una direccin que cae dentro de ellas. La carga anticipada
consiste en tratar de adivinar qu pginas sern solicitadas en el futuro inmediato y cargarlas de
antemano, para que cuando se pidan ya no ocurran fallos de pgina. Ese `adivinar' puede ser que se
aproveche el fenmeno de localidad y que las pginas que se cargan por anticipado sean aquellas que
contienen direcciones contiguas a la direccin que se acaba de refenciar. De hecho, el sistema operativo
VMS usa un esquema combinado para cargar pginas: cuando se hace referencia a una direccin cuya
pgina no est en RAM, se provoca un fallo de pgina y se carga esa pgina junto con algunas pginas
adyacentes. En este caso la pgina solicitada se carg por demanda y las adyacentes se cargaron por
anticipacin.
.? /dministracin de memoria virtual.
.?.1!strate0ias de administracin.
Estrategias (e A(mi$istra#i'$ (el Alma#e$amie$to Virtual
Las diferentes orga$i&a#io$es (e alma#e$amie$to virtual generalmente implementadas son g`,
0eitelh:
+aginacin.
Segmentacin.
Segmentacin y paginacin.
Las estrategias para la administracin de sistemas de almacenamiento virtual condicionan la
conducta de los sistemas de almacenamiento virtual 4ue operan segn esas estrategias.
Se consideran las siguientes estrategias:
/%strategias de bs4ueda01
o <ratan de los casos en que una p&gina o segmento deben ser tra,dos del
almacenamiento secundario al primario.
o Las estrategias de /bs4ueda por demanda0 esperan a que se (aga referencia a
una p&gina o segmento por un proceso antes de traerlos al almacenamiento
primario.
o Los esquemas de /bs4ueda anticipada0 intentan determinar por adelantado a qu
p&ginas o segmentos (ar& referencia un proceso para traerlos al almacenamiento
primario antes de ser e@pl,citamente referenciados.
/%strategias de colocacin01
o <ratan del lugar del almacenamiento primario donde se colocar& una nueva p&gina
o segmento.
o Los sistemas toman las decisiones de colocacin de una forma trivial ya que una
nueva p&gina puede ser colocada dentro de cualquier marco de p&gina disponible.
/%strategias de reposicin01
o <ratan de la decisin de cu&l p&gina o segmento despla#ar para (acer sitio a una
nueva p&gina o segmento cuando el almacenamiento primario est& completamente
comprometido.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.2 T:cnicas de reempla2o de p40inas.
Reemplazo de Pgina.-
Si al momento de generarse un page fault no hubiera ningn frame disponible, se debe proceder a
reemplazar una pagina de memoria. LA rutina de page fault debe ser modificada para incluir reemplazo
de pginas:
1. Encontrar un frame disponible.
2. Si hay un frame disponible usarlo
3. Si no hay frames disponibles utilizar algoritmo de reemplazo de paginas para seleccionar la
vctima
4. Escribir la pagina vctima a disco y actualizar tabla de paginas .
Estrategias (e Reposi#i'$ (e P"gi$a
Las principales son:
"l principio de optimi#acin.
:eposicin de p&ginas al a#ar.
+rimero en entrar 2 primero en salir.
;enos recientemente usada.
;enos frecuentemente usada.
-o usada recientemente.
%onuntos de trabao.
El Pri$#ipio (e Optimi&a#i'$
"l /principio de optimi7acin0 indica que para obtener un rendimiento ptimo, la p&gina que se
va a reponer es una que no se va a utili#ar en el futuro durante el per,odo de tiempo m&s largo.
"l problema es que no es factible predecir el futuro.
Reposi#i'$ (e P"gi$a al A&ar
%onsiste en escoger al a#ar la p&gina que va a ser reempla#ada.
<odas las p&ginas del almacenamiento principal deben tener la misma proaili(a( de ser
reempla#adas.
0ebe poder seleccionar cualquier p&gina, incluyendo la que va a ser referenciada a continuacin
(peor seleccin).
"ste esquema es raramente usado.
Reposi#i'$ (e P"gi$a por el Sistema (e Primero e$ E$trar 0Primero e$ Salir DFIFO;
Se registra el momento en que cada p&gina ingresa al almacenamiento primario.
+ara reempla#ar una p&gina, se selecciona aquella que (a estado m&s tiempo almacenada.
Se presenta el inconveniente de que se pueden reempla#ar p&ginas muy usadas, que ser&n
llamadas de nuevo al almacenamiento primario casi de inmediato.
Se puede presentar la llamada /anomal!a ()(*01
Melady, -elson y S(edler descubrieron que con la reposicin D*DF, ciertos patrones de
referencias de p&ginas causan m&s fallos de p&ginas cuando se aumenta el n!mero de
marcos (celdas) de p&ginas asignados a un proceso: en esto consiste la /anomal!a ()(*0.
Esta a$omal)a #o$tra(i#e a la i$tui#i'$ (ver Digura T.TV g`, 0eitelh).
Reposi#i'$ (e P"gi$a Me$os 0 Re#ie$teme$te 0 Qsa(a DLRQ;
"sta estrategia selecciona para ser reempla#ada la p&gina que no (a sido usada durante el mayor
per,odo de tiempo.
"e basa en la 2eur!stica de 4ue el pasado reciente es un buen indicador del futuro prximo.
:equiere que cada p&gina reciba un /sello de tiempo0 cada ve# que se referencia:
+uede significar una sobrecarga adicional importante.
-o se implementa frecuentemente.
La p&gina seleccionada para reempla#o podr,a ser la pr@ima en ser requerida, por lo que (abr,a
que paginarla de nuevo al almacenamiento principal casi de inmediato.
Reposi#i'$ (e P"gi$a Me$os 0 Fre#ue$teme$te 0 Qsa(a DLFQ;
8c& interesa la i$te$si(a( (e uso que (aya tenido cada p&gina.
La p&gina que ser& reempla#ada es aquella que (a sido usada con menos frecuencia o que (a sido
referida con menos intensidad.
"l inconveniente es que se puede seleccionar f&cilmente para su reposicin la p&gina equivocada:
".: La p&gina de uso menos frecuente puede ser la p&gina de entrada m&s reciente al
almacenamiento principal, y por lo tanto e@iste una alta probabilidad de que sea usada de
inmediato.
Reposi#i'$ (e P"gi$a No Qsa(a 0 Re#ie$teme$te DNQR;
+resupone que las p&ginas que no (an tenido uso reciente tienen poca probabilidad de ser usadas
en el futuro pr@imo y pueden ser reempla#adas por otras nuevas.
%s deseable reempla7ar una pgina 4ue no 2a sido cambiada mientras estaba en el
almacenamiento primario.
La estrategia -$: se implementa con la adicin de dos bits de 2ard>are por pgina1
/?it referenciado01
o J 6 si la p&gina no (a sido referenciada.
o J 3 si la p&gina (a sido referenciada.
/?it modificado0 (tambin llamado /bit sucio0):
o J 6 si la p&gina no (a sido modificada.
o J 3 si la p&gina (a sido modificada.
La seleccin de la p&gina que ser& reempla#ada comien#a buscando una p&gina que no (a sido
referenciada, pero si no la encuentra (abr& que reempla#ar una p&gina que (a sido referenciada.
Si una p&gina (a sido referenciada se comprueba si (a sido modificada o no:
Si no (a sido modificada se la reempla#a:
o Su reposicin representa menos sobrecarga que la de una p&gina modificada, ya
que deber,a grabarse de nuevo en el almacenamientos secundario.
Si no se encuentra una p&gina que no (a sido modificada ser& reempla#ada una p&gina
modificada.
%on el transcurso del tiempo la mayor,a de los /bits referenciados0 ser&n activados:
Se pierde la capacidad para distinguir las p&ginas m&s deseables para ser reempla#adas.
+ara evitarlo se austan peridicamente todos los /bits referenciados0 a Q6S:
o Se logra un nuevo inicio.
o Se vuelve vulnerable al reempla#o a!n a las p&ginas activas, pero solo
brevemente, mientras se reaustan los bits.
Los /bits modificados0 $o se austan peridicamente seg!n esta estrategia.
Lo#ali(a(
"l concepto de /localidad0 e@presa g`, 0eitelh:
/Los procesos tienden a 2acer referencia al almacenamiento en patrones no uniformes y
muy locali7ados0.
La /localidad0 se manifiesta en el /tiempo0 y en el /espacio01
"s una propiedad emp,rica (observada).
-unca est& garanti#ada pero es altamente probable.
".: Los procesos tienden a favorecer ciertos subconuntos de p&ginas, las que tienden a
ser adyacentes entre s, en el espacio de direcciones virtuales del proceso.
"st& relacionada con la forma en que se escriben los programas y se organi#an los datos.
/Localidad temporal 01 significa que las localidades de almacenamiento referenciadas
recientemente tienen una alta probabilidad de ser referenciadas en un futuro pr@imo:
Se apoya en la utili#acin de:
o Dormacin de ciclos (loops).
o Subrutinas.
o +ilas.
o Hariables usadas para contar y totali#ar.
/Localidad en el espacio01 significa que las referencias de almacenamiento tienden a acumularse
de manera tal que, una ve# que se (ace referencia a una localidad, es muy probable que las
localidades cercanas sean tambin referenciadas:
Se apoya en la utili#acin de:
o :ecorrido de arreglos.
o "ecucin secuencial de cdigo.
o <endencia de los programadores a colocar definiciones de variables relacionadas,
pr@imas entre s,.
Un programa puede eecutar eficientemente mientras su subconunto de pginas preferido se
encuentre en el almacenamiento primario.
"l n!mero de fallos de p&ginas de un proceso depende de la cantidad de almacenamiento
primario disponible para sus p&ginas.
Zeneralmente los procesos no muestran patrones de referencias aleatorios uniformemente
distribuidos por sus diferentes p&ginas.
8l reducir el n!mero de marcos (celdas) de p&ginas disponibles para un proceso e@iste un
intervalo durante el cual la ra#n de fallos de p&ginas no se afecta e@cesivamente.
"n determinado punto, cuando se reduce m&s el n!mero de marcos de p&ginas, el n!mero de
fallos de p&ginas aumenta dr&sticamente.
;ientras el subconunto de p&ginas favorecidas por un proceso permane#ca en el
almacenamiento primario, el n!mero de fallos de p&ginas no aumenta muc(o.
<an pronto como las p&ginas del subconunto favorecido son retiradas del almacenamiento
primario, la actividad de paginacin del proceso aumenta en gran medida al referenciar y traer de
nuevo estas p&ginas al almacenamiento primario.
Los /subconuntos favorecidos0 tambin son llamados /conuntos de trabao0 o />orking sets0
(ver Digura T.TY g`, 0eitelh).
I$i#io+ Fi$+
Co$!u$tos (e Traa!o
0enning desarroll un punto de vista de la actividad de paginacin de un programa llamado la
/teor!a de conunto de trabao del comportamiento de un programa0 g`, 0eitelh.
$n /conunto de trabao0 es una coleccin de pginas a las cuales un proceso 2ace activamente
referencia.
0enning sosten,a que para que un programa se eecutara eficientemente, su conunto de trabao
debe ser mantenido en el almacenamiento primario, para evitar la /2iperpaginacin0.
$na /pol!tica de administracin de almacenamiento por conunto de trabao0 trata de mantener
el conunto de trabao de los programas activos en el almacenamiento primario.
La decisin de aUadir un nuevo proceso al conunto activo de procesos (aumentar el nivel de
multiprogramacin):
Se basa en si (ay suficiente espacio disponible en el almacenamiento primario como para
acomodar el conunto de trabao del nuevo proceso.
Se toma generalmente de forma (eur,stica ya que es imposible para el sistema conocer por
anticipado el tamaUo del conunto de trabao de un proceso dado.
"l conunto de trabao de p&ginas de un proceso />(t9>)0 en el momento /t0 es el conunto de
p&ginas referidas por un proceso durante el intervalo de tiempo del proceso /t 6 >0 a /t 0 (ver
Digura T.T? g`, 0eitelh).
"l /tiempo del proceso0 es el tiempo durante el cual este proceso tiene la cpu.
La variable />0 se denomina /tama.o de la ventana del conunto de trabao01
La determinacin del tamaUo de />0 es muy importante.
8l aumentar el tamaUo de la ventana />0 aumenta el tamaUo del conunto de trabao (ver
Digura T.T` g`, 0eitelh).
/%l verdadero conunto de trabao de un proceso es el conunto de pginas 4ue deben estar en el
almacenamiento primario para la eecucin efica7 de este proceso0.
Los conuntos de trabao #amia$ mientras un proceso est& en eecucin:
%omplica la administracin precisa del almacenamiento primario en base a esta estrategia.
/Los conuntos de trabao son transitorios y el siguiente conunto de trabao del proceso
puede diferir substancialmente de su conunto de trabao anterior0.
Se debe evitar un e@ceso de compromiso del almacenamiento primario y la consecuente
(iperpaginacin.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?..a0inacin por demanda.
Paginacin por demanda.-
Es similar a lo visto para la paginacin introduciendo el concepto de swapping. Los procesos residen en
el disco y al ser ejecutados deben ser cargados en memoria. Cuando un proceso va a ser ejecutado, el
mismo es swappeado a memoria, utilizando lazy swapping. El lazy swapping nunca trae paginas a
memoria si no van a ser ejecutadas. Se necesita determinar si un pagina esta en memoria o en disco, por
lo cual se utiliza el bit de vlido / invlido de la tabla de pginas. Si el bit = 1 la pgina es valida y esta
cargada en memoria si es 0 la pgina es invlida y no esta cargada en memoria (esta en disco).
Cuando un proceso intenta acceder a una pgina que no esta cargada en memoria ocurre un page .ault
(tomo de pgina). El procedimiento para manejar un page fault es el siguiente:
1. Verificar si la referencia a la pagina es valida (se utiliza una tabla interna (generalmente llevada
en PCB) donde se indica las paginas validas.
2. Si la referencia no es valida, se cancela la ejecucin del proceso.
3. Encontrar un frame disponible para cargarla (la pgina esta en disco)(por ejemplo de la free
frame list)
4. Solicitar operacin de /O para leer la pgina de disco cargarla en el frame obtenido.
5. Modificar la tabla interna y la tabla de paginas para que ahora esta pagina figure como que esta
en memoria.
6. Continuar con la ejecucin del proceso en la instruccin en la que fue interrumpido.
Pagi$a#i'$ por Dema$(a
Las paginas son cargadas por demanda g`, 0eitelh.
-o se llevan p&ginas del almacenamiento secundario al primario (asta que son referenciadas
e@pl,citamente por un proceso en eecucin.
Las ra#ones del atractivo de esta estrategia son:
Los resultados de computabilidad, en especial el /problema de parada0, indican que el
camino 4ue tomar la eecucin de un programa no se puede predecir con exactitud.
Zaranti#a que solo las p&ginas que necesita el proceso sean tra,das al almacenamiento
principal.
La sobrecarga de proceso para decidir qu p&gina traer al almacenamiento principal es
m,nima.
"l principal inconveniente est& en los procesos que requieren acumular sus p&ginas una por una:
Los tiempos de espera de p&ginas son considerables.
"s creciente la cantidad de almacenamiento primario afectada al proceso que espera
p&ginas, por lo que el /producto espacio 6 tiempo0 se incrementa.
"l /producto espacio 6 tiempo0 indica la cantidad de almacenamiento que usa un proceso y la
cantidad de tiempo que lo usa.
/La reduccin del producto espacio 6 tiempo de las esperas de pginas de un proceso es una
meta importante de las estrategias de administracin del almacenamiento0 (ver Digura T.T5 g`,
0eitelh).
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.#.a0inacin anticipada.
Pagi$a#i'$ A$ti#ipa(a
"l S. F. intenta predecir las p&ginas que un proceso va a necesitar y a continuacin precarga estas
p&ginas cuando (ay espacio disponible g`, 0eitelh.
;ientras el proceso eecuta sus p&ginas actuales, el sistema carga p&ginas nuevas que estar&n
disponibles cuando el proceso las pida, debido a ello, el tiempo de eecucin de un proceso se
puede reducir.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.%,iberacin de p40ina.
Liera#i'$ (e P"gi$a
$n proceso usuario puede emitir una /liberacin voluntaria de pgina0 para liberar el marco de
p&gina cuando ya no necesitara esa p&gina g`, 0eitelh.
Se puede eliminar el /desperdicio0 y acelerar la eecucin.
"l inconveniente es que la incorporacin de mandatos de liberacin de p&ginas dentro de los
programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.
/Los compiladores y ". *. deber!an detectar automticamente situaciones de liberacin de
pgina muc2o antes de lo 4ue es posible con estrategias de conuntos de trabao0.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
.?.)Tama'o de p40ina.
TamaMo (e P"gi$a
Zeneralmente el almacenamiento real se divide en marcos o celdas de p&gina de tamaUo fio g`,
0eitelh.
Los interrogantes tienen que ver con el tamaUo de las p&ginas, si todas las p&ginas tendr&n igual
tamaUo, si en caso de utili#ar p&ginas de diferente tamaUo las p&ginas mayores deben ser o no
m!ltiplos enteros de las menores, etc.
8lgunas consideraciones para determinar el tamaUo de p&gina son las siguientes:
%uanto m&s pequeUo sea el tamaUo de una p&gina, m&s p&ginas y marcos de p&ginas (abr&
y mayores ser&n las tablas de p&ginas:
o "l desperdicio de almacenamiento debido al tamaUo e@cesivo de las tablas de
p&gina se llama /fragmentacin de tablas0.
o "sto indica la necesidad de pginas ms grandes.
%on p&ginas grandes, grandes cantidades de informacin que nunca llegar,a a ser
referenciada, se paginar&n (acia el almacenamiento primario:
o "sto indica la necesidad de pginas ms pe4ue.as.
0ebido a que las transferencias de e ' s del disco (paginacin) consumen bastante tiempo,
se debe minimi#ar la paginacin que un proceso requiera:
o "sto indica la necesidad de pginas grandes.
Los programas tienden a mostrar la propiedad de localidad de referencia y esta localidad
tiende a ser pequeUa:
o "sto indica la necesidad de pginas pe4ue.as.
Los procedimientos y datos rara ve# comprenden un n!mero entero de p&ginas, por lo que
los sistemas de paginacin e@perimentan una /fragmentacin interna01
o "l desperdicio promedio es de 3 ' 7 p&gina no usada por segmento (grupo) de
p&ginas, que estar& en la !ltima p&gina del segmento.
o "sto indica la necesidad de pginas pe4ue.as.
Los tamaUos de pagina mas utili#ados son: Y37 b, 3 9b, 7 9b, V 9b.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO."tmKO//
Unidad #
/dministracin de entrada>salida.
#.% Dispositivos y mane9adores de dispositivos &device
drivers(.
Dispositivos de Entrada - Salida
Los dispositivos de entrada salida se dividen, en general, en dos tipos: dispositivos orientados a bloques
y dispositivos orientados a caracteres. Los dispositivos orientados a bloques tienen la propiedad de que
se pueden direccionar, esto es, el programador puede escribir o leer cualquier bloque del dispositivo
realizando primero una operacin de posicionamiento sobre el dispositivo. Los dispositivos ms comunes
orientados a bloques son los discos duros, la memoria, discos compactos y, posiblemente, unidades de
cinta. Por otro lado, los dispositivos orientados a caracteres son aquellos que trabajan con secuencias de
byes sin importar su longitud ni ningna agrupacin en especial. No son dispositivos direccionables.
Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras.
La clasificacin anterior no es perfecta, porque existen varios dispositivos que generan entrada o salida
que no pueden englobarse en esas categoras. Por ejemplo, un reloj que genera pulsos. Sin embargo,
aunque existan algunos perifricos que no se puedan categorizar, todos estn administrados por el
sistema operativo por medio de una parte electrnica - mecnica y una parte de software.
Controladores de Dispositivos ( Terminales y Discos Duros)
Los controladores de dispositivos (tambin llamados adaptadores de dispositivos) son la parte electrnica
de los perifricos, el cual puede tener la forma de una tarjeta o un circuito impreso integrado a la tarjeta
maestra de la computadora. Por ejemplo, existen controladores de discos que se venden por separado y
que se insertan en una ranura de la computadora, o existen fabricantes de computadoras que integran
esa funcionalidad en la misma tarjeta en que viene la unidad central de procesamiento (tarjeta maestra).
Los controladores de dispositivos generalmente trabajan con voltajes de 5 y 12 volts con el dispositivo
propiamente, y con la computadora a travs de interrupciones. Estas interrupciones viajan por el 'bus' de
la computadora y son recibidos por el CPU el cual a su vez pondr en ejecucin algn programa que
sabr qu hacer con esa seal. A ese programa se le llama 'manejador de disposito' (device driver).
Algunas veces el mismo controlador contiene un pequeo programa en una memoria de solo lectura o en
memoria de acceso aleatoria no voltil y re-escribible que interacta con el correspondiente manejador en
la computadora. En la figura 6.1 se muestra un esquema simple de dispositivos orientados a bloques y
otros a caracteres.
Por ejemplo, la terminal (CRT) tiene un 'chip' que se encarga de enviar cadenas de bits por medio de un
cable serial que a su vez son recibidos por un controlador de puerto serial en la computadora. Este 'chip'
tambin se encarga de leer secuencias de bits que agrupa para su despiegue en la pantalla o para
ejecutar algunas funciones de control. Lo importante en todos estos dispositivos es que se debe ejercer
un mecanismo para sincronizar el envo y llegada de datos de manera concurrente.
Para intercambiar datos o seales entre la computadora y los controladores, muchas veces se usan
registros o secciones predefinidas de la memoria de la computadora. A este esquema se le llama 'manejo
de entrada - salida mapeado por memoria' (memory mapped /O). Por ejmplo, para una BM PC se
muestran los vectores de interrupcin y las direcciones para la entrada -salida en la tabla 6.1.
Controlador Direccin(Hex) Vector de nterrupcin
Reloj 040 - 043 8
Teclado 060 - 063 9
Disco Duro 320 - 32F 13
mpresora 378 - 37F 15
Monitor Mono 380 - 3BF -
Monitor Color 3D0 - 3DF -
Disco Flexible 3F0 - 3F7 14
Tabla 6.1 Direcciones de Mapeo de Entrada - Salida
#.) 3ecanismos y funciones de los mane9adores de
dispositivos &device drivers(.
#.@ !structuras de datos para mane9o de dispositivos.
#.? Operaciones de !ntrada >salida.
Unidad %
Sistema de arc"ivos.
%.C $oncepto.
Sistema de )rchi0os: La estructura de un sistema de archivos es en forma de rbol. El sistema de
archivos son los archivos y directorios. Las funciones son crear y eliminar archivos, compartir archivos
para intercambiar informacin, agrupar archivos en forma conveniente al usuario, respaldo y
recuperacin, el acceso de los usuarios a la informacin sin la necesidad de conocer la ubicacin fsica
(sabiendo solo los nombres simblicos).
Un archivo es un conjunto de informacin, que se encuentra almacenada o guardada en la memoria
principal del computador, en el disco duro, en el disquete flexible o en los discos compactos (Cd-Rom).
Antes de que un archivo pueda leerse o escribirse en l, debe abrirse, momento en el cual se verifican los
permisos. Estos archivos se abren especificando en el computador la ruta de acceso al archivo desde el
directorio raz, que es la unidad principal del disco del computador, este puede ser un disco duro o disco
flexible. Entonces el sistema operativo visualiza el entorno al abrir un archivo.
Uno de los problemas mas frecuentes en el manejo de archivos son los deadlock, un deadlock es una
situacin no deseada de espera indefinida y se da cuando en un grupo de procesos, dos o ms procesos
de ese grupo esperan por llevar a cabo una tarea que ser ejecutada por otro proceso del mismo grupo,
entonces se produce el bloqueo. Los bloqueos se dan tanto en los sistemas operativos tradicionales
como en los distribuidos, solo que en estos ltimos es ms difcil de prevenirlos, evitarlos e incluso
detectarlos, y si se los logra detectar es muy complicado solucionarlos ya que la informacin se encuentra
dispersa por todo el sistema.
Una vez que un deadlock se detecta, es obvio que el sistema est en problemas y lo nico que resta por
hacer es una de dos cosas: tener algn mecanismo de suspensin o reanudacin que permita copiar todo
el contexto de un proceso incluyendo valores de memoria y aspecto de los perifricos que est usando
para reanudarlo otro da, o simplemente eliminar un proceso o arrebatarle el recurso, causando para ese
proceso la prdida de datos y tiempo.
Fu$#io$es (el Sistema (e Ar#.ivos
Los usuarios deben poder crear, modificar y borrar arc(ivos.
Se deben poder compartir los arc(ivos de una manera cuidadosamente controlada g`, 0eitelh.
"l mecanismo encargado de compartir los arc(ivos debe proporcionar varios tipos de acceso
controlado:
".: /-cceso de Lectura0, /-cceso de %scritura0, /-cceso de %ecucin0, varias
combinaciones de estos, etc.
Se debe poder estructurar los arc(ivos de la manera m&s apropiada a cada aplicacin.
Los usuarios deben poder ordenar la transferencia de informacin entre arc(ivos.
Se deben proporcionar posibilidades de /respaldo0 y /recuperacin0 para prevenirse contra:
La prdida accidental de informacin.
La destruccin maliciosa de informacin.
Se debe poder referenciar a los arc(ivos mediante /=ombres "imblicos0, brindando
/)ndependencia de &ispositivos0.
"n ambientes sensibles, el sistema de arc(ivos debe proporcionar posibilidades de /#ifrado0 y
/&escifrado0.
"l sistema de arc(ivos debe brindar una interfase favorable al usuario:
0ebe suministrar una /visin lgica0 de los datos y de las funciones que ser&n
eecutadas, en ve# de una /visin f!sica0.
"l usuario no debe tener que preocuparse por:
o Los dispositivos particulares.
o 0nde ser&n almacenados los datos.
o "l formato de los datos en los dispositivos.
o Los medios f,sicos de la transferencia de datos (acia y desde los dispositivos.

El Sistema (e Ar#.ivos
$n /-rc2ivo0 es un conunto de registros relacionados g7T, <anenbaumh.
"l /"istema de -rc2ivos0 es un componente importante de un S. F. y suele contener g`, 0eitelh:
/M3todos de acceso0 relacionados con la manera de acceder a los datos almacenados en
arc(ivos.
/-dministracin de arc2ivos0 referida a la provisin de mecanismos para que los
arc(ivos sean almacenados, referenciados, compartidos y asegurados.
/-dministracin del almacenamiento auxiliar0 para la asignacin de espacio a los
arc(ivos en los dispositivos de almacenamiento secundario.
/)ntegridad del arc2ivo0 para garanti#ar la integridad de la informacin del arc(ivo.
"l sistema de arc(ivos est& relacionado especialmente con la administracin del espacio de
almacenamiento secundario, fundamentalmente con el almacenamiento de disco.
$na forma de organi#acin de un sistema de arc(ivos puede ser la siguiente:
Se utili#a una /ra!7 0 para indicar en qu parte del disco comien#a el /directorio ra!7 0.
"l /directorio ra!7 0 apunta a los /directorios de usuarios0.
$n /directorio de usuario0 contiene una entrada para cada uno de los arc(ivos del
usuario.
%ada entrada de arc(ivo apunta al lugar del disco donde est& almacenado el arc(ivo
referenciado.
Los nombres de arc(ivos solo necesitan ser !nicos dentro de un directorio de usuario dado.
"l nombre del sistema para un arc(ivo dado debe ser !nico para el sistema de arc(ivos.
"n sistemas de arc(ivo /err4uicos0 el nombre del sistema para un arc(ivo suele estar formado
como el /nombre de la trayectoria0 del directorio ra,# al arc(ivo.
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO4.htm
%.1D*ocin de arc"ivo real y virtual.
No#i'$ (e ar#.ivo real : virtual.
$n arc(ivo virtual, es un arc(ivo de uso temporal que es utili#ado por los procesos del
sistema mientras se est&n eecutando dic(os procesos. "stos arc(ivos se crean durante la
eecucin de un sistema y los utili#a para el almacenamiento de informacin, intercambio y
organi#acin mientras se eecuta el sistema, su tamaUo es muy variable y terminan al detener la
eecucin del sistema, muc(os de ellos son borrados, por eemplo, los arc(ivos @.tmp
Ar#.ivo Real+ "s un obeto que contiene programas, datos o cualquier otro elemento.
"n QNIR se define un File S:stem como un sistema de soft/are dedicado a la creacin,
destruccin, organi#acin y lectura, escritura y control de acceso de los arc(ivos, funcionalmente
los componentes de un sistema de arc(ivos son lenguaes de comandos, interpretador de
comandos, maneador del almacenamiento secundario, sistema de entrada y salida y mecanismos
de respaldo y recuperacin.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E=-..tml
Ar#.ivos
Se considerar& el punto de vista del usuario.
Nomre (e los Ar#.ivos
Las reglas e@actas para los nombres de arc(ivos var,an de sistema a sistema g7T, <anenbaumh.
8lgunos sistemas de arc(ivos distinguen entre las letras may!sculas y min!sculas, mientras que
otros no.
;uc(os S. F. utili#an nombres de arc(ivo con dos partes, separadas por un punto:
La parte posterior al punto es la extensin de arc2ivo y generalmente indica algo relativo
al arc(ivo, aunque las e@tensiones suelen ser meras convenciones.
Estru#tura (e u$ Ar#.ivo
Los arc(ivos se pueden estructurar de varias maneras, las m&s comunes son g7T, <anenbaumh:
/"ecuencia de bytes01
o "l arc(ivo es una serie no estructurada de bytes.
o +osee m&@ima fle@ibilidad.
o "l S. F. no ayuda pero tampoco estorba.
/"ecuencia de registros01
o "l arc(ivo es una secuencia de registros de longitud fia, cada uno con su propia
estructura interna.
/@rbol 01
o "l arc(ivo consta de un &rbol de registros, no necesariamente de la misma
longitud.
o %ada registro tiene un #ampo He: (llave o #lave) en una posicin fia del registro.
o "l &rbol se ordena mediante el campo de clave para permitir una r&pida b!squeda
de una clave particular.
Tipos (e Ar#.ivos
;uc(os S. F. soportan varios tipos de arc(ivos, por e.: arc2ivos regulares9 directorios9 arc2ivos
especiales de caracteres9 arc2ivos especiales de blo4ues9 etc., donde g7T, <anenbaumh:
Los Ar#.ivos Regulares son aquellos que contienen informacin del usuario.
Los Dire#torios son arc(ivos de sistema para el mantenimiento de una estructura del
sistema de arc(ivos.
Los Ar#.ivos Espe#iales (e Cara#teres:
o <ienen relacin con la e ' s.
o Se utili#an para modelar dispositivos seriales de e ' s (terminales, impresoras,
redes, etc.).
Los Ar#.ivos Espe#iales (e ?lo%ues se utili#an para modelar discos.
A##eso a u$ Ar#.ivo
Los tipos de acceso m&s conocidos son:
A##eso Se#ue$#ial+ el proceso lee en orden todos los registros del arc(ivo comen#ando
por el principio, sin poder:
o Saltar registros.
o Leer en otro orden.
A##eso Aleatorio+ el proceso puede leer los registros en cualquier orden utili#ando dos
mtodos para determinar el punto de inicio de la lectura:
o %ada operacin de lectura (read) da la posicin en el arc(ivo con la cual iniciar.
o $na operacin especial (see9) establece la posicin de trabao pudiendo luego
leerse el arc(ivo secuencialmente.
Atriutos (e Ar#.ivo
%ada arc(ivo tiene:
Su nombre y datos.
"lementos adicionales llamados atriutos, que var,an considerablemente de sistema a
sistema.
8lgunos de los posiles atriutos de arc(ivo son g7T, <anenbaumh:
^Prote##i'$_+ quin debe tener acceso y de qu forma.
^Co$traseMa_+ contraseUa necesaria para acceder al arc(ivo.
^Crea(or_+ identificador de la persona que cre el arc(ivo.
^Propietario_+ propietario actual.
^?a$(era e8#lusivo 0 para 0 le#tura_+ 6 lectura ' escritura, 3 para lectura
e@clusivamente.
^?a$(era (e o#ultamie$to_+ 6 normal, 3 para no e@(ibirse en listas.
^?a$(era (e sistema_+ 6 arc(ivo normal, 3 arc(ivo de sistema.
^?a$(era (e iliote#a_+ 6 ya se (a respaldado, 3 necesita respaldo.
^?a$(era as#ii I i$ario_+ 6 arc(ivo en ascii, 3 arc(ivo en binario.
^?a$(era (e a##eso aleatorio_+ 6 solo acceso secuencial, 3 acceso aleatorio.
^?a$(era temporal_+ 6 normal, 3 eliminar al salir del proceso.
^?a$(eras (e #erra(ura_+ 6 no bloqueado, distinto de 6 bloqueado.
^Lo$gitu( (el registro_+ n!mero de bytes en un registro.
^Posi#i'$ (e la llave_+ auste de la llave dentro de cada registro.
^Lo$gitu( (e la llave_+ n!mero de bytes en el campo llave.
^Tiempo (e #rea#i'$_+ fec(a y (ora de creacin del arc(ivo.
^Tiempo (el [ltimo a##eso_+ fec(a y (ora del !ltimo acceso al arc(ivo.
^Tiempo (e la [ltima mo(i*i#a#i'$_+ fec(a y (ora de la !ltima modificacin al arc(ivo.
^TamaMo a#tual_+ n!mero de bytes en el arc(ivo.
^TamaMo m"8imo_+ tamaUo m&@imo al que puede crecer el arc(ivo.
Opera#io$es #o$ Ar#.ivos
Las llamadas m&s comunes al sistema relacionadas con los arc(ivos son g7T, <anenbaumh:
Create D#rear;+ el arc(ivo se crea sin datos.
Delete Delimi$ar;+ si el arc(ivo ya no es necesario debe eliminarse para liberar espacio en
disco. %iertos S. F. eliminan autom&ticamente un arc(ivo no utili#ado durante QnS d,as.
Ope$ Darir;+ antes de utili#ar un arc(ivo, un proceso debe abrirlo. La finalidad es
permitir que el sistema traslade los atributos y la lista de direcciones en disco a la
memoria principal para un r&pido acceso en llamadas posteriores.
Close D#errar;+ cuando concluyen los accesos, los atributos y direcciones del disco ya no
son necesarios, por lo que el arc(ivo debe cerrarse y liberar la tabla de espacio interno.
Rea( Dleer;+ los datos se leen del arc(ivoG quien (ace la llamada debe especificar la
cantidad de datos necesarios y proporcionar un buffer para colocarlos.
Srite Des#riir;+ los datos se escriben en el arc(ivo, en la posicin actual. "l tamaUo del
arc(ivo puede aumentar (agregado de registros) o no (actuali#acin de registros).
Appe$( DaMa(ir;+ es una forma restringida de Q/riteS. Solo puede aUadir datos al final
del arc(ivo.
SeeH Dus#ar;+ especifica el punto donde posicionarse. %ambia la posicin del apuntador
a la posicin activa en cierto lugar del arc(ivo.
Xet attriutes Dote$er atriutos;+ permite a los procesos obtener los atributos del
arc(ivo.
Set attriutes Destale#er atriutos;+ algunos atributos pueden ser determinados por el
usuario y modificados luego de la creacin del arc(ivo. La informacin relativa al modo
de proteccin y la mayor,a de las banderas son un eemplo obvio.
Re$ame D#amiar (e $omre;+ permite modificar el nombre de un arc(ivo ya e@istente.
Ar#.ivos Mapea(os a Memoria
8lgunos S. F. permiten asociar los arc(ivos con un espacio de direcciones de un proceso en
eecucin g7T, <anenbaumh.
Se utili#an las llamadas al sistema ^map_ y ^u$map_:
^Map_+ utili#a un nombre de arc(ivo y una direccin virtual y (ace que el S. F. asocie al
arc(ivo con la direccin virtual en el espacio de direcciones, por lo cual las lecturas o
escrituras de las &reas de memoria asociadas al arc(ivo se efect!an tambin sobre el
arc(ivo mapeado.
^Q$map_+ elimina los arc(ivos del espacio de direcciones y concluye la operacin de
asociacin.
"l mapeo de arc(ivos elimina la necesidad de programar la e ' s directamente, facilitando la
programacin.
Los principales problemas relacionados son:
*mposibilidad de conocer a priori la longitud del arc(ivo de salida, el que podr,a superar a
la memoria.
0ificultad para compartir los arc(ivos mapeados evitando inconsistencias, ya que las
modificaciones (ec(as en las p&ginas no se ver&n refleadas en el disco (asta que dic(as
p&ginas sean eliminadas de la memoria.
(ttp:''e@a.unne.edu.ar'depar'areas'informatica'SistemasFperativos'SFV.(tm
%.11$omponentes de un sistema de arc"ivos.
$O3.O*!*T! D! U* SIST!3/ D! /7$-IAO
EL SSTEMA DE ARCHVOS DE UN SSTEMA OPERATVO. Lo conforman todas
aquellas rutinas encargadas de administrar todos los aspectos relacionados con el
manejo de Archivos.
COMPONENTES DEL SSTEMA DE ARCHVOS. En general, un Sistema de Archivos
est compuesto por: Mtodos De Acceso, Administracin De Archivos, Administracin
De Almacenamiento Secundario, Mecanismos De ntegridad. Mtodos De Acceso. Se
ocupan de la manera en que se tendr acceso a la informacin almacenada en el
archivo. Ejemplo: Secuencial, Directo, indexado, etc.
Administracin De Archivos. Se ocupa de ofrecer los mecanismos para almacenar,
compartir y asegurar archivos, as como para hacer referencia a ellos. Administracin
De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los
dispositivos de almacenamiento secundario.
Mecanismos De ntegridad. Se ocupan de garantizar que no se corrompa la informacin
de un archivo, de tal manera que solo la informacin que deba estar en el, se encuentre
ah.
Compo$e$tes (e u$ sistema (e ar#.ivos.
:eg. lgico
:eg. f,sico
Figura > ,. 0omponentes@ niveles de un sistema de arc#ivos.
3. %ontiene las diferentes rutinas y comandos atrav# de los cuales el usuario podr&
estructurar sus arc(ivos virtuales.
7. %onvierte los identificadores simblicos de los arc(ivos en identificadores internos,
los cuales apuntar&n a su descriptor o a una estructura que permite encontrar el
arc(ivo.
T. Su obetivo es el de activar y desactivar a travs de las rutinas de abrir y cerrar
arc(ivos y verifica el modo de acceso.
;"%8-*S;FS 0" F:Z8-*k8%*F-
LFZ*%8
0*:"%<F:*F 0"
*0"-<*D*%80F:"S
S*S<";8S <"F:*%FS 0"
8:%)*HFS
;"%8-*S;FS 0" F:Z8-*k8%*F-
D*S*%8
;"%8-*S;FS 0"
"'S
S%)"0$L*-Z
"'S
3l
7l
Tl
Vl
Yl
?l
V. <raslada las direcciones lgicas en direcciones f,sicas correspondientes a las
estructuras de memoria secundaria y los buffers en memoria principal necesarios para
la transferencia de datos.
Y. +or cada peticin de acceso al arc(ivo real, este mecanismo genera la secuencia de
operaciones elementales de entrada y salida que se necesita.
?. "n este nivel es donde se tiene el n!mero de peticiones pendientes as, como de las que
se est&n reali#ando y lleva el control y asignacin de tiempo de %+$ a las diferentes
peticiones de "'S.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so7'so7>VT.(tml
%.12Or0ani2acin l0ica y fsica.
O7B/*IN/$IL* ,OBI$/ O FISI$/
ORGANZACN DE ARCHVOS
Se refiere a las diferentes maneras en las que puede ser organizada la informacin de
los archivos, as como las diferentes maneras en que sta puede ser accesada.
Dado que hay 2 niveles de visin de los archivos (fsico y lgico), se puede hablar
tambin de 2 aspectos de organizacin de archivos: Organizacin de archivos lgicos y
de archivos fsicos.
DE ARCHVOS LOGCOS. Contempla la organizacin desde el punto de vista lgico.
Por ejemplo, secuencial, directo, etc.
DE ARCHVOS FSCOS. Contempla la administracin de archivos desde la
perspectiva fsica, particularmente la organizacin del almacenamiento en disco a nivel
de pistas y sectores. Este tipo de organizacin muestra a su vez, 2 aspectos
importantes: Mtodos De Asignacin De Espacio Libre y Asignacin De Espacio De
Almacenamiento Del Archivo.
Orga$i&a#i'$ l'gi#a : *)si#a.
La organi#acin de arc(ivos es de dos tipos lgica y f,sica. Frgani#acin lgica, e@isten
tres organi#aciones comunes de un arc(ivo. La primera es una simple secuencia de bytes. Figura
# 7.
Los arc(ivos de $-*. se estructuran de esta
manera.
La segunda es una sucesin de registros de tamaUo fio.
+ueden leerse o escribirse registros
arbitrarios, pero no pueden insertarse o
suprimirse registros a la mitad de un arc(ivo.
La tercera organi#acin es un &rbol de bloques de disco, donde cada cavidad contiene n
registros con clave. Los registros pueden cerrarse por clave y pueden insertarse otros en cualquier
parte del &rbol.
3
Myte
)ormig
a
korra %erd
o
Zato Haca +erro %abr
a
Len M!(o +ony :ata Zusan
o
Zallin
a
*bis %order
o
3
:egistro
Digura i 7. Frgani#acin de arc(ivos
Si se agrega un registro a un bloque que est& repleto, ste se divide en su secuencia
alfabtica correcta. "ste mtodo se aplica en muc(as macrocomputadoras, donde se llaman *S8;
(mtodo de acceso secuencia indi#ado).
La organi#acin f,sica es llevada a cabo en un sistema por medio de 0irectorios.
+ara llevar el control de los arc(ivos, el sistema de arc(ivos proporciona directorios, los
cuales en muc(os sistemas, son arc(ivos. $n directorio suele tener varias entradas, una por
arc(ivo. Figura # ,.
0irectorio
"ntrada
"ntrada
"ntrada
"ntrada
Figura > <.
$n directorio puede tener varias entradas, donde cada un describe un arc(ivo. Las
entradas pueden contener cierta informacin acerca del arc(ivo o bien apuntar a otras estructuras
que la tengan.
La manera m&s simple consiste en que el sistema conserve un solo directorio que
contenga todos los arc(ivos de todos los usuarios. Si (ay muc(os usuarios y stos eligen los
mismos nombres de arc(ivos (por eemplo, mail y games), (abr& conflictos y la confusin
volver&n el sistema impracticable. "ste modelo de sistema es utili#ado solamente por los sistemas
operativos de microcomputadoras m&s primitivos.
$na meora a la idea de tener un solo directorio para todos los arc(ivos consiste en tener
un directorio por usuario. Figura # 4.
-ombre del arc(ivo
<ipo de arc(ivo
+ropietario
*nformacin de proteccin
%onteo de uso
<iempo de creacin
<iempo de la !ltima
modificacin
Lista de bloques del disco que
se usan
I$*orma#i'$ a#er#a (e #a(a
ar#.ivo
Figura # 4. Bn directorio por usuario.
"ste mtodo elimina conflictos de nombre entre los usuarios, pero no es muy satisfactorio
para usuarios con muc(os arc(ivos.
"s necesaria una erarqu,a general (o sea, un &rbol de directorios). %on este mtodo, cada
usuario puede tener tantos directorios como se necesiten de manera que los arc(ivos se puedan
agrupar en formas naturales.
%uando el sistema de arc(ivos se organi#a como un &rbol de directorios, se necesita
contar con alguna manera de especificar nombres de arc(ivos. %om!nmente se emplean dos
mtodos:
-ombre de ruta absoluta. Bue consta de la ruta que va del directorio ra,# al arc(ivo.
"em: La ruta 'usr'ast'mailbo@ el directorio ra,# contiene un subdirectorio usr el cual
contiene un subdirectorio ast, que contiene el arc(ivo mailbo@. Los nombres de ruta
absoluta siempre comien#an en el directorio ra,# y son !nicos.
-ombre de ruta relativa . Se utili#a unto con el concepto directorio de trabao (
directorio actual). $n usuario puede designar un directorio como el directorio de
trabao actual. "n $-*., todos los nombres de ruta que comien#an con una diagonal '
son absolutosG todos los otros son relativos al directorio de trabao actual del usuario.
Si el directorio de trabao actual es 'usr'ast'mailbo@ puede referirse simplemente como
mailbo@.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so2/so2_44.html
%
% % %
M
M 8
8
8
0irectorio
:a,#
0irectorio del
usuario
8rc(ivo
%.13ecanismos de acceso a los arc"ivos.
Me#a$ismos (e a##eso a los ar#.ivos.
"@isten varios mecanismos para accesar los arc(ivos:
0irectorios, descriptores de arc(ivos, mecanismos de control de acceso y procedimientos
para abrir y cerrar arc(ivos.
Des#riptores (e ar#.ivos. 8 cada uno de los arc(ivos se le asigna un descriptor el cual
contendr& toda la informacin que necesitar& el sistema de arc(ivos para eecutar con l los
comandos que se le soliciten. "l descriptor se mantendr& en memoria principal desde que el
arc(ivo es abierto (asta que sea cerrado, y debe tener al menos la siguiente informacin,
identificacin del arc(ivo, lugar de almacenamiento, informacin del modo de acceso.
*dentificacin del arc(ivo consiste de dos partes que es el nombre simblico que es el que
le da el usuario y un identificador interno que es asignado por el sistema operativo (n!mero).
Lugar de almacenamiento as, como el tamaUo del arc(ivo.
;odo de acceso. Se debe indicar en forma e@pl,cita quien puede accesar el arc(ivo y
conque derec(o.
"l sistema de arc(ivos es un componente importante de cualquier sistema operativo, en
general contienen:
M/to(os (e a##eso+ Se ocupan de la forma en que se obtiene acceso a los datos
almacenados en arc(ivos.
A(mi$istra#i'$ (e ar#.ivo. Se ocupa de ofrecer los mecanismos para almacenar,
compartir y asegurar arc(ivos, y (acer referencia a ellos.
A(mi$istra#i'$ (e alma#e$amie$to se#u$(ario: Se ocupa de asignar espacio a los
arc(ivos en dispositivos de almacenamiento secundario.
Me#a$ismos (e i$tegri(a( (e los ar#.ivos: Se ocupan de garanti#ar que no se
corrompa la informacin en un arc(ivo. %uando se asegura la integridad de los
arc(ivos, cualquier informacin que debe estar en un arc(ivo estar& a(,, la
informacin que no deba estar en un arc(ivo se mantiene fuera de l.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so7'so7>VY.(tml
%.1#3ane9o de espacio en memoria secundaria.
Ma$e!o (el espa#io (e memoria se#u$(aria.
"l sistema de arc(ivos se ocupa primordialmente de administrar el espacio de
almacenamiento secundario, sobre todo el espacio en disco.
"l maneo del espacio libre en disco se lleva a cabo de la siguiente manera:
Hector de bits
Lista ligada (lista libre)
+or conteo (agrupacin)
Ve#tor (e its. "l espacio libre en disco es frecuentemente implementado como un mapa
de bits, donde cada blo9c es representado por un bit y si el bloc es libre el bit es cero de lo
contrario est& asignado.
33666333
Lista liga(a. $na lista ligada de todos los bloc9s libres. Ftra implantacin se consigue
guardando la direccin del primer bloc9 libre y el n!mero de los bloc9s libres contiguos
que le siguen. %ada entrada de la lista de espacio libre consiste de una direccin de disco
y un contador (por conteo), ver figura # 5.
7 T
Figura # 5. 'ista ligada.
Por agrupa#i'$. Se almacena la direccin en n bloc9s libres en el primer bloc9 libre y el
!ltimo contiene la direccin de otro bloc9 que contiene la direccin de otros bloc9s libres,
ver figura # 6.
Figura # 6. 2grupacin.
+ara manear los espacios en disco e@isten los siguientes mtodos:
%ontiguos
-l de bloc9 contiguos (7,7
y V)
Mloc libre de inicio
Ligados
*nde@ados
%ontiguos . "sta asignacin requiere que cada arc(ivo ocupe un conunto de
direcciones contiguas en el disco, su asignacin es definida por la direccin del primer
bloc y la longitud del arc(ivo.
8signacin ligada . %ada arc(ivo es una lista ligada de bloc9s y el directorio contiene
un apuntador al primer bloc y al !ltimo. (igura A B.
-ombre *nicio Dinal
8 3 Y6
Figura # -. 2signacin ligada.
8signacin *nde@ada . %ada arc(ivo tiene su propio bloc de ,ndice el cual es un arreglo
de direcciones de bloc
"n un sistema de cmputo, los elementos que se declaran para almacenamiento son los
F:le S:stem.
%u&ndo e@iste una solicitud de almacenamiento o maneo de bloc libres en un file system
surge una interrogante Acmo atenderlasC esto se lleva a cabo mediante una planificacin de
discos y para esto e@isten las siguientes pol,ticas de planificacin.
a; FCFS
; SSTF
; SCAN
#; SCAN (e $0pasos
(; C0SCAN
3
Y6
8cceso
Secuencial
S,
0irecto
-o
NOTA+
2 Lento
2 "vita la
compactacin
*; Es%uema Es#.e$a#.
(ttp:''eduadis.itlapiedad.edu.m@'_(ocegueras'so7'so7>V?.(tml
%.1%3odelo 9er4r5uico.
%.1)3ecanismos de recuperacin en caso de falla.
Me#a$ismos (e re#upera#i'$ e$ #aso (e *allos.
La perdida de la informacin es uno de los factores que se le debe de dar mayor
importancia, por la sencilla ra#n de que al perder informacin se puede perder lo que no nos
podemos imaginar en cuanto a la misma y ocasionar perdidas (asta (ablar de una gran cantidad
de dinero.
+ara solucionar este o estos problemas todo sistema operativo cuenta con al menos una
(erramienta de soft/are que nos permite recuperar informacin perdida (asta cierta medida, esto
obedece de acuerdo al daUo causado o los daUos. Si el sistema no cuenta con la (erramienta
necesaria, deber& adquirirse el soft/are apropiado de alg!n fabricante especiali#ado en el ramo,
por eemplo -orton.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E=`..tml
Unidad )
.roteccin y se0uridad.
).1 $oncepto y ob9etivos de proteccin.
Proteccion.-
Refiere a los mecanismo para controlar el acceso de programas, usuarios o proceso a los recursos
definido en el sistema. Un sistema es un conjunto de recursos (CPU, memoria, impresoras, etc.) en
donde cada objeto o recurso tiene un nombre nico. Las operaciones que se pueden hacer sobre cada
objeto dependen del objeto.
Dominios de proteccion.-
Cada proceso opera dentro de su dominio de proteccin, que indica las operaciones que el proceso
puede hacer sobre un determinado conjunto de objetos. La habilidad de un proceso de ejecutar una
operacin sobre un objeto se denomina derecho (acces right). Un dominio es un conjunto de derechos
cada uno de los cuales es un par ordenado Pob9eto8 lista de derec"osQ
Un dominio puede estar definido de varias formas:
Un usuario es un dominio. El conjunto de objetos que pueden ser accedidos dependen de la identidad del
usuario.
Un proceso es un domino. El conjunto de objetos que pueden ser accedidos dependen de la identidad del
proceso.
Un procedimiento es un dominio.
Prote##i'$
La aparicin de la multiprogramacin introduo en los computadores la posibilidad de
compartir recursos entre varios usuarios. "ntre los recursos compartidos est&n la %+$, la
memoria, los dispositivos de entrada'salida, los programas y los datos. "l (ec(o de poder
compartir recursos es lo que introduo la necesidad de proteccin.
"@isten varios motivos por lo que la proteccin es necesaria. "l m&s obvio es la necesidad
de prevenir intentos de violacin de restricciones de acceso por parte de un usuario. "l m&s
importante es, sin embargo, la necesidad de asegurar que cada proceso use los recursos del
sistema de forma consistente de acuerdo con las pol,ticas establecidas para el uso de esos
recursos. "ste requisito es fundamental para que un sistema sea fiable.
"l papel de la proteccin en un sistema inform&tico es proporcionar un conunto de
mecanismos que permita llevar a cabo las pol,ticas que gobiernan el uso de los recursos. "stas
pol,ticas pueden ser fias, establecidas en el diseUo del sistema operativo, pueden ser formuladas
por el administrador del sistema, o incluso puede ser establecidas por los usuarios.
$n principio importante es la separacin entre pol,tica y mecanismo. Los mecanismos
determinan (acer cierta cosa, mientras que las pol,ticas deciden es lo que (ay que (acer. "n el
&mbito de la proteccin, la pol,tica define qu datos (an de ser protegidos y el mecanismo la
forma de llevar a cabo la pol,tica. "sta separacin favorece la fle@ibilidad. 0ebido a que las
pol,ticas pueden cambiar con el tiempo o con el lugar, es deseable que el sistema operativo
ofre#ca un conunto general de mecanismos por medio de los cuales se puedan establecer
pol,ticas diferentes.
<.=., Domi$ios (e Prote##i'$.
$n computador contiene un conunto de obetos que (an de ser protegidos. "stos obetos
pueden ser tanto (ard/are (%+$s, segmentos de memoria, discos, impresoras, etc.) como
soft/are (procesos, fic(eros, sem&foros, etc.). %ada obeto tiene un identificador !nico en el
sistema y un conunto de operaciones que le pueden ser aplicadas. Las operaciones posibles
dependen del obeto. +or eemplo, los segmentos de memoria pueden ser le,dos o escritos,
mientras que un fic(ero puede ser creado, abierto, le,do, escrito, cerrado y borrado. "l mecanismo
de proteccin (a de pro(ibir a los procesos el acceso a aquellos obetos.
+ara estudiar los diferentes mecanismos de proteccin se introduce el concepto de
(omi$io (e prote##i'$. $n dominio de proteccin es un conunto de pares o%(eto)derec#os, de
forma que cada par especifica un obeto y alg!n subconunto de operaciones que se pueden
reali#ar sobre dic(o obeto.
Figura #. - :(emplos de dominio de proteccin.
"n cada instante de tiempo, cada proceso se eecuta dentro de un dominio concreto. "ste dominio
puede cambiar durante la vida del proceso.
$n dominio puede ser varias cosas:
%ada usuario puede ser un dominio, en cuyo caso el conunto de obetos que puede ser accedido
depende de la identidad del usuario. Los cambios de dominio ocurren cuando se cambia de
usuario.
%ada proceso puede ser un dominio, en cuyo caso el conunto de obetos que puede ser
accedido depende de la identidad del proceso. Los cambios de dominio se producen cuando un
proceso env,a un mensae a otro y espera la respuesta.
%ada procedimiento puede ser un dominio, en cuyo caso el conunto de obetos que puede ser
accedido se corresponde con las variables locales definidas dentro del procedimiento. Los
cambios de dominio se producen cuando se reali#a una llamada a procedimiento.
"n $-*. el dominio de un proceso lo determina su uid y su gid. 0ado un par de estos
dos identificadores, es posible obtener un lista de todos los obetos que puede utili#ar, y si pueden
ser accedidos para lectura, escritura y'o eecucin. 8dem&s, en $-*. cada proceso tiene dos
partes, la parte de usuario y la parte de n!cleo. %uando un proceso invoca una llamada al sistema
pasa a eecutarse en modo n!cleo. "ste cambio de modo de eecucin da lugar a un cambio de
dominio. %uando un proceso $-*. reali#a una llamada exec() sobre un fic(ero que tiene uno
de los bits SETUID o SETGID a uno adquiere un nuevo uid o gid efectivo. "sto tambin
provoca un cambio de dominio.
"l sistema operativo debe de conocer en todo momento los obetos que pertenecen a cada
dominio. $na forma de llevar este control es tener una matri& (e a##eso, en la que las filas son
los dominios y las columnas los obetos. %ada elemento de la matri# muestra los derec(os de un
dominio sobre un obeto.
Figura #. 4 :(emplo de matri/ de acceso.
Los cambios de dominio se pueden incluir f&cilmente en la matri# de proteccin considerando
que cada dominio es a su ve# un obeto sobre el que e@iste una operacin que permite entrar en
l.
Figura #. 5 Catri/ de acceso con dominio.
"n la pr&ctica no es viable almacenar la matri# de proteccin porque es grande y tiene
muc(os (uecos (sparse matrix). La mayor,a de los dominios no tiene acceso a la mayor,a de los
obetos, por lo que almacenar una gran matri# casi vac,a desperdicia muc(o espacio en disco. 0os
soluciones pr&cticas consisten en almacenar la matri#, bien por filas, bien por columnas, y
almacenar !nicamente los elementos no vac,os. "n el primer caso se (abla de capacidades, y en
el segundo, de listas de control de acceso.
<.=.- Listas (e Co$trol (e A##eso.
%uando la matri# se almacena por columnas, a cada obeto se le asocia una lista ordenada
que contiene todos los dominios que pueden acceder al obeto y la forma de (acerlo. "sta lista se
denomina lista (e #o$trol (e a##eso (control access list o 8%L).
"n $-*. esta lista est& compuesta por tres grupos de tres bits, especificando cada grupo
los permisos para el propietario, grupo y resto de usuarios, y los tres bits indican si e@iste permiso
de lectura, escritura y'o eecucin. Sin embargo, un esquema basado en listas de control de
acceso puede ser m&s general:
"l propietario de un obeto puede modificar la lista de control de acceso del mismo. "l
!nico problema es que los cambios pueden no afectar a los usuarios que ya estn usando el
obeto.
<.=.< Capa#i(a(es
La otra forma de almacenar la matri# de proteccin es por filas. %on este mtodo, cada
proceso tiene una lista de los obetos a los que puede acceder as, como una indicacin de las
operaciones que est&n permitidas sobre cada uno de ellos. "sta lista se denomina lista (e
#apa#i(a(es (listas>% o #'lists), y cada elemento de la lista se llama capacidad.
%ada obeto est& representado por una capacidad. %uando un proceso quiere eecutar una
operacin sobre un obeto, (a de especificar la capacidad del obeto como par&metro. La simple
posesin de la capacidad permite que se conceda el acceso (siempre que ste est permitido sobre
el obeto).
%ada capacidad tiene un campo que indica el tipo del obeto, un campo de derec(os de
acceso, y un campo que identifica al obeto.
Figura #. 18 'ista de capacidades para el dominio 7 de la figura 4.
Las listas de capacidades se asocian a un dominio, pero los procesos que se eecutan en
ese dominio no deben de acceder a la lista de forma directa. +or el contrario, cada capacidad es
un obeto protegido que debe ser gestionado por el sistema operativo y !nicamente puede ser
accedido de forma indirecta por parte de los procesos. Zeneralmente, suelen ser referenciadas por
su posicin dentro de la lista de capacidades. Las listas de capacidades son tambin obetos, por
lo que pueden ser apuntadas desde otras listas, permitiendo el compartir subdominios.
+ara proporcionar proteccin, las capacidades se (an de distinguir de otro tipos de obetos.
%ada obeto tiene asociado una etiqueta que indica si se trata de un obeto o de una capacidad.
Las etiquetas no deben ser accesibles directamente por los programas de aplicacin. $na solucin
(ard/are consiste en aUadir a cada palabra de memoria un bit adicional que indica si la palabra
de memoria contiene una capacidad. "ste bit slo se puede ser modificado por el sistema
operativo. Si se aUaden m&s bits, el (ard/are podr& conocer los tipos de los obetos (si son
enteros, reales).
0ividir el espacio de direcciones de un programa en dos #onas. La primera es accesible al
programa y contiene las instrucciones y los datos. La segunda contiene la lista de capacidades y
es accesible !nicamente por el sistema operativo.
;antener las capacidades en el espacio de usuario, pero encriptadas con una clave secreta
desconocida para el usuario. "ste mtodo es empleado por el sistema operativo 8moeba.
Se tienen acceso relativos a cada obeto, las capacidades tienen permisos genricos que son
aplicables a todos los obetos. 8lgunos de estos permisos son:
Copiar #apa#i(a(: crear una nueva capacidad para el mismo obeto.
Copiar o!eto: %rear un obeto duplicado con una nueva capacidad.
Elimi$ar #apa#i(a(: borrar de forma permanente una entrada de la lista>%, pero deando
inalterado al obeto.
Elimi$ar o!eto: eliminar de forma permanente un obeto y su capacidad.
Los sistemas basados en capacidades se suelen organi#ar como una coleccin de mdulos,
siendo cada mdulo un gestor para cada tipo de obeto. +or eemplo, las operaciones sobre
fic(eros se env,an al gestor de fic(eros, mientras que las que tiene que ver con memoria se env,an
al gestor de memoria. %ada operacin va acompaUada de la capacidad correspondiente. $n
problema que tiene este esquema basado en mdulos gestores es que stos son, a su ve#,
programas ordinarios. +ong&monos en el caso de un gestor de fic(eros. Las capacidades
asociadas a fic(eros permiten a los programas las operaciones t,picas sobre stos (apertura,
lectura, etc.). Sin embargo, el gestor de fic(eros (a de ser capa# de acceder a la representacin
interna de los fic(eros (en $-*., por eemplo, (abr,a que acceder a los nodos ,ndice). +or lo
tanto, es esencial que los mdulos gestores tengan m&s atribuciones de las que las capacidades
permiten a los procesos ordinarios. "ste problema se resuelve en el sistema )ydra mediante una
tcnica llamada amplificacin de derec(os, que consiste en que a los mdulos gestores se les
asigna una plantilla de permisos que les permiten obtener m&s derec(os sobre los obetos de los
que les permiten las capacidades.
$n problema que se presentan en los sistemas basados en capacidades es que es dif,cil
revocar los accesos a un obeto, ya que ello supone locali#ar todas las capacidades que (acen
referencia al obeto, y stas se encuentran en las listas de capacidades, que se encuentran
repartidas por todo el disco. $na solucin a este problema consiste en que una capacidad no
apunte al obeto en s,, sino a un obeto indirecto que apunta al obeto. 0e esta forma, si se quiere
pro(ibir los accesos, basta con romper el enlace entre el obeto indirecto y el obeto. Ftra
posibilidad consiste en asociar a cada obeto un n!mero aleatorio, que tambin est& presente en la
capacidad. %uando se presenta una capacidad al solicitar un acceso, los dos n!meros son
comparados y el acceso se permite si la comparacin (a tenido @ito. La forma de revocar los
accesos consiste en que el propietario del obeto puede solicitar que el n!mero aleatorio del
obeto sea cambiado, lo que autom&ticamente invalida el resto de las capacidades.
"ttpE>>eduadis.itlapiedad.edu.m1>J"oce0ueras>so2>so2G#."tml
).2 Funciones del sistema de proteccin.
FU*$IO*!S D! U* SIST!3/ D! .7OT!$$IL*.
Dado que los sistemas de computo se han venido haciendo cada vez ms sofisticados
en sus aplicaciones, la necesidad de proteger su integridad, tambin ha crecido. Los
aspectos principales de proteccin en un Sistema Operativo son:
1. Proteccin de los procesos del sistema contra los procesos de usuario.
2. Proteccin de los procesos de usuario contra los de otros procesos de usuario.
3. Proteccin de Memoria.
4. Proteccin de los dispositivos.
Fu$#io$es (e u$ sistema (e prote##i'$.
0ado que los sistemas de cmputo se (an venido (aciendo cada ve# m&s sofisticados en
sus aplicaciones, la necesidad de proteger su integridad, tambin (a crecido. Los aspectos
principales de proteccin en un Sistema Fperativo son:
3. +roteccin de los procesos del sistema contra los procesos de usuario.
7. +roteccin de los procesos de usuario contra los de otros procesos de usuario.
T. +roteccin de ;emoria.
V. +roteccin de los dispositivos.
Prote##i'$ 2 Co$trol (e empleo (e la i$*orma#i'$ P Re#ursos
FQNCIONES+
Las funciones de un sistema de proteccin son asegurar la independencia entre obetos
que lgicamente son independientes y la de asegurar el control de acceso a la informacin y
puede ser control asociado al tipo de informacin o puede ser el control asociado al usuario que
solicita el acceso.
<odos los mecanismos dirigidos a asegurar el sistema inform&tico, siendo el propio
sistema el que controla dic(os mecanismos, se engloban en lo que podemos denominar seguridad
interna.
Seguri(a( (el pro#esa(or
Los mecanismos de proteccin de procesador son:
"stados protegidos (kernel) o no protegidos (usuarios).
:elo (ard/are para evitar el bloqueo del procesador.
Seguri(a( (e la memoria
Se trata de mecanismos para evitar que un usuario acceda la informacin. "ntre ellos
citaremos dos:
:egistros l,mites o frontera.
"stado protegido y no protegido del procesador.
8dem&s se emplean para la memoria mtodos como el de utili#ar un bit de paridad o el
c(ec9sum.
Mit de paridad . %onsiste en aUadir un bit a cada octeto o palabra que se
transmita para con l conseguir que la suma de unos sea par (paridad par)
o impar (paridad impar). %on este mtodo se detectan errores al variar un
bit o un n!mero impar de ellos sin que se detecten variaciones de un
n!mero par de bits.
Si se prev que los daUos esperados en una transmisin no sean de un bit
en un octeto o palabra, sino en una secuencia de ellos, se puede utili#ar
un algoritmo que permita reali#ar una suma denominada suma de
c(equeo (c(ec9sum) y aplicar el mtodo denominado de redundancia
c,clica durante la transmisin, de tal forma que al terminar ste se repite
con el destino el mismo algoritmo de suma, comprob&ndose si el valor
final de la suma es el mismo.
Seguri(a( (e los ar#.ivos
La finalidad principal de las computadoras es el del tratamiento de la informacin que se
almacena permanentemente en los arc(ivos. La prdida o alteracin no deseada de la informacin
causa trastornos irreparables en algunos casos. +or eso es necesario tomar medidas de seguridad
que se deben enfocar desde dos aspectos diferentes: La disponibilidad y la privacidad de los
arc(ivos.
3) Dispo$iili(a( (e los ar#.ivos
$n arc(ivo debe tener la informacin prevista y estar disponible en el momento que un
usuario la necesite. Se debe de tener presente la necesidad de asegurar las circunstancias y se
deben reali#ar las siguientes acciones:
.Copias (e seguri(a( D?a#Hup;. %onsiste en que cada cierto tiempo ((ora, d,a, semana ...) se
realice una copia del contenido de los arc(ivos, de forma que si se destruyen stos, es posible la
recuperacin de los datos a partir de la !ltima de las copias. La operacin de reali#ar las copias y
la recuperacin a partir de las mismas, se reali#an por medio de programas de utilidad del sistema
operativo.
.Ar#.ivos log. Se usan en sistemas de tiempo compartido, con muc(os usuarios trabaando
simult&neamente, en estos sistemas se recurre a arc(ivos au@iliares donde se registran todas las
operaciones que reali#a un usuario sobre sus arc(ivos, almacen&ndose la nueva informacin o
aquella que difiere de la ya e@istente.
"stos arc(ivos reciben el nombre de arc(ivos log y son tratados por utilidades del sistema
operativo conuntamente con las copias de seguridad para los procesos de recuperacin. "sta
segunda tcnica permite asegurar la consistencia del contenido de los arc(ivos ante ca,das
inesperadas del sistema, evitando que una informacin se quede a medias de escribir.
+ara solucionar problemas de consistencia, algunos sistemas no dan la operacin de
escritura por reali#ada (asta que no se reflea en el log, y esto se (ace una ve# confirmada la
escritura en el disco. 8l volver a arrancar, el sistema inspecciona el log buscando operaciones
iniciadas y no acabadas, finali#&ndolas antes de permitir de nuevo el trabao de los usuarios.
-; Priva#i(a( (e los ar#.ivos
Los arc(ivos se deben proteger de posibles accesos no deseados, el sistema de proteccin
debe permitir acceso de forma controlada, seg!n reglas definidas y con las siguiente autori#acin:
E %ada usuario, al comen#ar la sesin en un sistema tras su identificacin, tiene asignado
por el sistema de proteccin un dominio compuesto de una serie de recursos y de operaciones
permitidas, por eemplo, una serie de arc(ivos a los que acceden, no teniendo permitido el acceso
al resto de arc(ivos.
"n general, los sistemas operativos almacenan la informacin relativa a los dominios en
los que se denomina matri# de dominios, cuyas filas indican los dominios e@istentes y las
columnas los recursos. %ada elemento de la matri# indica el derec(o a utili#ar el recurso
correspondiente en el dominio. Figura # 7.
A
,
A
-
A
<
A
=
A
A
A
B
I S
D
,
" L
D
-
L L," " "
D
<
L " L
(igura A C. Matri7 de acceso.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E<-..tml
). Implantacin de matrices de acceso.
Matriz de Acceso.-
El modelo de proteccin puede ser visto mediante una matriz de acceso. Las filas representan dominios y
las columnas representan objetos. Las entradas de la matriz representan el conjunto de derechos para el
objeto en cuestin, para determinado dominio.
I3.,/*T/$IO* D! 3/T7I$!S $O* D!7!$-OS D! /$$!SO.
Un modelo de proteccin puede ser visto abstractamente como una matriz, llamada
matriz de derecho. Los renglones de la matriz representan dominios y las columnas
representan objetos. Cada entrada en la matriz contiene un conjunto de derechos de
acceso. Dado que los objetos son definidos explcitamente por la columna, se puede
omitir el nombre del objeto en el derecho de acceso. La entrada "Matriz[i, j]" define el
conjunto de operaciones que un proceso ejecutndose en el dominio "Dj" puede realizar
sobre el objeto "Oj".
Hay 4 dominios y 5 objetos: 3 Archivos ("A1", "A2", "A3") 1 Puerto Serial y 1 impresora.
Cuando un proceso se ejecuta en O1, puede leer los archivos "A1" y "A3".
Un proceso ejecutndose en el dominio "D4" tiene los mismos privilegios que en "D1",
pero adems puede escribir en los archivos. Ntese que en el puerto serial y la
impresora solo se pueden ser ejecutados por procesos del dominio "D2".
ESTRUCTURAS DE PROTECCN DNAMCAS.
Las matrices de acceso vistas hasta el momento, en las que no cambian los derechos
en cada dominio durante su ejecucin, son un ejemplo de Estructuras de Proteccin
Estticas. Con el fin de ofrecer flexibilidad y de implementar eficientemente la
proteccin, un Sistema Operativo debe soportar cambios en los derechos de acceso.
Para esto se requiere implementar alguna estructura de proteccin dinmica.
En este caso continuaremos considerando las matrices de acceso, aunque en su
versin dinmica. Bsicamente se requieren cuatro nuevos derechos de acceso: Copia,
Cambio, Propietario y Control.
DERECHO DE ACCESO COPA.
Este derecho de acceso da la facultad a un proceso de copiar derechos existentes en
un dominio hacia otro dominio para el objeto en cuestin. O sea, este derecho genera
copias en columnas.
En este caso estar indicado el derecho copia aadiendo el signo (+) al nombre de los
derechos que pueden ser copiados.
En la tabla se indica que un proceso ejecutndose en el dominio 1 podr copiar hacia
cualquier otro dominio, el derecho enviar sobre el objeto "COM1" y que un proceso
ejecutndose en el dominio "D2" podr copiar el derecho "Leer" hacia cualquier otro
dominio sobre el objeto "Archivo2".
De esta manera, en algn momento posterior, la situacin de la tabla podra ser la
siguiente:
En la que se ha copiado el derecho "Enviar" del dominio "D1" al dominio "D4" sobre el
objeto "COM1" y se ha copiado el derecho "Leer" del dominio "D2" al dominio "D1"
sobre el objeto "Archivo 2".
Puede observarse que los derechos "copiados" no contienen el signo (+), o sea, se ha
realizado una copia limitada. En general se podra hablar de 3 variantes del derecho
"copia": Copia Limitada, Copia Completa, Translacin.
COPA LMTADA. La copia no incluye el derecho "Copia", con lo que no se podrn
hacer copias sucesivas del derecho. Se puede indicar con el signo (+).
COPA COMPLETA. La copia incluye el derecho "Copia", por lo que se pueden realizar
copias sucesivas del derecho. Se puede indicar con el signo (*).
TRANSLACN. El derecho en cuestin junto con el derecho copia se eliminan del
dominio original y se coloca en el nuevo dominio. Esta es una forma bsica de retirar
derechos de un dominio para asignarlo a otro. Se puede indicar con el signo
DERECHO DE ACCESO CAMBO.
Este derecho de acceso indica la posibilidad de un proceso para cambiarse de un
dominio a otro. La operacin cambio acta sobre dominios, o sea, en este caso los
dominios son los objetos. Entonces, para considerar este derecho de acceso se
debern incluir los dominios como objetos adicionales en la matriz de acceso.
Considrese la siguiente matriz de acceso:
Esta tabla indica que un proceso ejecutndose en "D1" puede cambiarse al dominio
"D4" (a); un proceso ejecutndose en "D2" puede cambiarse a "D3"(b) y un proceso
ejecutndose en el dominio "D4" puede cambiarse a "D1"(c).
).# .roteccin basada en el len0ua9e.
).% $oncepto de se0uridad.
I$tro(u##i'$ a la Seguri(a( (e los Sistemas Operativos
La evolucin de la computacin y de las comunicaciones en las !ltimas dcadas g`, 0eitelh:
)a (ec(o m&s accesibles a los sistemas inform&ticos.
)a incrementado los riesgos vinculados a la seguridad.
La vulnerabilidad de las comunicaciones de datos es un aspecto clave de la seguridad de los
sistemas inform&ticosG la importancia de este aspecto es cada ve# mayor en funcin de la
proliferacin de las redes de computadoras.
"l nivel de criticidad y de confidencialidad de los datos administrados por los sistemas
inform&ticos es cada ve# mayor:
".: correo personal, transferencia de fondos, control de manufactura, control de sistemas
de armas, control de tr&fico areo, control de implantes mdicos (marcapasos, etc.).
Los sistemas deben funcionar ininterrumpidamente y sin problemas.
"l sistema operativo, como administrador de los recursos del sistema:
%umple una funcin muy importante en la instrumentacin de la seguridad.
-o engloba a todos los aspectos de la seguridad.
0ebe ser complementado con medidas e@ternas al S. F.
La simple seguridad f!sica resulta insuficiente ante la posibilidad de acceso mediante equipos
remotos conectados.
La tendencia es que los sistemas sean ms ase4uibles y fciles de usar, pero la favorabilidad
(acia el usuario puede implicar un aumento de la vulnerabilidad.
Se deben identificar las amena7as potenciales, que pueden proceder de fuentes maliciosas o no.
%l nivel de seguridad a proporcionar depende del valor de los recursos 4ue 2ay 4ue asegurar.
Re%uisitos (e Seguri(a(
Los re4uisitos de seguridad de un sistema dado definen lo 4ue significa la seguridad, para ese
sistema g`, 0eitelh.
Los requisitos sirven de base para determinar si el sistema implementado es seguro1
Sin una serie de requisitos precisos tiene poco sentido cuestionar la seguridad de un
sistema.
Si los requisitos est&n dbilmente establecidos no dicen muc(o sobre la verdadera
seguridad del sistema.
8lgunos eemplos de formulacin de los requisitos de seguridad son los siguientes:
&irectiva &*& DCEE.CF (%%. UU.)1
o "specifica cmo debe manipularse la informacin clasificada en sistemas de
procesamiento de datos.
Manual de ,eferencia de +ecnolog!a de "eguridad de la #omputadora (%%. UU.)1
o "specifica cmo evaluar la seguridad de los sistemas de computacin de la Duer#a
8rea.
Ley de )ntimidad de GHBI (%%. UU.)1
o :equiere que las 8gencias Dederales aseguren la integridad y seguridad de la
informacin acerca de los individuos, especialmente en el conte@to del amplio uso
de las computadoras.
Q$ Tratamie$to Total (e la Seguri(a(
$n tratamiento total incluye aspectos de la seguridad del computador distintos a los de la
seguridad de los ". *. JB9 &eitelK.
La seguridad externa debe asegurar la instalacin computacional contra intrusos y desastres
como incendios e inundaciones:
%oncedido el acceso f,sico el S. F. debe identificar al usuario antes de permitirle el acceso
a los recursos: seguridad de la interfa7 del usuario.
La seguridad interna trata de los controles incorporados al (ard/are y al S. F. para asegurar la
confiabilidad, operabilidad y la integridad de los programas y datos.
Seguri(a( E8ter$a : Seguri(a( Opera#io$al
Seguri(a( E8ter$a
La seguridad externa consiste en g`, 0eitelh:
Seguridad f,sica.
Seguridad operacional.
La seguridad f!sica incluye:
+roteccin contra desastres.
+roteccin contra intrusos.
"n la seguridad f,sica son importantes los mecanismos de deteccin, algunos eemplos son:
0etectores de (umo.
Sensores de calor.
0etectores de movimiento.
La proteccin contra desastres puede ser costosa y frecuentemente no se anali#a en detalleG
depende en gran medida de las consecuencias de la prdida.
La seguridad f!sica trata especialmente de impedir la entrada de intrusos:
Se utili#an sistemas de identificacin f!sica1
o <aretas de identificacin.
o Sistemas de (uellas digitales.
o *dentificacin por medio de la vo#.
Seguri(a( Opera#io$al
%onsiste en las diferentes pol!ticas y procedimientos implementados por la administracin de la
instalacin computacional g`, 0eitelh.
La autori7acin determina qu acceso se permite y a quin.
La clasificacin divide el problema en subproblemas:
Los datos del sistema y los usuarios se dividen en clases1
o 8 las clases se conceden diferentes derec2os de acceso.
$n aspecto cr!tico es la seleccin y asignacin de personal1
La pregunta es si se puede confiar en la gente.
"l tratamiento que generalmente se da al problema es la divisin de responsabilidades1
o Se otorgan distintos conuntos de responsabilidades.
o -o es necesario que se cono#ca la totalidad del sistema para cumplir con esas
responsabilidades.
o +ara poder comprometer al sistema puede ser necesaria la cooperacin entre
muc(as personas:
Se reduce la probabilidad de violar la seguridad.
o 0ebe instrumentarse un gran n!mero de verificaciones y balances en el sistema
para ayudar a la deteccin de brec(as en la seguridad.
o "l personal debe estar al tanto de que el sistema dispone de controles, pero:
0ebe desconocer cu&les son esos controles:
Se reduce la probabilidad de poder evitarlos.
0ebe producirse un efecto disuasivo respecto de posibles intentos de violar
la seguridad.
+ara diseUar medidas efectivas de seguridad se debe primero:
"numerar y comprender las amena#as potenciales.
0efinir qu grado de seguridad se desea (y cu&nto se est& dispuesto a gastar en seguridad).
8nali#ar las contramedidas disponibles.
(ttp:''e@a.unne.edu.ar'depar'areas'informatica'SistemasFperativos'SF3V.(tmi*ntro
).) $lasificaciones de la se0uridad.
).@ Aalidacin y amena2as al sistema.
Tipos (e Ame$a&as.
Los tipos de amena#as a la seguridad de un sistema inform&tico los podemos caracteri#ar
teniendo en cuenta como esta informacin es suministrada por el sistema. "n general, (ay un
fluo de informacin de una fuente a un destino:
Figura #., Flu(o normal.
<eniendo esto en cuenta, podemos seUalar cuatro categor,as de amena#as:
I$terrup#i'$+ $n elemento del sistema es destruido o se (ace inservible. "s una amena#a a la
(ispo$iili(a(. "emplos son la destruccin de alg!n elemento (ard/are (discos, l,neas de
comunicacin, etc.) y la desactivacin del sistema de gestin de fic(eros.
Figura #. 4 Anterrupcin.
@ I$ter#ep#i'$+ $na parte no autori#ada obtiene acceso a un elemento relacionado con la
seguridad. "s una amena#a a la priva#i(a(. La parte no autori#ada puede ser una persona, un
programa o un computador. "emplos son la copia il,cita de programas y la visuali#acin de
fic(eros que (an de permanecer ocultos.
Figura #. 5 Antercepcin.
@ Mo(i*i#a#i'$+ $na parte no autori#ada no slo obtiene acceso sino que puede modificar un
elemento relacionado con la seguridad. "s una amena#a a la i$tegri(a(. "emplos son la
alteracin del contenido de un fic(ero y modificar un programa para que funcione de forma
diferente.
Figura #. 6 Codificacin.
@ Fari#a#i'$+ $na parte no autori#ada inserta nuevos elementos en el sistema. "s una amena#a
a la i$tegri(a(. "emplos son adicin de registros a un fic(ero y la inclusin de mensaes
esp!reos en una red.
La mayor,a de los mtodos de autenticacin se basan en identificar algo que el usuario
tiene o conoce. "l mecanismo m&s com!n de autenticacin consiste en que todo usuario (a de
introducir una , que es solicitada por el programa de cone@in cuando el usuario introduce su
nombre. "l inconveniente de este mtodo es que las contraseUas pueden ser f&cilmente
averiguables si el usuario utili#a su nombre, direccin, o similar como contraseUa. Ftra forma de
averiguar una contraseUa consiste en probar todas las combinaciones de letras, n!meros y
s,mbolos de puntuacin (asta adivinar la contraseUa.
"@isten variantes como que el sistema le aUada a cada contraseUa un n!mero aleatorio, o
asignarle a cada usuario un libro con una secuencia de contraseUas, de forma que cada ve# que se
conecta tiene que introducir la palabra de paso siguiente.
Ftros tipos de mecanismos de autenticacin se pueden basar en obetos que !nicamente
cada
usuario puede tener, como taretas con banda magntica, al estilo de los caeros autom&ticos. Ftra
posibilidad es medir o comprobar ciertas caracter,sticas que est&n indisolublemente unidas a cada
persona, como la vo#, escritura, (uellas dactilares, etc.
"n instalaciones en las que la seguridad es prioritaria, estas medidas se pueden
complementar con restricciones de acceso a la (abitacin en la que se encuentran los terminales,
asignar a cada usuario un terminal concreto, establecer un (orario concreto de trabao, etc.
Ame$a&as (e Orige$ So*tNare
$no de las los tipos m&s sofisticados de amena#as tienen su origen en programas que
e@plotan las debilidades de los sistemas. "stos programas se dividen en dos grupos: aquellos que
necesitan un programa anfitrin y aquellos que son independientes. Los primeros son tro#os de
programas que no pueden e@istir de forma autnoma, mientras que los segundos son programas
completos que pueden ser planificados y eecutados por el sistema operativo.
<ambin (ay que distinguir entre aquellos programas que no se replican y los que lo
(acen. "stos !ltimos son programas o tro#os de programas que cuando se eecutan pueden
generar una o m&s copias de ellos mismos, que ser&n posteriormente activadas en la
computadora.
+odemos distinguir seis tipos de amena#as de origen soft/are:
m ?oma L'gi#a: "s un cdigo incrustado en un programa que comprueba si ciertas condiciones
se cumplen, en cuyo caso eecuta alguna accin no autori#ada. "stas condiciones pueden ser la
e@istencia de ciertos fic(eros, una fec(a particular, la eecucin de una aplicacin concreta, etc.
$na ve# que la bomba e@plota, puede alterar o eliminar datos, parar el sistema, etc. $n eemplo
de uso de bomba lgica es el caso de un programador que vende un programa a una empresa. Si
transcurrido un cierto tiempo la empresa no (a pagado, el programador revela la e@istencia de la
bomba lgica con el fin de obtener su dinero.
m Puerta Falsa D.rapdoor;: "s un punto de entrada secreto en un programa, de forma que alguien
que cono#ca la e@istencia de dic(a puerta puede obtener permisos de acceso sin tener que pasar
por los mecanismos normales de autentificacin. La puerta falsa es un cdigo que reconoce
alguna secuencia de entrada especial o se dispara si es eecutado por cierto usuario o por la
ocurrencia de una secuencia determinada de sucesos.
m Caallo (e Tro:a D.ro(an Dorse;: "s una rutina oculta en un programa de utilidad. %uando el
programa se eecuta, se eecuta la rutina y sta reali#a acciones no autori#adas y perniciosas.
"stos programas permiten reali#ar de forma indirecta acciones que no puede reali#ar de forma
directa. +or eemplo, un programa caballo de troya puede ser un editor que cuando es eecutado
modifica los permisos de los fic(eros que edita de forma que stos puedan ser accedidos por
cualquier usuario. "l autor del programa suele inducir a su utili#acin coloc&ndolo en un
directorio com!n y d&ndole un nombre de forma que aparente ser un programa de utilidad.
m Virus: "s cdigo introducido en un programa que puede infectar otros programas mediante la
copia de s, mismo en dic(os programas. 8dem&s de propagarse, un virus reali#a alguna funcin
no permitida.
m ?a#teria: +rograma que consume recursos del sistema replic&ndose asimismo, pero no daUa
e@pl,citamente ning!n fic(ero. Se suele reproducir e@ponencialmente, por lo que puede acaparar
recursos como %+$, memoria y disco.
m Xusa$o DEorm;: "s un programa que usa las redes de computadores para pasar de unos
sistemas a otros. $na ve# que llega a un sistema, el gusano se puede comportar como un virus o
una bacteria, puede implantar programas caballo de troya, o puede reali#ar acciones no
autori#adas. +ara replicarse, los gusanos emplean algunos programas que proporcionan servicios
de red, como correo electrnico, eecucin remota de programas y cone@in a sistemas remotos.
.ttp+IIe(ua(is.itlapie(a(.e(u.m8IJ.o#eguerasIso-Iso-E<<..tml
Ata%ues Xe$/ri#os a Sistemas Operativos
Los principales ataques genricos a los S. F. son los siguientes g`, 0eitelh:
-sincronismo1
Se tienen procesos m!ltiples que progresan asincrnicamente.
$n proceso podr,a modificar los par&metros ya validados por otro proceso pero a!n no
utili#ados.
$n proceso podr,a pasar valores malos a otro a!n cuando el segundo realice una
verificacin e@tensa.
,astreo1
$n usuario revisa el sistema intentando locali#ar informacin privilegiada.
%ntre l!neas1
Se utili#a una l,nea de comunicaciones mantenida por un usuario (abilitado que est&
inactivo.
#digo clandestino1
Se modifica el S. F. bao una presunta depuracin pero se incorpora cdigo que permite
ingresos no autori#ados.
Lro2ibicin de acceso1
$n usuario escribe un programa que bloquea el acceso o servicio a los usuarios leg,timos
mediante:
o %a,das del sistema, ciclos infinitos, monopolio de recursos, etc.
Lrocesos sincroni7ados interactivos1
Se utili#an las primitivas de sincroni#acin del sistema para compartir y pasarse
informacin entre s,.
&esconexin de l!nea1
"l intruso intenta acceder al trabao de un usuario desconectado:
o Luego de una descone@in de l,nea.
o 8ntes de que el sistema recono#ca la descone@in.
&isfra71
"l intruso asume la identidad de un usuario leg,timo luego de (aber obtenido la
identificacin apropiada por medios clandestinos.
-ta4ue /nak01
Si el S. F. permite a un usuario:
o *nterrumpir un proceso en eecucin mediante una /tecla0 de /reconocimiento
negativo0.
o :eali#ar otra operacin.
o :eanudar el proceso interrumpido.
$n intruso podr,a /encontrar0 al sistema en un estado no protegido y (acerse con el
control.
%nga.o al operador1
%on un engaUo se (ace reali#ar al operador una accin que comprometa la seguridad del
sistema.
Larsito1
;ediante equipamiento especial el intruso:
o *ntercepta los mensaes entre un usuario (abilitado y el procesador.
o Los modifica o reempla#a totalmente.
#aballo de +roya1
"l intruso coloca un cdigo dentro del sistema que luego le permita accesos no
autori#ados.
+uede permanecer en el sistema.
+uede borrar todo rastro de s, mismo luego de la penetracin.
Larmetros inesperados1
"l intruso suministra valores inesperados a una llamada al n!cleo.
*ntenta aprovec(ar una debilidad de los mecanismos de verificacin de la legalidad del S.
F.
.ttp+IIe8a.u$$e.e(u.arI(eparIareasIi$*ormati#aISistemasOperativosISO,=..tm>Crip
).? $ifrado.
Criptogra*)a
"l uso creciente de las redes de computadoras y la importancia del trafico cursado (ace
necesario proteger a los datos JB9 &eitelK.
La Fficina -acional de "st&ndares de "". $$. (-MS) (a adoptado la norma de cifrado de datos
(0"S) para la transmisin de informacin federal delicada.
La criptograf!a es el uso de la transformacin de datos para 2acerlos incomprensibles a todos9
excepto a los usuarios a 4uienes estn destinados.
"l problema de la intimidad trata de cmo evitar la obtencin no autori7ada de informacin de
un canal de comunicaciones.
"l problema de la autentificacin trata sobre cmo evitar que un oponente:
;odifique una transmisin.
Le introdu#ca datos falsos.
"l problema de la disputa trata sobre cmo proporcionar al receptor de un mensae pruebas
legales de la identidad del remitente, que ser,an el equivalente electrnico de una firma escrita.
Q$ Sistema (e I$timi(a( Criptogr"*i#a
"l remitente desea transmitir cierto mensae no cifrado (te@to simple) a un receptor leg,timo:
La transmisin se producir& a travs de un canal inseguro1
o Se supone que podr& ser verificado o conectado mediante un esp,a.
"l remitente pasa el texto simple a una unidad de codificacin que lo transforma en un texto
cifrado o criptograma1
-o es comprensible para el esp!a.
Se transmite en forma segura por un canal inseguro.
"l receptor pasa el te@to cifrado por una unidad de descifrado para regenerar el te@to
simple.
Criptoa$"lisis
"s el proceso de intentar regenerar el texto simple a partir del texto cifrado, pero desconociendo
la clave de ciframiento1
"s la tarea del esp,a o criptoanalista1
o Si no lo logra, el sistema criptogr&fico es seguro.
Sistemas (e Clave P[li#a
La distribucin de claves de un sistema criptogr&fico debe (acerse por canales muy seguros.
Los sistemas de clave pblica rodean el problema de distribucin de claves:
Las funciones de cifrado y descifrado est&n separadas y utili#an distintas claves.
-o es computacionalmente posible (en un tiempo /ra7onable0) determinar la clave de
desciframiento /&0 a partir de la clave de ciframiento /#0.
/#0 puede (acerse pblica sin comprometer la seguridad de /&0, que permanece
privada1
o Se simplifica el problema de la distribucin de claves.
Firmas Digitales
+ara que una firma digital sea aceptada como sustituta de una firma escrita debe ser:
D&cil de autentificar (reconocer) por cualquiera.
+roducible !nicamente por su autor.
"n los criptosistemas de clave pblica el procedimiento es:
"l remitente usa la clave privada para crear un mensae firmado.
"l receptor1
o $sa la clave pblica del remitente para descifrar el mensae.
o Zuarda el mensae firmado para usarlo en caso de disputas.
+ara mayor seguridad se podr,a actuar como sigue:
"l remitente puede codificar el mensae ya cifrado utili#ando la clave pblica del
receptor.
La clave privada del receptor permite recuperar el mensae cifrado firmado.
La clave pblica del remitente permite recuperar el texto simple original.
Apli#a#io$es
La criptograf!a es especialmente !til en los sistemas multiusuario y en las redes de
computadoras.
Se debe utili#ar para proteger a las contrase.as, almacen&ndolas cifradas.
Se puede utili#ar tambin para proteger todos los datos almacenados en un sistema de
computacinG se debe considerar el tiempo de cifrado ' descifrado.
<ambin es aplicable en los protocolos de redes de capas, que ofrecen varios niveles de cifrado.
"n el cifrado de enlace la red asume la responsabilidad de cifrado ' descifrado de cada nodo:
Los datos se transmiten cifrados entre los nodos.
"n cada nodo se descifran, se determina a dnde transmitirlos y se los vuelve a cifrar.
"n el cifrado punto a punto un mensae se cifra en su fuente y se descifra solo una ve#, en su
destino:
"@isten ciertas limitaciones tales como la legibilidad de la direccin de destino en cada
nodo:
o 0ebe ser legible para el encaminamiento del mensae.
o ".: sistemas de conmutacin de paquetes de almacenamiento y reenv,o con
cifrado punto a puntoG en este caso la direccin de destino asociada a un paquete
no puede ser cifrada.
"ttpE>>e1a.unne.edu.ar>depar>areas>informatica>SistemasOperativos>SO1#."tmK$ri
p
http:11www2monogra.ias2com1trabajos31hiso1hiso2shtml
http:11www2monogra.ias2com1trabajos41sistemas1sistemas2shtml
http:11www2monogra.ias2com1trabajos551oper1oper2shtml
http:11www2monogra.ias2com1trabajos541administ-procesos1administ-procesos2shtml
http:11www2monogra.ias2com1trabajos561hisis1hisis2shtml
http:11www2monogra.ias2com1trabajos541sistemas-operati0os1sistemas-operati0os2shtml
http:11www2monogra.ias2com1trabajos1so61so62shtml

También podría gustarte