Está en la página 1de 52

Sistemas operativos

OBJETIVOS
Identificar las funciones principales
de un Sistema operativo.
Identificar las distintos sistemas
operativos comerciales
Realizar aplicaciones prcticas usando
los distintos comandos del sistema
operativo.

CONTENIDOS

Qu es un SO.
Funciones de un SO.
Gestin de procesos.
Gestin de memoria
Gestin de archivos
Gestin de E/S.

Informtica industrial

Sistemas operativos

3.1 INTRODUCCIN
Los sistemas operativos son una materia fundamental en el estudio de la informtica. Todo
usuario de un ordenador pasar una buena parte de su tiempo dialogando con la mquina a travs
de comandos, utilidades o software de un determinado sistema operativo.
La evolucin continua de los ordenadores supuso, ya desde las primeras generaciones de los
mismos, un aumento de complejidad en la lgica de su funcionamiento. con el fin de conseguir un
uso ms racional y un mejor aprovechamiento de la capacidad de los ordenadores, se desarrollaron
una serie de programas, intermediarios entre hombre y mquina, que constituyen el software
funcional o sistema operativo del ordenador.
Un sistema operativo es, por tanto, un programa que acta como una interfaz entre el usuario
de un ordenador y el hardware del mismo, ofreciendo el entorno necesario para que el usuario pueda
ejecutar programas. por tanto el sistema operativo se carga en memoria al arrancar el ordenador y se
mantiene ejecutndose hasta que la mquina se apaga. En este sentido, su principal cometido es
facilitar el uso del sistema informtico, siendo su objetivo secundario permitir la utilizacin del
hardware del computador en modo eficiente. As pues, un Sistema Operativo es el soporte lgico que
controla el funcionamiento del equipo fsico, la eficiencia, fiabilidad, facilidad de mantenimiento, y un
pequeo tamao seran las caractersticas deseables de este software.

El sistema operativo es una parte importante de todo sistema informtico que engloba a:
:

El hardware: CPU, memoria y dispositivos de entrada y salida (E/S).


El sistema operativo.
Los programas de aplicacin (compiladores, sistemas de bases de datos, utilidades,
videojuegos, programas de gestin, etc.).
Los usuarios (personas, mquinas u otros computadores).

Podemos ver el SO como un asignador de recursos: tiempo de CPU, espacio de memoria,


espacio de almacenamiento de archivos, dispositivos de E/S, etc... El S.O. acta como gestor de
dichos recursos y los asigna a programas y usuarios especficos segn los necesiten para sus tareas.
Su principal objetivo es facilitar el uso del sistema informtico. Como objetivos secundarios
destacaremos el empleo de hardware del ordenador de forma eficiente y la capacidad de evolucin
del propio sistema.

67

Informtica industrial

Sistemas operativos

Para lograr estos objetivos el SO debe realizar las tareas o servicios siguientes:

Controlar la ejecucin de los programas para prevenir errores.


Controlar las operaciones de E/S.
Gestionar los sistemas de ficheros.
Detectar errores
Asignar los recursos del sistema: tiempo de CPU, dispositivos de E/S, memoria, etc.
Resolver los conflictos que se pueden dar entre varios procesos cuando acceden a
los recursos.

3.2 QU ES UN SISTEMA OPERATIVO


El software se clasifica en cuatro categoras diferentes:
Sistemas Operativos,
Lenguajes de Programacin,
Software de uso general,
Software de Aplicacin. (algunos autores consideran la 3 y 4 clasificacin como
una sola).
El sistema operativo es el gestor y organizador de todas las actividades que realiza la
computadora. Marca las pautas segn las cuales se intercambia informacin entre la memoria central
y la externa, y determina las operaciones elementales que puede realizar el procesador. El sistema
operativo, debe ser cargado en la memoria central antes que ninguna otra informacin.

Un sistema operativo es en si mismo un programa de computadora.


Sin embargo, es un programa muy especial, quiz el ms complejo e
importante en una computadora.

El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el teclado, el


sistema de vdeo y las unidades de disco. Adems, proporciona la facilidad para que los usuarios se
comuniquen con la computadora y sirve de plataforma a partir de la cual se corren programas de
aplicacin. Cuando enciendes una computadora, lo primero que sta hace es llevar a cabo un
autodiagnstico llamado autoprueba de encendido (Power On Self Test, POST). Durante la POST,
la computadora indentifica su memoria, sus discos, su teclado, su sistema de vdeo y cualquier otro
dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar
(boot). Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de ste
en su memoria en todo momento. Mientras la computadora est encendida, el SO tiene 4 tareas
principales:
a) Proporcionar una interfaz al usuario
Bien sea de lnea de comando o interfaz grfica para que este ltimo se pueda comunicar
con la computadora.

interfaz de lnea de comando: Se introducen palabras y smbolos desde el


teclado de la computadora, ejemplo, el ms-dos.
interfaz grfica del usuario (GUI), Se seleccionan las acciones mediante el
uso de un mouse para pulsar sobre figuras llamadas iconos o seleccionar
opciones de los mens, ejemplo, el OS X Lion de Apple, Ubuntu, etc.

68

Informtica industrial

Sistemas operativos

b) Administrar los dispositivos hardware de la computadora


Cuando los programas estn en ejecucin, necesitan utilizar la memoria, el monitor, las
unidades de disco, los puertos de entrada/salida (impresoras, mdems, etc). El SO sirve de
intermediario entre los programas y el hardwa re.
c) Administrar y mantener el sistema de archivos del disco.
Los SO agrupan la informacin dentro de compartimientos lgicos para almacenarlos en el
disco. Estos grupos de informacin se llaman archivos. Los archivos pueden contener
instrucciones de programas o informacin creada por el usuario. El SO mantiene una lista de
los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y
manipular dichos archivos.
d) Proporcionar servicios a otros programas
Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios.
Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio
disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en
sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son
conocidas como "llamadas del sistema" .
3.3. EVOLUCIN HISTRICA
Los objetivos fundamentales de los sistemas operativos respecto a eficiencia y facilidad de
uso no son siempre compatibles. En un principio se prim la eficiencia, mientras que actualmente se
atribuye ms importancia al uso. A continuacin haremos un breve recorrido a travs de la historia de
los sistemas operativos para comprender las razones de esta evolucin.
3.3.1 Primera Generacin (19451955): Vlvulas y conexiones
Los primeros sistemas informticos carecan de S.O. Simplemente eran grandes mquinas
que se controlaban desde una consola. El programador era al mismo tiempo el operador del sistema.
l mismo escriba un programa, lo cargaba en memoria, indicaba la direccin de comienzo,
transfera el control al programa y a medida que este se ejecutaba segua su ejecucin mediante una
monitorizacin de las seales que iba dando el hardware.
Estos sistemas utilizaban un mtodo de reserva de solicitud para asignar el tiempo de
mquina. Si uno quera utilizar el ordenador, iba a la hoja de solicitud, miraba cual era el siguiente
perodo libre que le convena y lo solicitaba. En el caso de que al programador se le acabara el
tiempo de mquina concedido sin haber terminado el trabajo, este deba suspender el trabajo en el
estado en que se encontrara en ese instante, recopilar todo el material obtenido, y estudiarlo hasta
que tuviera otra vez la oportunidad de disponer de ordenador. Por el contrario, si el programador
acabara antes del final del tiempo asignado, el ordenador quedaba inactivo hasta el siguiente perodo
de tiempo concedido a otro programador.
Los dispositivos de entrada comunes eran lectores de tarjetas y unidades de cinta. Los
dispositivos de salida comunes eran impresoras de lneas, unidades de cinta y perforadoras de
tarjetas.
Sistema operativo: Al principio es inexistente, hacia el final se
constituye como un conjunto de funciones de uso general.
Tecnologa: Tubos de vaco.
Introduccin de trabajo: A travs de panel de control.
Lenguaje: Lenguaje mquina.
69

Informtica industrial

Sistemas operativos

3.3.2 Segunda Generacin (19551965): Transistores y S. de procesamiento por lotes


Surge la secuenciacin automtica de trabajos. Lo que se deseaba era un programa para la
transferencia automtica del control de un trabajo al siguiente. Con este propsito se cre un
pequeo programa, llamado monitor residente. El monitor residente reside siempre en memoria.
Inicialmente, el control del ordenador resida en el monitor residente, quien lo transfera al
programa. Cuando el programa acababa, devolva el control al monitor residente, que continuaba con
el programa siguiente. Incluso con secuenciamiento automtico de trabajos, la CPU permanece a
menudo inactiva. El problema reside en que la velocidad de los dispositivos mecnicos de E/S es
inferior a la velocidad de los dispositivos electrnicos.
Mientras tiene lugar una operacin de E/S, la CPU permanece ociosa, esperando que la E/S se
complete y mientras la CPU ejecuta, los dispositivos de E/S estn inactivos.
Esto dio origen a :

Operaciones offline
Buffering
Spuling

Con la consiguiente mejora del rendimiento.


Operacin OFF-LINE
Con el tiempo, los dispositivos de E/S fueron ms rpidos pero a la vez aumentaba la
velocidad de la CPU, con lo que el problema no qued resuelto. La CPU continuaba siendo ms
rpida que los dispositivos de E/S.
Una solucin consista en sustituir las
lectoras de tarjetas (dispositivos de entrada) e
impresoras de salida (dispositivos de salida) por
unidades de cinta magntica. En lugar de hacer
que la CPU leyera directamente las tarjetas, estas
se copiaban primero en una cinta magntica.
Cuando un programa necesitaba la entrada de una
tarjeta, se lea de la cinta. Anlogamente, la salida se escriba sobre cinta y se imprima ms tarde.
Las acciones de copiado de tarjetas a cinta y de cinta a impresora se hacan sin intervencin del
ordenador, ya que eran operaciones muy lentas, y mientras el ordenador trataba otros trabajos. Es lo
que se conoce como operacin OFF-LINE.
La principal ventaja de la operacin
OFF-LINE consista en que el ordenador
principal ya no quedaba limitado por la
velocidad de las lectoras de tarjetas y las
impresoras sino por la velocidad de las
unidades de cinta, mucho ms rpidas.
Adems, no haca falta introducir cambios en los programas de aplicaciones para pasar de
las operaciones de E/S directas a las OFF-LINE. Esta capacidad para ejecutar un programa con
dispositivos de E/S diferentes se denomina independencia de dispositivos.
La desventaja era que un usuario tena que esperar a que se liberara la cinta con otros
trabajos hasta que pudiera ser procesada la misma, adems de todos los procesos de rebobinar la
cinta, desmontarla, llevarla a mano a la unidad central y montarla sobre una unidad libre.
70

Informtica industrial

Sistemas operativos

Buffering
Una forma de mejorar el tiempo que se pierde en los procesos de carga de las cintas es
utilizar una memoria intermedia, denominada buffer, donde la cinta va grabando datos hasta que se
llena, volcndose stos en la memoria de una vez y mientras el procesador realiza operaciones con
los datos recibidos, en paralelo se vuelve a cargar el buffer. A esta forma de trabajo se le denomina
Buffering. La misin de las tcnicas de buffering es mantener tanto el procesador como los
dispositivos de E/S ocupados el mayor tiempo posible. Esto se logra solapando la E/S de un trabajo
con el procesamiento del mismo.
El buffering es complicado. Uno de los problemas reside en detectar tan pronto como sea
posible que un dispositivo de E/S ha acabado una operacin. La operacin de E/S que le siga
nicamente podr iniciarse cuando la previa haya finalizado. Este problema se resuelve mediante las
interrupciones.
Tan pronto como un dispositivo de E/S acaba una operacin, interrumpe a la CPU. Entonces
detiene lo que est haciendo e inmediatamente transfiere el control a la rutina de servicio de las
interrupciones.
La rutina de servicio de la interrupcin comprueba si el buffer est lleno (para un dispositivo
de entrada) o si no esta vaco (para un dispositivo de salida) e inicia la siguiente peticin de E/S. De
esta manera, los dispositivos de E/S y la
CPU puede trabajar a pleno rendimiento.
Por otro lado, si el dispositivo de E/S es muy
rpido, de tal forma que produce la
informacin en menos tiempo que pueda
tratarla el procesador, el buffering no
reportara ninguna ventaja; por eso
aparecieron las tcnicas de Acceso Directo a
Memoria (DMA), para evitar la intervencin
del procesador en este tipo de operaciones
de carga.
Spooling
Con la aparicin del disco magntico como dispositivo de almacenamiento masivo de
informacin con acceso directo, desapareci el problema que representaban las cintas magnticas,
ya que slo podan ser escritas despus de ser ledas por completo, requiriendo adems un
tratamiento secuencial desde su principio hasta su final, mientras que los discos pueden ser ledos y
escritos simultneamente y en cualquier punto de su superficie.
La tcnica del spooling (Simultaneous Peripheral Operation On-line) utiliza el disco como un
buffer muy grande, para leer tan por delante como sea posible, de los dispositivos de entrada y para
almacenar los ficheros de salida hasta que los dispositivos de salida sean capaces de aceptarlos.
La ventaja del spooling sobre el buffering es que el spooling solapa la E/S de un trabajo con
la computacin de otros. Incluso en un sistema sencillo, el spooling puede estar leyendo la entrada
de un trabajo mientras imprime la salida de otro diferente. El buffering nicamente puede simultanear
la E/S de un trabajo con su propia computacin.
Un sistema de SPOOL se podra ver como una cola de archivos en espera de que llegue su
turno para ser impresos, grabados en una cinta, etc. La gestin de la cola (la planificacin de
trabajos) puede ser del tipo primero en llegar-primero en salir, en funcin de la prioridad de cada
trabajo, en funcin de la longitud, etc.
71

Informtica industrial

Sistemas operativos

Sistema operativo: Multiprogramacin, tiempo compartido, sistemas en


tiempo real (OS/360,Multics, UNIX, ...).
Tecnologa: Circuitos integrados, mquinas multipropsito,
miniordenadores.
Introduccin de trabajo: Tarjetas perforadas, terminales.
Lenguaje: Cobol, Fortran, ...

3.3.3 Tercera Generacin (19651980): Circuitos integrados


Surgen los conceptos de multiprogramacin y tiempo compartido
Multiprogramacin
El aspecto ms importante de la planificacin de trabajos
es la capacidad de multiprogramar. La multiprogramacin es un
mtodo para aumentar el empleo de la CPU disponiendo en todo
momento de algo que la CPU pueda ejecutar.
Podemos clasificar los trabajos en dos tipos:
Trabajos limitados por proceso, aquellos que
consumen la mayor parte de su tiempo en el tratamiento
de la informacin y poco en operaciones de E/S.
Trabajos limitados por operaciones de E/S, dedican la mayor parte de su tiempo en
operaciones de E/S , haciendo poco uso del procesador, mantenindolo inactivo durante
grandes perodos de tiempo. El segundo tipo de procesos fue el que di lugar a la
multiprogramacin al aprovechar la inactividad del procesador durante la ejecucin de una
operacin de entrada/salida de un proceso, para que otro que lo necesite utilice dicho
procesador.
Con el esquema planteado es fcil comprender que van a surgir diversos tipos de problemas:

El acceso al procesador deber seguir algn tipo de reglas para que todos los
posibles trabajos que lleguen puedan ser ejecutados.
La memoria ha de ser compartida por todos los trabajos, ya que necesitarn residir
en ella al mismo tiempo para poder ser ejecutados, por ello se hace necesario algn
tipo de administracin de la misma.
72

Informtica industrial

Sistemas operativos

Varios trabajos pueden necesitar la utilizacin de algn recurso al mismo tiempo,


dando lugar a problemas de concurrencia.

Surge el concepto de planificar el procesador.


Proceso por lotes (Batch)
Se denomina proceso por lotes en sistemas
multiprogramados al que no precisa intervencin del
usuario durante la ejecucin de los trabajos, tratndose
en general de trabajos largos que van solicitndose y
entrando en una cola de espera del tipo FIFO ( primero
en entrar, primero en ser atendido) y que el procesador
va tomando en un grupo determinado (por Ej.: de cuatro
en cuatro), realizndolos en paralelo.
Tiempo compartido
Dado el inconveniente que tena la multiprogramacin por lotes de no permitir el dilogo entre
el usuario y el proceso, el siguiente paso en el desarrollo de los sistemas operativos fue la
introduccin de la multiprogramacin interactiva.
El tiempo compartido, o multitarea, es una extensin lgica de la multiprogramacin. Se
ejecutan mltiples trabajos mientras la CPU se conmuta entre ellos, pero la conmutacin es tan
frecuente que los usuarios pueden interactuar con cada programa durante su ejecucin.
Un sistema operativo en tiempo compartido utiliza la planificacin de la CPU y la
multiprogramacin para dotar a cada usuario de una pequea parte del ordenador compartido. Como
cada accin o comando en un sistema de tiempo compartido suele ser breve, basta con un tiempo de
CPU corto para cada usuario. Dado que el sistema cambia rpidamente de un usuario al siguiente,
estos tienen la impresin de que cada uno de ellos dispone de su propio ordenador, cuando
realmente un solo ordenador es compartido entre muchos usuarios. Ej. de este sistema: UNIX.
Tiempo real
El tiempo real es otra modalidad de los sistemas operativos multiprogramados, en que se
necesita un tiempo de respuesta pequeo ante cualquier peticin. Ejemplos de estos sistemas
operativos son los que controlan procesos industriales, reservas de billetes, etc
Sistema operativo: Multiprogramacin, tiempo compartido, sistemas en tiempo real
(OS/360,Multics, UNIX, ...).
Tecnologa: Circuitos integrados, mquinas multipropsito, miniordenadores.
Introduccin de trabajo: Tarjetas perforadas, terminales.
Lenguaje: Cobol, Fortran, ...

73

Informtica industrial

Sistemas operativos

3.3.4 Cuarta Generacin (1980Actualidad): Ordenadores Personales


Aparecen los circuitos LSI y VLSI1 y surgen con ellos los sistemas operativos distribuidos.
Proceso distribuido
El siguiente paso en la evolucin de los sistemas operativos fue el proceso distribuido, que
consiste en al conexin de ordenadores entre si a travs de una gran variedad de dispositivos,
existiendo varias modalidades entre las que podemos citar la conexin de varios ordenadores
compartiendo un mismo almacenamiento principal o aquellos que se conectan a una misma red
nacional o internacional para el intercambio de informacin.
Multiproceso
Uno de los problemas actuales en el proceso de datos ha sido la aparicin de aplicaciones
que manejan tal cantidad de informacin, que un solo procesador no es capaz de procesarla en el
tiempo requerido.
El sistema estndar es monoprocesador, es decir, slo tiene una CPU principal. Un
verdadero sistema multiprocesador tendra ms de un procesador que pueden trabajar
conjuntamente, compartiendo memoria y perifricos.
En este tipo de ordenador, el sistema operativo es complejo debido a que tiene que
administrar varios procesadores de tal manera que la carga y reparto de los trabajos debe equilibrar y
optimizar al mximo el proceso global.
Veamos las diferencias existentes entre cuatro procesos A, B, C y D en tres sistemas con
diferentes mtodos de funcionamiento: monoprogramacin, multiprogramacin y multiproceso.

Sistema operativo: En red, cliente-servidor, seguridad (criptografa), (MacOS, MS-DOS,


Novell, ...)
Tecnologa: Circuitos integrados, ordenadores personales, redes de ordenadores.
Introduccin de trabajo: Terminal
Lenguaje:

1 LSI (Large Scale Integration): A esta escala pertenecen todos aquellos integrados que contienen ms de 100 puertas lgicas
(lo cual conlleva unos 1000 componentes integrados individualmente), hasta las mil puertas.
VLSI: (Very Large Scale Integration) de 1000 a 10000 puertas por circuito integrado

74

Informtica industrial

Sistemas operativos

3.4 TIPOS DE SISTEMAS OPERATIVOS


Muchos de los primeros sistemas operativos eran dependientes del equipo y del propietario.
Un programa dependiente del equipo (device-dependent) se ejecuta solo en un tipo especfico de
computadora. Programas del propietario (propietary programs) son programas que pertenecen a una
entidad en especfico y estn limitados a modelo de computadora. Cuando los fabricantes introducan
una nueva computadora o equipo, por lo general producan un sistema operativo de su propiedad,
mejorado y diferente a los existentes. Cuando un usuario deseaba cambiar de modelo de
computadora o de fabricante, encontraba problemas con estos programas, pues no trabajaban en la
nueva computadora porque fueron diseados para otro sistema operativo.
La tendencia actual es hacia los sistemas operativos independientes de los equipos, por lo
que se pueden ejecutar en diferentes computadoras. La ventaja de estos sistemas operativos es que
se pueden retener las aplicaciones existentes y los archivos de datos an cuando se cambie de
modelo de computadora o de suplidor, representando ahorros en tiempo y dinero.
Las nuevas versiones de sistemas operativos son compatibles hacia atrs (Downwardcompatible), lo que significa que reconocen y trabajan con los programas escritos para versiones
anteriores del sistema operativo. Los programas, en contraste, se dice que son compatibles hacia el
delante (upward-compatible); o sea que estn escritos para una versin anterior del sistema
operativo pero que tambin pueden trabajar en la nueva versin.
A continuacin se hace una serie de clasificaciones de los SO en base a varias filosofas:
Sistemas Operativos por su Estructura

Sistemas monolticos: 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
Sistemas con capas o jerrquica: 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. Ejemplo: Unix.
Mquinas virtuales: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.
Modelo cliente servidor: Es el ms reciente y predominante. Sirve para toda clase de
aplicaciones y el propsito de este es de tipo general cumpliendo as con las mismas
actividades de los otros sistemas operativos.
Sistemas Operativos por Servicios

Monousuarios : Soportan un usuario a la vez sin importar los procesadores que tengan la
computadora o los procesos y tareas que el usuario puede realizar al mismo tiempo.
Multiusuario : Ofrece servicio a ms de un usuario a la vez ya sea por medio de terminales
o secciones remotas en un red. No importa la cantidad de procesadores que tenga la
maquina ni la cantidad de procesos que se realicen a la vez.
Monotareas : Permite una tarea a la vez por usuario. Aunque hallar ms de un usuario a la
vez solo permitir una tarea por usuario.
Multitareas : Permite al usuario realizar varias tareas a la misma vez.
Uniproseso : Maneja solamente un procesador de la computadora. Si tuviera ms de uno
seria intil.
Multiproceso : Puede manejar ms de un procesador distribuyendo la carga asimtrica y
simtrica.

75

Informtica industrial

Sistemas operativos

Sistemas Operativos Por La Forma Que Ofrecen Sus Servicios

Sistema Operativo De Red : Interactan con otras computadoras a travs de un medio


transmisin que intercambia informacin, transfiere archivo, ejecutar comandos remotos y
otras tareas.
Sistemas Operativos Distribuidos : Incluyen los servicios que ofrece los sistemas
operativos de red incluyen aade recursos (impresoras, unidades de respaldo, memoria,
procesos y unidad central de proceso) adicionales en una sola maquina virtual que el usuario
accesa de forma transparente.

Sistemas en cluster
Estos utilizan mltiples CPU, pero se diferencian de los sistemas multiprocesador en que un
sistema en cluster est formado por dos o ms sistemas individuales acoplados, compartiendo
almacenamiento a travs de una red LAN. Se suelen usar para proporcionar un servicio de alta
disponibilidad, es decir, que funcione incluso si uno o ms sistemas fallan.
Un cluster se puede estructurar de varias formas: cluster asimtrico (una mquina est en
modo de espera mientras otra ejecuta las aplicaciones, monitorizndola, si dicho servidor falla, el
host en espera pasa a ser el servidor activo) y cluster simtrico (dos o ms hosts ejecutan
aplicaciones y se monitorizan entre s, obviamente es ms eficiente), cluster en paralelo (permite que
varios hosts accedan a los mismos datos) y clusters conectados a una red de rea extensa. Otros
son los clusters de base de datos (donde docenas de hosts pueden compartir la misma base de
datos, incrementando el rendimiento y la fiabilidad).
3.5 TENDENCIAS ACTUALES Y FUTURAS DE LOS SISTEMAS OPERATIVOS
Se ha progresado mucho en el desarrollo de los sistemas operativos. Estos progresos han
sido paralelos a la aparicin de nuevas tecnologas y de nuevos algoritmos para las tareas de los
sistemas operativos. Teniendo en cuenta todo esto, los sistemas operativos tendern a adoptar las
siguientes caractersticas:

Sistemas abiertos: estandarizacin de sistemas para compatibilizar los distintos fabricantes


a nivel de:
Comunicaciones de red.
Interfaces de usuario abiertas.
Aplicaciones abiertas (varias plataformas).

Sistemas orientados a objeto: aplicacin de tcnicas de orientacin a objetos a los


sistemas operativos.

Personalidades mltiples: en una misma mquina y un sistema operativo bsico pueden


existir diferentes SO.

Microncleos.

76

Informtica industrial

Sistemas operativos

3.6 ESQUEMA DE UN SISTEMA OPERATIVO


Todo el mundo sabe que en el mundo PC el hardware (las mquinas) son casi todas ellas
diferentes en sus componentes (placas madre, tarjetas de vdeo, controladoras de disco, lector de
CD-ROM, tarjeta de sonido, etc.), aunque al final nos permiten trabajar con los mismos sistemas
operativos.
Partes que componen un S.O.
Interfaz de usuario (intrprete de comandos o GUI): En el caso del DOS, es un programa
(command.com) el que nos permite movernos por el disco duro, manejar las disqueteras, realizar
operaciones de copia o borrado de ficheros y cargar otros programas. En el OS/2 Warp existen dos
interfaces de usuario: el GUI (Graphical Users Interface) es el Presentation Manager, que no es ms
que un programa que pone nuestro PC en modo grfico (igual que Windows) y el intrprete de
comandos, que es el cmd.exe.
Ncleo: Es el corazn del sistema operativo y tiene dos vertientes: la que se comunica con las
aplicaciones que utilizamos los usuarios y que ofrece servicios como acceso a puertos de
comunicaciones y a la impresora, lectura y escritura de disco, asignacin de memoria..., y la que es
complementaria, es decir, la que habla con el hardware de la mquina: RAM, perifricos,
procesador, etc.
Sistema de ficheros: Es un subsistema que organiza la informacin en los discos duros,
disqueteras y en general en cualquier dispositivo de almacenamiento masivo. En el caso del DOS el
sistema de ficheros es la conocida FAT, mientras que en OS/2 Warp contamos con dos tipos -FAT y
HPFS- que ser vern en detalle en la prxima entrega.
Controladores de dispositivos (E/S): Son los famosos drivers y existe uno para cada tarjeta o
dispositivo externo al procesador que tengamos en nuestra mquina.
Normalmente todos los PCs cuentan con drivers para la VGA, la controladora IDE, ESDI o
SCSI, el disco duro, el lector de CD-ROM, la tarjeta de sonido, etc. Estos drivers normalmente son
suministrados por el fabricante de las tarjetas y en el caso del DOS son ficheros con extensin sys
que se cargan en nuestro fichero config.sys. En el OS/2 existen diversos tipos de drivers con
extensin sys, add, etc., que tambin se suelen cargar en el config.sys de OS/2. Para
entender mejor estos conceptos, veamos un caso prctico. La simple lectura de un directorio puede
servirnos de ejemplo. La aplicacin (un procesador de textos, por ejemplo) que desea leer el
directorio debe pedir al ncleo del S.O. dicho servicio (lectura de directorio). Este, a su vez, le solicita
al sistema de ficheros dicho directorio y, dependiendo de cmo lo haya guardado (sector, pista, etc.),
ordenar al driver del disco duro que realice dicha operacin. Despus ser la controladora del disco
la que mandar al disco para que se site en la pista, sector y cilindro donde que se guarda el
directorio, y que lo lea y pase los datos.
Hecho esto, la controladora devolver dichos datos al driver, ste al sistema de ficheros que
organizar la informacin con estructura de directorio y, por ltimo, el ncleo dar dicho directorio a la
aplicacin que se lo haba solicitado.

77

Informtica industrial

Sistemas operativos

3.7 ESTRUCTURA DE LOS SISTEMAS OPERATIVOS


La estructura de un sistema operativo vara de acuerdo con el tamao y la complejidad del
mismo como vimos en el apartado 3 de este tema. As, por ejemplo, en una estructura jerrquica o
por niveles tendremos un mdulo llamado ncleo o kernel, que es un mdulo de servicio para los
dems mdulos.
Los mdulos restantes se encargan de:

gestin de memoria,
control de entrada/salida,
gestin de almacenamiento masivo,
asignacin de recursos y planificacin
proteccin.

El ncleo
El ncleo descansa directamente sobre el hardware de la computadora y proporciona una
serie de servicios a las capas superiores del sistema. Entre sus tareas se incluye:
Manejar interrupciones
Asignar trabajo al procesador
Proporcionar una va de comunicacin entre los distintos procesos.
Una interrupcin es un suceso externo que provoca que el programa activo se detenga. Las
interrupciones se generan mediante una o ms lneas de interrupcin, que forman parte de los buses
que conectan al procesador con los dispositivos perifricos. Cuando se produce una interrupcin, se
salva el contexto del programa interrumpido y se transfiere el control a una rutina de control de
interrupciones que forma parte del sistema operativo. Cuando se solvente la interrupcin, se contina
con la ejecucin del programa interrumpido.
Las causas ms comunes de las interrupciones incluyen los procesos de
entrada/salida,deteccin de un error en un programa o que el programa excediera el lmite de tiempo
que tiene asignado.
Teniendo en cuenta lo anterior, y de nuevo tal y como vimos en el punto 3 de este tema en
clasificacin de los sistemas operativos segn su estructura,se considera la organizacin interna de
los S. O. y conforme a ella se los clasifica de la siguiente manera :

Sistemas monolticos
Sistemas con capas o jerrquica:
Mquinas virtuales
Modelo cliente - servidor

Sistemas monolticos
Es la arquitectura ms simple para un S.O. Este
sistema contiene todas las rutinas y funcionalidades
disponibles ( sistema de archivos, manejo de drivers,
gestin de memoria y CPU, etc.) juntos dentro de un
gran programa o ncleo.
Su principal desventaja radica en que, debido a
que todos los componentes del ncleo tienen acceso a

78

Informtica industrial

Sistemas operativos

todas las estructuras y rutinas internas, un error o un vulnerabilidad de seguridad puede expandirse y
afectar a todo el ncleo.
Diseo por Capas
En esta arquitectura, el S.O. se divide en una
jerarqua de capas, donde cada capa solamente utiliza
los servicios de la capa inferior y se enfoca en ofrecerle
una interfaz clara y bien definida a la capa superior. En
cada capa se encapsulan funciones especficas, as
cada capa se encarga de una funcin individual del
sistema operativo. Su principal ventaja radica en poseer
un diseo mucho ms modular, seguro y escalable que
el monoltico.
Diseo Cliente-Servidor
En este modelo, 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.

Mquinas Virtuales
mediante software, se proporciona a los
programas la emulacin de un sistema que nos interesa
reproducir. El sistema emulado puede ser una mquina,
un sistema operativo, una red de computadores El
software emulador traduce las peticiones hechas a la
mquina virtual en operaciones sobre la mquina real.
Se pueden ejecutar varias mquinas virtuales al mismo
tiempo (ej.: mediante tiempo compartido). Los recursos
reales se reparten entre las distintas mquinas
virtuales.

79

Informtica industrial

Sistemas operativos

3.8 ENTORNOS OPERATIVOS


Los sistemas operativos empleados normalmente son: Unix, OS X (apple), Ubuntu , Android
y windows en sus diferentes versiones

UNIX

Unix (registrado oficialmente como UNIX) es un sistema operativo portable,multitarea y


multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell
de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas Mcllroy.
Despus de treinta aos de su creacin, UNIX sigue siendo un fenmeno { Dennis
Ritchie}
Unix y sus clones permiten mltiples tareas y mltiples usuarios. Su sistema de archivos
proporciona un mtodo sencillo de organizacin y permite su proteccin. Sin embargo, las
instrucciones del UNIX no son intuitivas.
Hasta 2009, el propietario de la marca UNIX fue The open Group, un consorcio de
normalizacin industrial. A partir de marzo de 2010 y tras una larga batalla legal, esta ha pasado
nuevamente a ser propiedad de Novelll, Inc. Slo los sistemas totalmente compatibles y que se
encuentran certificados por la especificacin Single UNIX Specification pueden ser denominados
"UNIX" (otros reciben la denominacin "similar a un sistema Unix" o "similar a Unix"). En ocasiones,
suele usarse el trmino "Unix tradicional" para referirse a Unix o a un sistema operativo que cuenta
con las caractersticas de UNIX Versin / o UNIX System V.

Mac OS X

Es un sistema operativo desarrollado y comercializado por Appple Inc que ha sido incluido en su
gama de computadoras Macintosh desde 2002. Es el sucesor del Mac OS 9 (la versin final del Mac
OS Classic), el sistema operativo de Apple desde 1984. Est basado en UNIX y se construy sobre
las tecnologas desarrolladas en Next entre la segunda mitad de los 80's y finales de 1996, cuando
Apple adquiri esta compaa. Desde la versin Mac OS X 10.5 Leopard para procesadores Intel el
sistema tiene la certificacin UNIX 03.
Mac OS X es la dcima versin del sistema operativo de Apple para computadores
Macintosh. Las versiones previas usaron una numeracin, p.e. Mac OS 8 y Mac OS 9. La letra X en
el nombre Mac OS X se refiere al 10 en nmeros romanos. Por tal motivo, la pronunciacin correcta
es diez en este contexto, aunque pronunciarlo como equis es muy comn. El centro del Mac OS
X es compatible con POSIX construido sobre el ncleo XNU con facilidades UNIX disponibles en la
interfaz de lnea e comandos (terminal). Apple liber esta familia de software como un sistema
operativo libre y de cdigo abierto, bajo el nombre de Darwin, pero parcialmente se fue volviendo
cdigo cerrad. Sobre Darwin, Apple coloc varios componentes, incluyendo la interfaz de usuario
Aqua y el Finder para completar la interfaz en la que estaba basado Mac OS X.
Mac OS X introdujo un buen nmero de nuevas funciones para proveer una plataforma ms
viable y estable que su predecesora, el Mac OS 9. Por ejemplo, la multitarea preventiva y la memoria
protegida mejoraron la habilidad del sistema para ejecutar mltiples aplicaciones simultneamente
sin interrupciones. Muchos aspectos de la arquitectura del Mac OS X se derivan de OpenStep, el cual
fue diseado para ser portable, con el objetivo de facilitar la transicin de una plataforma a otra. Por
ejemplo, Nextstep fue portado de estaciones de trabajo Next basadas en procesadores 68 K a x86 y
otras arquitecturas antes de que NeXT fuese adquirido por Apple, y OpenStep fue luego portado a la
arquitectura PowerPC como parte del proyecto Rhapsody

80

Informtica industrial

Sistemas operativos

El cambio ms visible fue la inclusin de la interfaz Aqua. La misma haca uso de bordes
suaves, colores translucidos y rayas -similar al diseo del hardware de los primeros iMac- trajo ms
textura y color a la interfaz de usuario al ser comparado con el OS 9 o el OS X Server 1.0. Hubo
recepciones encontradas respecto a la nueva interfaz. Bruce Tognazzini (quien fund el Apple
Human Interface Group inicial) afirm que la interfaz Aqua en Mac OS X v10.0 represent un paso
atrs en la usabilidad comparado con la interfaz original del Mac OS. Mientras tanto, John Siracusa,
uno de los editores de Ars Technica, dijo que la introduccin de Aqua y su salida del entonces
convencional look fue un tremendo xito. A pesar la controversia por la nueva interfaz, los
desarrolladores de aplicaciones comenzaron a producir pieles para aplicaciones personalizadas para
Mac y otros sistemas operativos que imitaban a Aqua.

GNU/Linux

es uno de los trminos empleados para referirse a la combinacin del ncleo o Kerne libre similar a
Unix denominado Linux, que es usado con herramientas del sistema GNU. Su desarrollo es uno de
los ejemplos ms prominentes de software libre ; todo su cdigo fuente puede ser utilizado,
modificado y redistribuido libremente por cualquiera bajo los trminos de la GPL (Licencia Pblica
General de GNU en ingls: General Public License) y otra serie de licencias libres.
Distribuciones de Linux
Linux es un ncleo de sistema operativo libre tipo Unix. Es uno de los
principales ejemplos de software libre. Linux est licenciado bajo la GPL v2 y
est desarrollado por colaboradores de todo el mundo. El desarrollo del da a
da tiene lugar en la Linux Kernel Mailing List.
Linux es un sistema de libre distribucin por lo que se pueden
encontrar todos los ficheros y programas necesarios para su funcionamiento
en multitud de servidores conectados a Internet. La tarea de reunir todos los
ficheros y programas necesarios, asi como instalarlos en tu sistema y configurarlo, puede ser una
tarea bastante complicada y no apta para muchos. Por esto mismo, nacieron las llamadas
distribuciones de Linux, empresas y organizaciones que se dedican a hacer el trabajo "sucio" para
nuestro beneficio y comodidad.
Una distribucin no es otra cosa, que una recopilacin de programas y ficheros, organizados
y preparados para su instalacin. Estas distribuciones se pueden obtener a travs de Internet, o
comprando los CDs de las mismas, los cuales contendrn todo lo necesario para instalar un sistema
Linux bastante completo y en la mayora de los casos un programa de instalacin que nos ayudara
en la tarea de una primera instalacin. Casi todos los principales distribuidores de Linux, ofrecen la
posibilidad de bajarse sus distribuciones, va FTP (sin cargo alguno).
Existen muchas y variadas distribuciones creadas por diferentes empresas y organizaciones
a unos precios bastantes asequibles (si se compran los CDs, en vez de bajrsela va FTP), las cuales
se deberan poder encontrar en tiendas de informtica o libreras. En el peor de los casos siempre
podeis encargarlas directamente por Internet a las empresas y organizaciones que las crean. A
veces, las revistas de informtica sacan una edicin bastante aceptable de alguna distribucin.
Si se va a instalar el sistema por primera vez, es recomendable probar una distribucin
LiveCD. Con ella se puede probar Linux sin necesidad de instalarlo.
Las distribuciones ms importantes de Linux son las siguientes (aunque no las nicas) :

81

Informtica industrial

Sistemas operativos

Distribuciones Linux
Distribucin

Descripcin

UBUNTU
Distribucin basada en Debian, con lo que esto conlleva y centrada en el
usuario final y facilidad de uso. Muy popular y con mucho soporte en la
comunidad. El entorno de escritorio por defecto es GNOME.

KUBUNTU
Distribucin basada en Ubuntu, con lo que esto conlleva y centrada en el
usuario final y facilidad de uso. La gran diferencia con Ubuntu es que el entorno
de escritorio por defecto es KDE

GENTOO
Esta distribucin es una de las unicas que incorporaron un concepto totalmente
nuevo en Linux. Es una sistema inspirado en BSD-ports. Se puede compilar el
SO completamente desde cero. No es recomendable adentrarse en esta
distribucin sin una buena conexin a internet, un ordenador medianamente
potente y cierta experiencia en sistemas Unix.

REDHAT ENTERPRISE
Esta es una distribucin que tiene muy buena calidad, contenidos y soporte a
los usuarios por parte de la empresa que la distribuye. Es necesario el pago de
una licencia de soporte. Enfocada a empresas.

DEBIAN
Otra distribucin con muy buena calidad. El proceso de instalacin es quizs un poco
mas complicado, pero sin mayores problemas. Gran estabilidad antes que ltimos
avances.

MANDRIVA
Esta distribucin fue creada en 1998 con el objetivo de acercar el uso de Linux a todos
los usuarios, en un principio se llamo Mandrake Linux. Facilidad de uso para todos los
usuarios.

OpenSuSE

82

Informtica industrial

Sistemas operativos

Otra de las grandes. Fcil de instalar. Versin libre de la distribucin comercial SuSE.

Otra de las grandes : Muy buena calidad, contenidos y soporte a los usuarios por parte
de la empresa que la distribuye, Novell. Es necesario el pago de una licencia de
soporte. Enfocada a las empresas.

FEDORA
Esta es una distribucin patrocinada por RedHat y soportada por la comunidad. Fcil de
instalar y buena calidad.

SLACKWARE
Esta distribucin es de las primeras que existi. Tuvo un periodo en el cual no se
actualizo muy a menudo, pero eso es historia. Es raro encontrar usuarios de los que
empezaron en el mundo linux hace tiempo, que no hayan tenido esta distribucin
instalada en su ordenador en algn momento

Ubuntu es un sistema operativo mantenido por Canonical y la comunidad de


desarrolladores. Utiliza un ncleo Linux, y su origen est basado en Debian. Ubuntu est
orientado en el usuario promedio, con un fuerte enfoque en la facilidad de uso y mejorar la
experiencia de usuario. Est compuesto de mltiple software normalmente distribuido bajo
una licencia libre o de cdigo abierto. Estadsticas web sugieren que el porcentaje de
mercado de Ubuntu dentro de "distribuciones linux" es de aproximadamente 49%, y con una
tendencia a subir como servidor web.

Android

Es un sistema operativo basado en el ncleo de Linux d


Android es un sistema operativo basado en GNU/Linux diseado originalmente para
dispositivos mviles, tales como telfonos inteligentes, pero que posteriormente se expandi su
desarrollo para soportar otros dispositivos tales como tablets, reproductores MP3, Pcs, televisores,
lectores de e-books e incluso, se han llegado a ver microondas y lavadoras.
Fue desarrollado inicialmente por Android, una firma comprada por Google en2005. Es el
principal producto de la Open Handset Aliance, un conglomerado de fabricantes y desarrolladores de
hardware, software y operadores de servicio. Las unidades vendidas de telfonos inteligentes con
Android se ubican en el primer puesto en los EEUU, en el segundo y tercer trimestres de 2010 con
una cuota de mercado de 43,6% en el tercer trimestre.
Android tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender
la funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 250.000 aplicaciones
disponibles para la tienda de aplicaciones oficial de Android: Android Maeket, sin tener en cuenta
aplicaciones de otras tiendas no oficiales para Android, como pueden ser la App Store de Amazn o
la tienda de aplicaciones de Sansung. Android Market es la tienda de aplicaciones en lnea
83

Informtica industrial

Sistemas operativos

administrada por Google, aunque existe la posibilidad de obtener software externamente. Los
programas estn escritos en el lenguaje de programacin Java. No obstante, no es un sistema
operativo libre de malware, aunque la mayora de ello es descargado de sitios de terceros.
El anuncio del sistema Android se realiz el 5 de noviembre de 2007 junto con la creacin de
la Open Handset Alliance, un consorcio de 78 compaas de hardware, software y
telecomunicaciones dedicadas al desarrollo de estndares abiertos para dispositivos mviles. Google
liber la mayora del cdigo de Android bajo la licencia Apache, una licencia libre y de cdigo abierto.
Actualmente Android posee aproximadamente el 32,9% de cuota de mercado a escala mundial de los
telfonos inteligentes, por delante de Simbian OS que posee una cuota aproximada del 30,6%. En
tercer lugar se sita jOS con una cuota de mercado del 16%.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en
un framework Java de aplicaciones orientadas a objetos sobre el ncleo de las bibliotecas de Java en
una mquina virtual Dalvik con compilacin en tiempo de ejecucin. Las bibliotecas escritas en
lenguaje C incluyen un administrador de interfaz grfica (surface manager), un framework OpenCore,
una base de datos relacional SQLite, una API grfica OpenGL ES 2.0 3D, un motor de renderizado
WebKit, un motor grfico SGL, SSL y una biblioteca estndard de C Bionic. El sistema operativo est
compuesto por 12 millones de lneas de cdigo, incluyendo 3 millones de lneas de XML, 2,8 millones
de lneas de lenguaje C, 2,1 millones de lneas de Java y 1,75 millones de lneas de C++.

Microsoft Windows

Es el nombre de una familia de sistemas operativos desarrollados por Microsoft desde 1981,
ao en que el proyecto se denominaba Interface Manager. Anunciado en 1983, Microsoft
comercializ por primera vez el entorno operativo denominado Windows en noviembre de 1985 como
complemento para MS-DOS, en respuesta al creciente inters del mercado en una interfaz grfica de
usuario (GUI). Microsoft Windows lleg a dominar el mercado de ordenadores personales del mundo,
superando a Mac OS, el cual haba sido introducido previamente a Windows. En octubre de 2009,
Windows tena aproximadamente el 91% de la cuota de mercado de sistemas operativos en equipos
cliente que acceden a Internet. Las versiones ms recientes de Windows son Windows 7 para
equipos de escritorio, Windows Server 2008 R2 para servidores y Windows Phone 7 para
dispositivos mviles.

Otros sistemas operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por
Microsoft e IBM MS-DOSt.

El MS-DOS y sus derivados, fueron sistemas operativos populares entre los usuarios de
computadoras personales. Slo permiten un usuario y una tarea.

84

Informtica industrial

Sistemas operativos

Completa la siguiente tabla con los diferentes sistemas operativos y sus versiones
Diversos sistemas operativos
Fecha
Sistema operativo
lanzamiento

Descripcin

1980

MS-DOS

Sistema operativo en disco de Microsoft. Fue uno de los primeros


SO para computadoras personales que se basaba en textos.

1992

Windows 3.1

Fue el primer SO para computadoras personales con una GUI, que


haca uso de imgenes en lugar de comandos

85

Informtica industrial

Sistemas operativos

3.9 COMPONENTES DE UN SISTEMA OPERATIVO


Uno de los objetivos fundamentales del Sistema Operativo es gestionar los recursos del
hardware. Tradicionalmente se han descompuesto los SO en los gestores de cada recurso que
deben administrar.

Gestor de procesador
Gestor de memoria
Gestor de Entrada/Salida
Gestor de ficheros
Interfaz de llamadas al sistema

3.10 GESTION DE PROCESOS


Se encarga de colocar en la memoria el programa que el usuario demanda y adems reparte
el procesador, o procesadores, entre todas las peticiones de trabajo de forma que todas las tareas
pueden evolucionar simultneamente.
2.1. CONCEPTO DE PROCESO (TAREA)
2.2. Estados de un proceso
2.3. Bloque de control de procesos
2.4. Planificadores
2.5. Algoritmos de planificacin
2.6. Concurrencia y sincronizacin de procesos
2.7. Interbloqueos
3.10.1 Concepto de proceso
Un proceso es un programa en ejecucin; mientras que un programa se considera un ente
pasivo (conjunto de instrucciones destinadas a obtener unos resultados), un proceso es un ente
activo, que necesita diferentes recursos del sistema a lo largo del tiempo.
Aparece en los sistemas operativos con multiprogramacin o multitarea, donde varios
programas activos, se ejecutan concurrentemente, compitiendo por los recursos del sistema
(procesador, memoria, archivos de datos, dispositivos de E/S, etc.).
Hemos de tener en cuenta que en el ordenador se ejecutan los programas, y cada programa
es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El sistema operativo es
el encargado de hacerlo todo, la carga de los procesos en memoria y la ejecucion de dichos
procesos, pues para que se ejecute un programa es necesario que el microprocesador ejecute los
procesos de ese programa.
El microprocesador no hace las cosas por si solo, es el sistema operativo el que determina
que proceso se debe ejecutar y cuanto tiempo debe estar ejecutndose, a todo esto se le denomina
gestin de procesos.
Cuando aparece un proceso:

El usuario lanza le ejecucin de un programa, mediante una llamada al sistema. El


s.o. crea un proceso a partir del programa en ejecucin.
Un proceso padre lanza la ejecucin de varios procesos hijos, utilizando por ejemplo
la instruccin fork() de Linux.

86

Informtica industrial

Sistemas operativos

Varios usuarios ejecutan el mismo programa (ej: procesador de textos), aunque sea
le mismo programa el que se ejecuta, se asigna un proceso a cada usuario, de forma
que cada proceso es un hilo de control diferente (denominado tambin Thread todos
los recursos se gestionan por un proceso que engloba varios thread que tienen un
flujo de control separado. Permiten mayor velocidad de ejecucin, aunque reducen la
proteccin, ya que acceden a recursos compartidos como la memoria.

Estados de un proceso
Los estados por los que transita un proceso son:

Nuevo
Listo o preparado
En Ejecucin
Bloqueado o suspendido
Terminado

Nuevo: El proceso esta siendo creado


Listo o preparado:Se encuentra en la memoria principal en espera de ser atendido por la CPU.
En Ejecucin: El proceso est siendo ejecutado en la CPU. Hay que tener en cuenta que la CPU
slo puede atender a un proceso en cada instante.
Abandona este estado cuando:

Finaliza su ejecucin
Finaliza el quantum de tiempo asignado de CPU, en un modelo de multiprogramacin que
utilice este criterio de abandono de CPU. Pasando al estado preparado.
Inicia una operacin de E/S, o bien ocurre un evento externo que lo suspenda, pasando a
estado bloqueado o suspendido.
Bloqueado o suspendido: El proceso est esperando a que se produzca un suceso. Cuando el
proceso est realizando una operacin de E/S, o est esperando algn evento que le permita
continuar su ejecucin (ejemplo: una seal de sincronizacin de otro proceso).
Abandona este estado cuando:
Finaliza su ejecucin
Finaliza la operacin de E/S.
Ocurre el evento que lo tena suspendido.
Si el proceso contina su ejecucin pasar al estado preparado.
Tambin puede considerarse el estado INACTIVO, cuando un proceso no est ejecutndose,
bien porque haya finalizado su ejecucin, o bien porque no ha comenzado.
87

Informtica industrial

Sistemas operativos

Terminado: Ha finalizado su ejecucin


En el estado en ejecucin solo puede haber un proceso, sin embargo, varios pueden estar
listos o bloqueados.
Los procesos no pueden pasar por ellos mismos de listos a ejecucin, es el S.O. el que
decide cuando se pasa de listo a ejecutado.
3.10.2 Bloque de control de procesos (pcb)
Cada proceso se encuentra representado en el S.O.
mediante una estructura denominada Bloque de Control de
Procesos o PCB, que contiene toda la informacin que se necesita
saber sobre el proceso entre otras cosas debe guardar el estado
actual del proceso.
Un BCP contiene muchos elementos de informacin
asociados con un proceso especfico, entre los que se incluyen:
Estado del proceso: El estado puede ser nuevo, en
ejecucin, en espera, etc.
Contador de programas: Contiene la direccin de la
siguiente instruccin a ejecutar por el proceso.
Registro de CPU: Varan en cuanto a nmero y tipo,
dependiendo de la arquitectura de la computadora. Incluye
acumuladores, registro de ndices, punteros de pila y
registros de propsito general.
Informacin de planificacin CPU: Incluye prioridad del
proceso, apuntadores a colas de planificacin, etc. (Informacin del algoritmo de
planificacin).
Informacin de gestin de memoria: Incluye informacin acerca del valor de los registros
base y limites, las tablas de paginacin o tablas de segmentos, dependiendo del mecanismo
de gestin de memoria.
Informacin contable: Contiene informacin acerca de la cantidad de CPU y tiempos
empleados, los lmites de tiempo asignados, el nmero de trabajo o de proceso.
Informacin del estado de E/S: Esta informacin incluye, solicitudes pendientes de E/S,
dispositivos de E/S asignados al proceso, etc.

3.10.3 Planificacin de procesos


Colas De Planificacion
A medida que los procesos entran al sistema se colocan en una cola de trabajos que
contiene todos los procesos del sistema.
El sistema operativo utiliza los PCBs para gestionar el estado global del sistema, creando
varias listas (o colas) con los PCB segn el estado en el que se encuentre cada proceso.
Una cola es una estructura formada por un conjunto de elementos del mismo tipo (en este caso
PCB). Los elementos forman una cola segn el orden de llegada, y el primer elemento en ser
atendido es el primero en haber llegado a la cola. Por eso tambin se denomina Lista FIFO (First-In
First-Out).

88

Informtica industrial

Sistemas operativos

En Memoria Principal se gestionan dos tipos de colas:


Cola de procesos listos : En ella se encuentran los PCB de los procesos que se
encuentran en estado Preparado, esperando ser atendidos por la CPU.
Colas de dispositivos: Puede existir una cola para cada dispositivo de E/S. Cada
cola recoge los PCB de los procesos que estn esperando por un dispositivo para
realizar una operacin de entrada salida.

HEBRAS (Hilos)
Los hilos son procesos ligeros que se componen de registros, un espacio de pila y un
contador de programa.
Los hilos comparten su cdigo ejecutable, su pila y los recursos que utiliza. Con el uso de
hilos deja de ser necesaria la costosa conmutacin de contexto de uno a otro proceso.Son especiales
para realizar procesamiento paralelo, pero esto incurre en algunos problemas como la consistencia
de datos, para lo que se usan distintos mecanismos para solucionarlos como secciones crticas y
cerraduras. Pueden estar a nivel del ncleo del sistema operativo o a nivel de usuario.
Qu es la planificacin de procesos ?
Un s.o. contiene mdulos de planificacin que controlan la ejecucin de los procesos. Su
objetivo es optimizar el rendimiento del sistema: Uso eficiente de los recursos del sistema (CPU y
dems dispositivos), aumentar la productividad (maximizar el nmero de tareas ejecutadas en unidad
de tiempo), disminuir el tiempo de respuesta de los procesos (tiempo que espera el usuario desde
que lanza la ejecucin de una tarea hasta recibe una respuesta), etc.
La planificacin de procesos tiene como objetivos obtener siempre la mayor productividad, o
la mayor cantidad de trabajos realizados en una unidad de tiempo, por Ejemplo: 77 procesos por
hora.
El concepto de planificacin podra llamarse al conjunto de polticas y mecanismos incorporados al
sistema operativo por el que se rige el orden en el que se completa el trabajo que hay que realizar.

89

Informtica industrial

Sistemas operativos

Con la planificacin se pretende:


a) Justicia en el reparto de la CPU entre los diferentes usuarios.
b) Evitar la postergacin indefinida de los procesos siempre dentro de la seguridad de las
prioridades.
c) Logra la mxima capacidad de ejecucin con el mayor nmero de usuarios interactivos.
d) Se busca el equilibrio del uso de los recursos y de la respuesta de utilizacin.
e) Se pretende poder discriminar procesos de tal manera que se permita dar mayor prioridad a
aquellos procesos que tengan asignados recursos claves

Planificadores
Para planificar los procesos, el sistema utiliza 3 tipos de planificadores que hacen uso de las
colas de PCB:

planificador a largo plazo o planificador de trabajos


planificador a medio plazo o planificador de swapping
planificador a corto plazo o planificador de cpu

planificador a largo plazo o planificador de trabajos


Se encarga de seleccionar que trabajo (tarea) de los que se encuentra en disco esperando
comenzar su ejecucin (en estado inactivo), pasa a la cola de procesos listos de memoria principal.
Es por tanto el encargado de controlar el grado de multiprogramacin (nmero de procesos
que estn en memoria principal). Se ejecuta cuando haya memoria suficiente para aumentar el
nmero de procesos en memoria. Es importante que seleccione los trabajos de forma que combine
los trabajos orientados a CPU (muchas operaciones de CPU y pocas con dispositivos de E/S), con
los trabajos orientados a E/S, para disminuir los tiempos muertos en CPU y dispositivos de E/S.
planificador a medio plazo o planificador de swapping
Una operacin de swapping consiste en llevar a disco un proceso que est en memoria
reduciendo el grado de multiprogramcin, para liberar memoria o bien para realizar una mejor
combinacin de procesos orientados a CPU y orientados a E/S.
Este planificador selecciona trabajos que se encuentran parcialmente ejecutados en la cola
de procesos listos o en la cola de suspendidos, para llevarlos a disco, pasando a estado
intercambiado. Posteriormente, volvern a memoria para continuar su ejecucin.
planificador a corto plazo o planificador de cpu

90

Informtica industrial

Sistemas operativos

Selecciona de entre los procesos listos, cual pasa a ser atendido por la CPU. Se ejecuta
cada vez que un proceso abandona la CPU. Provoca una operacin de conmutacin de proceso
(cambio de contexto) en la que se realizan las siguientes operaciones:
Px : En ejecucin
Py : En ejecucin
a)
b)
c)
d)
e)

Guardar el estado hardware de Px en su PCB (registros de CPU)


Actualizar su nuevo estado (Listo o Suspendido)
Planificar el siguiente proceso a ejecutar, aplicando un algoritmo
Restaurar el estado hardware del proceso Py seleccionado desde su PCb.
Actualizar el estado de Py (en ejecucin)

Criterios de planificacin
Los algoritmos de planificacin deben tener en cuenta una serie de casos:

Utilizacin de la C.P.U., queremos que la C.P.U. se mantenga tan ocupada como sea
posible.
Rendimiento, una medida del trabajo es el nmero de procesos que se completa por unidad
de tiempo.
Tiempo de Retorno, sera la suma de los periodos transcurridos esperando entrar en la
memoria, esperando en la cola de procesos listos, ejecutndose en la C.P.U. y efectuando
operaciones de E/S.
Tiempo de espera, es el tiempo que el proceso espera en la cola de procesos listos.
El tiempo de respuesta, el tiempo transcurrido desde la presentacin de una solicitud hasta
que se produce la primera respuesta.

Siempre vamos a intentar maximizar la productividad (el tiempo de C.P.U.) y se intenta


minimizar el tiempo de retorno, de respuesta y el de espera.
Cambio de Contexto
Cuando se produce una interrupcin el sistema tiene que guardar el contexto actual del
proceso que se esta ejecutado en la CPU, de modo que se pueda restaurar dicho contexto cuando su
procesamiento concluya, suspendiendo el proceso y reanudndolo despus.
El tiempo dedicado al cambio de contexto es tiempo desperdiciado. El tiempo empleado para
el cambio de contexto depende fundamentalmente del soporte hardware.
3.10.4 Algoritmos de planificacin
puede ser:
No apropiativo: Un proceso no puede apropiarse de un recurso que ha sido asignado a
otro proceso.
Apropiativo: Un proceso ms prioritario, puede apropiarse de un recurso asignado a otro
proceso menos prioritario
Algoritmo FCFS (First Come, First Served 1 en llegar, 1 en ser servido)

91

Informtica industrial

Sistemas operativos

La cola de procesos listos se gestionan como una lista FIFO: el primer elemento de la cola es
el primero en seleccionarse.
El planificador de CPU, favorece con este algoritmo a los procesos orientados a CPU (tienen
peraciones de CPU largas, y acaparan la CPU hasta finalizar su operacin). Los procesos orientados
a E/S dejan ociosos los dispositivos de E/S y estn siempre esperando en la cola de procesos listos.
Ventaja: Es muy fcil de implementar.
Inconveniente: El rendimiento suele ser bajo.
Algoritmo RR (Round Robin. Circuito cclico)
Es un algoritmo apropiativo que asigna un quantum de tiempo de atencin de CPU a los
procesos listos. La cola se gestiona como una lista FIFO. El proceso en ejecucin, puede abandonar
la CPU por 3 motivos:

Finaliza su ejecucin.
Necesita realizar una operacin de E/S, pasando a la cola del dispositivo correspondiente.
Finaliza su tiempo de CPU, pasando al final de la cola de procesos listos. El siguiente
proceso se apropia de la CPU.

sern muchas veces realimentados.


Una cuestin a resolver en este algoritmo es la determinacin de la duracin del quantum de
tiempo, ya que un quantum muy pequeo provoca muchos cambios de contexto que requieren perder
mucho tiempo; un quantum de tiempo muy grande convierte el algoritmo en un FCFS, aumentando el
tiempo de respuesta de los procesos.
Ventaja: mejora el tiempo de respuesta de los procesos cortos.
Inconveniente: Tiempo necesario para realizar el cambio de contexto y la inicializacin del
temporizador cuando finaliza un quantum de tiempo.
Algoritmo SJF (Short Job First )
Su caracterstica es que cuando se activa el planificador, ste elige lel proceso de menor
duracin. Es decir, introduce una nocin de prioridad entre procesos. Hay que recordar que en los
entornos por lotoes o batch se pueden hacer estimaciones del tiempo de ejecucin de los procesos.
La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de
finalizacin promedio de los procesos.:
Algoritmo apropiativo segn prioridad
A cada proceso se le asigna (por parte del usuario o del sistema) una prioridad al iniciar su
ejecucin. El planificador selecciona siempre el proceso de prioridad ms alta. Pero al ser
apropiativo, si llega un proceso ms prioritario, se apropia de la CPU. Para evitar que los procesos de
prioridad baja queden olvidados, por ejecutar los ms prioritarios, se aplica la tcnica de
Envejecimiento, que aumenta la prioridad de cada proceso gradualmente en funcin del tiempo que
el proceso lleve en memoria. As los proceso ms antiguos conseguirn prioridades altas y podrn
finalizar en un tiempo finito.

92

Informtica industrial

Sistemas operativos

Algoritmo MLQ (Mltiple Level Queues Colas multinivel)


Los procesos se clasifican segn sus caractersticas (atributos), distribuyndolos en colas de
procesos listos separadas y gestionadas por diferentes planificadores de diferentes prioridades.
Ejemplo: procesos del sistema, interactivos, por lotes.
La CPU comienza a tendiendo a los procesos de la cola ms prioritaria, siguiendo un
determinado algoritmo. Cuando finalice todos los procesos de una cola, pasa a atender a la cola de
prioridad siguiente.
Es un algoritmo apropiativo, cuando llegue un proceso de cola ms prioritaria, pasa a ser
atendido, abandonado la cola actual.

Algoritmo de mltiples colas con retroalimentacin


Los procesos se distribuyen en diferentes colas segn su comportamiento durante la
ejecucin.
Inicialmente, los procesos se sitan en la cola de ms alto nivel, aquello que necesiten ms
de una cuota de tiempo de CPU pasan a la siguiente cola de prioridad inferior, con un quantum de
tiempo de CPU menor. Si el proceso no finaliza despus de ejecutarse varias veces en esa cola, se
le pasa a otro nivel ms bajo.
Los procesos cortos son preferenciales, y aquellos que hacen mucho uso de la CPU caen a
colas de nivel inferior. Cuando un proceso abandona la CPU antes de consumir todo su quantum,
avanza hacia arriba en la jerarqua de colas.
Operaciones bsicas con procesos
Lo mnimo que se puede hacer con un proceso es:

Crearlo, darle un nombre o identificador, meterlo en la lista de procesos listos, asignarle una
prioridad, crear el PCB y darle los recursos que necesite, etc..
Destruir un proceso, liberndose todos los recursos que tena asignado el proceso. La
prioridad del proceso sera la prioridad en el PCB.
Cambiarle la prioridad al proceso, modificar la prioridad en el PCB.
Bloquear un proceso, pasar de estado activo a bloqueado debido a que tiene que esperar a
que suceda un evento.
Activar un proceso, cuando termina un evento por el que est esperando un proceso y se
encontrase este bloqueado, entonces pasa este a listo.
Despachar un proceso, el procesador asigna el primer proceso que se encuentra en la lista
de listos, pasando ste de estado listo a activo.

93

Informtica industrial

Sistemas operativos

3.10.5 Comunicacin entre procesos


Los procesos pueden ser:
Procesos independientes: Si no pude afectar o verse afectado por los restantes procesos del
sistema.
Procesos cooperativos: Si puede afectar o verse afectado por otros procesos.
Hay varias razones para proporcionar un entorno que permita la cooperacin entre procesos:

Compartir informacin
Acelerar los clculos
Modularidad.
Conveniencia.

Los procesos Cooperativos requieren mecanismos de comunicacin interprocesos (IPC).


Que les permita intercambiar datos e informacin.
Existen dos modelos fundamentales de IPC.

Memoria Compartida
Paso de mensajes.
Sistemas de memoria compartida

La comunicacin interprocesos que emplea memoria compartida requiere que los procesos
que se estn comunicando establezcan una regin de memoria compartida. El SO evita que otro
proceso pueda ingresar a direcciones de memoria de otro proceso, por cual los procesos
cooperativos deben eliminar esta restriccin.
Sistemas de Paso de Mensajes
La comunicacin tiene lugar mediante el intercambio de mensajes entre los procesos
cooperativos.
Proporciona un mecanismo que permite a los procesos comunicarse y sincronizar sus
acciones sin compartir el mismo espacio de direcciones. Una facilidad de paso de mensajes
proporciona al menos dos operaciones: en vio de mensajes y recepcin de mensajes.
Existen mtodos para implementar lgicamente un enlace y las operaciones de envo y recepcin:
Comunicacin directa o indirecta.
Comunicacin sncrona o asncrona.
Almacenamiento en bfer explicito o automtico.
Nombrado
Comunicacin directa: se enva un mensaje de un proceso a otro cuyos parmetros son nombre de
proceso y mensaje. Su sintaxis es: enviar(procesoP,mensaje) y recibir(procesoQ,mensaje)
Comunicacin indirecta: el mensaje se enva a un buzn de mensajes. La sintaxis es:
enviar(buzn,mensaje) y recibir(buzn,mensaje). Cada proceso tiene un buzn propio y este se
puede implementar a travs de un buffer, que puede ser de capacidad cero, capacidad limitada, o
capacidad ilimitada.
En todos los casos el sistema operativo o el subsistema de comunicacin entre procesos (IPC) deben
asegurar la consistencia y la correctitud de los mensajes. Para esto se pueden implementar sumas
de verificacin (checksum) o similares.

94

Informtica industrial

Sistemas operativos

Sincronizacin: Al haber procesos concurrentes se deben emplear mecanismos para asegurar la


consistencia de los datos.
Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo
archivo. Si los 3 acceden a este al mismo tiempo el archivo quedar con valores incorrectos. Para
resolver problemas como este se ide la seccin crtica, que es el segmento de cdigo que accede a
los recursos. Slo puede haber una seccin crtica en ejecucin por vez, as nos aseguramos que los
datos quedan consistentes.
Almacenamiento en bfer: Los mensajes intercambiados por los procesos que se estn comunicando
residen en una cola temporal, tales colas se pueden implementar de tres maneras:
Capacidad Cero: La longitud mxima es de cero; por lo cual no hay ningn mensaje
esperando en el enlace.
Capacidad Limitada: Tiene una longitud finita n; por lo cual hay n mensajes esperando.
Capacidad ilimitada: La longitud es infinita, por lo cual puede haber infinitos mensajes
esperando en la cola.
3.10.6 Concurrencia y sincronizacin de procesos
Estos procesos deben sincronizarse cuando van a utilizar recursos compartidos, como
estructuras de datos comunes o dispositivos fsicos Los procesos concurrentes pueden compartir
datos comunes (archivos, variables globales), entonces pueden ocurrir problemas cuando acceden
estos datos. Es corriente que los resultados de un proceso se necesiten como datos de entrada de
otro proceso, por lo que es necesario sincronizar sus actividades.
Un mecanismo de sincronizacin se consigue mediante el intercambio de seales entre
procesos (ej: signal de Linux).
Otra forma de conseguir sincronismo es el uso de memoria compartida para el intercambio
de informacin.
Ejemplo: Un proceso que permite la retirada de fondos de una cuenta bancaria, actualiza una
variable compartida que es el saldo de la cuenta, para actualizarla. Otro proceso accede a dicha
variable para listar el saldo actual de la cuenta. Entonces puede darse inconsistencia en la
informacin al mostrar un saldo que no se corresponde con la realidad (se lista cuando el usuario ha
solicitado retirada de fondos, pero la variable usada por el proceso de listado es una copia del valor
no actualizado).
Se denomina seccin crtica de un programa al conjunto de instrucciones que realizan
actualizaciones de uno o ms variables compartidas.
Para garantizar la integridad del sistema se aplica la tcnica de Exclusin mutua: Cuando
un proceso ejecuta su seccin crtica, debe completar todas las instrucciones de la seccin antes de
que otro proceso entre en la misma seccin crtica, es decir, un proceso excluye a los dems de
ejecutar la seccin crtica cuando l la est ejecutando.
Dijkstra propuso una implementacin de la exclusin mutua de secciones crticas, mediante el uso de
semforos. Un semforo s es una variable binaria (valores 0 y 1) a la que se le pueden aplicar dos
operaciones:
wait(s) : Espera hasta poder iniciar una seccin crtica cuando ningn otro proceso la est
ejecutando.
signal(s) : Seal que indica fin de la ejecucin de una seccin crtica.
Cdigo de las operaciones:
PROCEDURE WAIT(S:INTEGER);
Begin
While not (s>0) do
Begin
95

Informtica industrial

Sistemas operativos

* esperar hasta que s=1 para entrar en seccin crtica *


End
S := s 1 ;
End
Procedure signal (s:integer);
Begin
S := s + 1 ;
End
Cdigo de cualquier proceso:
Procedure P1;
Begin
wait (s);
seccion_critica;
signal(s);
otras_operaciones;
End
3.10.7 Interbloqueos
Un proceso necesita recursos que ya estn asignados a otros procesos.
Un interbloqueo, deadlock o abrazo mortal es una situacin que se da cuando un grupo de
procesos est bloqueado permanentemente (detenida su ejecucin), como consecuencia de tener
retenidos un conjunto de recursos necesarios para finalizar su ejecucin y tiene que esperar la
liberacin de otros recursos retenidos por otros procesos del mismo grupo, haciendo imposible
continuar la ejecucin del grupo de procesos interbloqueados.
Ejemplo: Dos personas en orillas distintas, que intentan cruzar un ro saltando de piedra en piedra, de
forma que en cada piedra slo pueda estar una persona: PROPONER SOLUCIONES
Para que en un sistema se produzca un interbloqueo tienen que darse simultneamente 4
condiciones:
1. exclusion mutua de recursos
Un recurso slo puede ser usado por un proceso al mismo tiempo. Es decir, es un recurso
dedicado (atiende a un solo proceso hasta que finalice su operacin).
Ej: uso de memoria compartida por varios procesos.
2. retener y esperar
Debe existir al menos un proceso que est reteniendo al menos un recurso y est esperando
al menos por otro recurso para continuar su ejecucin.
3. no apropiacin
Los recursos slo pueden ser liberados voluntariamente por los procesos que los retienen.
4. ESPERA CIRCULAR
El grupo de procesos est en espera circular, de forma que cada proceso retiene recursos
solicitados por el proceso siguiente en la cadena.
Los SO pueden utilizar 3 estrategias para el tratamiento de los interbloqueos:
96

Informtica industrial

Sistemas operativos

1. prevencin
Consiste en definir una serie de normas que aseguren que nunca se va a producir un
interbloqueo. Se utilizan las Estrategias de Havenger, que consisten en negar al menos una
condicin necesaria para darse el interbloqueo:
No usar recursos dedicados, aunque no siempre puede exigirse ya que existen dispositivos
que por su naturaleza no pueden ser compartidos. Ej: la impresora.
Negar retencin y espera: Siempre que un proceso espere por un recurso no puede retener a
otros recursos. Puede detener parcialmente su ejecucin, salvando el estado actual y
liberando sus recursos, y posteriormente continuar su ejecucin cuando pueda asignrsele el
recurso por el que espera.
Un proceso puede apropiarse de un recurso asignado a otro proceso. (Cuando un proceso
est esperando por otro recurso, pueden apropiarse de los recursos que tiene retenidos).
Slo puede aplicarse a determinados recursos (como CPU) pero no a otros como archivos
parcialmente actualizados.
Negar la espera circular: Los recursos slo pueden ser solicitados en un orden establecido.

Se dividen en clase Ci con i=1,....,n. Si un proceso retiene un recurso Ci, slo puede solicitar
recursos de clase superiores a i. De esta forma se elimina la espera circular ya que ningn proceso
Pj puede solicitar una clase de nivel inferior (no se cierra el ciclo).
2. evitacin
El sistema operativo estudia si con la asignacin de recursos actual, sin interbloqueos, y
cambiando de estado de forma que se satisfaga una nueva solicitud de recurso, se llegue a un nuevo
estado donde no se da interbloqueo, llamado estado seguro. En caso contrario, se suspende le
proceso hasta que su solicitud pueda ser atendida sin provocar interbloqueo.
3. deteccin
Con esta tcnica el sistema puede llegar a un estado de interbloqueo. Se trata de ejecutar
unos algoritmos que detecten si hay procesos interbloqueados, y si es as salir de esa situacin.
Para romper un interbloqueo se comienza por suspender un proceso en abrazo mortal, liberando
todos sus recursos, se comprueba si continua el interbloqueo, y si es as se selecciona otro proceso
para suspender, hasta que se alcanza un estado seguro.
Para aplicar est solucin, es necesario resolver dos cuestiones:

Decidir qu proceso se suspende


Pueden aplicarse varios criterios:
Proceso de ms baja prioridad
Proceso con menos tiempo de ejecucin
Proceso con ms recursos pendientes de solicitar
Decidir la frecuencia en la que ejecutar el algoritmo de deteccin de interbloqueos.

Hay que tener en cuenta que la ejecucin del algoritmo requiere tiempo y ralentiza el sistema
ejecutando muchas veces el algoritmo . Por otra parte, una comprobacin infrecuente puede
mantener interbloqueado durante mucho tiempo el sistema, degradndolo.
Ejemplo: Filsofos cenado
Indicar las condiciones para que no se produzca interbloqueo:
Recursos no dedicados: Compartir los palillos
No retencin y espera: Si no se puede conseguir el segundo palillo, no retener el primero
Apropiacin de recursos: Un filsofo puede apropiarse de un palillo de otro filsofo que
todava no
coma porque slo tena un palillo
No esperar circular: empezar siempre solicitando palillo derecho
97

Informtica industrial

Sistemas operativos

3.11 GESTION DE MEMORIA


3.11.1 El gestor de memoria
Es el mdulo del sistema operativo que se encarga de:

Asignar y liberar memoria a los procesos


Intercambiar informacin entre memoria principal y memoria secundaria
Proteger el espacio fsico de memoria perteneciente a cada proceso (no permitir la invasin
del espacio asignado a un proceso, por otro proceso)
Coordinar el acceso a los datos compartidos entre varios procesos

Un programa mquina es un conjunto ordenado de instrucciones en cdigo mquina, que


pueden ser directamente ejecutadas por el procesador. Para que un programa pueda comenzar su
ejecucin, debe encontrarse el cdigo y los datos en memoria principal. Las instrucciones ocupan
celdas de memoria principal que pueden numerarse desde la 0 hasta la n-1, suponiendo que el
programa ocupa n celdas de memoria.
Durante la ejecucin del programa, el procesador hace referencia a un espacio virtual o
lgico mediante direcciones lgicas (para acceder a variables, instrucciones, etc. a las que hace
referencia el programa). El conjunto de celdas de memoria reservadas para el programa definen el
espacio Fsico. El gestor de memoria se encarga de traducir las direcciones lgicas en direcciones
fsicas de memoria principal.

3.11.2 Tcnicas de asignacin de memoria


Para gestionar el espacio de Memoria Principal en sistemas de multiprogramacin, existen
varios modelos de asignacin: particiones estticas y dinmicas, paginacin y segmentacin.
En cada modelo se tiene en cuenta:

Cantidad e memoria desaprovechada: se da fragmentacin, y es necesario memoria extra


para almacenar informacin que necesita el sistema.
Complejidad asociada al algoritmo utilizado para asignar y liberar memoria.
Recargo temporal al acceder a memoria debido al clculo de direcciones.
Particiones estticas

La Memoria principal se encuentra dividida en un nmero fijo de particiones, que pueden ser
de diferente tamao, creadas durante la generacin del sistema.
En cada particin puede almacenarse un proceso.

98

Informtica industrial

Sistemas operativos

Estructuras
El s.o. mantiene una TABLA DE DESCRIPCION DE PARTICIONES, en la que cada entrada
contiene la informacin de cada particin:

Direccin base: direccin fsica de memoria donde comienza la particin


Tamao de la particin
Estado de la particin: Asignada a un proceso o Libre (denominada hueco).

El PCB asociado a cada proceso permite conocer la particin asignada al proceso (direccin
base para localizarla en la tabla).

Cuando un proceso necesite ser cargado en memoria, el sistema consulta la tabla para
conocer si existe alguna particin con tamao suficiente para almacenar el proceso, si es as se
modifica su estado y se carga el proceso en memoria, creando un PCB asociado al proceso.
Cuando un proceso abandona la memoria principal, volver a modificarse el estado de la
particin que ocupaba.
Inconveniente
El inconveniente de esta tcnica es que hay un desperdicio de memoria, cuando el proceso
no ocupa toda la particin asignada, ya que una particin slo puede ser asignada a un proceso. Este
suceso se denomina FRAGMENTACIN INTERNA.
Particiones dinmicas
El s.o. carga un proceso en posiciones contiguas de memoria principal, no existiendo
particiones predefinidas y delimitando su tamao en el momento de la carga en memoria en
respuesta a las demandas del usuario.
Estructuras
El sistema gestiona:
a) Tabla de descripcin de particiones: contiene una entrada por cada particin asignada a un
proceso con la informacin:
Direccin base de comienzo de la particin
Tamao de la particin
b) Lista enlazada de huecos: cada particin vaca de memoria, almacena su tamao y un
puntero al siguiente hueco de memoria, ordenada segn la direccin base de cada hueco.
99

Informtica industrial

Sistemas operativos

Para asignar espacio de memoria a un proceso, el s.o. busca un hueco lo suficientemente


grande en la lista de huecos, si lo encuentra, crea una particin del mismo tamao del proceso
pudiendo aparecer un hueco con el tamao restante. Aade una nueva entrada en la tabla de
particiones y actualiza la lista de huecos (desaparece un hueco y puede aparecer otro de diferente
tamao).
El sistema localiza la entrada de la tabla correspondiente a la particin de un proceso,
mediante la informacin que mantienen en su PCB. Aunque, nosotros de forma grfica aadimos una
columna al respecto en la tabla de particiones.
Cuando un proceso abandona la memoria principal, el s.o. elimina su entrada en la tabla de
particiones y actualiza la lista de huecos (aparece un nuevo hueco).
Inconvenientes
Con el tiempo el nmero de huecos aumenta y el tamao de cada uno disminuye, llegando
un momento en que el espacio vaco en memoria no pueda asignarse a ningn proceso por no
encontrarse en posiciones contiguas. Este problema se denomina FRAGMENTACIN EXTERNA
(Hay espacio libre en memoria suficiente para almacenar el proceso, pero no se encuentra contiguo).
Una solucin es la COMPACTACIN, que consiste en REUBICAR (cambiar de posicin) los
procesos que se encuentran en memoria, para conseguir un nico hueco libre de mayor tamao, que
pueda ser asignado a otros procesos. El inconveniente que presenta es el tiempo que necesita para
la reubicacin.
Ejemplo: Partiendo del esquema de memoria del ejercicio anterior, se almacena el proceso Px de
350KB.
Se da fragmentacin externa, entonces el sistema realiza compactacin:

100

Informtica industrial

Sistemas operativos

Traduccin de direcciones
En las dos tcnicas de particiones es necesario realizar la traduccin de direcciones, que
consiste en:
a) Localizar la entrada de la tabla de descripcin de particiones asociada al proceso, mediante
la informacin contenida en el PCB
b) Obtener la direccin base de comienzo de la particin de la tabla
c) Sumar a la direccin base, la posicin relativa de la instruccin dentro del programa

3.11.3 Algoritmos de gestin de memoria


El s.o. utiliza un algoritmo para determinar el hueco libre de memoria que asigna a un
proceso utilizando particiones de memoria. Los algoritmos ms comunes son:

FIRST-FIT

Se asigna el primer hueco encontrado con tamao suficiente. Es rpido de ejecutar,


ya que comienza chequeando los huecos y para cuando localiza una vlido.
BEST-FIT
Se asigna el hueco de tamao ms pequeo suficiente para almacenar el proceso.
Es ms lento ya que tienen que chequear todos los huecos, pero es ms eficiente al
desperdiciar menos memoria que el anterior.

Ejercicio
En un sistema con particiones dinmicas, asignar los procesos Px de 100 KB y Pj de 50 KB,
modificando las tablas al aplicar los 2 algoritmos.
3.11.4 Paginacin
La memoria principal se estructura en BLOQUES de longitud fija (mltiplo de 2), identificados
con un nmero correlativo, comenzando en 0.
Los programas se dividen en zonas consecutivas llamadas PAGINAS. El tamao del bloque
de memoria y de la pgina coinciden, de
forma que una pgina pueda ser
almacenada en un bloque de memoria.
Cada pgina se almacena en un
bloque de libre y no es necesario que las
pginas que componen un programa
ocupen bloques contiguos.

101

Informtica industrial

Sistemas operativos

Estructuras
El s.o. mantiene las siguientes estructuras:
Tabla de pginas
Hay una por cada programa almacenado en memoria. Cada entrada de la tabla se
corresponde con una pgina del programa a la que se asocia un bloque de memoria
mediante su direccin base. La longitud de la tabla vara segn el nmero de pginas
del programa.
Tabla de bloques de memoria
Contiene tantas entradas como bloques que hay en memoria. Para cada bloque se
indica el identificativo del programa que almacena o bien que est libre.
En el PCB asociado a cada proceso, se indica adems de su identificativo, tamao y
estado, la direccin de memoria donde se encuentra la tabla de pginas del proceso.

Inconvenientes
Este esquema de memoria presenta 2 inconvenientes:

Fragmentacin interna en la ltima pgina del programa, cuando esta no llena un bloque de
memoria. Puede reducirse el problema disminuyendo el tamao de la pgina, pero entonces
aumenta la tabla de pginas (tiene ms entradas) y la tabla de bloques (el tamao del bloque
se reduce, entonces aumentan el nmero de bloques).
Necesita espacio extra (no asignable a los procesos) para almacenar las tablas.

Traduccin de direcciones
Para la traduccin de direcciones, se parte de la direccin lgica generada por el procesador,
que se compone de dos campos:
nmero de pgina (identifica la pgina dentro del proceso)
desplazamiento (posicin relativa dentro de la pgina)
El nmero de pgina permite localizar la entrada en la tabla de pginas asociada al proceso,
para obtener la direccin base del bloque de memoria. La direccin fsica se obtiene
CONCATENANDO la direccin base con el desplazamiento dentro de la pgina.
Se realiza una operacin de concatenacin porque todas las pginas son del mismo tamao, y
equivale a una operacin de suma.
EJEMPLO:
LA CAPACIDAD DE MEMORIA ES DE 1MB. EL TAMAO DE CADA PGINA ES DE 256 BYTES.
1Mb = 1.024 x 1.024 / 256 = 4.096 bloques de memoria
Longitud de las direcciones fsica y lgica:
256 bytes = 2 8 8 bits para referenciar cada byte del bloque (2 hex)
4096 bloques = 2 12 12 bits para referenciar cada bloque (3 hex)

102

Informtica industrial

Sistemas operativos

3.11.5 Segmentacin
El s.o. considera un programa dividido en segmentos de tamao variable, que son asignados
a bloques de memoria, no necesariamente contiguos. Un segmento contiene entidades que estn
relacionadas lgicamente. Ejemplo: definicin de datos, procedimientos, programa principal, etc.

Estructuras
El sistema mantiene las estructuras siguientes:
Una tabla de segmentos para cada proceso, donde cada entrada indica la direccin base del
bloque de memoria que almacena el segmento y su tamao.
Lista enlazada de huecos libres de memoria, de forma que al comienzo de cada hueco se
indica su tamao y un puntero al siguiente hueco de memoria. La lista est ordenada por las
direcciones base de los huecos.
El PCB almacena para cada proceso la direccin donde se almacena su tabla de segmentos.
Inconvenientes
Los inconvenientes que presenta este esquema de memoria son:

103

Informtica industrial

Sistemas operativos

Fragmentacin externa: Hay suficiente espacio libre en memoria para almacenar un


proceso, pero los huecos son de menor tamao que algn segmento. Puede recurrirse
entonces a la compactacin.
Espacio de memoria necesario para almacenar las tablas.
Traduccin de direcciones

Consiste en partir de la direccin lgica, compuesta por:

Nmero de segmento: identifica el segmento dentro del proceso


Desplazamiento: posicin relativa dentro del segmento

Con el primer campo se localiza la entrada del segmento en la tabla, para obtener la
direccin base de memoria donde se almacena el segmento. Se suma a la direccin base el
desplazamiento para obtener la direccin fsica.

Las tcnicas de paginacin y segmentacin presentan la ventaja de permitir que ciertas


zonas de memoria puedan ser compartidas por varios procesos sin necesidad de estar duplicados en
memoria (ej: datos comunes entre varias aplicaciones).
3.11.6 Memoria virtual
Es un esquema de gestin de memoria que permite ejecutar un proceso que est
parcialmente cargado en memoria, de forma que cuando se necesite una parte del proceso que no se
encuentra en memoria, se traer del disco. El espacio de memoria que necesita un proceso puede
exceder el tamao asignado, creando la ilusin de disponer de ms memoria de la que realmente se
tiene.
La memoria virtual puede
implementarse utilizando la
paginacin o segmentacin,
entonces slo se encontrarn
en memoria las pginas o
segmentos del programa que
se
necesiten
en
cada
momento.
La direccin generada por el
procesador se llama direccin virtual. Si la informacin requerida se encuentra en memoria, el
sistema traduce la dir. Virtual en una direccin fsica de memoria, de lo contrario se produce un fallo
de direccin, y ser necesario traer de la memoria secundaria la informacin solicitada por el
procesador

104

Informtica industrial

Sistemas operativos

Ventajas

La ejecucin de un proceso no est limitada al espacio fsico disponible en memoria.


Un proceso necesita memos espacio por no necesitar estar completo en memoria,
pudiendo aumentar el grado de multiprogramacin (n de procesos en memoria,
ejecutndose concurrentemente).
La gestin de la memoria virtual la realiza el sistema operativo, siendo totalmente
transparente para el usuario y programador.

Inconvenientes

Se necesita un tiempo extra para traducir las direcciones virtuales en direcciones


fsicas.
Tiempo extra necesario para traer la informacin fallada desde la memoria
secundaria, en tiempo de ejecucin, provocando retrasos en la ejecucin del proceso.

Gestin de memoria virtual


Las tcnicas para gestionar la MV se basan en el Principio de localidad de los programas.
Las direcciones generadas durante la ejecucin de un programa no son totalmente aleatorias, sino
que siguen un esquema relativamente predecible.
Existen dos tipos de localidad:
a) Localidad espacial: El programa tiende a referenciar posiciones del espacio virtual
prximas a la ltima referenciada. Ejemplo: ejecucin secuencial de instrucciones,
recorrido de los elementos de un array.
b) Localidad temporal: El programa tiende a referenciar en un futuro prximo las
direcciones virtuales referenciadas en un pasado reciente. Ejemplo: ejecucin de un
bucle, actualizacin de un acumulador.
Peticin por demanda de pgina
Es la tcnica ms utilizada para gestionar MV. Se implementa en sistemas paginados, donde
una pgina es llevada a memoria slo cuando sea solicitada por el procesador.
Se aade un campo a la tabla de pginas que mediante un bit indique si la pgina se
encuentra o no en memoria.
El esquema de funcionamiento es el siguiente:

La CPU genera una direccin virtual para obtener una instruccin o dato.
Se localiza la entrada de la tabla de pginas correspondiente con el nmero de pgina
solicitado
en la direccin virtual.
Si el bit de la tabla est a 1 (la pgina se encuentra en memoria):
Se traduce la direccin virtual en una direccin fsica para localizar la informacin en
memoria.
Si el bit est a 0, se produce un fallo de pgina:
a) Es necesario traer la pgina desde el disco a memoria, mientras el procesador puede
atender a otro proceso.
b) Si no hubiese sitio en memoria para almacenar la pgina (todo el espacio asignable
al proceso est ocupado por sus pginas), entonces se realiza un swapping,
reemplazando una de las pginas de memoria por la que viene del disco.

105

Informtica industrial

Sistemas operativos

c) Se actualiza la tabla de pginas: bit y direccin base.


Continuar con la ejecucin del programa
Tcnicas de reemplazamiento de pginas

Cuando un proceso no dispone de ms espacio en memoria para cargar una pgina fallada,
se puede optar por dos soluciones:

Suspender el proceso en espera de obtener la memoria que necesita (proceso


suspendido por necesitar un recurso).
Seleccionar una de las pginas del proceso (pgina vctima) para ser reemplazada
por la pgina fallada.

Generalmente se utiliza la segunda opcin, para implementarse es necesario resolver dos


cuestiones:
a) La pgina a reemplazar puede no ser necesario almacenarla de nuevo en disco. Se puede
aadir un bit de modificacin a la tabla de pginas que indique si la pgina fue modificada
durante su estancia en memoria, as slo ser necesario hacer swapping de la pgina
vctima cuando este bit de modificacin lo indique.
b) Es necesario utilizar un algoritmo que permita seleccionar una pgina como vctima.
Algoritmos de reemplazo de pginas
FIFO First-In First-Out
Se selecciona como pgina vctima la que lleva ms tiempo en memoria (la primera pgina
del proceso que lleg a memoria). Supone que la pgina con ms tiempo en memoria tiene menos
probabilidad de ser referenciada por la CPU.
Se mantiene una estructura FIFO que indica el orden de carga de las pginas en memoria.
Ejemplo
El sistema reserva 3 bloques de memoria a un proceso.
Pginas referenciadas: 7-0-1-2-0-3-0-4-2-3-4-3
Lista FIFO de carga en memoria en los 3 bloques:

Fallos de pgina: 9
Reemplazos : 6
LRU Least Recently Used (Usada menos recientemente)
Reemplaza la pgina que lleva ms tiempo sin ser usada. Para su implementacin se usa
una lista que se ordena en cada referencia, de forma que la ltima referencia est a la cola de la lista,
y la pgina que lleve ms tiempo sin ser referenciada se encuentre en la cabeza de la lista.

106

Informtica industrial

Sistemas operativos

Ejemplo:
Sistema con 3 bloques de memoria para el proceso. La CPU referencia: 7-0-1-2-0-3-0-4-2-3-03-2-1-2-0-1-7-0-1

Reemplazos: 8
NRU No Recently Used (No recientemente usada)
Clasifica a las pginas que se encuentran en memoria en 4 clases, segn al bit de referencia
y el bit de modificacin:
Bit de referencia:
0 - Pgina no referenciada
1 - Pgina referenciada en un pasado reciente
Bit de modificacin:
0 Pgina no modificada desde que se carg en memoria
1 Pgina modificada en su estancia en memoria

El algoritmo selecciona como pgina vctima, la de menor clase. (Puede seguirse un algoritmo
FIFO en caso de que haya varias pginas de la misma clase).
Con el tiempo las clases bajas van desapareciendo (las pginas se referencian y modifican),
entonces el algoritmo ajusta peridicamente el bit de referencia, ponindolo a 0, de esta forma, las
pginas ms frecuentemente referenciadas activarn pronto su bit de referencia aumentando su
clase.

107

Informtica industrial

Sistemas operativos

3.12 GESTIN DE ARCHIVOS

Introduccin
Un Archivo es un conjunto de elementos de informacin relacionados entre si y que fueron
definidos por su creador. Por lo general, los archivos representan datos y programas. Un archivo de
datos puede ser numrico, alfabtico o binario. Los archivos pueden ser de formato libre, como los
archivos de texto, o pueden estar rigurosamente formateados. En general, un archivo es una
secuencia de bits, bytes, lneas o registros cuyo significado es definido por el creador del archivo y
por el usuario.
Un archivo se puede manipular como una unidad mediante operaciones tales como abrir,
cerrar, crear, destruir, copiar, renombrar y listar. Los elementos de informacin individuales que
conforman un archivo se pueden manipular con acciones tales como leer, escribir, modificar y
eliminar.
De acuerdo a las caractersticas y tipo de trabajo que se realicen sobre los archivos, estos
pueden caracterizarse por su: Volatilidad, Actividad y Tamao.
Volatilidad
Se refiere a la frecuencia con la que se inserta o elimina informacin.
Actividad.
Se refiere al porcentaje de los elementos de informacin de un archivo al que se tuvo acceso
en un periodo de tiempo dado.
Tamao.
Se refiere a la cantidad de informacin que conforma el archivo.
Archivo fsico.
La informacin vista desde la perspectiva de hardware. Por ejemplo, el archivo 1 est
formado por los sectores 3, 10 y 15 del archivo. Otro ejemplo: el archivo X es la secuencia de bytes
localizados en la RAM en el bloque 0A703h:03000h al 0A703h:04200h.
Archivo lgico.
Son datos cuyo significado esta definido por el usuario. Ejemplo, el archivo Y es la
informacin de 1000 artculos, cada uno con su cdigo, descripcin y precio. Generalmente, un
archivo lgico se representa de manera tabular.
3.12.1 El sistema de archivos de un sistema operativo.
Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos
relacionados con el manejo de Archivos.
Componentes del sistema de archivos.
En general, un Sistema de Archivos est compuesto por: Mtodos De Acceso, Administracin De
Archivos, Administracin De Almacenamiento Secundario, Mecanismos De Integridad.
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.

108

Informtica industrial

Sistemas operativos

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 Integridad. 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.
Organizacin de archivos.
Se refiere a las diferentes maneras en las que puede ser organizada la informacin de los
archivos, as como las diferentes maneras en las que se puede acceder a ella. 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 archivos lgicos. Contempla la organizacin desde el punto de vista lgico. Por ejemplo,
secuencial, directo, etc.
De archivos fsicos. 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.
3.12.2 Mtodos de asignacin de espacio libre
Un mtodo de asignacin de espacio libre determina la manera en que un Sistema Operativo
controla los lugares del disco que no estn siendo ocupados. Para el control del espacio libre se
puede utilizar como base alguno de los mtodos tericos: Vector de Bits, Lista enlazada, Por
Agrupacin y por Contador.
Vector de bits
Se representan en un array de bits el nmero de bits que tiene. Cada sector tendr una
marca para saber si est libre u ocupado, es decir, si los sectores 10 y 11 estn ocupados su
representacin ser:

109

Informtica industrial

Sistemas operativos

Lista enlazada
Existe una cabecera en la que se tiene la direccin del primer sector vaco, ese sector a su
vez, tiene un apuntador al siguiente bloque, y as sucesivamente hasta que se encuentre una marca
indicando que ya no hay espacio libre.

Por agrupacin
Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de
apuntadores a varios espacios vacios, al final de cada bloque se tiene un apuntador a otro grupo de
apuntadores.

Por contador

Con esta tcnica, por cada conjunto de bloques contiguos que estn vacos, se tiene por
cada apuntador, un nmero de inicio y el tamao del grupo de sectores vacos.

110

Informtica industrial

Sistemas operativos

3.12.3 Mtodos de asignacin de espacio en disco.


Un mtodo de asignacin de espacio en disco determina la manera en que un Sistema
Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar
bsicamente la identificacin del archivo, sector de inicio y sector final.
Para el control del espacio ocupado en disco se puede utilizar como base alguno de los mtodos
tericos: Asignacin Contigua, Asignacin Ligada, Asignacin Indexada.
Asignacin contigua.
Este mtodo consiste en asignar el espacio en disco de tal manera que las direcciones de
todos los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo:

Ventajas:
La cabeza de lectura no se mueve
demasiado en la lectura de un archivo.
Desventajas:
Produce fragmentacin externa

Asignacin enlazada

111

Informtica industrial

Sistemas operativos

En este mtodo, cada archivo es una lista ligada de bloques de disco. En el directorio hay un
apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los
bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por ejemplo:

Ventajas:
No produce fragmentacin externa.
Desventajas:

La cabeza de lectura se puede


mover demasiado en la lectura
de un archivo.
Si una liga se pierde, se perder
el archivo completo.
Es
ineficiente
para
la
implementacin de archivos
directos.
Se necesita un campo extra para
el apuntador.

Asignacin indexada
Como ya se vio, la asignacin ligada resuelve problemas de fragmentacin externa, sin
embargo, la asignacin ligada no soporta eficientemente el acceso directo a los archivos. La
asignacin indexada resuelve este problema poniendo todos los apuntadores en una sola localidad:
El bloque ndice.
Cada archivo tiene su bloque ndice, El cual es un arreglo de direcciones de bloques de disco.
La i-sima entrada en el bloque ndice apunta al i-simo bloque que conforma el archivo. En el
directorio se controla la direccin del bloque ndice de cada archivo, por ejemplo:

Ventajas:
No produce fragmentacin externa.
Eficiente para la implementacin de archivos
directos.
Desventajas:

112

Produce fragmentacin interna cuando


los archivos son muy pequeos.
Desbordamiento de bloque ndice.
(Solucin: creacin de un esquema
ligado; el ultimo bloque ndice apunta a
otro ndice)

Informtica industrial

Sistemas operativos

Mtodo FAT (ms-dos)


Un aspecto importante de cualquier Sistema Operativo es la manera de gestionar los
archivos. En el antiguo MS-DOS, la gestin de los archivos era casi todo lo que haca el Sistema
Operativo, esencialmente cuando se ejecutaba Windows de 16 bits sobre l. Windows de 16 bits se
ocupaba de todo a excepcin de la manipulacin de los discos fijos y flexibles, que los dejaba para
MS-DOS.
El objetivo de la FAT es el de asignar espacio en disco para archivos. Esta contiene una
entrada para cada grupo que est en el disco. Cada grupo que est en el disco. Cada grupo es un
conjunto de sectores.
Al querer crear un archivo o revisar uno existente, el sistema operativo revisa las entradas
que estn asociadas a la FAT de acuerdo con la ubicacin del archivo.
Despues de la version 3, la entrada depende del numero de cluster, o sea, que si excede de
4096 bytes se utilizarn 16 bits para el direccionamiento.
El area de sistema tiene 3 componentes: Registro de arranque, FAT y directorio. La tabla
tiene una captacion por bloque, sta define cuantos bloques tiene el primer archivo. Esta ranura de la
FAT contiene el nmero de bloque del siguiente bloque.
3.13 GESTIN DE E/S
Objetivos en el diseo de e/s
Eficiencia: la mayora de los dispositivos de I/O son extremadamente lentos comparados
con la memoria principal y el procesador. Por esto se necesita la multiprogramacin. Permite que
algunos procesos esperen en las operaciones de I/O mientras otro se ejecuta. Sin embargo, se sigue
malgastando tiempo de procesador. Para esto se puede utilizar Swapping, que trae procesos listos
adicionales para mantener al procesador ocupado. Finalmente, el mejor esfuerzo de programa de
diseo para mejorar la eficiencia de I/O fue el propio disco de I/O.
Uniformidad: se trata de manejar un numero de dispositivos de manera uniforme. Como es
difcil alcanzar generalidad entre las distintas caractersticas de los dispositivos, se utiliza un
mecanismo para el diseo de los dispositivos de I/O que se encarga de esconder la mayora de los
detalles de los dispositivos en el nivel mas bajo de rutinas para que los procesos y los niveles mas
altos del SO vean a los dispositivos como funciones generales. Ej.: leer, cerrar, abrir, etc

Tcnicas para la organizacin de la funcin de e/s


E/S programada: En el procesador se activa un comando de I/O, en representacin de un proceso y
hacia un modulo de I/O, luego ese proceso tiene tiempos de espera hasta que la operacin se
complete para proceder. Ejecuta cuatro tipos de comandos: control, verificacin, lectura y escritura.
E/S por interrupciones: Es igual que el anterior pero antes de terminar la operacin o las
instrucciones, el modulo de I/O enva una seal de interrupcin. Se suspende el proceso y se prepara
otro trabajo. Esto incrementa la eficiencia.
Acceso directo a memoria (DMA): Controla el intercambio de datos entre la memoria principal y el
modulo de I/O. El procesador enva una peticin de transferencia de un bloque de datos a la DMA y
se interrumpe solo cuando todo el bloque es transferido. El procesador solo se involucra al principio y
al final del proceso.

113

Informtica industrial

Sistemas operativos

Canales de e/s
El canal de E/S es una extensin del concepto de DMA. Un canal de E/S tiene la capacidad
de ejecutar instrucciones de E/S, lo que le da un control total sobre las operaciones de E/S. En un
sistema informtico que conste de tales dispositivos, las instrucciones de E/S se almacenan en la
memoria principal y sern ejecutadas por un procesador de propsito especfico en el mismo canal
de E/S. As, la CPU inicia una transferencia de E/S ordenando al canal que ejecute un programa en
la memoria. Los canales de E/S pueden realizar las transferencias de datos en serie o en paralelo.
Hay dos tipos comunes de canales de E/S:

Canal selector: controla varios dispositivos y transfiere datos de estos dispositivos, uno por
vez.

Canal multiplexor: puede manejar la E/S con varios dispositivos al mismo tiempo.
Almacenamiento intermedio de e/s

A veces es conveniente llevar a cabo las transferencias de entrada por adelantado a las
peticiones y realizar las transferencias de salida un tiempo despus de hacer la peticin. Esta
tcnica se conoce con el nombre de almacenamiento intermedio (buffering).
Las unidades de almacenamiento intermedio son denominadas buffers. Los Buffers
previenen varias ineficiencias entre los procesos y hasta deadlocks. Es una tcnica para realizar
transferencias de entrada por adelantado a algn pedido hecho o transferencias de salida luego de
que el pedido fuera hecho. Estn soportados por el SO para mejorar la performance del sistema.
Single Buffer: Es el tipo ms simple de soporte que puede proveer el SO. Cuando un proceso de
usuario hace un pedido de I/O, el SO asigna un buffer en una porcin del sistema de la memoria
principal para la operacin. Las transferencias de entrada se realizan al buffer del sistema. Cuando
se ha completado la transferencia, el proceso mueve el bloque al espacio del usuario y pide otro
bloque inmediatamente. Esta tcnica se conoce como lectura por adelantado o entrada anticipada.
Double Buffer: Es una mejora que consiste en asignar dos buffers del sistema a la operacin. El
proceso transmite datos al o desde un buffer mientras el SO llena (o vaca) el otro. A esta tcnica se
la llama double buffering o buffer swapping.
Circular Buffer: el buffer doble puede ser inapropiado si el proceso lleva a cabo rpidas rfagas de
E/S. En este caso, el problema puede mitigarse usando ms de dos buffers. Cuando se emplean ms
de dos, el conjunto de buffers se conoce como buffer circular. Este es, sencillamente, el modelo
productor/consumidor con buffer limitado, que ya ha sido estudiado
3.13.1 Planificacin de discos
Discos de cabezas mviles
Superficies magnticas + cabezas de L/E.

Las superficies se dividen en pistas y sectores.


Las cabezas se mueven al unsono, delimitando cilindros.

Las operaciones de L/E

indican nmero de pista o cilindro, superficie y sector.

114

Informtica industrial

Sistemas operativos

El tiempo que tarda en atenderse una solicitud de L/E se desglosa en:


Tiempo de bsqueda, para situar las cabezas en el cilindro al que se desea acceder.
Arranque, desplazamiento y detencin.
Tiempo de latencia, esperando a que el sector deseado pase por debajo de la cabeza.
Valor promedio: medio giro.
Tiempo de transferencia, determinado por la tasa de datos del disco.
Tiempo de espera en la cola de E/S.
Planificacin
Los tiempos de bsqueda y latencia dependen de la ltima solicitud servida.
La planificacin busca un orden de servicio para reducir esos tiempos, sin perder de vista el
de espera en cola.
Los algoritmos ms habituales (para discos de cabezas mviles) se centran en los tiempos
de bsqueda.
Ejemplo:
Disco de 200 cilindros (200 pistas/superficie).
Cola de solicitudes a los cilindros 98, 183, 37, 122, 14, 124, 65 y 67.
Cabezas inicialmente posicionadas en el cilindro 53.
Algoritmos de planificacin
FCFS (First Come, First Served):
Se atienden las solicitudes en orden de llegada.
Fcil de programar, y equitativo en los tiempos de espera en cola.
Al no tener en cuenta la geometra del disco, se pueden registrar grandes desplazamientos
de las cabezas.
Tiempos de espera elevados.
SSTF (Shortest Seek Time First):
Se atiende la solicitud con el menor tiempo de bsqueda desde la posicin actual de las cabezas:
Las peticiones de L/E en zonas alejadas pueden sufrir inanicin.
SSTF no es ptimo, en el sentido de minimizar el desplazamiento de las cabezas para un
conjunto de solicitudes dado.
El algoritmo ptimo supone un coste computacional excesivo, y mantiene el riesgo de
inanicin.
SCAN
La estrategia es ir recorriendo todas las pistas en una direccin y satisfaciendo todas las
peticiones que se encuentran en el camino, hasta que se alcanza la ltima pista. En este punto se
invierte el sentido del recorrido y la bsqueda prosigue de la misma forma:
Tiempos de servicio acotados, y ms variables en los extremos que en el centro.
C-SCAN (Scan circular)
Restringe el rastreo en una nica direccin. As cuando se ha visitado la ltima pista en una
direccin, la cabeza vuelve al extremo opuesto del disco y comienza otra vez la exploracin
La mayor densidad estar en el extremo opuesto, con las solicitudes que llevan ms tiempo
esperando.
Tiempos de espera ms uniformes.
El retorno consume relativamente poco tiempo, porque se hace sin paradas.
115

Informtica industrial

Sistemas operativos

LOOK
variante de SCAN, sino hay peticiones pendientes en la direccin actual se cambia el sentido del
movimiento
C-LOOK
Variante de C-SCAN, sino hay peticiones pendientes en la direccin actual se comienza otra
vez la exploracin
Eleccin del mejor algoritmos
Con poca carga de E/S, todos los algoritmos tienen un rendimiento similar.

En condiciones de carga elevada,


FCFS es equitativo pero ineficiente.
SSTF puede provocar inanicin.
(C-)SCAN tendr un rendimiento similar a (C-)LOOK, porque siempre habr
solicitudes en los extremos.
El algoritmo ms empleado en sistemas de propsito general es C-SCAN.
Sistemas de tiempo real o multimedia requieren soluciones especficas.

Ejercicio: Un disco que posee 200 pistas (numeradas de 0 al 199) tiene la siguiente cola de
peticiones de acceso:
81, 142, 86, 172, 89, 145, 97, 170, 125
Cul es la longitud media de bsqueda para satisfacer estas solicitudes con los siguientes
algoritmos de planificacin del disco?
a) Planificacin FCFS
b) Planificacin SSTF
c) Planificacin SCAN
d) Planificacin C-SCAN
e) Planificacin LOOK
e) Planificacin C-LOOK
Para llevar a cabo este ejercicio se va a suponer que inicialmente la cabeza se halla en la pista 100
a) Planificacin FCFS
En este algoritmo la primera peticin que llega es la primera que se sirve:
Pista a la que se accede:

81 142 86 172 89 145 97 170 12

N de pistas que se atraviesa: 19 61 56 86 83 56 48 73 45


media =58.5
b) Planificacin SSTF
Este algoritmo consiste en atender la peticin que requiere el menor movimiento de la cabeza de
lectura/escritura desde su posicin actual
Pista a la que se accede : 97 89 86 81 125 142 145 170 172
N de pistas que se atraviesan : 3 8 3 5 44 17 3 25 2

116

Informtica industrial

Sistemas operativos

media =12.2
c) Planificacin SCAN:
En este algoritmo se van recorriendo todas las pistas en una direccin y satisfaciendo todas las
peticiones que se encuentran en el camino hasta alcanzar la ltima pista. En ese punto se invierte el
sentido del recorrido y la bsqueda prosigue de la misma forma:
Pista a la que se accede : 97 89 86 81 125 142 145 170 172
N de pistas que se atraviesan : 3 8 3 5 206 17 3 25 2
media = 30,22
d) Planificacin C-SCAN:
En este caso se restringe el rastreo en una nica direccin
Pista a la que se accede : 97 89 86 81 172 170 145 142 125
N de pistas que se atraviesan : 3 8 3 5 253 2 25 3 17
media=35,4
e) Planificacin LOOK:
En este algoritmo se van recorriendo todas las pistas en una direccin y satisfaciendo todas las
peticiones que se encuentran en el camino hasta alcanzar la ltima peticin. En ese punto se invierte
el sentido del recorrido y la bsqueda prosigue de la misma forma:
Pista a la que se accede : 97 89 86 81 125 142 145 170 172
N de pistas que se atraviesan : 3 8 3 5 44 17 3 25 2
media=12,22
f) Planificacin C-LOOK:
En este caso se restringe el rastreo en una nica direccin pero hasta la ltima peticin
Pista a la que se accede : 97 89 86 81 172 170 145 142 125
N de pistas que se atraviesan : 3 8 3 5 91 2 25 3 17
media=17,4

117

También podría gustarte