0% encontró este documento útil (0 votos)
765 vistas362 páginas

Sistemas Operativos Flynn Mchoes PDF

Cargado por

molivares87
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
765 vistas362 páginas

Sistemas Operativos Flynn Mchoes PDF

Cargado por

molivares87
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 362

CONTENIDO

Pgina
INTRODUCCION
OBJETIVOS
UNIDAD 1. TEORIA DE LOS SISTEMAS OPERATIVOS
Introduccin
Objetivos
Captulo 1. Principios de los sistemas operativos
1. Concepto de sistema operativo
2. Estructura de un sistema computacional
3. Historia de los sistemas operativos
4. Conceptos de sistemas operativos
Captulo 2. Caractersticas de los sistemas operativos
1. Funciones de los sistemas operativos
2. Tipos de sistemas operativos
3. Estructura de los sistemas operativos
4. Ncleos de sistemas operativos
Captulo 3. Interbloqueo
1. Recursos
2. Anlisis
3. Condiciones para producir un interbloqueo
4. Mtodos para manejar el interbloqueo
5. Prevencin del interbloqueo
6. Evasin del interbloqueo
7. Mecanismos para evitar el interbloqueo
8. Nivel de implantacin de estrategias
9. Deteccin y recuperacin
Captulo 4. Arquitectura cliente servidor
1. Antecedentes
2. Cliente /servidor
3. Componentes esenciales de la infraestructura cliente/servidor
4. Caractersticas funcionales
5. Caractersticas fsicas
6. Caractersticas lgicas
7. Middleware robusto y escalable en soluciones Cliente/Servidor
8. Anlisis de las diferentes variantes de la arquitectura C/S
9. Arquitecturas Cliente/Servidor independientes de plataforma
10. Condiciones para la implantacin del modelo Cliente/Servidor
11. Costos y beneficios de Cliente/Servidor
12. Fases de implantacin
Bibliografa

1
4
5
5
6
7
7
9
21
25
30
30
32
46
49
53
53
56
60
61
62
66
67
74
76
82
82
85
87
88
90
91
91
95
97
100
101
103
107

UNIDAD 2. ADMINISTRACION DE RECURSOS


Introduccin
Objetivos
Captulo 1. Administracin de los procesos
1. Introduccin a los procesos
2. Hebras de control (Threads)
3. Comunicacin entre procesos
4. Sincronizacin de procesos
5. Planificacin de procesos-Scheduling-Itineracin de procesos
Captulo 2. Administracin de la memoria
1. Estructura general
2. Manejo de memoria en sistemas monousuario sin intercambio
3. Multiprogramacin en memoria real
4. Multiprogramacin en memoria virtual
5. Algoritmos de reemplazo de pginas
Captulo 3. Administracin de dispositivos
1. Entrada/Salida
2. Dispositivos de Entrada/Salida
3. Controladores de Dispositivos ( Terminales y Discos Duros)
4. Principios en el Software de Entrada - Salida
5. Relojes
6. Puertas y buses
7. Protocolos de interaccin
Captulo 4. Administracin de archivos
1. El sistema de archivos
2. Mtodos de acceso
3. Directorios
4. Proteccin
5. Estructura de archivos
6. Mtodos de asignacin
7. Tipos de sistemas de archivo
8. Mecanismos de proteccin de los ficheros
9. Administracin del espacio libre
Captulo 5. Proteccin y seguridad
1. Proteccin
2. Objetivos de la proteccin
3. Dominios de la proteccin
4. Matriz de acceso
5. Seguridad
6. Autenticacin
7. Amenazas
8. Encriptacin
9. Clasificacin de seguridad

109
109
110
111
111
119
121
125
130
142
142
142
143
147
161
169
169
170
171
172
173
173
175
178
178
180
182
184
186
188
193
195
198
200
200
200
201
203
204
205
206
208
211

UNIDAD 3. PRINCIPALES SISTEMAS OPERATIVOS


Introduccin
Objetivos
Captulo 1. Sistemas operativos Familia Windows
1. Windows 95
2. Windows 98
3. Windows 2000
4. Windows Server 2003
5. Windows XP
6. Windows NT
7. Instalacin Windows XP/2003
8. Resumen de los principales sistemas operativos Windows
Captulo 2. Sistema operativo UNIX/LINUX
1. Historia
2. Arquitectura de Unix y Linux
3. Versiones y caractersticas Linux/Unix
4. Instalacin del sistema
5. La interfaz de usuario
6. Estructura de archivos
7. Variables de entorno
8. Administracin del sistema
9. Montando sistemas de ficheros
10. Instalacin de impresoras y gestin de la impresin
11. Resumen de rdenes bsicas
Captulo 3. Otros sistemas operativos
1. Novell Netware
2. Sistema operativo OS/2
3. El sistema operativo VMS (Virtual Memory System)
Captulo 4. Arquitectura de las comunicaciones
1. El modelo arquitectnico de capas de red
2. El modelo de referencia OSI
3. Otras arquitecturas y redes
Bibliografa

214
214
216
217
218
221
227
231
236
243
255
265
267
267
269
277
281
292
302
307
308
317
320
324
328
328
336
341
346
346
347
349
357

Sistemas Operativos 1

INTRODUCCIN

Este mdulo est diseado para aquellas personas interesadas en abordar


temticas relacionadas con el campo de los sistemas operativos: teora y
aplicacin. Trata de acercarlas a los aspectos ms importantes que encierran los
sistemas operativos, ubicando caractersticas bsicas tanto a nivel de PC como a
nivel de infraestructura de red.
Por ello y para ello, se presenta el mdulo Sistemas Operativos, como una
alternativa de solucin para esa bsqueda de enfoques multidisciplinarios, y por lo
tanto, aplicables a cualquier sistema que se desee analizar o implementar.
As, teniendo en cuenta que en absolutamente cualquier rea de la ingeniera de
sistemas en la que nos desempeemos o queramos desempearnos vamos a
trabajar con sistemas operativos: implementandolos, administrndolos,
diseandolos, desarrollandolos, utilizandolos, enseandolos y resolviendo
problemas que ahora sern ms fciles de solucionar, pues uno de los objetivos
primordiales es el de estudiar a fondo su estructura para eliminar cualquier
complejidad que tengamos con respecto al tema.
El sistema operativo es una parte fundamental de cualquier sistema
computacional, lo que nos lleva a confirmar, an ms, la importancia de su
conocimiento y manejo, y ms en nuestra formacin como ingenieros de sistemas.
Es bueno aclarar que no es un mdulo orientado hacia la gua e instalacin de
algunos sistemas operativos. Considerando que estamos trabajando en el ciclo
profesional, no se torna relevante, por varias razones:
-

Ahora con la gama de asistentes grficos disponibles para la instalacin,


este proceso se torna en tarea sencilla, hasta para un usuario novato.
Se ha pasado por una serie de cursos en los que ya han trabajado, la
instalacin de sistemas operativos, por lo menos, para computadores
personales.

Al contrario, es un mdulo que brinda toda la documentacin e informacin relativa


a las caractersticas, estructura, diseo, componentes que ayudan a conocer de
forma integral un sistema operativo, para que podamos administrarlo de la mejor
manera y sacar el mximo provecho a todas sus capacidades e incluso podamos
enfrentarnos al reto de disear o adecuar nuestro propio sistema operativo.

Sistemas Operativos 2

Con el fin de afianzar el aprendizaje de los contenidos, as como el de las


habilidades, a lo largo de los captulos se incluyen ejercicios y/o ejemplos que
sirven como activacin cognitiva, para ubicar a los interesados en el contexto a
desarrollar, tambin en algunos casos para reforzar o reafirmar una temtica y al
final de cada captulo se encuentran ejercicios que servirn para la transferencia
de los contenidos desarrollados a las diferentes prcticas de laboratorios a
situaciones cotidianas o laborales y a sus intereses tanto profesionales como
personales.
Los ejercicios propuestos vienen diseados para que se resuelvan de manera
individual, como actividad complementaria o para resolverlo en grupos de trabajo y
as profundizar en los contenidos relacionados y para desarrollar habilidades como
comunicacin oral, comunicacin escrita y trabajo colaborativo.
Este mdulo es el resultado de un trabajo extenso de consulta, investigacin
bibliogrfica y sistematizacin de experiencias, el cual sirvi para la consolidacin
de la informacin, contenidos temticos y ejercicios con el fin de brindar, adems,
una herramienta de consulta apropiada al curso acadmico, ala metodologa de
trabajo y a las necesidades que pretende cubrir cada persona.
Por ello en cada unidad didctica se encuentra una seccin bibliogrfica
recomendada, incluyendo direcciones de Internet con las que se puede ir ms all
en el logro de los objetivos propuestos.
El desarrollo temtico de los captulos contempla, intrnsecamete, la articulacin
de cada una de las fases del proceso de aprendizaje como son: reconocimiento,
profundizacin y transferencia, logrando una coherencia metodolgica con la gua
de actividades propuesta.
Laa unidades didcticas que lo conforman son tres, equivalentes al nmero de
crditos asignados al curso acadmico. La primera y ltima unidad didctica
poseen cuatro captulos cada una, y la segunda unidad consta de cinco captulos.
La primera unidad, Teora de los sistemas operativos, est orientado a acercar al
interesado en los conceptos bsicos y definicin de lo que es un sistema
operativo. En esta unidad se desarrollan captulos como: Principios de los
sistemas operativos, Caractersticas de los sistemas operativos, Interbloqueo y
arquitectura cliente/servidor. Todos ellos para introducirnos al mundo de los
sistemas operacionales, su historia, evolucin, clasificacin, estructura e
infraestructura de aplicacin.
Ya revisadas las bases tericas y funciones principales, estamos listos para
continuar el tema de cmo gestionan y administran los diferentes recursos del
sistema computacional, tema que le corresponde a la Unidad Didctica 2.

Sistemas Operativos 3

Administracin de Recursos. Dichos recursos los aborda el curso as: En el


Captulo 1. La administracin de los procesos, en el captulo 2. Administracin de
la memoria, en el tercero Administracin de dispositivos, en el cuarto
Administracin de archivos; y por ltimo y como parte fundamental de un SO est
la proteccin y seguridad.
Con esta temtica terminamos de conocer a fondo cmo es un SO, cmo est
organizado interna y externamente, para as poder brindar el adecuado soporte a
cualquier sistema monosusuario o multisusuario que se nos presente.
Ahora queda solamente aplicar toda la fundamentacin terica desarrollada en las
dos unidades iniciales a los principales sistemas operativos del mercado. De esto
se encarga la unidad didctica 3. Principales sistemas operativos, que realiza una
clasificacin de la siguiente manera: En primer lugar los sistemas operativos de la
familia Windows, en segundo lugar el sistema operativo UNIX/LINUX y en la
agrupacin Otros sistemas operativos se habla de sistemas como novell, OS/2 y
VMS.
Por ltimo, finaliza el mdulo con el captulo concerniente a Arquitectura de las
comunicaciones, considerndolo bsico para acercarnos, de manera muy general,
a las diferentes arquitecturas de red en las que se deben instalar y manejar los
SO.
Este mdulo fue desarrollado tomando como referencia documentacin y estudios
realizados de los diferentes sistemas operativos, en cada uno de los captulos, se
relacionan las fuentes bibliogrficas especficas sobre las cuales se trabaj.
Adems es importante recordar, que este mdulo debe ir articulado con las
diferentes actividades planteadas en la gua didctica, pues es un curso
metodolgico, es decir tiene un componente de aplicacin y trabajo en grupo.
Por ltimo, y como siempre, recomiendo que para facilitar el aprendizaje es
importante consultar la bibliografa descrita, utilizar la biblioteca virtual y el acceso
a Internet, con esto se est potenciando la capacidad de investigacin y de auto
gestin para llegar al conocimiento, segn sean los logros y/o debilidades
encontradas en cada uno de los pasos del proceso a seguir.
Recuerden que el xito del proceso slo depende de cada uno, de sus intereses
yy de sus necesidades.

Sistemas Operativos 4

OBJETIVOS
1. Fundamentar, desde un principio, la estructura, funcionamiento y
administracin de recursos de los sistemas operativos, como base para el
anlisis y diseo de sistemas de comunicacin.
2. Relacionar los principios, estructuras, aplicacin y tipos de sistemas
operativos con las caractersticas y funcionamiento de algunos de los
principales sistemas operativos.
3. Conocer e identificar de manera clara los conceptos, elementos,
caractersticas, propiedades de los sistemas operativos y su relacin con el
campo de aplicacin, teniendo en cuenta la integracin de elementos
tecnolgicos y organizacionales.
4. Determinar y sustentar la aplicacin de los sistemas operativos segn las
caractersticas, ventajas de instalacin y administracin de recursos.

Sistemas Operativos 5

UNIDAD DIDCTICA 1
TEORA DE LOS SISTEMAS OPERATIVOS
INTRODUCCIN
Aunque en este nivel de estudios, se supone que ya hemos visto, trabajado y
explotado algunos de los sistemas operativos del mercado, muy seguramente no
conocemos a fondo la teora en la cual se basa su diseo y desarrollo. Y esto
aunque a veces no lo reconocemos es fundamental a la hora de aprovechar al
mximo los recursos de un sistema computacional cualquiera.
Aqu se explica qu son los sistemas operativos, qu hacen y cmo estn
diseados y construidos. Se explica cmo se ha desarrollado el concepto de un
sistema operativo, cules son sus caractersticas comunes y lo que hace el
sistema operativo para el usuario y para el administrador del sistema de cmputo.
Esta unidad es apropiada para los estudiantes que se inician en esta materia y
para aquellos que son expertos pero desean saber ms acerca de los detalles
internos de los mismos.

Sistemas Operativos 6

OBJETIVOS
1. Explorar los principios de los sistemas operativos, como conceptos, estructura
historia y evolucin.
2. Diferenciar con exactitud los diversos tipos de sistemas operativos,
identificando claramente sus caractersticas funcionales y de diseo.
3. Reconocer el Interbloqueo, como el principal problema que debe solucionar
cualquier sistema operativo, identificando sus caractersticas y alternativas de
solucin existentes.
4. Identificar la estructura fsica y organizacional de la arquitectura cliente
servidor, como principal esquema de trabajo de los sistemas operativos.

Sistemas Operativos 7

CAPTULO 1. PRINCIPIOS DE LOS SISTEMAS OPERATIVOS


Actividad inicial:
Recordemos cul es el concepto de sistema operativo. Y reflexionemos de
forma individual con respecto a:
- Ha trabajado con algn sistema operativo?
- Con cul o cules?
- Tiene un sistema operativo favorito? Diga cul y porqu?
- Conoce algo acerca de la estructura interna de un sistema operativo?
- Conoce una estructura especfica de un sistema operativo cualquiera?
Enseguida de esta reflexin aborde toda la temtica y concluya.

1.1 Concepto de sistema operativo


Conceptuar el trmino sistema operativo ( S.O como se nombra en algunas
partes del mdulo) no es simple, precisamente es el objetivo primordial del
mdulo. Existen diversas definiciones de lo que es un sistema operativo, pero no
hay una definicin exacta, es decir una que sea estndar; a continuacin se
presentan algunas:
Un sistema operativo es un programa que acta como intermediario entre el
usuario y el hardware de un computador y su propsito es proporcionar un
entorno en el cual el usuario pueda ejecutar programas.
Un sistema operativo es el cdigo que acompaa la ejecucin de cualquier
aplicacin.
Un sistema operativo es un programa que dirige y administra los recursos de
un sistema computacional. Provee un conjunto de cualidades que facilitan el
acceso de las aplicaciones a estos recursos, buscando siempre independencia
del hardware.
Un sistema operativo es la parte del sistema de cmputo que administra el
hardware y el software.
Un sistema operativo es un conjunto de programas que ordenadamente
relacionados entre si, contribuyen a que el hardware de la computadora lleve a
cabo su trabajo correctamente.
Un sistema operativo es el soporte lgico que controla el funcionamiento del
equipo fsico.
Un sistema operativo es el programa que oculta la verdad del hardware al
programador y presenta una vista simple y agradable de los archivos
nominados que pueden leerse y escribirse.

Sistemas Operativos 8

Una definicin que llama mucho la atencin y particularmente comparto es:


Un sistema operativo es un programa cuya estructura es lo suficientemente
general para independizarse del hardware, pero la implementacin debe ser lo
suficientemente particular para aprovechar de forma eficiente el hardware.
Existen definiciones ms amplias y un poco ms especficas, como:
Se pueden imaginar un sistema operativo como los programas, instalados en
el software o firmware, que hacen utilizable el hardware. El hardware
proporciona la "capacidad bruta de cmputo"; los sistemas operativos ponen
dicha capacidad de cmputo al alcance de los usuarios y administran
cuidadosamente el hardware para lograr un buen rendimiento.
Los sistemas operativos son ante todo administradores de recursos; el
principal recurso que administran es el hardware del computador; adems de
los procesadores, los medios de almacenamiento, los dispositivos de
entrada/salida, los dispositivos de comunicacin y los datos
El objetivo principal de un sistema operativo es, lograr que el sistema de
computacin se use de manera cmoda, y el objetivo secundario es que el
hardware del computador se emplee de manera eficiente
Un sistema operativo es un conjunto de programas que controla la ejecucin
de programas de aplicacin y acta como una interfaz entre el usuario y el
hardware de una computadora, esto es, un sistema operativo explota y
administra los recursos de hardware de la computadora con el objeto de
proporcionar un conjunto de servicios a los usuarios del sistema.
En resumen, se podra decir que los sistemas operativos son un conjunto de
programas que crean la interfaz del hardware con el usuario, y que tiene dos
funciones primordiales, que son:
Gestionar el hardware: Se refiere al hecho de administrar de una forma
ms eficiente los recursos de la mquina.
Facilitar el trabajo al usuario: Permite una comunicacin con los
dispositivos de la mquina.
Si se analizan con detenimiento cada una de las anteriores definiciones, se puede
concluir que en general un sistema operativo se describe desde dos puntos de
vista:
Usuario final y,
Usuario administrador.

Sistemas Operativos 9

Queda, entonces, revisar los conceptos dados y determinar a cul punto de vista
corresponde cada uno.
A lo largo del curso se va a trabajar la concepcin de sistema operativo como:
Aquella herramienta lgica que proporciona al usuario un entorno amigable, permite
interactuar y establecer una comunicacin entre el hardware (componentes fsicos) y el
software (aplicaciones) de un sistema de cmputo.

Grfica 1. Concepcin de sistema operativo


SISTEMA DE CMPUTO

SOFTWARE
(Aplicaciones)

SISTEMA OPERATIVO

HARDWARE
(Componentes Fsicos)

USUARIO

1.2 Estructura de un sistema computacional


Un sistema operativo es una parte importante de cualquier sistema de
computacin.
Un sistema computacional es una plataforma sobre la cual se construyen los
llamados sistemas de informacin, hoy en da, necesarios para la administracin
exitosa de cualquier organizacin.
Un sistema de computacin puede dividirse en cuatro componentes: el hardware,
el sistema operativo, los programas de aplicacin y los usuarios.

Sistemas Operativos 10

El hardware (Unidad Central de Procesamiento (CPU), memoria y dispositivos de


entrada/salida (E/S)) proporcionan los recursos de computacin bsicos.
Los programas de aplicacin definen la forma en que estos recursos se emplean
para resolver los problemas de computacin de los usuarios. Se pueden dividir en
programas de sistemas como compiladores, assembler, editores, herramientas de
monitoreo y mantencin; y en aplicaciones propiamente dichas como sistemas de
bases de datos, juegos de video, programas para negocios, navegadores, etc.
Grfica 2. Estructura de un sistema computacional
Usuario 1

Usuario 2

Usuario 3

Usuario n

Aplicaciones

Usuario final

Programador

Programas de sistemas
Diseador de traductores

Sistema operativo
Hardware

Diseadores S.O
Constructores

El sistema operativo se encuentra almacenado en la memoria secundaria. Primero


se carga y ejecuta un pedazo de cdigo que se encuentra en el procesador, el
cual carga el BIOS, y este a su vez carga el sistema operativo que carga todos los
programas de aplicacin y software variado.
Antes de entrar a considerar los detalles de un S.O. se necesitan conocer los
bloques de hardware que componen un sistema computacional.
Como la funcin principal de un S.O. es aliviar las tareas de E/S, revisaremos los
dispositivos y estructura de la entrada y salida de un sistema computacional.
Tambin examinaremos los mecanismos de proteccin que provee la CPU para el
S.O.
Veamos:

Sistemas Operativos 11

1.2.1. Operacin de un sistema computacional


Un sistema computacional consiste en una CPU y un nmero de dispositivos que
tienen acceso a una memoria comn va un bus de interconexin.
Los controladores de dispositivos se encargan de determinados dispositivos:
discos, audio, mouse, mdem, etc.
La CPU y los dispositivos pueden actuar en forma concurrente. Slo compiten por
el acceso a la memoria que es comn.
El controlador de memoria provee un acceso sincronizado a la memoria RAM.
Grfica 3. Sistema de entrada/salida E/S (Input-output I/O)1

a. Partida
En la partida se necesita un programa inicial. Este programa se llama bootstrap. El
bootstrap inicializa todo el sistema: registros de CPU, controladores de
dispositivos, memoria, etc.
El primer proceso que ejecuta el S.O. Se llama init. Init espera la ocurrencia de
algn evento.
1

CAAS R, Javier (2002). Curso sistemas operativos (Formato .pdf). Captulo 2, p. 3

Sistemas Operativos 12

b. Interrupciones
Una interrupcin es un evento que altera la secuencia en que el procesador
ejecuta las instrucciones. La interrupcin es generada por el hardware del sistema
de cmputo.
El sistema de interrupciones es una parte muy importante de la arquitectura de un
computador.
Los sistemas operativos modernos son sistemas que reaccionan ante
interrupciones, es decir, si no hay E/S, ni procesos ejecutndose, el S.O. est
quieto y atento a que ocurra alguna interrupcin.
Qu ocurre con el S.O ante una interrupcin?
El sistema operativo toma el control (es decir, el hardware pasa el control al
sistema operativo).
El sistema operativo guarda el estado del proceso interrumpido. En muchos
sistemas esta informacin se guarda en el bloque de control de proceso
interrumpido.
El sistema operativo analiza la interrupcin y transfiere el control a la rutina
apropiada para atenderla; en muchos sistemas actuales el hardware se
encarga de esto automticamente.
La rutina del manejador de interrupciones procesa la interrupcin.
Se restablece el estado del proceso interrumpido (o del siguiente proceso).
Se ejecuta el proceso interrumpido (o el siguiente proceso).
Una interrupcin puede ser iniciada especficamente por un proceso en ejecucin
(en cuyo caso se suele denominar (trap), y se dice que est sincronizada con la
operacin del proceso) o puede ser causada por algn evento que puede estar
relacionado o no con el proceso en ejecucin (en cuyo caso se dice que es
asncrona con la operacin del proceso).
Los sistemas orientados hacia las interrupciones pueden sobrecargarse. Si estas
llegan con mucha frecuencia, el sistema no ser capaz de atenderlas. En algunos
sistemas orientados hacia el teclado, cada tecla presionada almacena en la
memoria un cdigo de un byte y genera una interrupcin para informar a la CPU
que un carcter est listo para ser procesado. Si la CPU no puede procesar el
dato antes de que se presione la siguiente tecla, se pierde el primer carcter.
Clases de Interrupciones
Existen seis clases de interrupciones:
Interrupciones SVC (supervisor call, llamadas al supervisor). Son
iniciadas por un proceso en ejecucin que ejecute la instruccin SVC. Una

Sistemas Operativos 13

SVC es una peticin generada por el usuario de un servicio particular del


sistema, como realizar una operacin de entrada/salida, obtener ms
memoria o comunicarse con el operador del sistema. El mecanismo de las
SVC ayuda a proteger el sistema operativo de las acciones de los usuarios.
Un usuario no puede entrar arbitrariamente al sistema operativo, sino que
debe solicitar un servicio por medio de una SVC. El sistema operativo est
al tanto de todos los usuarios que intentan rebasar sus lmites y puede
rechazar ciertas peticiones si el usuario no tiene los privilegios necesarios.
Interrupciones de E/S. Son iniciadas por hardware de entrada y salida.
Estas interrupciones indican a la CPU el cambio de estado de un canal o
dispositivo. Las interrupciones de E/S se producen cuando finaliza una
operacin de E/S o cuando un dispositivo pasa al estado listo.
Interrupciones externas. Son causadas por diversos eventos, incluyendo
la expiracin de un cuantum de un reloj que interrumpe, la pulsacin de la
tecla de interrupcin de la consola o la recepcin de una seal procedente
de otro procesador en un sistema de mltiples procesadores.
Interrupciones de reinicio. Se produce cuando se presiona el botn de
reinicio de la PC o cuando llega de otro procesador una instruccin de
reinicio en un sistema de multiprocesamiento.
Interrupciones de verificacin del programa. Son causadas por una
amplia clase de problemas que pueden ocurrir cuando se ejecutan las
instrucciones en lenguaje de mquina de un programa. Dichos problemas
incluyen la divisin entre cero, el exceso o defecto de los nmeros que
pueden ser manejados por las operaciones aritmticas, el intento de hacer
referencia a una localidad de memoria que est fuera de los lmites de la
memoria real. Muchos sistemas ofrecen a los usuarios la opcin de
especificar las rutinas que deben ejecutarse cuando ocurra una interrupcin
de verificacin del programa.
Interrupciones de verificacin de la mquina. Son ocasionadas por el
mal funcionamiento del hardware.

Sistemas Operativos 14

Grfica 4. Interrupciones de Hardware2

1.2.2 Estructura del sistema de E/S


Para iniciar una operacin de E/S, el S.O. carga registros apropiados de los
controladores de dispositivos. El controlador examina el registro, inicia la
operacin e informa de su trmino a la CPU mediante una interrupcin
La E/S puede ser sincrnica o asincrnica respecto al proceso que la inicia.
a. E/S sincrnica y asincrnica
Sincrnica:
Se inicia la operacin de E/S.
Al finalizar la transferencia el control vuelve al proceso usuario.
Asincrnica:
El control vuelve al proceso usuario sin necesidad de esperar el trmino
de la transferencia.
b. El acceso directo a memoria (DMA)
Una forma de mejorar el desempeo de un sistema computacional es liberar a la
CPU del control de la transferencia del Buffer del controlador a la memoria
principal. De esta forma se genera slo una interrupcin por bloque en vez de una
interrupcin por Byte
2

Ibid. Captulo 2. p. 4

Sistemas Operativos 15

Grfica 5. Acceso directo a memoria3

c. La memoria principal
La memoria principal (RAM) y el archivo de registro son el nico almacenamiento
que la CPU puede accesar directamente.
Cmo accesar mediante un programa los dispositivos?
Muchos computadores proveen memory-mapped i/o (dispositivos mapeados en
memoria principal).
d. memory-mapped i/o
Esta modalidad considera a los registros de los dispositivos mapeados en
determinadas direcciones de la memoria principal. El programa slo debe hacer
referencia a determinadas direcciones de memoria para iniciar transferencias.
Por ejemplo en los PC, cada punto de la pantalla de video est mapeada a una
determinada direccin de memoria.
e. Discos
Los discos permiten almacenamiento masivo.
Las velocidades de rotacin varan entre 60 a 150 Hz.
Los tiempos involucrados en una transferencia son:
- Tiempo de transferencia (velocidad angular)
- Tiempo rotacional
- Tiempo de seek
3

Ibid. Captulo 2. p. 8

Sistemas Operativos 16

Grfica 6. Organizacin de un disco4

Grfica 7. Informacin de un sector5

4
5

Ibid. Captulo 2. p. 10
Ibid. Captulo 2. p. 10

Sistemas Operativos 17

Grfica 8. El cilindro6

f. Jerarqua de memoria
En un sistema computacional existe una gran variedad de almacenamiento. El
almacenamiento est organizado jerrquicamente.
La jerarqua de almacenamiento responde al compromiso entre velocidad y costo
de almacenamiento: el costo de almacenar un bit en una memoria muy rpida es
caro.
Otro aspecto a considerar es la volatilidad.
Grfica 9. Jerarqua de memoria7

6
7

Ibid. Captulo 2. p. 11
Ibid. Captulo 2. p. 12

Sistemas Operativos 18

g. La memoria cach
La memoria cach es una parte muy importante de un sistema computacional.
La informacin se mantiene en algn sistema de almacenamiento y en la medida
que se usa es copiada en una memoria ms rpida temporalmente.
Cuando se necesita una informacin particular, primero se verifica si est en la
cach. Si est se usa directamente y si no est se extrae del medio de
almacenamiento y se copia en la cach.
Como su tamao es limitado resulta muy importante su administracin.
1.2.3 Protecciones de hardware
Los primeros computadores eran sistemas monousuarios.
En la medida que los S.O. evolucionaron fue necesario compartir recursos para
mejorar la eficiencia del sistema.
El compartir mejora la eficiencia y aumenta los problemas:
Sistema multiprogramado ante condiciones de error.
Compartir dispositivos.
a. Modo Dual
Para asegurar una correcta operacin se debe proteger al S.O. y los programas
frente a situaciones de error.
La proteccin se requiere para cualquier recurso compartido.
El hardware provee una importante proteccin llamada Modo Dual
Se agrega un bit al hardware llamado bit de modo para indicar dos modos posibles
de operacin.
Los modos de operacin son dos:
Modo Monitor (tambin llamado kernel o modo sistema)
Modo usuario

Sistemas Operativos 19

Modo Monitor: este es el modo en el cual el S.O. toma el control del computador.
Slo en este modo se pueden ejecutar instrucciones llamadas privilegiadas y
accesar estructuras de datos internas del S.O.
Modo Usuario: modo normal para cdigo usuario.
La falta de apoyo de hardware de proteccin trae serios problemas en los S.O. Un
ejemplo es el S.O. originalmente escrito para el Intel 8080 que no tiene bit de
modo:
Cualquiera puede sobre escribir el S.O.
Muchos programas pueden hacer E/S al mismo tiempo.
A partir del 80486 se incorpor el bit de modo y as fue posible soportar S.O.
Como Windows NT, Windows 2000, Windows 2003 Server, OS/2 y Linux.
b. Proteccin de E/S
Para prevenir que un usuario realice una operacin ilegal de E/S se definen
instrucciones privilegiadas.
De esta forma un usuario no puede ejecutar instrucciones de E/S directamente. Lo
debe hacer a travs del S.O.
Nunca un programa usuario debe tener el control del sistema bajo modo monitor.
Qu pasara si se tiene acceso al vector de interrupcin? Se obtiene el control en
modo monitor.
c. Proteccin de memoria
Se debe proteger el vector de interrupcin de ser modificado por programas de
usuario.
Se debe proteger la alteracin de rutinas de servicio de interrupcin.
Se debe proteger tambin un programa usuario de otro programa usuario.
Cada espacio debe estar protegido.
El hardware provee dos registros:
Registro base: Menor direccin legal
Registro lmite: Tamao del espacio protegido.

Sistemas Operativos 20

Grfica 10. Proteccin de memoria8

Cada direccin generada en modo usuario es comparada con los registros


Base y Lmite.
Cada intento por violar una regin protegida genera una interrupcin al S.O,
el cual lo trata como un error fatal.
Por supuesto que slo el S.O. puede cambiar los contenidos de los
registros Base y Lmite (se cambian en modo monitor)
Grfica 11. Control de la proteccin de memoria9

8
9

Ibid. Captulo 2. p. 16
Ibid. Captulo 2. p. 17

Sistemas Operativos 21

Por qu se estudian los sistemas operativos?


Los sistemas operativos son sistemas de software complejos. El
entendimiento de los conceptos utilizados y la implementacin de estos
programas proporcionan desafos y ejemplos para cualquier persona.
El conocimiento de los sistemas operativos permite realizar aplicaciones
que aprovechen los recursos eficientemente.
Para el diseo de sistemas operativos.
Para la creacin de sistemas operativos personales con base en los
sistemas operativos existentes. (Personalizacin de versiones)
1.3 Historia de los sistemas operativos
Para tratar de comprender los requisitos de un S.O y el significado de sus
principales caractersticas, es til considerar como han ido evolucionando stos
con el tiempo.
Existen diferentes enfoques o versiones de cmo han ido evolucionando los
sistemas operativos.
La primera de estas versiones podra ser esta:
Periodo
Aos 40s
Finales de los
aos 40 hasta la
mitad de los
aos 50s
Durante
los
aos 50's y 60's

En los aos 60's


y 70's

Avance
Se introducen los programas bit a bit, por medio de interruptores mecnicos y
despus se introdujo el lenguaje de mquina que trabajaba por tarjetas
perforadas.
Con las primeras computadoras, el programador interactuaba de manera
directa con el hardware de la computadora, no exista realmente un sistema
operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y
los programas se realizaban a travs del lenguaje mquina (bits) o a travs
de interruptores.
A principio de los 50's, la compaa General's Motors implanto el primer
sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas
las cuales permiten que los usuarios (que en ese tiempo eran programadores,
diseadores, capturistas, etc.), se encarguen de modificar sus programas.
Establecan o apartaban tiempo, metan o introducan sus programas,
corregan y depuraban sus programas en su tiempo. A esto se le llamaba
trabajo en serie. Todo esto se traduca en prdida de tiempo y tiempos de
programas excesivos.
Se genera el circuito integrado, se organizan los trabajos y se generan los
procesos Batch (por lotes), lo cual consiste en determinar los trabajos
comunes y realizarlos todos juntos de una sola vez. En esta poca surgen las
unidades de cinta y el cargador de programas, el cual se considera como el
primer tipo de sistema operativo.

Sistemas Operativos 22

En los 80's

Inici el auge de la INTERNET en los Estados Unidos de Amrica. A finales


de los aos 80's comienza el gran auge y evolucin de los sistemas
operativos. Se descubre el concepto de multiprogramacin que consiste en
tener cargados en memoria a varios trabajos al mismo tiempo, tema principal
de los sistemas operativos actuales.
Los 90's y el Entramos a la era de la computacin distribuida y del multiprocesamiento a
futuro
travs de mltiples redes de computadoras, aprovechando el ciclo del
procesador.
Se tendr una configuracin dinmica con un reconocimiento inmediato de
dispositivos y software que se aada o elimine de las redes a travs de
procesos de registro y localizadores.
La conectividad se facilita gracias a estndares y protocolos de sistemas
abiertos establecidos por organizaciones como la Organizacin Internacional
de estndares (ISO-International Standard Organization), fundacin de
software abierto, todo estar mas controlado por los protocolos de
comunicacin OSI y por la red de servicios digital ISDN.

Se ha desarrollado otra versin, la cual se ha hecho con base a la evolucin


del hardware:

Sistemas Batch simples


Sistemas Batch multiprogramados
Sistemas de tiempo compartido
Computadores personales
Sistemas paralelos
Sistemas distribuidos
Sistemas de tiempo real

Tipo de sistema
Sistemas Batch Simples

Descripcin
Los primeros computadores eran grandes mquinas que se
operaban desde una consola. La entrada y salida se haca usando
tarjetas perforadas y cinta magntica. La interaccin de un usuario
con el sistema computacional no era directa:se preparaba un job
que consista en un conjunto de tarjetas: programa, datos y
tarjetas de control.
El S.O:
Tena una funcin muy simple: transferir el control entre
una tarea (job) y la siguiente.
Resida completamente en memoria.
Para hacer ms eficiente el trabajo, los operadores agrupaban
tareas en tandas o lotes (batch).
La caracterstica ms importante es la falta de interaccin entre el
usuario y el sistema durante la ejecucin.
Los job se preparan y entregan al sistema y despus de un tiempo
se entrega el resultado va una lista o impresin.
La CPU pasa desocupada la mayor parte del tiempo:
La velocidad de los elementos mecnicos: impresora y
lectora es mucho ms baja que la CPU.
Cmo solucionar este problema?
- Tecnologa de disco (Spooling) Ver explicacin al final del
cuadro

Sistemas Operativos 23

Tipo de sistema
Sistemas Batch
Multiprogramados

Sistemas de tiempo
compartido Time sharing
Job 1
multitarea
Job 2
Job 3
Job 4
Tiempo

Sistemas PC
Computadores personales

Sistemas paralelos

Descripcin
El Spooling mantiene una estructura de datos con todos los jobs
listos para ser ejecutados en un rea de disco.
Esta estructura permite seleccionar cualquier job del conjunto. Con
esta estructura es posible mejorar la utilizacin de la CPU.
La seleccin de un job para su ejecucin de un conjunto se
denomina itineracin de job (scheduling).
La itineracin de jobs permite la mutiprogramacin.
La multiprogramacin aumenta la utilizacin de la CPU al organizar
los jobs de manera tal que la CPU siempre tenga algn job que
ejecutar.
Para esto se mantienen los jobs en memoria principal. El S.O.
selecciona un job, lo ejecuta y cuando el job debe esperar por E/S,
se selecciona otro job.
Cuando un job necesita esperar por algn dispositivo, el sistema
operativo conmuta de un job a otro. Cuando la transferencia del
dispositivo termina, se vuelve al job nuevamente
Los sistemas batch multiprogramados permiten usar recursos
eficientemente, pero los usuarios no pueden interactuar con sus
aplicaciones.
El tiempo compartido (time sharing) o multitarea es una extensin
de la multiprogramacin. La CPU ejecuta mltiples jobs, pero la
conmutacin de un job a otro ocurre con una frecuencia tal que los
usuarios piensan que interactan con el programa mientras ste
corre.
Los primeros sistemas Batch eran completamente interactivos. El
usuario tomaba el control completo del sistema a travs de la
consola.
Los sistemas de tiempo compartido se desarrollaron para
proporcionar el uso interactivo de un computador a costo
razonable.
Cada usuario tiene al menos un programa en memoria.
Un programa que se carga y ejecuta se denomina proceso.
Cuando un proceso se ejecuta, lo hace por un tiempo corto antes
que termine o necesite E/S.
La entrada y salida (E/S) tambin puede ser interactiva.
Los sistemas operativos de tiempo compartido son ms complejos
que los sistemas batch multiprogramados. Entre otras cosas se
requiere proteccin especial de reas de memoria.
Los Computadores personales aparecieron en el mercado en la
dcada del 70. El objetivo de los sistemas operativos de PC no es
mejorar la eficiencia sino su amistosidad con el usuario.
Ejemplos son: MS-DOS, MS Windows, Apple Macintosh, OS/2
La tendencia es traspasar funcionalidades de grandes
computadores a PC. Por ejemplo sistemas de proteccin de
archivos, memoria virtual etc..
Un buen ejemplo es el sistema MULTICS desarrollado en el MIT
entre 1965 y 1970. Las ideas de MULTICS se tomaron en Bell
Labs para desarrollar UNIX en 1970 para computadores DEC
PDP-11. En los aos 80, surgieron muchos sistemas tipo UNIX:
W/NT, OS/2 , MAC OS y Windows XP y LINUX recientemente.
La mayora de los sistemas computacionales actuales utiliza una
sola CPU, sin embargo hay una tendencia hacia sistemas

Sistemas Operativos 24

Tipo de sistema

Sistemas distribuidos

Sistemas de tiempo real

Descripcin
multiprocesadores.
Qu se logra con multiprocesadores?
Mayor desempeo (troughput): ms trabajo por unidad de tiempo.
Aceleramiento de tareas: cuando varios procesadores cooperan en
la realizacin de una tarea, disminuye el tiempo de ejecucin. Sin
embargo la mejora de desempeo no es lineal respecto al nmero
de procesadores por el tiempo de comunicacin.
Qu es mejor, un sistema de multiprocesamiento o varios
sistemas simples?
Es ms econmico un sistema de multiprocesadores (un disco,
gabinete, fuentes de poder etc.)
Mejora la confiabilidad: si las funciones se distribuyen
inteligentemente, la cada de un procesador puede ser asumida
por otro.
La tendencia actual es distribuir la computacin entre varios
procesadores.
Cada procesador tiene su memoria local. Los procesadores se
comunican por lneas de comunicacin, redes de alta velocidad o
buses apropiados.
Los procesadores de un sistema distribuido varan en tamao y
funcin: microprocesadores, minicomputadores, estaciones de
trabajo y grandes sistemas computacionales.
Los sistemas operativos de Tiempo Real se usan cuando existen
rgidos requerimientos de tiempo. Ejemplos:
- Sistemas de Control Industrial
- Monitoreo mdico
- Control de encendido de motores
- Sistemas de defensa
El procesamiento se debe hacer con restricciones de tiempo. En
caso contrario se producen fallas.

Algunos de los anteriores sistemas se revisarn en el captulo siguiente:


Caractersticas de Sistemas Operativos Tipos de sistemas operativos.
Una tecnologa que apareci con los sistemas de batch es: Spooling.
Spooling Tecnologa de discos
La introduccin de la tecnologa de discos entrega una solucin: en vez de leer
del disco y escribir a la impresora, la CPU interacta directamente con el disco.
Si la CPU necesita leer una tarjeta, lee desde un rea del disco. En forma similar
cuando necesita imprimir una lnea, la escribe en el disco
Esta forma de procesamiento se denomina Spooling (Simultaneous peripheral
operation on-line)

Sistemas Operativos 25

Grfica 12. Tecnologa de discos10

Observaciones
El Spooling traslapa la entrada y salida de un job con los clculos (CPU) de otro job.
Tiene un efecto directo e importante en el desempeo ya que mantienen a la CPU y los
dispositivos trabajando a su mxima velocidad.

1.4 Conceptos de sistemas operativos


1.4.1 Llamadas al sistema
Hemos visto, por ejemplo, que las instrucciones de E/S son privilegiadas y por lo
tanto slo las puede ejecutar el S.O.
Cmo ejecutar e/s? Solicitando al S.O. a travs de una llamada al sistema.
Las llamadas al sistema se usan en general para solicitar cualquier servicio al S.O.
(Se tratan en este captulo )
Una llamada al sistema genera una interrupcin (trap) a una direccin especfica
del vector de interrupciones.
Cuando se ejecuta una llamada al sistema, el hardware la trata como una
interrupcin (excepcin) de software. Los parmetros se pasan va registro o
direcciones de memoria.
La siguiente grfica muestra el flujo de una llamada al sistema.

10

Ibid. Captulo 1. p. 8

Sistemas Operativos 26

Grfica 13. Flujo de una llamada al sistema11

La interfaz entre el sistema operativo y los programas del usuario se define por
medio del conjunto de "instrucciones extendidas" que el sistema operativo
proporciona. Estas instrucciones extendidas son las llamadas al sistema. Las
llamadas al sistema varan de un sistema operativo a otro (aunque los conceptos
fundamentales tienden a ser anlogos).
Las llamadas al sistema se clasifican normalmente en dos categoras generales:
aquellas que se relacionan con procesos y las que lo hacen con el sistema de
archivo
- Por procesos: Un proceso es bsicamente un programa en ejecucin. Consta
del programa ejecutable y la pila o stack del programa, su contador de programa,
apuntador de pila y otros registros, as como la otra informacin que se necesita
para ejecutar el programa. En si el proceso en el concepto de los sistemas
operativos es como el sistema de tiempo compartido. Esto es, que en forma
peridica, el sistema operativo decide suspender la ejecucin de un proceso y dar
inicio a la ejecucin de otro, por ejemplo, porque el primero haya tomado ya ms
de su parte del tiempo de la CPU, en terrenos del segundo.
Cuando un proceso se suspende temporalmente, debe reiniciarse despus
exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto
significa que toda la informacin relativa al proceso debe guardarse en forma
explcita en algn lugar durante la suspensin. En muchos sistemas operativos,
toda la informacin referente a cada proceso, diferente del contenido de su
11

Ibid. Captulo 2. p. 19

Sistemas Operativos 27

espacio de direcciones, se almacena en una tabla de sistema operativo llamada


tabla de procesos, la cual es un arreglo (lista enlazada) de estructuras, una para
cada proceso en existencia.
Por lo tanto, un proceso (suspendido) consta de su espacio de direcciones,
generalmente denominado imagen del ncleo (en honor de las memorias de
imagen de ncleo magntico que se utilizaron en tiempos antiguos) y su registro
de la tabla de procesos, que contiene sus registros entre otras cosas.
- Por sistema de archivo: Una funcin importante del S.O. consiste en ocultar las
peculiaridades de los discos y otros dispositivos de E/S y presentar al
programador un modelo abstracto, limpio y agradable de archivos independientes
del dispositivo. Las llamadas al sistema se necesitan con claridad para crear
archivos, eliminarlos, leerlos y escribirlos. Antes de que se pueda leer un archivo,
ste debe abrirse y despus de que se haya ledo debe cerrarse, de modo que las
llamadas se dan para hacer estas cosas.
Antes de que un archivo pueda leerse o escribirse, ste debe abrirse, en cuyo
instante se verifican los permisos. Si se permite el acceso, el sistema produce un
entero pequeo llamado descriptor del archivo para utilizarse en operaciones
subsiguientes. Si se prohibe el acceso, se produce un cdigo de error.
1.4.2 Shell (intrprete de comandos)
El sistema operativo es el cdigo que realiza las llamadas al sistema. Los editores,
compiladores, ensambladores, enlazadores e intrpretes de comandos
definitivamente no son parte del sistema operativo, aunque son importantes y
tiles. El Shell es el intrprete de comandos, a pesar de no ser parte del sistema
operativo (est ntimamente ligado con este), hace un uso intenso de muchas
caractersticas del sistema operativo y por tanto sirve como un buen ejemplo de la
forma en que se pueden utilizar las llamadas al sistema. Tambin es la interfaz
primaria entre un usuario situado frente a su terminal y el sistema operativo.
Cuando algn usuario entra al sistema, un "shell" se inicia. El shell tiene la
terminal como entrada y como salida estndar. Este da inicio al teclear solicitud de
entrada, carcter como un signo de pesos, el cual indica al usuario que el shell
est esperando un comando. En MS-DOS normalmente aparece la letra de la
unidad, seguida por dos puntos (:), el nombre del directorio en que se encuentra y
por ltimo el signo de "mayor que" (>). Esto es: C:\>.
Las versiones grficas de Windows tienen la opcin de Ejecutar, el cual es el shell
del sistema, normalmente en Inicio Opcin ejecutar.
En Linux se puede trabajar, la consola de comandos, como el intrprete de
comandos shell.

Sistemas Operativos 28

1.4.3 Procesos
Uno de los conceptos ms importantes que gira entorno a un sistema operativo es
el de proceso. Un proceso es un programa en ejecucin junto con el entorno
asociado (registros, variables ,etc.).
El corazn de un sistema operativo es el ncleo, un programa de control que
reacciona ante cualquier interrupcin de eventos externos y que da servicio a los
procesos, crendolos, terminndolos y respondiendo a cualquier peticin de
servicio por parte de los mismos.
Un proceso es una actividad que se apoya en datos, recursos, un estado en cada
momento y un programa.
Cada proceso contiene, entre otros:
Mapeo en memoria: Dnde est almacenado el .text, .data y el stack del
proceso.
El estado de registros.
Tabla de archivos en uso: Estado de cada archivo
Credenciales (UID, GID, EUID, GUID). Identificadores de usuarios.
Otros (PID, PPID, contadores, estados, prioridades). Identificadores de
procesos.
Los procesos pueden crear nuevos procesos, y heredar algunos atributos de su
padre.
El SO provee medios de comunicacin entre procesos. El proceso se comunica
con el SO mediante las llamadas al sistema (syscalls), para, por ejemplo:

Abrir un archivo
Alocar mas memoria
Crear un nuevo archivo
Sobreescribir su .text

Otro medio de comunicacin son las seales. (Anlogas a las interrupciones, pero
a nivel software). Un programa puede mandar seales a otros programas, el SO
puede mandar seales al programa.
1.4.4 Archivos
Un Archivo es una unidad lgica de almacenamiento. Es una abstracin sobre el
dispositivo fsico (disco rgido, floppy, etc).

Sistemas Operativos 29

Conjunto de informacin relacionada guardada en un dispositivo secundario. Est


asociado a dispositivos de almacenamiento no voltiles.
Para el usuario es un concepto de unidad de almacenamiento permanente,
organizada bajo un esquema jerrquico de directorios, que le permite tener un
orden lgico y control sobre su informacin.
Los atributos normales de un archivo son: nombre, tipo, tamao, tiempos y
credenciales.
El concepto de archivos y directorios se encuentra en prcticamente todos los
sistemas operativos. La organizacin de los archivos posee un sistema jerrquico.
Cada archivo se identifica con su directorio y nombre.
Existe un directorio padre de todos los directorios. Las referencias a archivos
pueden ser:
Absolutas: Referidas desde el directorio padre ,
Relativas: Referidas al directorio actual.
Cada archivo posee sus respectivos permisos y niveles de seguridad asignados.
1.4.5 Definiciones
a. Deadlocks (Abrazos mortales): Cuando dos o ms procesos se estn
esperando mutuamente, en una situacin sin salida.
b. Memory Management (Manejo de Memoria): Estrategia de determinado S.O
para el uso de memoria. Los problemas a resolver son proteccin y mapeo de
programas. Ej. Memoria Virtual.

Observaciones
No existe una definicin precisa de un S.O.
Los S.O. existen porque existe la necesidad de resolver problemas usando sistemas
computacionales.
Tampoco existe una definicin nica sobre qu contiene y qu no contiene un S.O.
Una definicin prctica es que un S.O. es el cdigo que siempre se ejecuta y acompaa la
ejecucin de las aplicaciones.

Ahora analice lo que Usted contest en la actividad inicial sobre su conocimiento acerca de
sistemas operativos, y despus de abordado el tema vuelva a realizarse las mismas preguntas
y compare sus respuestas: la inicial y la final. Concluya.

Sistemas Operativos 30

CAPTULO 2. CARACTERSTICAS DE LOS SISTEMAS OPERATIVOS


Actividad inicial:
Describa las caractersticas principales que a su juicio, tienen los sistemas
operativos Windows y Linux (los que Usted normalmente maneja. Distribucin
y versin que disponga). Saque una lista, por cada sistema operativo, de ellas
y explique el por qu lo considera as.
As mismo saque una lista de los puntos que considera negativos de cada uno
de los sistemas operativos que est analizando.

2.1 Funciones del sistema operativo


A continuacin se muestran las funciones principales que realiza todo sistema
operativo. Se puede decir que son las caractersticas del sistema operativo:
- Conveniencia. Un sistema operativo hace ms conveniente el uso de una
computadora.
- Eficiencia. Un sistema operativo permite que los recursos de la computadora
se usen de la manera ms eficiente posible.
- Habilidad para evolucionar. Un sistema operativo deber construirse de
manera que permita el desarrollo, prueba o introduccin efectiva de nuevas
funciones del sistema sin interferir con el servicio.
- Encargado de administrar el hardware. El sistema operativo se encarga de
manejar de una mejor manera los recursos de la computadora en cuanto a
hardware se refiere, esto es, asignar a cada proceso una parte del procesador
para poder compartir los recursos.
- Administracin de dispositivos (gestionar a travs del kernel).
Coordinando y manipulando los dispositivos conectados al ordenador. El
sistema operativo se debe encargar de comunicar a los dispositivos perifricos,
cuando el usuario as lo requiera. Adems debe organizar los datos para
acceso rpido y seguro.
- Manejar las comunicaciones en red. El sistema operativo permite al usuario
manejar con alta facilidad todo lo referente a la instalacin y uso de las redes
de computadoras.
- Procesamiento por bytes de flujo a travs del bus de datos.

Sistemas Operativos 31

- Facilitar las entradas y salidas. Un sistema operativo debe hacerle fcil al


usuario el acceso y manejo de los dispositivos de Entrada/Salida de la
computadora.
- Tcnicas de recuperacin de errores. Gestiona los errores de hardware y
la prdida de los datos.
- Gestin de permisos y de usuarios. Adjudica los permisos de acceso a los
usuarios y evita que las acciones de uno afecten el trabajo que est realizando
otro. El sistema operativo evita que los usuarios se bloqueen entre ellos,
informndoles si esa aplicacin est siendo ocupada por otro usuario.
- Control de seguridad. Debe proporcionar seguridad tanto para los usuarios
como para el software y la informacin almacenada en los sistemas.
- Control de concurrencia. Establece prioridades cuando diferentes procesos
solicitan el mismo recurso.
- Administracin de memoria. Asigna memoria a los procesos y gestiona su
uso.
- Generacin de estadsticas.
- Control de la ejecucin de los programas. Para ello, acepta los trabajos,
administra la manera en que se realizan, les asigna los recursos y los conserva
hasta su finalizacin.
- Administracin de perifricos.
- Permite que se puedan compartir el hardware y los datos entre los
usuarios.
El software de aplicacin son programas que se utilizan para disear, tal como
el procesador de palabras, lenguajes de programacin, hojas de clculo, etc.
El software de base sirve para interactuar el usuario con la mquina, son un
conjunto de programas que facilitan el ambiente plataforma, y permite el diseo
del mismo.
El Software de base est compuesto por:
Cargadores.
Compiladores.
Ensambladores.
Macros.

Sistemas Operativos 32

2.2 Tipos de sistemas operativos


Segn la perspectiva con la que se observen los sistemas operativos, pueden
realizarse mltiples clasificaciones. Entre ellas revisaremos las siguientes:
9
9
9
9

Sistemas operativos por su estructura (visin interna)


Sistemas operativos por los modos de explotacin
Sistemas operativos por los servicios que ofrecen y,
Sistemas operativos por la forma en que ofrecen sus servicios (visin
externa).

2.2.1 Sistemas operativos por su estructura Visin interna12


Esta clasificacin tiene en cuenta cmo se disean los sistemas a la hora de ser
creados. Hay que tener en cuenta que, en la mayora de los casos estas
concepciones de diseo no se aplican aisladas, si no que puede haber
interrelacin entre ellas.
Se deben observar dos tipos de requisitos cuando se construye un sistema
operativo, los cuales son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y
adecuado al uso a que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento,
forma de operacin, restricciones de uso, eficiencia, tolerancia frente a los errores
y flexibilidad.
A continuacin se describen las distintas estructuras que presentan los actuales
sistemas operativos para satisfacer las necesidades que de ellos se quieren
obtener.
a. Estructura monoltica
Es la estructura de los primeros sistemas operativos constituidos
fundamentalmente por un solo programa compuesto de un conjunto de rutinas
entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las
caractersticas fundamentales de este tipo de estructura son:
Construccin del programa final a base de mdulos compilados
separadamente que se unen a travs del ligador.

12

ALCALDE, E. MORERA, J. PEREZ -CAMPANERO. (1992). Introduccin a los Sistemas


Operativos. Madrid, Mc Graw Hill. p. 33.

Sistemas Operativos 33

Buena definicin de parmetros de enlace entre las distintas rutinas


existentes, que puede provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como memoria,
disco, etc.
Generalmente estn hechos a medida, por lo que son eficientes y rpidos
en su ejecucin y gestin, pero por lo mismo carecen de flexibilidad para
soportar diferentes ambientes de trabajo o tipos de aplicaciones.
Es la estructura utilizada en los primeros sistemas operativos en la que todas las
funciones se implementaban en el Kernel. Puede decirse que su estructura
consiste en que no existe una estructura como tal.
Grfica 14. Estructura monoltica
Rutina A

Rutina 1

Rutina 2

Rutina B

Rutina 3

Rutina 4

b. Estructura jerrquica Por capas


A medida que los sistemas operativos fueron creciendo, fue siendo necesaria una
mayor estructuracin.
Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de
ellas estuviera perfectamente definida y con una clara interface con el resto de
elementos.
De acuerdo a las funciones principales del sistema operativo, vista en el numeral
anterior (1.1.5 Funciones del sistema operativo), es posible analizar la estructura
de un sistema operativo en cinco niveles. Los primeros dos niveles entraran
dentro de la parte del sistema operativo dependiente del hardware, el resto de los
niveles pertenecen a la parte portable del mismo.
Cada uno de los niveles se comunica con el inmediatamente inferior y superior
coordinando sus funciones.
Nivel 1: Gestin del procesador. En este nivel se encuentra la parte del
sistema operativo encargada de la gestin de la CPU. En los sistemas
operativos multiproceso (es decir, que pueden ejecutar varios procesos a la

Sistemas Operativos 34

vez), este nivel se encarga de compartir la CPU entre los distintos procesos
realizando funciones de sincronizacin, conmutacin de la CPU y gestin
de interrupciones.
Nivel 2: Gestin de memoria. Este nivel es el encargado de repartir la
memoria disponible entre los procesos. Se realizan funciones de asignacin
y liberacin de memoria, y el control de violacin de acceso a zonas de
memoria no permitidas.
Nivel 3: Gestin de procesos. Este nivel es el encargado de la creacin y
destruccin de los procesos, intercambio de mensajes y deteccin y
arranque de los mismos.
Nivel 4: Gestin de dispositivos. En este nivel se realiza la gestin de las
entradas/salidas (E/S) en funcin de los dispositivos existentes. Entre otras,
se encarga de las funciones de creacin de procesos de E/S, asignacin y
liberacin de dispositivos E/S, y planificacin de la E/S.
Nivel 5: Gestin de la in formacin. El objetivo de este nivel es el de
gestionar el espacio de nombres lgicos, utilizados para simplificar el
acceso a los recursos, ya que mediante estos se sustituyen rutas de acceso
que pueden ser muy largas y difciles de recordar por un solo nombre,
encargndose el sistema operativo, de forma totalmente transparente para
el usuario, de realizar esta bsqueda de ruta. Otro de sus contenidos es la
proteccin de la informacin realizando funciones de creacin y destruccin
de ficheros y directorios, apertura y cierre de ficheros, lectura y escritura de
ficheros, y proteccin de acceso.
Es importante destacar que un mismo sistema operativo puede trabajar en
mltiples plataformas hardware, por lo que debe adaptarse a las peculiaridades de
cada una de ellas.
Una forma de representar esta estructura es mediante anillos concntricos o
rings. En el sistema de anillos, cada uno tiene una apertura, conocida como trap
(o interrupcin), por donde pueden entrar las llamadas de las capas inferiores. De
esta forma, las zonas ms internas del sistema operativo o ncleo del sistema
estarn ms protegidas de accesos indeseados desde las capas ms externas. Se
puede decir que las capas ms internas son ms privilegiadas que las externas.
En la base de la jerarqua se encuentra el hardware del computador, a veces
denominado simplemente mquina pura o los hierros desnudos. En seguida se
encuentran todos los anillos o capas propias del sistema operativo.

Sistemas Operativos 35

Grfica 15. Estructura por capas.


USUARIO

0. Hardware
Gestin de la
informacin
Gestin de
dispositivos
Gestin de
procesos
Gestin de
memoria
Gestin del
procesador

1
2
3
4
5

c. Mquina virtual
Se trata de un tipo de sistemas operativos que presentan una interfaz a cada
proceso, mostrando una mquina que parece idntica a la mquina real
subyacente.
Estos sistemas operativos separan dos conceptos que suelen estar unidos en el
resto de sistemas: la multiprogramacin y la mquina extendida.
El objetivo de los sistemas operativos de mquina virtual es el de integrar distintos
sistemas operativos dando la sensacin de ser varias mquinas diferentes.
El ncleo de estos sistemas operativos se denomina monitor virtual y tiene como
misin llevar a cabo la multiprogramacin, presentando a los niveles superiores
tantas mquinas virtuales como se soliciten. Estas mquinas virtuales no son
mquinas extendidas, sino una rplica de la mquina real, de manera que en cada
una de ellas se pueda ejecutar un sistema operativo diferente, que ser el que
ofrezca la mquina extendida al usuario
La principal ventaja de esta estructura reside en que permite implementar varios
tipos de sistemas operativos sobre cada mquina virtual.

Sistemas Operativos 36

La principal ventaja de esta estructura reside en que permite implementar varios


tipos de sistemas operativos sobre cada mquina virtual. No obstante, presentan
el problema de que los sistemas operativos implementados son disjuntos, lo cual
complica enormemente la interaccin, comunicacin y comparticin que necesitan
los sistemas operativos actuales.
Un ejemplo de este tipo es el sistema VM370.
Grfica 16. Mquina virtual

d. Cliente-servidor (Microkernel)
El tipo ms reciente de sistemas operativos es el denominado cliente-servidor,
que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o
pequeas.
Este sistema sirve para toda clase de aplicaciones, es de propsito general y
cumple con las mismas actividades que los sistemas operativos convencionales: el
ncleo y los procesos, presentando grandes diferencias en cuanto a la forma de
distribuir los trabajos entre sus distintas partes.
Suministra mecanismos adecuados para la gestin de:
Procesos.
Memoria.
Comunicacin entre procesos.
El ncleo tiene como misin establecer la comunicacin entre los clientes y los
servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo,
un programa de aplicacin normal es un cliente que llama al servidor
correspondiente para acceder a un archivo o realizar una operacin de

Sistemas Operativos 37

entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede


actuar como servidor para otro.
Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el
sistema final, ya que el ncleo provee solamente funciones muy bsicas de
memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la
mayora que el usuario final o programador puede usar. Estos servidores deben
tener mecanismos de seguridad y proteccin que, a su vez, sern filtrados por el
ncleo que controla el hardware.
Grfica 17. Cliente-servidor
Proceso
Cliente

Servidor
de
procesos

Servidor
de
terminales

Servidor
de
archivos

...

Servidor
de
memoria

Ncleo
2.2.2 Sistemas operativos por los modos de explotacin13
Los modos de explotacin se corresponden con las distintas maneras en que
puede funcionar un sistema operativo. Dentro de ellas, se encuentran las
indicadas en los apartados siguientes.
a. Procesamiento por lotes
Los sistemas operativos por lotes, procesan una gran cantidad de trabajos con
poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se
renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la
espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos
sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor
de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin
muy alto, porque el procesador es mejor utilizado y los sistemas operativos
pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del
DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II
para el UNIVAC 1107, orientado a procesamiento acadmico.

13

RAYA, L. ALVAREZ, R. RODRIGO, V. (2.005). Sistemas Operativos en entornos Monousuario y


Multiusuario. Mxico, Alfaomega, Ra-Ma. p. 21.

Sistemas Operativos 38

Algunas otras caractersticas con que cuentan los sistemas operativos por lotes
son:
Requiere que el programa, datos y rdenes al sistema sean remitidos todos
juntos en forma de lote.
Permiten poca o ninguna interaccin usuario/programa en ejecucin.
Mayor potencial de utilizacin de recursos que procesamiento serial simple
en sistemas multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y
depuracin fuera de lnea.
Conveniente para programas de largos tiempos de ejecucin (ej, anlisis
estadsticos, nminas de personal, etc.).
Se encuentra en muchos computadores personales combinados con
procesamiento serial.
Planificacin del procesador sencilla, tpicamente procesados en orden de
llegada.
Planificacin de memoria sencilla, generalmente se divide en dos: parte
residente del S.O. y programas transitorios.
No requieren gestin crtica de dispositivos en el tiempo.
Suelen proporcionar gestin sencilla de manejo de archivos: se requiere
poca proteccin y ningn control de concurrencia para el acceso.
b. Multiprogramacin
En este modo de explotacin, el sistema operativo se encarga de distribuir la
carga computacional entre los procesadores existentes (monoprocesador o
multiprocesador), con el fin de incrementar el poder de procesamiento de la
mquina.
Dentro de los sistemas operativos multiprogramados cabe diferenciar:
- Tiempo compartido. Permiten la simulacin de que el sistema y sus recursos
son todos para cada usuario. El usuario hace una peticin a la computadora, esta
la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal
del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de
E/S, son continuamente utilizados entre los diversos usuarios, dando a cada
usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como
consecuencia una gran carga de trabajo al sistema operativo, principalmente en la
administracin de memoria principal y secundaria.
Utilizan las distintas tcnicas de planificacin de CPU para que se atiendan todos
los procesos en espera de ser ejecutados. Este proceso ocurre tan rpidamente
que el usuario no lo percibe.

Sistemas Operativos 39

Entre este tipo de sistemas operativos se encuentran: UNIX, LINUX Windows 95,
Windows 98, Windows Millenium, Windows XP, Windows NT, Windows 2000,
Windows 2003, MACOS y OS/2. Otros menos comunes son Multics, OS/360 y
DEC-10.
Las caractersticas de los sistemas operativos de tiempo compartido pueden ser:
Son populares representantes de sistemas multiprogramados multiusuario,
ejemplo: sistemas de diseo asistido por computador, procesamiento de
texto, etc.
Dan la ilusin de que cada usuario tiene una mquina para s.
La mayora utilizan algoritmo de reparto circular.
Los programas se ejecutan con prioridad rotatoria que se incrementa con la
espera y disminuye despus de concedido el servicio.
Evitan la monopolizacin del sistema asignando tiempos de procesador
(time slot).
La gestin de memoria proporciona proteccin a programas residentes.
La gestin de archivo debe proporcionar proteccin y control de acceso
debido a que pueden existir mltiples usuarios accesando un mismo
archivo.
- Tiempo real. Un sistema en tiempo real es aquel en el cual los resultados son
correctos no solo si la computacin es correcta, sino que tambin ha de serlo el
tiempo en el cual se producen los resultados.
Los sistemas operativos de tiempo real son aquellos en los cuales no tiene
importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus
recursos con la finalidad de prestar atencin a los procesos en el momento que lo
requieran. Se utilizan en entornos donde son procesados un gran nmero de
sucesos o eventos.
Muchos sistemas operativos de tiempo real son construidos para aplicaciones muy
especficas como control de trfico areo, bolsas de valores, control de refineras,
control de laminadores. Tambin en el ramo automovilstico y de la electrnica de
consumo, las aplicaciones de tiempo real estn creciendo muy rpidamente.
Otros campos de aplicacin de los sistemas operativos de tiempo real son los
siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricacin integrada.
Produccin y distribucin de energa elctrica.
Control de edificios.
Sistemas multimedia.

Sistemas Operativos 40

Algunos ejemplos de sistemas operativos de tiempo real son: VxWorks, Solaris,


Lyns OS y Spectra.
Los sistemas operativos de tiempo real, cuentan con las siguientes caractersticas:
Se dan en entornos en donde deben ser aceptados y procesados gran
cantidad de sucesos, la mayora externos al sistema computacional, en
breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutacin telefnica, control de vuelo,
simulaciones en tiempo real, aplicaciones militares, etc.
Su objetivo es proporcionar rpidos tiempos de respuesta.
Procesa rfagas de miles de interrupciones por segundo sin perder un solo
suceso.
El proceso se activa tras ocurrencia de suceso, mediante interrupcin.
El proceso de mayor prioridad expropia recursos. Por tanto generalmente
se utiliza planificacin expropiativa basada en prioridades.
La gestin de memoria es menos exigente que en tiempo compartido,
usualmente los procesos son residentes permanentes en memoria.
La poblacin de procesos es esttica en gran medida.
Existe poco movimiento de programas entre almacenamiento secundario y
memoria.
La gestin de archivos se orienta ms a velocidad de acceso que a
utilizacin eficiente del recurso.
Para ejecutar un conjunto de tareas concurrentes con un nico procesador hace
falta multiplexar el uso del mismo entre todas las tareas activas en un momento
dado. Utilizar algoritmos de planificacin equitativos (como Round Robin) no
permite garantizar el tiempo de respuesta de las tareas. Para solucionar este
problema se ha de utilizar la planificacin basada en prioridades. (Estos algoritmos
se detallan ms adelante)
Los sistemas operativos en tiempo real son sistemas muy complejos que suelen
disearse a medida para ciertas aplicaciones, despus de mucho tiempo de
estudio de todas las opciones y problemas que pudieran surgir.
- Hbrido. Estos sistemas operativos intentan ser una mezcla de los dos
anteriores, buscando combinar las ventajas de los sistemas en tiempo compartido
y en tiempo real.
2.2.3 Sistemas operativos por los servicios ofrecidos14
En esta clasificacin se tiene en cuenta la visin del usuario final y puede ser la
siguiente:
14

Ibid. p. 22.

Sistemas Operativos 41

Por el nmero de
usuarios

- Monousuario
- Multiusuario

Por el nmero
de tareas

- Monotarea
- Multitarea

Por el nmero de
procesadores

- Multiproceso
- Multiproceso

- Simtricos
- Asimtricos

a. Monousuarios
Los sistemas operativos monousuario son aquellos que nicamente soportan un
usuario a la vez, sin importar el nmero de procesadores que tenga la
computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en
un mismo instante de tiempo. Las computadoras personales tpicamente se han
clasificado en este rengln.
b. Multiusuarios
Los sistemas operativos multiusuario son capaces de dar servicio a ms de un
usuario a la vez, ya sea por medio de varias terminales conectadas a la
computadora o por medio de sesiones remotas en una red de comunicaciones. No
importa el nmero de procesadores en la mquina ni el nmero de procesos que
cada usuario puede ejecutar simultneamente.
c. Monotareas
Los sistemas operativos monotarea son aquellos que slo permiten una tarea a
la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea,

Sistemas Operativos 42

en el cual se admiten varios usuarios al mismo tiempo, pero cada uno de ellos,
puede estar haciendo slo una tarea a la vez.
d. Multitareas
Un sistema operativo multitarea es aquel que permite al usuario estar realizando
varios trabajos al mismo tiempo. Por ejemplo, puede estar editando el cdigo
fuente de un programa durante su depuracin mientras compila otro programa, a
la vez que est recibiendo correo electrnico en un proceso en background. Es
comn encontrar en ellos interfaces graficas orientadas al uso de mens y al
ratn, lo que permite un rpido intercambio entre las tareas para el usuario,
mejorando para su productividad.
e. Monoproceso o uniproceso
Los sistemas monoproceso son los que nicamente permiten realizar un proceso
a la vez. Sin embargo, permiten simular la multitarea haciendo que el sistema
realice una tarea rotatoria con intercambio muy rpido. Ejemplos tpicos de este
tipo de sistemas son el DOS y MacOS.
f. Multiproceso
Los sistemas operativos multiproceso son los que permiten realizar varios
procesos simultneamente y, por tanto, son capaces de ejecutar varias tareas al
mismo tiempo.
Dentro de los sistemas multiproceso, se encuentran los sistemas simtricos, que
son los que distribuyen la carga de procesamiento por igual entre todos los
procesadores existentes. Sin embargo, los sistemas multiproceso asimtricos,
como Windows NT, 2000 y 2003 Server, asignan una tarea por procesador
existente, segn su prioridad, y el resto de tareas (de baja prioridad) se ejecutan
en un nico procesador. Por ejemplo, un sistema biprocesador asimtrico
ejecutara una sola tarea en un procesador y el resto en el otro.
Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de
los procesadores el cual jugar el papel de procesador maestro y servir como
pivote para distribuir la carga a los dems procesadores, que reciben el nombre de
esclavos.
Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads)
son enviados indistintamente a cualquiera de los procesadores disponibles,
teniendo, tericamente, una mejor distribucin y equilibrio en la carga de trabajo
bajo este esquema. Se dice que un thread es la parte activa en memoria y
corriendo de un proceso, lo cual puede consistir de un rea de memoria, un
conjunto de registros con valores especficos, la pila y otros valores de contexto.

Sistemas Operativos 43

Un aspecto importante a considerar en estos sistemas es la forma de crear


aplicaciones para aprovechar los procesadores. Existen aplicaciones que fueron
hechas para correr en sistemas monoproceso que no toman ninguna ventaja a
menos que el sistema operativo o el compilador detecte secciones de cdigo
paralelizable, los cuales son ejecutados al mismo tiempo en procesadores
diferentes. Por otro lado, el programador puede modificar sus algoritmos y
aprovechar por s mismo esta facilidad; pero esta ltima opcin es costosa en
horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms
tiempo a la paralelizacin que a elaborar el algoritmo inicial.
2.2.4 Por la forma de ofrecer los servicios15
En esta clasificacin se encuentran:
a. Sistemas centralizados
Hasta que los computadores personales no tuvieron un precio accesible y
suficiente potencia, la mayora de los sistemas (UNIX) utilizaban el modelo de
proceso centralizado. Con este tipo de modelo los computadores mainframe se
encargaban de todo el procesamiento y los usuarios manejaban nicamente
terminales brutas(es decir, no disponan de memoria, ni procesador).
Actualmente se siguen utilizando los sistemas centralizados (como los Terminal
Services de Microsoft) pero las terminales dejan de ser brutas y pueden realizar
otras muchas tareas por s mismas.
Los principales sistemas operativos centralizados en el mercado son: z/OS,
OS/390, Linux, TPF, VSE y ESA.
b. Sistemas de red
Estos sistemas operativos son aquellos que mantienen a dos o ms computadores
unidas a travs de algn medio de comunicacin (fsico o no), con el objetivo
primordial de poder compartir los diferentes recursos y la informacin del sistema.
En este entorno, cada computador mantiene su propio sistema operativo y su
propio sistema de archivos local.
El primer sistema operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel.

15

Ibid. p. 23.

Sistemas Operativos 44

Los sistemas operativos de red usados ms ampliamente son: Novell NetWare,


Personal NetWare, LAN Manager, Windows NT Server, Windows 2000 Server,
UNIX, LINUX, LANtastic, etc.
c. Sistemas distribuidos
Los sistemas operativos distribuidos son sistemas cuasi-independientes que
permiten distribuir los trabajos, tareas o procesos entre un conjunto de
procesadores. Puede ocurrir que este conjunto de procesadores se encuentre en
el mismo equipo o en equipos distintos (siendo, en este ltimo caso, transparente
para el usuario).
Existen dos esquemas bsicos:
-

Un sistema fuertemente acoplado es aquel que comparte la memoria y un


reloj global, cuyos tiempos de acceso son similares para todos los
procesadores.

Un sistema dbilmente acoplado es aquel en el que los procesadores no


comparten ni memoria ni reloj, ya que cada uno de ellos cuenta con
memoria local.

Las principales ventajas de los sistemas distribuidos (no solamente los sistemas
operativos) con respecto a los sistemas centralizados se describen enseguida:
-

Economa: El cociente precio/desempeo de la suma del poder de los


procesadores separados contra el poder de uno solo centralizado es mejor
cuando estn distribudos.
Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy
superior.
Confiabilidad: Si una sola mquina falla, el sistema total sigue
funcionando.
Crecimiento: El poder total del sistema puede irse incrementando al aadir
pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado
y caro.
Distribucin: Algunas aplicaciones requieren de por s una distribucin
fsica.

Por otro lado, los sistemas distribudos tambin exhiben algunas ventajas
sobre sistemas aislados. Estas ventajas son:
-

Compartir datos: Un sistema distribudo permite compartir datos ms


fcilmente que los sistemas aislados, que tendrian que duplicarlos en cada
nodo para lograrlo.

Sistemas Operativos 45

Compartir dispositivos: Un sistema distribudo permite accesar


dispositivos desde cualquier nodo en forma transparente, lo cual es
imposible con los sistemas aislados. El sistema distribudo logra un efecto
sinergtico.
Comunicaciones: La comunicacin persona a persona es factible en los
sistemas distribudos, en los sistemas aislados no.
Flexibilidad: La distribucin de las cargas de trabajo es factible en el
sistema distribudo, se puede incrementar el poder de cmputo.

As como los sistemas distribudos exhiben grandes ventajas, tambin se pueden


identificar algunas desventajas, algunas de ellas tan serias que han frenado la
produccin comercial de sistemas operativos en la actualidad.
El problema ms importante en la creacin de sistemas distribudos es el software:
los problemas de comparticin de datos y recursos es tan complejo que los
mecanismos de solucin generan mucha sobrecarga al sistema hacindolo
ineficiente. El chequear, por ejemplo, quines tienen acceso a algunos recursos y
quines no, el aplicar los mecanismos de proteccin y registro de permisos
consume demasiados recursos. En general, las soluciones presentes para estos
problemas estn an en paales.
Otros problemas de los sistemas operativos distribudos surgen debido a la
concurrencia y al paralelismo. Tradicionalmente las aplicaciones son creadas para
computadoras que ejecutan secuencialmente, de manera que el identificar
secciones de cdigo paralelizable es un trabajo rduo, pero necesario para
dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de
procesamiento para lograr la distribucin. Con la concurrencia se deben implantar
mecanismos para evitar las condiciones de competencia, las postergaciones
indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de
espera circulares y, finalmente, los "abrazos mortales" (deadlocks). Estos
problemas de por s se presentan en los sistemas operativos multiusuarios o
multitareas, y su tratamiento en los sistemas distribudos es an ms complejo, y
por lo tanto, necesitar de algoritmos ms complejos con la inherente sobrecarga
esperada.
Los sistemas operativos distribuidos ms extendidos son los siguientes: Sprite,
Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
d. Sistemas operativos paralelos
En estos tipos de sistemas operativos se pretende que cuando existan dos o ms
procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo
tiempo.

Sistemas Operativos 46

En UNIX existe tambin la posibilidad de ejecutar programas sin tener que


atenderlos en forma interactiva, simulando paralelismo (es decir, atender de
manera concurrente varios procesos de un mismo usuario). As, en lugar de
esperar a que el proceso termine de ejecutarse (como lo hara normalmente),
regresa a atender al usuario inmediatamente despus de haber creado el proceso.
Ejemplos de este tipo de sistemas operativos estn: Alpha, PVM, la serie AIX, que
es utilizado en los sistemas RS/6000 de IBM.
2.3 Estructura de los sistemas operativos
Si bien no todos los sistemas operativos tienen la misma estructura, la mayora de
los sistemas operativos modernos poseen una misma estructura.
El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se
encarga de controlar y administrar los servicios y peticiones de recursos y de
hardware con respecto a uno o varios procesos.
En los diseos en que el ncleo est distribuido en varios niveles de jerarqua,
elegir qu funcin colocar en cada nivel requiere un anlisis cuidadoso. En tales
diseos, con frecuencia slo se permite hacer llamadas a funciones situadas
jerrquicamente por debajo de quien hace la llamada; es decir, cada nivel slo
puede llamar a las funciones que estn colocadas en el nivel inmediato inferior.
(Recordar grfica 15. Estructura por capas o jerrquica)
De esta forma una estructura general de un sistema operativo sera:
Arriba del ncleo, en jerarqua, se encuentran los diferentes procesos del sistema
operativo que trabajan en apoyo de los procesos de usuario, que se encargan en
la prctica de supervisar las operaciones de entrada/salida de los dispositivos del
sistema para beneficio de los diversos usuarios. Esta estructura sera:
a. Administrador de procesos
Un programa no hace nada a menos que sus instrucciones sean ejecutadas por la
CPU. Un proceso necesita ciertos recursos, tiempo de CPU, memoria, archivos y
dispositivos de E/S, para completar sus tareas. Estos recursos son reservados
cuando se crea el proceso o bien se otorgan en tiempo de ejecucin.
El sistema operativo es responsable de:
-

La creacin y eliminacin de procesos de sistema y de usuarios.


Detener y continuar ejecutando un proceso.
Proveer mecanismos para sincronizar procesos.
Proveer mecanismos para comunicar procesos.
Proveer mecanismos para proteger procesos.

Sistemas Operativos 47

b. Administrador de memoria
El procesador central lee y escribe datos directamente en memoria. La memoria
principal es generalmente el nico dispositivo de almacenamiento que la CPU
puede acceder directamente. Por ejemplo para que la CPU procese datos del
disco, primero se deben cargar stos en la memoria.
El sistema operativo es responsable de:
-

Mantener historial de las partes de memoria que pueden ser accedidas


concurrentemente y que procesos pueden hacerlo.
Decidir qu procesos se cargarn en memoria cuando se encuentre lugar
disponible en sta.
Asignar y quitar espacio de memoria segn las necesidades.

c. Administrador de almacenamiento secundario


Como la memoria principal es muy chica como para almacenar todos los datos y
programas necesarios, la computadora posee un almacenamiento secundario para
volcar los datos de memoria no utilizados. Las computadoras modernas utilizan el
disco para este fin. La mayora de los programas se almacenan en disco hasta
que son cargados en memoria.
El sistema operativo es responsable de:
-

Administrar el espacio libre.


Asignar espacio de almacenamiento.
Organizar el disco.

d. Administrador de sistemas de E/S


Uno de los propsitos del sistema operativo es ocultar las peculiaridades de los
dispositivos de hardware al usuario.
Los sistemas de E/S consisten de:
- Un sistema de buffer intermedio.
- Una interfaz general.
- Manejadores de dispositivos de hardware especficos.
e. Administrador de archivos
El administrador de archivos es uno de los componentes ms visibles de un
sistema operativo. Las computadoras pueden almacenar informacin en diferentes
tipos de medios fsicos. Cintas magnticas, discos magnticos y discos pticos,
son los ms comunes. Cada uno de estos medios tiene sus propias caractersticas

Sistemas Operativos 48

y organizacin fsica. Cada medio se controla por un dispositivo. Las propiedades


incluyen velocidad, capacidad, velocidad de transferencia de datos y mtodo de
acceso (Secuencial o Random).
Por conveniencia el sistema operativo provee una vista lgica uniforme de la
informacin, independientemente de las caractersticas de cada dispositivo, utiliza
la unidad archivo.
Un archivo es un grupo de informacin relacionada definida por su creador
(programas o datos).
El sistema operativo es responsable de:
-

Creacin y eliminacin de archivos.


Creacin y eliminacin de directorios.
Soporte de primitivas (instrucciones) para manipular archivos y directorios.
Mapeo de archivos dentro de almacenamiento secundarios.
Resguardar archivos en medios de almacenamiento estables.

f. Sistema de proteccin
Si un sistema tiene mltiples usuarios y permite mltiples usuarios concurrentes,
los procesos deben estar protegidos de otras actividades. Para tal propsito se
provee de mecanismos que aseguran que los archivos, segmentos de memoria,
CPU y otros recursos pueden ser operados slo por aquellos procesos que tienen
permiso otorgado por el sistema operativo.
Por proteccin se entiende a los mecanismos para controlar el acceso de
programas, procesos y usuario a los recursos definidos por el sistema.
g. Networking
Un sistema distribuido es una coleccin de procesos que no comparten memoria o
recursos. Cada procesador tiene su propia memoria local, y los procesadores se
comunican con otros a travs de varias lneas de comunicacin como ser buses
de alta velocidad o lneas telefnicas.
Los procesadores en el sistema se conectan a travs de redes de comunicacin,
las cuales se pueden configurar de muchas maneras. La red puede esta completa
o parcialmente conectada.
En un sistema distribuido los recursos se comparten entre varias estaciones, los
sistemas operativos de red se encargan de administrar el acceso a estos recursos.
h. Sistema intrprete de comandos

Sistemas Operativos 49

Uno de las funciones ms importantes de un sistema operativo es el intrprete de


comandos, que es la interfaz entre el usuario y el sistema operativo. Algunos
sistemas operativos incluyen el intrprete en el kernel. Otros como el DOS o UNIX,
poseen un programa especial para cumplir esta funcin que se ejecuta cuando se
inicia el sistema.
Los sistemas operativos se diferencian en el rea de interpretacin de comandos,
segn el grado de facilidad que presenten a los usuarios. Por ejemplo en Windows
para copiar un archivo de una unidad a otra el usuario puede seleccionar con el
mouse el archivo que desea copiar y arrastrarlo hasta su nuevo destino; mientras
que en DOS, debe ingresar una sentencia desde una pantalla de caracteres
2.4 Ncleos de sistemas operativos
El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin
es la de gestionar el procesador, la memoria, la entrada/salida y el resto de
procesos disponibles en la instalacin. Toda esta gestin la realiza para atender al
funcionamiento y peticiones de los trabajos que se ejecutan en el sistema.
Todas las operaciones en las que participan procesos son controladas por la parte
del sistema operativo denominada ncleo (nucleus, core o kernel, en ingls). El
ncleo normalmente representa slo una pequea parte de lo que por lo general
se piensa que es todo el sistema operativo, pero es tal vez el cdigo que ms se
utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal,
mientras que otras partes del sistema operativo son cargadas en la memoria
principal slo cuando se necesitan.
Los ncleos se disean para realizar el mnimo posible de procesamiento en cada
interrupcin y dejar que el resto lo realice el proceso apropiado del sistema, que
puede operar mientras el ncleo se habilita para atender otras interrupciones.
2.4.1 Funciones del ncleo
El ncleo de un sistema operativo normalmente contiene el cdigo necesario para
realizar las siguientes funciones:

Manejo de interrupciones.
Creacin y destruccin de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensin y reanudacin de procesos.
Sincronizacin de procesos.
Comunicacin entre procesos.
Manipulacin de los bloques de control de procesos.

Sistemas Operativos 50

Apoyo para las actividades de entrada/salida.


Apoyo para asignacin y liberacin de memoria.
Apoyo para el sistema de archivos.
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.

2.4.2 Categoras de los ncleos


Los ncleos (kernels) de los sistemas operativos se pueden ubicar en dos
categorias:
Monolticos o,
Microncleos (microkernels).
El primer tipo de ncleo es el usado tradicionalmente, mientras que los
microncleos forman parte de las tendencias modernas en el diseo de sistemas
operativos.
Para comprender mejor qu diferencias existen entre ambas categoras, vamos a
revisar algunos conceptos:
a. Trabajos, Procesos y Thread
Estos tres conceptos van definiendo el grado de granularidad en que el sistema
operativo trata a las masas de operaciones que se tienen que realizar. Un trabajo
se conceptualiza como un conjunto de uno o ms procesos. Por ejemplo, si se
tiene que hacer el trabajo de correr el inventario, tal vez se subdivida ese trabajo
en varios procesos: obtener la lista de artculos, nmero en existencia, artculos
vendidos, artculos extraviados, etc. Un proceso se define como la imagen de un
programa en ejecucin, es decir, en memoria y usando el CPU. A este nivel de
granularidad, un proceso tiene un espacio de direcciones de memoria, una pila,
sus registros y su program counter. Un thread es un trozo o seccin de un
proceso que tiene sus propios registros, pila y program counter y puede
compartir la memoria con todos aquellos threads que forman parte del mismo
proceso.
b. Objetos
Un objeto es una entidad que contiene dos partes principales: una coleccin de
atributos y un conjunto de mtodos (tambin llamados servicios). Generalmente
los atributos del objeto no pueden ser cambiados por el usuario, sino solamente a
travs de los mtodos. Los mtodos s son accesibles al usuario y de hecho es lo
nico que l observa: los mtodos conforman lo que se llama la interfaz del
objeto. Por ejemplo, para el objeto archivo los mtodos son abrir, cerrar, escribir,
borrar, etc. El cmo se abre, se cierra, se borra, etc; est escondido para el

Sistemas Operativos 51

usuario, es decir, los atributos y el cdigo estn encapsulados. La nica forma de


activar un mtodo es a travs del envo de mensajes entre los objetos, o hacia un
objeto.
c. Cliente - Servidor
Un cliente es un proceso que necesita de algn valor o de alguna operacin
externa para poder trabajar. A la entidad que provee ese valor o realiza esa
operacin se le llama servidor. Por ejemplo, un servidor de archivos debe correr
en el ncleo (kernel) o por medio de un proceso guardin al servidor de archivos
que escucha peticiones de apertura, lectura, escritura, etc; sobre los archivos. Un
cliente es otro proceso guardin que escucha esas peticiones en las mquinas
clientes y se comunica con el proceso servidor a travs de la red, dando la
apariencia de que se tienen los archivos en forma local en la mquina cliente.
d. Ncleo Monoltico
Los ncleos monolticos generalmente estn divididos en dos partes
estructuradas: el ncleo dependiente del hardware y el ncleo independiente del
hardware. El ncleo dependiente se encarga de manejar las interrupciones del
hardware, hacer el manejo de bajo nivel de memoria y discos y trabajar con los
manejadores de dispositivos de bajo nivel, principalmente. El ncleo independiente
del hardware se encarga de ofrecer las llamadas al sistema, manejar los sistemas
de archivos y la planificacin de procesos. Para el usuario esta divisin
generalmente pasa desapercibida. Para un mismo sistema operativo corriendo en
diferentes plataformas, el ncleo independiente es exactamente el mismo,
mientras que el dependiente debe re-escribirse.
e. Microkernel
Un ncleo con arquitectura microncleo es aquel que contiene nicamente el
manejo de procesos y threads, el de manejo bajo de memoria, da soporte a las
comunicaciones y maneja las interrupciones y operaciones de bajo nivel de
entrada-salida. En los sistemas operativos que cuentan con este tipo de ncleo se
usan procesos servidores que se encargan de ofrecer el resto de servicios (por
ejemplo el de sistema de archivos) y que utilizan al ncleo a travs del soporte de
comunicaciones.
Este diseo permite que los servidores no estn atados a un fabricante en
especial, incluso el usuario puede escoger o programar sus propios servidores. La
mayora de los sistemas operativos que usan este esquema manejan los recursos
de la computadora como si fueran objetos: los servidores ofrecen una serie de
llamadas o mtodos utilizables con un comportamiento coherente y
estructurado.

Sistemas Operativos 52

Otra de las caractersticas importantes de los microncleos es el manejo de


threads. Cuando un proceso est formado de un solo thread, ste es un proceso
normal como en cualquier sistema operativo.
Los usos ms comunes de los microncleos son en los sistemas operativos que
intentan ser distribuidos, y en aquellos que sirven como base para instalar sobre
ellos otros sistemas operativos. Por ejemplo, el sistema operativo AMOEBA
intenta ser distribuido y el sistema operativo MACH sirve como base para instalar
sobre l DOS, UNIX, etc.
Actividad de refuerzo:
Claro el tema abordado? Bien.
Entonces ahora saque las dos listas, por cada sistema operativo, que realiz
en la actividad inicial, revise nuevamente las caractersticas y desventajas que
haba descrito de los sistemas operativos Windows y Linux (versiones
seleccionadas). Si cree que debe cambiar algo en cuaquiera de las listas, o al
contrario agregar algn otro tem lo puede hacer.
Socialice su ejercicio con el tutor. Resalte los puntos en los que no tuvo
aciertos.

Sistemas Operativos 53

CAPTULO 3. INTERBLOQUEO
Activacin cognitiva:
Renanse en grupos de trabajo, no importa el nmero de integrantes, slo
importa que el grupo tenga mnimo 2 estudiantes. Y analicen qu es el
interbloqueo y en qu actividades de la vida cotidiana se pueden presentar
situaciones de Interbloqueo. Comentar en grupo, justificar sus respuestas.

3.1 Recursos16
Un sistema se compone de un nmero finito de recursos que son distribuidos entre
un nmero de procesos que compiten por ellos.
Existen recursos:
Fsicos: ciclos de CPU, espacio en memoria, dispositivos de E/S
(impresoras, unidades de cinta, etc.).
Lgicos: ficheros, tablas del sistema, semforos.
Los recursos son clasificados en diferentes tipos, cada uno de los cuales se
compone de algn nmero de instancias iguales.
Si un sistema tiene dos CPUs, entonces el tipo CPU tiene dos instancias.
Similarmente, el tipo IMPRESORAS puede tener cinco instancias. Si un proceso
pide una instancia de un tipo de recurso, la asignacin de cualquier instancia de
ese tipo atender la peticin.
Si este no es el caso, entonces las instancias no son idnticas y las clases de
tipos de recursos no estn bien definidas. Un proceso debe solicitar un recurso
antes de usarlo y liberarlo despus de usarlo. Un proceso puede solicitar tantos
recursos como sean necesarios para llevar a cabo la tarea para la cual ha sido
diseado. Obviamente el nmero de recursos solicitados no debe exceder el
nmero de recursos disponibles en el sistema. En otras palabras, un proceso no
debe pedir tres impresoras si en el sistema solo existen dos.
Los bloqueos pueden ocurrir cuando los procesos obtienen el acceso exclusivo a
los dispositivos, archivos, etc. Para analizar los bloqueos de manera ms general,
nos referimos a los objetos conocidos como recursos.

16

Sistemas Operativos II. Instituto Tecnolgico de Veracruz. KWWSZZZLWYHUHGXP[VR


Unidad II. Tema 2.2.

Sistemas Operativos 54

Como se mencion, un recurso puede ser cualquier dispositivo de hardware


(unidad de cinta) o una parte de informacin (por ejemplo un registro cerrado en
una base de datos). Una computadora normalmente tendr varios recursos que
pueden ser otorgados. Algunos podrn tener varias referencias idnticas, como en
el caso de las unidades de cinta. Si se tienen varias copias disponibles de un
recurso, cualquiera de ellas se puede utilizar para satisfacer cualquier solicitud de
recurso.
En resumen, un recurso es cualquier elemento que pueda ser utilizado por un
nico proceso en un momento dado.
Los recursos son de dos tipos:
Apropiativos
No apropiativos
3.1.1 Recursos apropiativos
Grfica 18. Recursos apropiativos. Memoria.

Los recursos apropiativos son aquellos que se pueden tomar del proceso que le
posee sin efectos dainos. La memoria es un ejemplo de recursos apropiativos.
Por ejemplo consideremos un sistema con 512 Kb de memoria de usuario, una
impresora, y dos procesos de 512 Kb que se desean imprimir cada uno.
El proceso A solicita y obtiene la impresora, para entonces comienza a
calcular los valores que va a imprimir. Antes de terminar el clculo excede
su quantum de tiempo y se intercambia.
El proceso B se empieza a ejecutar e intenta sin xito adquirir la impresora.
En potencia tendramos una situacin de bloqueo, puesto que A tiene la
impresora y B la memoria y ninguno puede continuar sin el recurso que
posee el otro.
Por fortuna es posible apropiarse de la memoria de B y sacarlo de ella e
intercambiarlo con A.

Sistemas Operativos 55

A puede ejecutarse entonces, imprimir y liberar despus la impresora. No


ocurre un bloqueo.
3.1.2 Recursos no apropiativos
Grfica 19. Recursos no apropiativos. Impresora.

Los recursos no apropiativos son aquellos que no se pueden tomar de su


poseedor activo sin provocar un fallo de clculo. Por ejemplo, si un proceso
comienza a imprimir una salida, se toma la impresora y se le da otro proceso, el
resultado ser una salida incomprensible. Las impresoras no son apropiables.
En general los bloqueos se relacionan con los recursos no apropiables.
Bajo un modo normal de operacin un proceso puede utilizar un recurso slo en la
siguiente secuencia:
1. Peticin. Si la peticin no puede ser satisfecha inmediatamente (por
ejemplo, el recurso esta siendo utilizado por otro proceso), entonces el
proceso solicitante debe esperar hasta que pueda adquirir el recurso.
2. Uso. El proceso puede utilizar un recurso (por ejemplo, si el recurso es una
impresora en lnea, el proceso puede imprimir en la impresora).
3. Liberacin. El proceso libera el recurso. Si el recurso no esta disponible
cuando es requerido, el proceso solicitante se ve forzado a esperar. En
algunos sistemas operativos, el proceso se bloquea automticamente
cuando falla la solicitud el recurso y se desbloquea cuando esta disponible.
En otros sistemas, la requisicin falla en un cdigo de error y corresponde
al recurso solicitante esperar un poco y volverlo a intentar.
La peticin y liberacin del recurso son peticiones al sistema. Ejemplos de
llamadas al sistema son: Peticin/Liberacin de dispositivos, Abrir/Cerrar archivos
y Asignar/Desasignar memoria.
El uso de recursos puede tambin hacerse slo a travs de llamadas al sistema.
Por lo tanto, para cada uso, el sistema operativo chequea para asegurarse de que
el proceso usuario ha pedido y se le han asignado los recursos. Una tabla del
sistema registra cuando un recurso est libre o asignado, y si est asignado, a qu
proceso. Si un proceso pide un recurso que est asignado en ese momento a otro

Sistemas Operativos 56

proceso, ste puede ser agregado a una cola de procesos en espera de ese
recurso.
3.2 Anlisis

!"

Grfica 20. Recursos

Los sistemas de cmputo tienen muchos recursos que slo pueden ser utilizados
por un proceso a la vez. Los ejemplos ms comunes son las impresoras, las
unidades de cinta y los espacios de las tablas de archivos. Si dos procesos
utilizaran al mismo tiempo el mismo espacio en la tabla de archivos, se tendra un
sistema de archivo corrupto. Por ello, todos los sistemas operativos tienen la
capacidad de otorgar a un proceso (en forma temporal) el acceso exclusivo a
ciertos recursos.
En muchas aplicaciones, un proceso necesita el acceso exclusivo no solo a un
recurso, sino a varios recursos. Un proceso que copie un archivo mayor que el
tamao de un disco de una cinta magntica a una impresora necesita el acceso
exclusivo a la unidad de cinta y a la impresora al mismo tiempo. En un sistema
monousuario, ste puede tener acceso a todos los recursos que necesite y realizar
su trabajo.
Sin embargo, en un sistema multiusuario, pueden surgir serios problemas.
3.2.1 Bloqueos
Grfica 21. Ejemplo de bloqueo
Proceso A

Proceso B

BLOQUEO

2
4

17

Ibid. Unidad II. Temas 2.1 y 2.3.

Sistemas Operativos 57

Veamos:
Supongamos que dos procesos desean imprimir cada uno un enorme
archivo en cinta. El proceso A solicita permiso para utilizar la impresora, el
cual se le concede.
Entonces cuando el proceso B solicita permiso para utilizar la unidad de
cinta y se le otorga.
El proceso A solicita entonces la unidad de cinta, pero la solicitud es
denegada hasta que B la libere.
Por desgracia, en este momento, en vez de liberar la unidad de cinta, el
proceso B solicita la impresora.
Los procesos se bloquean en ese momento y permanecen as por siempre.
A esta situacin se le llama BLOQUEO.
3.2.2 Abrazo Mortal (Deadlock)
Grfica 22. Ejemplo de deadlock

En ambientes de multiprogramacin, varios procesos pueden competir por un


nmero finito de recursos. Un proceso solicita recursos, y si los recursos no estn
disponibles en ese momento, el proceso entra en un estado de espera. Puede
suceder que los procesos en espera nunca cambien de estado, debido a que los
recursos que han solicitado estn siendo detenidos por otros procesos en espera.
Por ejemplo, esta situacin ocurre en un sistema con cuatro unidades de disco y
dos procesos. Si cada proceso tiene asignadas dos unidades de disco pero
necesita tres, entonces cada proceso entrar a un estado de espera, en el cual
estar hasta que el otro proceso libere las unidades de cinta que tiene asignadas.
Esta situacin es llamada Abrazo Mortal (Deadlock). Para prevenir un abrazo
mortal o recuperarse de alguno que ocurra, el sistema puede tomar alguna accin
relativamente extrema, tal como el derecho de tomar los recursos (preemption of
resources) de uno o ms de los procesos que se encuentren en el abrazo mortal.
A lo largo del captulo se describen algunos de los mtodos que pueden utilizarse
en un sistema operativo para manejar el problema de abrazo mortal.

Sistemas Operativos 58

El problema del abrazo mortal (Deadlock)


El problema de los abrazos mortales no es nico al ambiente de los sistemas
operativos. Generalizando nuestra interpretacin de recursos y procesos,
podemos ver que un problema de abrazo mortal puede ser parte de nuestro
ambiente de vida diaria.
Por ejemplo, considere el problema de cruzar un ro que tiene un nmero de
piedras de apoyo. A lo ms, un pie puede estar pisando una piedra a la vez. Para
cruzar el ro, cada persona debe de utilizar cada una de las piedras de apoyo.
Podemos suponer que cada una de las personas que cruzan el ro es un proceso
y que cada piedra de apoyo es un recurso. Un abrazo mortal ocurre cuando dos
personas intentan cruzar el ro desde orillas opuestas y se encuentran en el
medio.
El pisar una piedra puede ser vista como el adquirir un recurso, mientras que el
quitar el pie de la piedra corresponde a liberar el recurso. Un abrazo mortal ocurre
cuando dos personas tratan de poner un pie en la misma piedra. El abrazo mortal
puede ser resuelto si cada una de las personas se retira hacia el lado del ro
desde el cual inici a cruzar. En trminos de sistemas operativos, esta retirada es
llamada un rollback. Observe que si varias personas estn cruzando el ro
desde el mismo lado, es necesario que ms de una persona se retire con el fin de
resolver el abrazo mortal. Si una persona empieza a cruzar el ro sin averiguar si
alguien ms est tratando de cruzar el ro desde el otro lado, entonces siempre
puede ocurrir un abrazo mortal.
La nica manera de asegurar que un abrazo mortal no va a ocurrir, es el de pedir
a cada persona que va a cruzar el ro que siga un protocolo de aceptacin previa.
Tal protocolo debe de pedir a cada una de las personas que deseen cruzar el ro,
el averiguar si alguien ms est cruzando desde el otro lado. Si la respuesta es
no, entonces puede proseguir. De otra manera, debe esperar hasta que la otra
persona haya terminado de cruzar. Varias observaciones deben de hacerse con
respecto a este protocolo:
Se debe de tener un mecanismo para determinar cuando alguien est
cruzando el ro. Si es posible el examinar siempre el estado de todas las
piedras de apoyo, esta condicin es suficiente. Si no (por ejemplo, puede ser
que el ro sea muy ancho o haya neblina y est muy oscuro), otro mecanismo
es necesario.
Supongamos que dos personas quieren cruzar el ro desde lados opuestos al
mismo tiempo. Nuestro protocolo no especifica que debe de hacerse en este
caso. Si ambos inician a cruzar el ro, un abrazo mortal puede ocurrir. Si cada
uno espera al otro para empezar, otra forma de abrazo mortal puede ocurrir.

Sistemas Operativos 59

Un remedio para esta dificultad es asignar a un lado del ro mayor prioridad


(digamos, al lado oeste). Esto es, la persona que intente cruzar desde el lado
oeste, siempre cruzar primero, mientras que la persona del este tiene que
esperar.
Si este protocolo es observado, uno a ms procesos pueden tener que esperar
indefinidamente para cruzar el ro. Esta situacin es llamada "Inanicin"
(Starvation). Puede ocurrir, por ejemplo, que exista en flujo de gente constante
desde el lado con ms alta prioridad. Con el fin de prevenir la inanicin, el
protocolo anterior debe de ser modificado. Por ejemplo, podemos definir un
algoritmo que alterne la direccin de cruce de vez en cuando.
En conclusin podemos decir que un proceso cuya solicitud de un recurso ha sido
denegada entrar por lo general en un ciclo, en el cual solicita el recurso, duerme
e intenta de nuevo. Aunque este proceso no est bloqueado, para todos los
efectos est como bloqueado, puesto que no puede hacer ninguna labor til.
Es as como bloqueos y/ abrazos mortales se pueden denominar o son los mismos
Interbloqueos. No importa su origen, slo interesa que existe un proceso que est en
espera de que un recurso le sea asignado.

El Interbloqueo, de forma general, se puede definir as:


Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de
ellos espera un evento que slo puede originar otro proceso del mismo conjunto.

En la mayora de los casos, el evento que espera cada proceso es la liberacin de


cierto recurso que posee por el momento otro miembro del conjunto. En otras
palabras, cada miembro del conjunto de procesos bloqueados espera un recurso
posedo por un proceso bloqueado. Ninguno de los procesos puede continuar su
ejecucin, ni liberar recursos, y puede ser despertado.
Debe ser obvio que el interbloqueo es una condicin indeseable. En un abrazo
mortal o bloqueo, los procesos nunca terminan de ejecutarse y los recursos del
sistema esta amarrados, evitando que otros procesos puedan siquiera empezar.
Antes de discutir varios mtodos para manejar este problema, sera til describir
algunas de las propiedades que los caracterizan.

Sistemas Operativos 60

3.3 Condiciones para producir un interbloqueo18


Segn Coffman (1971), existen cuatro condiciones que deben cumplirse para que
haya estancamiento, bloqueo o interbloqueo. Una situacin puede surgir s y solo
s las siguientes cuatro condiciones ocurren simultneamente en un sistema:
3.3.1 Exclusin mutua
Cada recurso se asigna por lo regular exactamente a un proceso o bien esta
disponible. Al menos un recurso es mantenido en un modo no-compartible; esto
es, slo un proceso a la vez puede usar el recurso. Si otro proceso solicita ese
recurso, tiene que ser retardado hasta que el recurso haya sido liberado.
3.3.2 Retener y esperar
Los procesos que regularmente contienen recursos otorgados antes pueden
solicitar nuevos recursos. Debe existir un proceso que retenga al menos un
recurso y est esperando para adquirir recursos adicionales que estn siendo
retenidos por otros procesos.
3.3.3 No existe el derecho de desasignar (No preemption)
Los recursos previamente otorgados no pueden extraerse por la fuerza de un
proceso. Deben ser liberados explcitamente por el proceso que los contiene. Los
recursos no pueden ser desasignados (preempted); esto es, un recurso slo
puede ser liberado voluntariamente por el proceso que lo retiene, despus de que
el proceso ha terminado su tarea.
3.3.4 Espera circular
Debe haber una cadena de dos o ms procesos, cada uno de los cuales est
esperando u recurso contenido en el siguiente miembro de la cadena. Debe existir
un conjunto {p0, p1,,pn} de procesos en espera tal que p0 est esperando por
un recurso que est siendo retenido por p1, p1 est esperando por un recurso que
est siendo retenido por p2,..., pn-1 est esperando por un recurso que est
siendo retenido por pn y pn est esperando por un recurso que est siendo
retenido por p0.
Enfatizo que las cuatro condiciones deben de cumplirse para que pueda ocurrir un
abrazo mortal. La condicin de espera circular implica la condicin de retener y
esperar, de tal manera que las cuatro condiciones no son totalmente
18

La informacin de este tema fue consultada y extractada de los documentos Sistemas Operativos
I y Sistemas Operativos II. Instituto Tecnolgico de Veracruz. http://www.itver.edu.mx/so1/ Unidad
IV y http://www.itver.edu.mx/so2/ Unidad II, respectivamente.

Sistemas Operativos 61

independientes. Sin embargo, puede ser til el considerar cada condicin por
separado.
Una forma de modelar estas condiciones es usando un grafo de recursos: los
crculos representan procesos, los cuadrados recursos. Una arista desde un
recurso a un proceso indica que el recurso ha sido asignado al proceso. Una arista
desde un proceso a un recurso indica que el proceso ha solicitado el recurso, y
est bloqueado esperndolo. Entonces, si hacemos el grafo con todos lo procesos
y todos los recursos del sistema y encontramos un ciclo, los procesos en el ciclo
estn bajo bloqueo mutuo.
Grfica 23. Ejemplo de un grafo de recursos

3.4 Mtodos para manejar el interbloqueo


Principalmente, existen dos mtodos para manejar el interbloqueo. Podemos usar
algn protocolo para asegurar que el sistema nunca entrar en un estado de
abrazo mortal. Alternativamente, podemos permitir que el sistema entre en un
estado de abrazo mortal (bloqueo) y despus recuperarse. Pero el recuperarse
puede ser muy difcil y muy caro.
Por ello, en primer lugar, consideraremos los mtodos para asegurar que no
ocurran los abrazos mortales. Comnmente, existen dos mtodos:
Prevencin - Deadlock Prevention (3.5)
Evasin - Deadlock Avoidance (3.6, 3.7 y 3.8)

Sistemas Operativos 62

Despus se trabajarn los mtodos para tratar el interbloqueo, una vez ste se ha
presentado o no ha sido posible evitarlo, esto es:
Deteccin y recuperacin (3.9)
3.5 Prevencin del interbloqueo19
La estrategia bsica de la prevencin del interbloqueo consiste, a grandes rasgos,
en disear un sistema de manera que est excluida, a priori, la posibilidad de
interbloqueo.
Los mtodos para prevenir el interbloqueo consisten en impedir la aparicin de
alguna de las cuatro condiciones necesarias, antes mencionadas. Al asegurarnos
de que por lo menos una de estas condiciones no se presente, podemos prevenir
la ocurrencia de un bloqueo.
3.5.1 Exclusin mutua
Si ningn recurso se puede asignar de forma exclusiva, no se producira
interbloqueo. Sin embargo, existen recursos para los que no es posible negar la
condicin de exclusin mutua, pues la propia naturaleza de los mismos obliga a
que sean utilizados en exclusin mutua.
No obstante, es posible eliminar esta condicin en algunos recursos. Por ejemplo,
una impresora es un recurso no compatible pues si se permite que dos procesos
escriban en la impresora al mismo tiempo, la salida resultar catica. Pero con el
spooling de salida varios procesos pueden generar salida al mismo tiempo. Puesto
que el spooler nunca solicita otros recursos, se elimina el bloqueo originado por la
impresora.
El inconveniente es que no todos los recursos pueden usarse de esta forma (por
ejemplo, la tabla de procesos no se presenta al spooling y, adems, la
implementacin de esta tcnica puede introducir nuevos motivos de interbloqueo,
ya que el spooling emplea una zona de disco finita).
3.5.2 Retener y esperar
Con el fin de asegurar que la condicin de retener y esperar nunca ocurra en el
sistema, se debe garantizar que siempre que un proceso solicite un recurso, ste
no pueda retener otros recursos.
Un protocolo que puede ser usado requiere que cada proceso solicite y le sean
asignados todos los recursos antes de que empiece su ejecucin. Esto puede ser
19

Ibid. 8QLGDG,9\8QLGDG,,

Sistemas Operativos 63

implantado haciendo que las llamadas al sistema solicitando recursos se hagan


antes que todas las otras llamadas al sistema.
Un protocolo alternativo permite que un proceso solicite recursos cuando no tiene
ningn recurso asignado. Un proceso puede solicitar algunos recursos y utilizarlos,
pero, antes de que pueda volver a pedir recursos adicionales, debe liberar todos
los recursos que tiene previamente asignados.
Para ejemplificar la diferencia entre estos dos protocolos, consideremos un
proceso que copia un archivo de una unidad de cinta(1) a una unidad de disco,
ordena el archivo en disco, despus imprime los resultados a una impresora en
lnea y finalmente copia el archivo de disco a la unidad de cinta(2).
Si todos los recursos deben ser solicitados al inicio del proceso,
entonces el proceso debe iniciar solicitando la unidad de cinta(1), la unidad de
disco, la impresora en lnea y la unidad de disco(2). Este proceso mantendr las
unidades de cinta (1) y (2) durante la ejecucin completa aunque slo las utilice al
principio y al final de su ejecucin respectivamente.
El segundo mtodo permite al proceso el solicitar inicialmente solo la unidad de
cinta(1) y la unidad de disco. Ahora puede copiar el archivo de la unidad de cinta
(1) a la unidad de disco y ordenarlo, posteriormente debe liberar la unidad de
cinta(1) y la unidad de disco. El proceso debe volver a solicitar la unidad de disco y
la impresora en lnea para hacer la impresin. Despus de imprimir debe liberar la
unidad de disco y la impresora. Ahora debe de volver a solicitar la unidad de disco
y la unidad de cinta(2) para copiar el archivo a cinta, debe liberar ambos recursos
y terminar.
Existen dos desventajas principales en estos protocolos:
La primera, la utilizacin de los recursos puede ser muy baja, debido a que
varios de los recursos pueden estar asignados pero no son utilizados la
mayor parte del tiempo.
Segundo, puede ocurrir Inanicin (Starvation). Un proceso que necesite
varios recursos que sean muy solicitados puede tener que esperar
indefinidamente mientras al menos uno de los recursos que necesita est
asignado siempre a algn otro proceso.
En esta segunda condicin, retener y esperar, si se puede impedir que los
procesos que tienen los recursos esperen la llegada de ms recursos podemos
erradicar los estancamientos.
La solucin que exige que todos los procesos soliciten todos los recursos que
necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los
recursos puedan concederse simultneamente resulta ineficiente por dos factores:

Sistemas Operativos 64

En primer lugar, un proceso puede estar suspendido durante mucho tiempo,


esperando que concedan todas sus solicitudes de recursos, cuando de
hecho podra haber avanzado con slo algunos de los recursos.
Y en segundo lugar, los recursos asignados a un proceso pueden
permanecer sin usarse durante periodos considerables, tiempo durante el
cual se priva del acceso a otros procesos.
3.5.3 No existe el derecho de desasignar
La tercera condicin necesaria es que no debe de existir el derecho de desasignar
recursos que han sido previamente asignados.
Con el fin de asegurar que esta condicin no se cumpla, el siguiente protocolo
puede ser usado:
Si un proceso que est reteniendo algunos recursos solicita otro recurso que no
puede ser asignado inmediatamente (es decir, el proceso tiene que esperar),
entonces todos los recursos que tiene este proceso en espera son desasignados.
Entonces, los recursos son liberados implcitamente. Los recursos liberados son
agregados a la lista de los recursos por los cuales est esperando el proceso. El
proceso slo puede volver a ser reinicializado cuando haya obtenido otra vez
todos los recursos que tena asignados, as como el nuevo recurso que estaba
solicitando.
Alternativamente si un proceso solicita algunos recursos, primero verificamos si
estos estn disponibles. Si es as, entonces se le asignan. De otro modo, se
verifica si estn asignados a alguno de los procesos que estn en espera de
recursos adicionales. Si es as, los recursos deseados son desasginados del
proceso en espera y asignados al proceso solicitante. De otra manera (no estn
disponibles, ni asignados a procesos en espera) el proceso que hace la solicitud
debe esperar. Pero, mientras esta esperando, algunos de sus recursos pueden ser
desasignados solamente si estos son solicitados. Un proceso puede ser
reinicializado cuando se le asigna el recurso que haba solicitado y recupera
cualquier recurso que haya sido desasignado mientras esperaba.
Este protocolo es utilizado usualmente sobre recursos cuyo estado puede ser
fcilmente salvado y restablecido posteriormente, ejemplo de ellos son los
registros del CPU y el espacio en la memoria. Este no puede ser aplicado a
recursos tales como impresoras.
Esta tercera condicin (llamada tambin sin prioridad) es an menos premisoria
que la segunda. Si a un proceso se le ha asignado la impresora y se encuentra a

Sistemas Operativos 65

la mitad de la impresin, y tomamos a la fuerza la impresora porque no se dispone


de una graficadora, se engendrara una confusin.
3.5.4 Espera circular
Con el fin de asegurarse de que la condicin de espera circular nunca se presente,
se puede imponer un ordenamiento total sobre todos los tipos de recursos. Esto
es, asignamos a cada tipo de recurso un nmero entero nico, el cual permita
comparar dos recursos y determinar cundo uno precede al otro en el
ordenamiento.
Ms formalmente, sea R = {r1, r2,..., rn} el conjunto de tipos de recursos. Puede
definirse una funcin uno a uno F:R->N, donde N es el conjunto de nmeros
naturales. Por ejemplo, si el conjunto R de tipos de recursos incluye unidades de
disco (UDD), unidades de cinta (UDC), lectoras pticos (LO) e impresoras (I),
entonces la funcin F puede ser definida como sigue:
F(LO) =1
F(UDD) = 5
F(UDC) = 7
F(I) = 12
Se puede considerar el siguiente protocolo para prevenir interbloqueo:
Cada proceso puede solicitar recursos solamente en un orden creciente de
numeracin. Esto es un proceso puede solicitar inicialmente cualquier nmero de
instancias de un tipo de recurso, digamos ri.
Despus de esto, el proceso puede solicitar instancias de recursos del tipo rj si y
solo si F(rj) > F(ri). Si varias instancias del mismo tipo de recurso son necesitadas,
debe hacerse una sola peticin para todas las instancias. Por ejemplo, usando la
funcin definida anteriormente, un proceso que quiere usar el lector ptico (LO) y
la impresora (I) debe solicitar primero el (LO) y despus la (I).
Alternativamente, se puede requerir simplemente que siempre que un proceso
solicite una instancia del recurso tipo rj, ste tenga que liberar cualquier recurso
del tipo ri tal que F(ri) >= F(rj).
Si este protocolo es usado, la condicin de cola circular no puede presentarse. Se
puede demostrar este hecho asumiendo que existe una cola circular (prueba por
contradiccin).
Sea {p0, p2, p2,..., pn} el conjunto de procesos que estn en la
espera circular, donde pi est esperando por un recurso ri, el cual es retenido por

Sistemas Operativos 66

pi+1.,Entonces, debido a que el proceso pi+1 est reteniendo el recurso ri


mientras est esperando el recurso ri+1, se debe tener F(ri) < F(ri+1), para toda i.
Pero esto significa que F(r0) < F(r1) < ... < F(rn) < F(r0). Por transitividad, F(r0) <
F(r0),
lo
cual
es
imposible.
Por
lo
tanto,
no
puede
existir una espera circular.
Debe notarse que la funcin F debe definirse de acuerdo al ordenamiento de uso
normal de los recursos en el sistema. Por ejemplo, usualmente se utiliza primero
una (UDD) antes que la (I), por lo cual es razonable definir F(UDD) < F(i).
Esta ltima condicin (espera circular) se puede eliminar en varias formas. Una
manera consiste en simplemente tener una regla que afirme que un proceso slo
tiene derechos a un recurso nico en cualquier momento. Si necesita un segundo
recurso debe devolver el primero.
Otra manera de evitar la espera circular es la de ofrecer una numeracin global de
todos los recursos. Ahora la regla es que los procesos pueden solicitar recursos
siempre y cuando devuelva el recurso que tenga y el que solicite sea mayor que el
que est utilizando.
Como se mencion anteriormente el estancamiento no se evit imponiendo reglas
arbitrarias sobre procesos, sino mediante el anlisis cuidadoso de cada solicitud
de recursos.
3.6 Evasin del interbloqueo
En vez de restringir la forma o el orden en que los procesos deben solicitar
recursos, antes se chequea que sea seguro otorgar dichos recursos. Es decir, si
se presentan las condiciones suficientes para un interbloqueo, todava es posible
evitarlos por medio de una restriccin en la asignacin de los procesos para tratar
de buscar estados seguros. Estas restricciones aseguran que al menos una de las
condiciones necesarias para el interbloqueo no pueda presentarse y por lo tanto,
tampoco el interbloqueo.
Otro mtodo para evitar interbloqueo consiste en requerir informacin adicional
sobre cmo se solicitarn los recursos. Esta informacin puede ser:
La necesidad mxima de recursos de los procesos que se esta ejecutando.
La asignacin actual de recursos a procesos.
La cantidad actual de instancias libres de cada recurso.
Con base a la informacin que ya se tiene de la forma y del orden en que se
solicitarn los recursos, se puede tomar la decisin de ejecutar el proceso o si

Sistemas Operativos 67

debe esperar. Por lo tanto, la evitacin del interbloqueo slo anticipa la posibilidad
de interbloqueo y asegura que no exista nunca tal posibilidad.
3.6.1 Estados seguros e inseguros
Un estado de asignacin de recursos se considera seguro si en l no hay
posibilidad de interbloqueo. Para que un estado sea seguro, es necesario
que los procesos formen una secuencia segura. Una secuencia segura es
una ordenacin de los procesos de modo que los recursos que an pueden
pedir cualquier proceso pueden ser otorgados con los recursos libres ms
los recursos retenidos por los dems procesos. Con base a ello, cuando un
proceso realice una solicitud de recursos, el sistema se los conceder slo
en el caso de que la solicitud mantenga al sistema en un estado seguro.
Un estado inseguro es aquel en el que puede presentarse un interbloqueo.
3.7 Mecanismos para evitar el interbloqueo20
3.7.1 Algoritmo del banquero para un slo recurso
Este algoritmo fue ideado por Dijkstra (1965). Se cre en la forma en que un
banquero trata a un grupo de clientes, a quienes les otorga lneas de crdito. El
banquero sabe que no todos los clientes (4) A, B, C y D necesitarn su limite de
crdito mximo de inmediato, de manera que slo ha reservado 10 unidades en
lugar de 22 (total mximo disponible) para darles servicios (con este ejemplo
asumiremos que los clientes son los procesos, las unidades de crdito son los
recursos y el banquero es el sistema operativo).
CLIENTES

A
B
C
D

TIENE
0
0
0
0

LIMITE MAXIMO
6
5
4
7

Reserva: 10 seguro
Los clientes emprenden sus respectivos negocios y solicitan prstamos de vez en
cuando, es decir solicitan recursos. En cierto momento, la situacin es como se
muestra en el siguiente cuadro:

20

Ibid. 8QLGDG,9\8QLGDG,,

Sistemas Operativos 68

CLIENTES

A
B
C
D

TIENE
1
1
2
4

LIMITE MAXIMO
6
5
4
7

Este estado es seguro, puesto que con dos unidades restantes, el banquero
puede retrasar todas las solicitudes excepto la de C lo cual permite que C termine
y libere sus cuatro recursos. Con cuatro unidades disponibles, el banquero puede
permitir que B D tengan las unidades necesarias.
Consideremos lo que ocurrira si se otorgara una solicitud de B de una unidad
adicional, analizando esto en el esquema anterior tendramos este nuevo
esquema:

CLIENTES

A
B
C
D

TIENE
1
2
2
4

LIMITE MAXIMO
6
5
4
7

Tendramos un estado inseguro, ya que si todos los clientes solicitaran de pronto


su mximo prstamo, el banquero no podra satisfacerlas y se tendra un bloque.
Un estado inseguro no tiene que llevar a un bloque, puesto que un cliente podra
no necesitar toda su lnea de crdito, pero el banquero no puede contar con ese
comportamiento.
El algoritmo del banquero consiste entonces en estudiar cada solicitud al ocurrir
sta y ver si su otorgamiento conduce a un estado seguro. En caso afirmativo, se
otorga la solicitud; en caso contrario, se le pospone. Para ver si un estado es
seguro, el banquero verifica si tiene los recursos suficientes para satisfacer a otro
cliente. En caso afirmativo, se supone que estos prstamos se le volvern a pagar;
entonces verifica al siguiente cliente cercano al lmite y as sucesivamente. Si en
cierto momento se vuelve a pagar todos los prstamos, el estado es seguro y la
solicitud original debe ser aprobada.
Desventajas del algoritmo del Banquero
El algoritmo del banquero es interesante debido a que proporciona un medio de
asignar los recursos para evitar el interbloqueo. Permite proseguir a los trabajos
que en una situacin de prevencin de interbloqueo tendra que esperar.

Sistemas Operativos 69

Sin embargo el algoritmo contiene un nmero de desventajas importantes que


pueden hacer que un diseador escoja otro enfoque para el problema del
estancamiento, las cuales se listan a continuacin:
El algoritmo requiere que existan un nmero fijo de recursos asignables.
Como los recursos suelen requerir servicios, bien por avera o bien por
mantenimiento preventivo, no podemos contar con que el nmero de
recursos se mantenga siempre constante.
El algoritmo requiere que la poblacin de usuarios se mantenga constante.
Esto tambin es irrazonable. En los sistemas multiprogramadores actuales,
la poblacin de usuarios cambia constantemente.
El algoritmo requiere que el banquero garantice que todas las peticiones
sern concedidas dentro de un intervalo de tiempo finito. Est claro que, en
sistemas reales, se necesitan garantas mucho mayores que sta.
El algoritmo requiere que los clientes (es decir, los trabajos) garanticen que
los prstamos van a ser pagados (osea que los recursos van a ser
devueltos) dentro de un intervalo de tiempo finito. Tambin en este caso se
necesitan garantas mucho mayores que sta para sistemas reales.
El algoritmo requiere que los usuarios indiquen sus necesidades mximas
por adelantado. Al irse haciendo ms dinmica la asignacin de recursos
resulta cada vez ms difcil conocer las necesidades mximas de un
usuario.
Si se tuvieran mltiples recursos y procesos, el algoritmo del banquero se usa de
la misma forma que el primer caso de los clientes del banco, es decir, de las
unidades disponibles se usan para ver si es posible que uno de los procesos
puedan terminar, y si es as, sus recursos son utilizados para terminar otro
proceso, con lo cual se van terminando, hasta dar por terminado todo el estado, y
si este se logra terminar con xito, se dice que todo el estado es seguro.
Otro ejemplo sera el siguiente, en donde las peticiones originales son:

Proc \ Rec
A
B
C
Total disponibles

Impresora
2
4
1
3

U. Cinta
3
1
4
3

Archivo
3
1
2
4

Plotter
1
2
4
2

Total
9
8
11
21

Sistemas Operativos 70

El banquero podra satisfacer los recursos en una primera vuelta de la siguiente


manera:

Proc \ Rec
A
B
C
Total disponibles

Impresora
2/0
4/3
1/0
3

U. Cinta
3/2
1/1
4/0
3

Archivo
3/2
1/1
2/1
4

Plotter
1/0
2/2
4/0
2

Total
9
8
11
21

Procurando satisfacer prioritariamente a los que requieren de menos recursos


para liberarlos ms rpido. En una siguiente vuelta podramos tener:
Proc \ Rec
A
B
C
Total disponibles

Impresora
2/0/2
4/3/1
1/0/0
3

U. Cinta
3/2/1
1/1
4/0/2
3

Archivo
3/2/1
1/1
2/1/1
4

Plotter
1/0/1
2/2
4/0/1
2

Total
9
8
11
21

En la tabla anterior observamos que en este punto los procesos A y B ya fueron


liberados, es decir, fueron satisfechos sus requerimientos de recursos, lo cual se
indica subrayando el nmero. Despus de esto, los otros procesos siguen
solicitando recursos. Ambos procesos, A y B, son los procesos primeros
liberados.
Proc \ Rec
A
B
C
Total disponibles

Impresora
2/0/2
4/3/1
1/0/0/1
3

U. Cinta
3/2/1
1/1
4/0/2/2
3

Archivo
3/2/1
1/1
2/1/1
4

Plotter
1/0/1
2/2
4/0/1/2
2

Total
9
8
11
21

Y como al proceso C an le quedan recursos por pedir, se tiene otra vuelta en la


que se le otorgan ms recursos:
Proc \ Rec
A
B
C
Total disponibles

Impresora
2/0/2
4/3/1
1/0/0/1
3

U. Cinta
3/2/1
1/1
4/0/2/2
3

Archivo
3/2/1
1/1
2/1/1
4

Plotter
1/0/1
2/2
4/0/1/2/1
2

Total
9
8
11
21

En este momento el proceso C es liberado, el cual es el segundo liberado.

Sistemas Operativos 71

En conclusin: Suponemos: n procesos y m recursos.


Disponible[m] Cantidad de elementos disponibles para cada recurso.
Max[n, m] Mximo nmero de elementos de cada recursos que cada procesos puede pedir.
Asignacin[n,m] Nmero de elementos de cada recurso actualmente asignadas a cada proceso.
Necesito[n,m] Nmero de peticiones de elementos de cada recurso que cada proceso an no ha
hecho.
Estructuras de datos necesarias

3.7.2 Algoritmo del banquero para varios recursos


El algoritmo del banquero de puede generalizar para el control de varios recursos.
En la siguiente figura se muestra el funcionamiento de este caso.

PROCESOS
A
B
C

IMPRESORAS
2
4
1

U.CINTA
3
1
4

ARCHIVO
3
1
2

PLOTTER
1
2
4

Total de recursos solicitados 28.

IMPRESORAS
3

U.CINTA
3

ARCHIVO
4

PLOTTER
2

Recursos disponibles
Aqu vemos 2 matrices. La primera muestra el nmero de recursos solicitados por
el momento a cada uno de los tres procesos. La segunda muestra el nmero de
recursos disponibles. Como en el caso de un slo recurso, los procesos deben
establecer sus necesidades totales de recursos antes de su ejecucin de manera
que el sistema operativo pueda calcular la siguiente matriz en cualquier instante.
Si se sigue desarrollando el ejercicio anterior, poniendo en azul los recursos
solicitados y en negro la cantidad dada, la matriz va quedando:

Sistemas Operativos 72

Primera Pasada
PROCESOS
A (liberado)
B
C

IMPRESORAS
2,2
4,0
1,1

U.CINTA
3,3
1,0
4,0

ARCHIVO
3,3
1,1
2,0

PLOTTER
1,1
2,1
4,0

U.CINTA
3,3
1,0,1
4,0,2

ARCHIVO
3,3
1,1
2,0,2

PLOTTER
1,1
2,1,1
4,0,1

U.CINTA
3,3
1,0,1
4,0,2,2

ARCHIVO
3,3
1,1
2,0,2

PLOTTER
1,1
2,1,1
4,0,1,2

U.CINTA
3,3
1,0,1
4,0,2,2

ARCHIVO
3,3
1,1
2,0,2

PLOTTER
1,1
2,1,1
4,0,1,2,1

Recursos solicitados faltantes: 16.


Segunda Pasada
PROCESOS
A (liberado)
B
C

IMPRESORAS
2,2
4,0,3
1,1

Recursos solicitados faltantes: 6.


Tercera Pasada
PROCESOS
A (liberado)
B (liberado)
C

IMPRESORAS
2,2
4,0,3,1
1,1

Recursos solicitados faltantes: 1.


Cuarta Pasada
PROCESOS
A (liberado)
B (liberado)
C (liberado)

IMPRESORAS
2,2
4,0,3,1
1,1

Recursos solicitados faltantes: 0.


En el desarrollo se observa que el primer proceso en ser liberado es el A en la
primera pasada; el B es liberado en la tercera, y el C en la pasada cuatro.
Cabe sealar que ste algoritmo del banquero es maravilloso en teora, pero es
intil en la prctica, puesto que los procesos rara vez conocen de antemano sus
necesidades mximas se recursos. Adems el nmero de procesos no es fijo sino
que vara de manera dinmica al conectarse y desconectarse los usuarios.
3.7.3 Algoritmo del avestruz

Sistemas Operativos 73

El punto de vista ms simple consiste en el algoritmo del avestruz: esconder la


cabeza en la arena como avestruz para pretender que no existe problema alguno.
Grfica 24. Algoritmo del avestruz

Las distintas personas reaccionan a esta estrategia de distintas maneras. Los


matemticos la consideran totalmente inaceptable y dicen que los bloqueos se
deben evitar a toda costa. Los ingenieros preguntan la frecuencia esperada del
problema, la frecuencia de fallas del sistema por otras razones y la seriedad de un
bloqueo. Si los bloqueos ocurren en promedio una vez cada cinco aos, pero el
sistema falla debido a causas de hardware, errores del compilador o del sistema
operativo una vez al mes, la mayora de los ingenieros no estaran dispuestos a
pagar por el rendimiento o la conveniencia de eliminar los bloqueos.
Para aclarar ms este contraste, UNIX sufre potencialmente de bloqueos que ni
siquiera se detectan, puesto que se rompen de manera automtica. El nmero
total de procesos en el sistema queda determinado por el nmero de entradas en
la tabla de procesos. As, los espacios en la tabla de procesos son recursos finitos.
Si falla un FORK debido a que la tabla est totalmente ocupada, un punto de vista
razonable para el programa que realiza el FORK es esperar un tiempo aleatorio e
intentar de nuevo.
Supongamos ahora que un sistema UNIX tiene 100 espacios para procesos. Se
ejecutan 10 programas, cada uno de los cuales necesita crear 12 subprocesos.
Despus de que cada proceso ha creado 9 procesos, los 10 procesos originales
estn ahora en un ciclo infinito, realizando y fallando un FORK (un bloque). La
probabilidad de que esto ocurra es minscula, pero podra ocurrir. Deberamos
abandonar los procesos y la llamada FORK para eliminar el problema?

Sistemas Operativos 74

El mximo nmero de archivos abiertos est restringido, por el tamao de la tabla


de nodos i, por lo que ocurre un problema similar si dicha tabla est totalmente
ocupada. El espacio de intercambio en el disco tambin es un recurso finito.
El punto de vista de UNIX es simplemente ignorar el problema, bajo la hiptesis de
que la mayora de los usuarios preferira un bloqueo ocasional, en vez de una
regla que restringiera a todos los usuarios a un proceso, un archivo abierto y un
algo de cada cosa. si todos los bloqueos se pudieran eliminar, no tendra que
haber mucho anlisis. El problema es que el precio es alto, lo cual se debe
principalmente a que se pondran restricciones inconvenientes a los procesos. As
nos enfrentamos a una desagradable contradiccin entre la conveniencia y lo que
es correcto y una amplia discusin sobre qu es ms importante.
Y Usted qu opina?
3.8 Nivel de implantacin de estrategias21
Se ha visto que ninguna de las anteriores estrategias bsicas para el manejo de
interbloqueos es, por s sola, apropiada para los problemas de asignacin de
recursos en los sistemas operativos.
Una posibilidad es combinar las estrategias bsicas, usando una estrategia ptima
para cada clase de recursos del sistema. El mtodo propuesto se basa en el
concepto de que los recursos pueden dividirse en clases ordenadas
jerrquicamente y para cada una se aplica la tcnica ms apropiada para el
manejo de interbloqueos.
Para ilustrar esta tcnica, consideraremos un sistema que consiste en las cuatro
clases de recursos siguientes:
Recursos internos. Los recursos que utiliza el sistema, como el Bloque de
Control de Proceso (PCB).

Memoria central. Memoria utilizada por un trabajo de usuario.

21

Sistemas Operativos I. Instituto Tecnolgico de Veracruz. http://www.itver.edu.mx/so1/ Unidad IV.

Sistemas Operativos 75

Recursos de trabajos. Dispositivos asignables (impresoras) y archivos.

Espacio intercambiable. Espacio para cada trabajo de usuario en el


almacenamiento secundario.

Una solucin mixta para los interbloqueos en este sistema ordena a las clases en
la forma expuesta y para cada una se utilizan las siguientes estrategias:
Recursos internos. Se puede usar la prevencin a travs de la ordenacin de
recursos, ya que en la ejecucin no es necesario elegir entre solicitudes
pendientes.

Memoria central. Pueden usarse la prevencin por expropiacin, ya que siempre


se puede intercambiar un trabajo y expropiar la memoria central.

Sistemas Operativos 76

Recursos de trabajos. Puede utilizarse la evitacin, ya que la informacin de los


requisitos de recursos puede obtenerse de las tarjetas de control de trabajos.

Espacio intercambiable. Puede emplearse la asignacin previa,


generalmente se conocen los requisitos mximos de almacenamiento.

pues

3.9 Deteccin y recuperacin22


3.9.1 Deteccin
A diferencia de los algoritmos vistos, para evitar interbloqueos, que se deben
ejecutar cada vez que existe una solicitud, el algoritmo utilizado para detectar
circularidad se puede correr siempre que sea apropiado: cada hora, una vez al
da, cuando el operador note que produccin se ha deteriorado a cuando se queje
un usuario.
Dicho algoritmo se puede explicar utilizando las grficas de recursos dirigidos y
reducindolas. Los pasos para reducir una grfica son los siguientes (Lane &
Money, 1988):
1. Encuentre un proceso que est utilizando un recurso y que no est en
espera de uno. Este proceso se puede eliminar de la grfica
(desconectando el vnculo que une el recurso al proceso) y los recursos se
pueden devolver a la lista disponible. Esto es posible porque el proceso
terminar y devolver el recurso.
2. Encuentre un proceso que nada ms espere clases de recursos que no
estn asignados por completo. Este proceso no contribuye al bloqueo
mutuo, ya que terminar por obtener el recurso que espera, terminar su
trabajo y devolver el recurso a la lista disponible.
22

FLYNN, Ida y MCHOES, Ann (2001). Sistemas operativos. Tercera Edicin. Mxico: Editorial
Thomson Learning. p. 119.

Sistemas Operativos 77

3. Vuelva al paso 1 y contine la iteracin, hasta eliminar todas las lneas que
conecten recursos con procesos
Si quedan lneas, esto indicar que la solicitud del proceso en cuestin no puede
satisfacerse y que existe un interbloqueo.
3.9.2 Recuperacin
Una vez que se detecta el interbloqueo hay que desarmarlo y devolver el sistema
a lo normal con tanta rapidez como sea posible. Existen varios algoritmos de
recuperacin, pero todos tienen una caracterstica en comn: requieren por lo
menos una vctima, un trabajo consumible, mismo que, al ser eliminada del
interbloqueo, liberar al sistema. Por desgracia, para eliminar la vctima
generalmente hay que reiniciar el trabajo desde el principio o a partir de un punto
medio conveniente (Calingaert, 1982).
El primer mtodo y ms simple de recuperacin, y el ms drstico es terminar los
trabajos que estn activos en el sistema y volver a arrancarlos desde el principio.
El segundo mtodo es terminar slo los trabajos incluidos en el interbloqueo y
solicitar a sus usuarios que los vuelvan a enviar.
El tercero es identificar qu trabajos intervienen en el interbloqueo y terminarlos
uno por uno y comprobar la desaparicin del bloqueo mutuo despus de cada
eliminacin hasta resolverlo. Una vez liberado el sistema, se deja que los trabajos
restantes terminen su procesamiento; luego, los trabajos detenidos se inician de
nuevo desde el principio.
El cuarto procedimiento se puede poner en efecto slo si el trabajo mantiene un
registro, una instantnea de su progreso, de manera que se pueda interrumpir y
despus continuar sin tener que reiniciar desde el principio. La instantnea es
como el descanso del ejemplo de la escalera: en vez de obligar a los que suben a
volver a la parte inferior de la misma, slo necesitan retirarse al descanso ms
cercano, esperar a que pasen los dems y reanudar la subida. En general, este
mtodo es el preferido para trabajos de ejecucin larga, a fin de ayudarlos a tener
una recuperacin rpida.
Hasta ahora los cuatro procedimientos anteriores comprenden los trabajos que se
encuentran en interbloqueo. Los dos mtodos siguientes se concentran en
trabajos que no estn en interbloqueo y los recursos que conservan.
Uno de ellos, el quinto mtodo de la lista, selecciona un trabajo no bloqueado,
retira los recursos que contiene y los asigna a procesos bloqueados, de manera
que pueda reanudarse la ejecucin (esto deshace el interbloqueo).

Sistemas Operativos 78

El sexto mtodo detiene los trabajos nuevos e impide que entren al sistema, lo que
permite que los que no estn bloqueados sigan hasta su terminacin y liberen sus
recursos.
Por ltimo, con menos trabajos en el sistema, la competencia por los recursos se
reduce, de suerte que los procesos bloqueados obtienen los recursos que
necesitan para ejecutarse hasta su terminacin. Este mtodo es el nico aqu
listado que no necesita una vctima. No se garantiza que funcione, a menos que el
nmero de recursos disponibles exceda los necesarios en por lo menos uno de los
trabajos bloqueados para ejecutar (esto es posible con recursos mltiples).
Deben considerarse varios factores al elegir la vctima para que tengan el efecto
menos negativo sobre el sistema. Los ms comunes son:
1. La prioridad del trabajo en consideracin. Por lo general no se tocan los
trabajos de alta prioridad.
2. El tiempo de CPU utilizado por el trabajo. No suelen tocarse los trabajos
que estn a punto de terminar.
3. La cantidad de tareas en que repercutira la eleccin de la vctima.
Adems, los programas que trabajan con bases de datos tambin merecen un
trato especial. Los trabajos que estn modificando datos no se deben elegir para
su terminacin, ya que la consistencia y validez de la base de datos se pondra en
peligro. Afortunadamente, los diseadores de muchos sistemas de bases de datos
han incluido mecanismos complejos de recuperacin, por lo que se minimiza el
dao a la base de datos si se interrumpe una transaccin o se termina antes de
completarse (Finkel, 1986).
Hasta ahora hemos hablado de interbloqueos, el resultado de la asignacin
liberal de los recursos. En el otro extremo est la inanicin, el resultado de la
asignacin de recursos, donde una tarea no puede ejecutarse porque permanece
en espera de recursos que nunca quedan disponibles. Para ilustrar lo anterior,
Dijkstra (1968) introdujo el caso de la cena de los filsofos.
Cinco filsofos estn sentados en una mesa redonda, cada uno medita
profundamente, y en el centro hay un recipiente de espagueti accesible a todos.
Hay un tenedor entre cada comensal (Figura 25). La costumbre local exige que
cada filsofo utilice dos tenedores, los que estn a ambos lados del plato, para
comer el espagueti, pero slo hay cinco (no los diez que se requeriran para que
los cinco pensadores comieran al mismo tiempo), esto es desafortunado para el
filsofo 2.
Cuando se sientan para cenar, el filsofo 1 (F1) es el primero que toma los dos
tenedores (T1 y T5) a ambos lados del plato y empieza a comer. Inspirado por su

Sistemas Operativos 79

colega, el filsofo 3 (F3) hace lo mismo y toma T2 y T3. Ahora el filsofo 2 (F2)
decide empezar la comida, pero no puede porque no estn disponibles tenedores:
T1 ha sido asignado a F1 y T2 a F3; slo F4 o F5 puede usar el nico tenedor
disponible, as que el filsofo 2 debe esperar.
Grfica 25. Cena de filsofos. Estado inicial

Pronto, F3 termina de comer, deja sobre la mesa sus dos tenedores y vuelve a su
meditacin. Hay que asignar el tenedor que est a su lado (T2), ahora libre, al
filsofo hambriento (F2)? Aunque es tentador, tal cosa resultara ser un mal
precedente, porque si se permite que los filsofos utilicen todos los recursos con la
esperanza de que el recurso requerido quede disponible, la cena puede pasar con
facilidad aun estado inseguro; sera cuestin de tiempo, antes que cada filsofo se
hiciera de un tenedor y nadie podra cenar. As pues, los recursos se asignan a los
filsofos slo cuando ambos tenedores estn disponibles al mismo tiempo. El
estado del sistema, se ilustra en la figura 26.

Sistemas Operativos 80

Grfica 26. Cena de filsofos. Estado intermedio23

g
F4 y F5 estn meditando tranquilamente y F1 sigue comiendo, cuando F3 (que
debe estar lleno), decide comer algo ms y, dado que los recursos estn libres,
tiene la posibilidad de tomar T2 y T3 de nuevo. Poco despus, F1 termina y libera
T1 y T5, pero F2 sigue sin poder comer, porque T2 est asignado. Este escenario
podra continuar de manera indefinida, y siempre que F1 y F3 alternaran su uso de
los recursos disponibles, F2 deber esperar. F1 y F3 pueden comer en cualquier
momento, en tanto que F2 se muere de hambre a slo pulgadas del alimento.
En un entorno de cmputo, los recursos son como los tenedores y los procesos
competitivos son como los comensales. Si el administrador de los recursos no
vigila los procesos y los trabajos que se estn quedando sin alimento y planea su
terminacin en algn momento, se podran quedar en el sistema esperando para
que siempre la combinacin correcta de recursos.
A fin de encarar este problema. Se puede implementar un algoritmo diseado para
detectar trabajos con inanicin, que controla el tiempo que cada trabajo
permanece en espera de recursos.
Una vez detectada la inanicin, el sistema puede bloquear nuevos trabajos hasta
que los trabajos hambrientos queden satisfechos. Este algoritmo se debe
supervisar de cerca: si se efecta demasiado a menudo, los nuevos trabajos
quedan bloqueados constantemente y la produccin disminuye. Si no se lleva a
cabo con la frecuencia suficiente, quedarn en el sistema trabajos con inanicin
durante un periodo inaceptablemente largo.

23

Cada filsofo debe tener ambos tenedores para empezar a comer, uno en la mano derecha y el
otro en la izquierda. A menos que los recursos(tenedores) se asignen justamente, algunos filsofos
pueden quedarse sin comer.

Sistemas Operativos 81

Actividad final:
Una vez desarrollada la temtica de Interbloqueo y quedando claro el
concepto, verifique si las situaciones reales corresponden efectivamente al
concepto de interbloqueo en Sistemas Operativos. Concluya.
Realice una lista de algunos procesos que usted considera tienen interbloqueo
al interior de un sistema computacional.

Sistemas Operativos 82

CAPTULO 4. ARQUITECTURA CLIENTE SERVIDOR


Actividad inicial:
Averigue si en su CEAD existe instalada una red de comunicaciones. Si no la
hay, averigue una red en una empresa u organizacin de su entorno laboral.
Una vez ubicado el caso averiguen cul es la configuracin y estructura que
posee. Cul es el servidor, cules las estaciones de trabajo, qu tipo de red
es. Determine si posee una arquitectura cliente servidor.
Luego desarrolle este captulo y concluya su estudio.

Este mdulo sobre sistemas operativos, se dirige a un sistema computacional con


la estructura vista en el primer captulo, pero si bien es cierto, es importante, es
an ms importante enfocarlo hacia el estudio de un sistema computacional
conectado a una red de cualquier tipo, en donde exista la figura de una
computadora central y varias terminales conectadas a ella. Es aqu en donde se
evidencia la funcin, conveniencia y potencia de utilizar un sistema operativo
acorde con las necesidades del sistema y en especial con las del usuario final.
Este captulo est destinado a revisar los aspectos ms importantes para la
implementacin de un sistema con arquitectura Cliente/Servidor, desde definicin,
consideraciones bsicas de software y hardware hasta la conveniencia para los
usuarios de la implantacin de dicha arquitectura. Se tuvo en cuenta una parte el
estudio que sobre arquitecturas y sistemas de comunicaciones presenta el
Instituto Nacional de Estadstica e Informtica INEI en la direccin:
http://www.inei.gob.pe/web/metodologias/attach/lib616/INDEX.HTM
4.1 Antecedentes
Los computadores personales y los paquetes de software de aplicaciones
proliferan comercialmente. Estos computadores, tambin conocidos como
estaciones de trabajo programables, estn conectados a las Redes de rea Local
(LAN), mediante las cuales, los grupos de usuarios y profesionales comparten
aplicaciones y datos. Las nuevas tecnologas de distribucin de funciones y datos
en una red, permiten desarrollar aplicaciones distribuidas de una manera
transparente, de forma que mltiples procesadores de diferentes tipos
(computadores personales de gama baja, media y alta, estaciones de trabajo,
minicomputadoras o incluso mainframes), puedan ejecutar partes distintas de una
aplicacin. Si las funciones de la aplicacin estn diseadas adecuadamente, se
pueden mover de un procesador a otro sin modificaciones, y sin necesidad de
retocar los programas que las invocan. Si se elige una adecuada infraestructura de
sistemas distribuidos y de herramientas de desarrollo, las aplicaciones resultantes
podrn trasladarse entre plataformas de distintos proveedores.
El desarrollo de aplicaciones Cliente/Servidor era inevitable por un conjunto de
razones:

Sistemas Operativos 83

En muchas situaciones es ms eficiente que el procesamiento centralizado,


dado que ste experimenta una "des-economa" de escala cuando aumenta
mucho la cantidad de usuarios.
Existan ya en ese momento servidores razonablemente eficientes y
confiables.
Se haba establecido un estndar de hecho para una interface
Cliente/Servidor (el ODBC SQL, adoptado por todos los fabricantes
importantes de servidores).
Era imprescindible, para apoyar con informacin a la creciente cantidad de
ejecutivos de nivel medio que necesitan tomar decisiones ante el
computador, ayudndose con las herramientas "front office", que utilizan
con toda naturalidad (planillas electrnicas, procesadores de texto,
graficadores, correos electrnicos, etc.).
Los primeros trabajos conocidos para la arquitectura Cliente/Servidor los hizo
Sybase, que se fund en 1984 pensando en lanzar al mercado nicamente
productos para esta arquitectura. A fines de los 80s el producto fue lanzado para
el voluminoso segmento "low-end" del mercado, en conjuncin con Microsoft,
teniendo como soporte de la base de datos un servidor OS/2, y como herramienta
"front end" bsica el Dbase IV de Ashton Tate. El Dbase IV no se mostr como
una herramienta adecuada, y los desencuentros comerciales entre Sybase,
Microsoft e IBM (en aquel momento socia de Microsoft para el OS/2) hicieron el
resto.
La situacin era muy diferente en 1994, cuando los principales fabricantes
tradicionales (Informix, Oracle, Sybase) haban lanzado al mercado poderosos
servidores y, a ellos, se agregaba IBM que estaba lanzando su producto DB2
para, prcticamente, todos los sistemas operativos importantes (adems de sus
clsicos MVS y VM, ahora anunciaba AIX, OS/2,Windows NT, Hewlett Packard's
UNIX, Suns UNIX, Siemens' UNIX, etc.) y Microsoft que, luego de finalizar su
acuerdo con Sybase, parti para su propio SQL Server para Windows NT.
Exista un conjunto de lenguajes "front end" como, por ejemplo, Delphi, Foxpro,
Powerbuilder, SQL Windows, Visual Basic, etc.
Por otra parte, en la comunidad informtica existan muchas dudas sobre la
calidad de los optimizadores de los sistemas de gerencia de base de datos, cuyas
fallas del pasado haban sido causantes de verdaderas historias de horror.
Qu ha ocurrido en estos dos aos?. Que los servidores se han mostrado slidos
y eficientes, que sus optimizadores probaron, en general, ser excelentes. Que una
cantidad muy importante de empresas, en todo el mundo, ha encarado
aplicaciones Cliente/Servidor, y quienes lo estn haciendo con los planes
necesarios y con las herramientas adecuadas, estn obteniendo xitos muy

Sistemas Operativos 84

importantes, mientras los que lo hicieron desaprensivamente, han cosechado


fracasos.
Cul es el mejor de los servidores?. Esta es una cuestin muy complicada.
Podemos tomar bechmarks publicados por cada uno de los fabricantes, o hacer
los nuestros especficos, pero su importancia siempre es relativa. La respuesta,
adems, depende del momento en que se la formula. Para aplicaciones pequeas
y medias, todos han probado ser muy buenos, las diferencias se darn cuando se
necesiten altsimos regmenes transaccionales, y dependern de cmo cada uno
vaya incorporando nuevas caractersticas como paralelismo, "read ahead", etc.
Cada nueva versin puede modificar las posiciones y los principales fabricantes
estn trabajando al ritmo de una gran versin nueva por ao.
En general, la tecnologa de los servidores de base de datos ha evolucionado
mucho en los ltimos aos y todos los fabricantes trabajan con tecnologa
sensiblemente equivalente. Parecen, mucho ms importantes para la eleccin,
elementos que estn fuera de la tecnologa: la confianza que nos despierta el
fabricante, su compromiso con el producto, su tendencia a mantenerse siempre
actualizado, su situacin econmico/financiera, las garantas que nos brinde el
soporte local y, en menor medida, el precio.
Aunque inicialmente fueron los propios usuarios quienes impulsaron esta nueva
tecnologa, la situacin ha cambiado drsticamente. Hoy en da, el modelo
Cliente/Servidor se considera intrnseco para abordar las necesidades de las
empresas. El proceso distribuido se reconoce como el estndar de sistemas de
informacin, en contraste con los sistemas independientes. Este cambio
fundamental ha surgido como consecuencia de importantes factores (negocio,
tecnologa, proveedores), y se apoya en la existencia de una gran variedad de
aplicaciones estndar y herramientas de desarrollo, fciles de usar que soportan
un entorno informtico distribuido.
Inicialmente, aunque cliente servidor, se manejaba una capa (en una sla iba
presentacin, lgica de negocios y la estructura de datos), enseguida y hasta hace
poco se manejaba el tradicional de dos capas: (una capa presentacin y lgica de
negocios y en la otra la estructura de datos). Y ahora, en la actualidad, se maneja
el verdadero esquema cliente/servidor concebido desde un principio, con tres
capas independientes, pero totalmente compatibles: presentacin, lgica de
negocios y estructura datos. Esta es la manejada con Internet (o Intranet), y
todas las aplicaciones diseadas para l.

Sistemas Operativos 85

4.2 Cliente/Servidor
El concepto de cliente/servidor proporciona una forma eficiente de utilizar todos
estos recursos de mquina, de tal forma que la seguridad y fiabilidad que
proporcionan los entornos mainframe se traspasa a la red de rea local. A esto
hay que aadir la ventaja de la potencia y simplicidad de los ordenadores
personales.
La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de
informacin, en el que las transacciones se dividen en procesos independientes
que cooperan entre s para intercambiar informacin, servicios o recursos. Se
denomina cliente al proceso que inicia el dilogo o solicita los recursos y
servidor, al proceso que responde a las solicitudes.
Es el modelo de interaccin ms comn entre aplicaciones en una red. No forma
parte de los conceptos de la Internet como los protocolos IP, TCP o UDP, sin
embargo todos los servicios estndares de alto nivel propuestos en Internet
funcionan segn este modelo.
Los principales componentes del esquema cliente/servidor son entonces los
clientes, los servidores y la infraestructura de comunicaciones.
En este modelo, las aplicaciones se dividen de forma que el servidor contiene la
parte que debe ser compartida por varios usuarios, y en el cliente permanece slo
lo particular de cada usuario.
Los clientes interactan con el usuario, usualmente en forma grfica.
Frecuentemente se comunican con procesos auxiliares que se encargan de
establecer conexin con el servidor, enviar el pedido, recibir la respuesta, manejar
las fallas y realizar actividades de sincronizacin y de seguridad.
Los clientes realizan generalmente funciones como:
Manejo de la interface del usuario.
Captura y validacin de los datos de entrada.
Generacin de consultas e informes sobre las bases de datos.

Los servidores proporcionan un servicio al cliente y devuelven los resultados. En


algunos casos existen procesos auxiliares que se encargan de recibir las
solicitudes del cliente, verificar la proteccin, activar un proceso servidor para
satisfacer el pedido, recibir su respuesta y enviarla al cliente. Adems, deben
manejar los interbloqueos, la recuperacin ante fallas, y otros aspectos afines. Por
las razones anteriores, la plataforma computacional asociada con los servidores
es ms poderosa que la de los clientes. Por esta razn se utilizan PCs poderosas,
estaciones de trabajo, minicomputadores o sistemas grandes. Adems deben

Sistemas Operativos 86

manejar servicios como administracin de la red, mensajes, control y


administracin de la entrada al sistema ("login"), auditora y recuperacin y
contabilidad. Usualmente en los servidores existe algn tipo de servicio de bases
de datos. En ciertas circunstancias, este trmino designar a una mquina. Este
ser el caso si dicha mquina est dedicada a un servicio particular, por ejemplo:
servidores de impresin, servidor de archivos, servidor de correo electrnico, etc.
Por su parte los servidores realizan, entre otras, las siguientes funciones:

Gestin de perifricos compartidos.


Control de accesos concurrentes a bases de datos compartidas.
Enlaces de comunicaciones con otras redes de rea local o extensa.
Siempre que un cliente requiere un servicio lo solicita al servidor
correspondiente y ste, le responde proporcionndolo. Normalmente, pero
no necesariamente, el cliente y el servidor estn ubicados en distintos
procesadores. Los clientes se suelen situar en ordenadores personales y/o
estaciones de trabajo y los servidores en procesadores departamentales o
de grupo.

Para que los clientes y los servidores puedan comunicarse se requiere una
infraestructura de comunicaciones, la cual proporciona los mecanismos bsicos de
direccionamiento y transporte. La mayora de los sistemas Cliente/Servidor
actuales, se basan en redes locales y por lo tanto utilizan protocolos no orientados
a conexin, lo cual implica que las aplicaciones deben hacer las verificaciones. La
red debe tener caractersticas adecuadas de desempeo, confiabilidad,
transparencia y administracin.
Entre las principales caractersticas de la arquitectura cliente / servidor, se pueden
destacar las siguientes:
El servidor presenta a todos sus clientes una interface nica y bien definida.
El cliente no necesita conocer la lgica del servidor, slo su interface
externa.
El cliente no depende de la ubicacin fsica del servidor, ni del tipo de
equipo fsico en el que se encuentra, ni de su sistema operativo.
Los cambios en el servidor implican pocos o ningn cambio en el cliente.
Como ejemplos de clientes pueden citarse interfaces de usuario para enviar
comandos a un servidor, APIs para el desarrollo de aplicaciones distribuidas,
herramientas en el cliente para hacer acceso a servidores remotos (por ejemplo,
servidores de SQL) o aplicaciones que solicitan acceso a servidores para algunos
servicios.
Como ejemplos de servidores pueden citarse servidores de ventanas como Xwindows, servidores de archivos como NFS, servidores para el manejo de bases

Sistemas Operativos 87

de datos (como los servidores de SQL), servidores de diseo y manufactura


asistidos por computador, etc.
4.3 Componentes esenciales de la infraestructura Cliente/Servidor
Una infraestructura Cliente/Servidor consta de tres componentes esenciales, todos
ellos de igual importancia y estrechamente ligados:
4.3.1 Plataforma operativa
La plataforma deber soportar todos los modelos de distribucin Cliente/Servidor,
todos los servicios de comunicacin, y deber utilizar, preferentemente,
componentes estndar de la industria para los servicios de distribucin. Los
desarrollos propios deben coexistir con las aplicaciones estndar y su integracin
deber ser imperceptible para el usuario. Igualmente, podrn acomodarse
programas escritos utilizando diferentes tecnologas y herramientas.
4.3.2 Entorno de desarrollo de aplicaciones
Debe elegirse despus de la plataforma operativa. Aunque es conveniente evitar
la proliferacin de herramientas de desarrollo, se garantizar que el enlace entre
stas y el middleware no sea excesivamente rgido. Ser posible utilizar diferentes
herramientas para desarrollar partes de una aplicacin. Un entorno de aplicacin
incremental, debe posibilitar la coexistencia de procesos cliente y servidor
desarrollados con distintos lenguajes de programacin y/o herramientas, as como
utilizar distintas tecnologas (por ejemplo, lenguaje procedural, lenguaje orientado
a objetos, multimedia), y que han sido puestas en explotacin en distintos
momentos del tiempo.
4.3.3 Gestin de sistemas
Estas funciones aumentan considerablemente el costo de una solucin, pero no se
pueden evitar. Siempre deben adaptarse a las necesidades de la organizacin, y
al decidir la plataforma operativa y el entorno de desarrollo, es decir, en las
primeras fases de la definicin de la solucin, merece la pena considerar los
aspectos siguientes:

Qu necesitamos gestionar?
Dnde estarn situados los procesadores y estaciones de trabajo?
Cuntos tipos distintos se soportarn?
Qu tipo de soporte es necesario y quin lo proporciona?

Cmo definir una infraestructura Cliente/Servidor si no se acomete el trabajo de


definir una infraestructura Cliente/Servidor. Se corre el riesgo de que surjan en la
empresa una serie de soluciones Cliente/Servidor aisladas.

Sistemas Operativos 88

No es en absoluto recomendable el intento de una infraestructura completa desde


el principio, ya que las tecnologas pueden no responder a tiempo a las
necesidades prioritarias del negocio. El enfoque ms adecuado est en un sistema
y una plataforma de aplicacin conceptuales, y una arquitectura construida
incrementalmente y ampliada a medida que se desarrollan nuevas aplicaciones.
La plataforma operativa, el middleware y el entorno de desarrollo de aplicaciones
estn relacionados entre s. Las necesidades de apertura pueden condicionar la
eleccin de la plataforma o del middleware, de igual manera que lo condiciona una
determinada herramienta de desarrollo. El software de aplicacin puede influir en
la plataforma del sistema, y el tiempo disponible para la primera aplicacin puede
implicar algn tipo de compromiso. Por lo tanto, es necesario fijar los objetivos y el
modo de conseguirlos en cada caso concreto: una metodologa de infraestructura
para sistemas distribuidos que permita definir una infraestructura para el sistema
Cliente/Servidor y evale la puesta en marcha del proyecto sobre una base
racional.
El enfoque estructurado de dicha Metodologa comprende los pasos siguientes:
Captacin de las necesidades. Definir, analizar y evaluar, aunando los
requerimientos del negocio con las aportaciones tecnolgicas.
Diseo conceptual en el que se sitan los principales bloques funcionales y
de datos del sistema, mostrando la relacin y comunicacin entre ambos.
Detalle de los principales componentes funcionales, seleccin de procesos,
determinando los principios que deben aplicarse a la seleccin de software
o diseo de los mdulos.
Al final de los tres pasos anteriores, se definen los conceptos del sistema y la
infraestructura tecnolgica, sin concretar, todava, en productos o plataformas
especficos.
Por ltimo, se llega a la seleccin de plataformas y principales productos y
componentes para la implantacin. El resultado es la descripcin de una solucin
que incluye infraestructura tecnolgica, plataformas y productos.
4.4 Caractersticas funcionales
Esta arquitectura se puede clasificar en cinco niveles, segn las funciones que
asumen el cliente y el servidor, tal y como se puede ver en el siguiente diagrama:
En el primer nivel el cliente asume parte de las funciones de presentacin
de la aplicacin, ya que siguen existiendo programas en el servidor,
dedicados a esta tarea. Dicha distribucin se realiza mediante el uso de
productos para el "maquillaje" de las pantallas del mainframe. Esta tcnica
no exige el cambio en las aplicaciones orientadas a terminales, pero

Sistemas Operativos 89

dificulta su mantenimiento. Adems, el servidor ejecuta todos los procesos


y almacena la totalidad de los datos. En este caso se dice que hay una
presentacin distribuida o embellecimiento.
En el segundo nivel, la aplicacin est soportada directamente por el
servidor, excepto la presentacin que es totalmente remota y reside en el
cliente. Los terminales del cliente soportan la captura de datos, incluyendo
una validacin parcial de los mismos y una presentacin de las consultas.
En este caso se dice que hay una presentacin remota.
En el tercer nivel, la lgica de los procesos se divide entre los distintos
componentes del cliente y del servidor. El diseador de la aplicacin debe
definir los servicios y las interfaces del sistema de informacin, de forma
que los papeles de cliente y servidor sean intercambiables, excepto en el
control de los datos, que es responsabilidad exclusiva del servidor. En este
tipo de situaciones se dice que hay un proceso distribuido o cooperativo.
Grfica 27. Cinco niveles arquitectura/cliente servidor

En el cuarto nivel el cliente realiza tanto las funciones de presentacin


como los procesos. Por su parte, el servidor almacena y gestiona los datos
que permanecen en una base de datos centralizada. En esta situacin se
dice que hay una gestin de datos remota.

Sistemas Operativos 90

En el quinto y ltimo nivel, el reparto de tareas es como en el anterior y


adems el gestor de base de datos divide sus componentes entre el cliente
y el servidor. Las interfaces entre ambos, estn dentro de las funciones del
gestor de datos y, por lo tanto, no tienen impacto en el desarrollo de las
aplicaciones. En este nivel se da lo que se conoce como bases de datos
distribuidas.
4.5 Caractersticas fsicas
El grfico anterior da una idea de la estructura fsica de conexin entre las
distintas partes que componen una arquitectura cliente / servidor. La idea principal
consiste en aprovechar la potencia de los ordenadores personales para realizar,
sobre todo, los servicios de presentacin y, segn el nivel, algunos procesos o
incluso algn acceso a datos locales. De esta forma se descarga al servidor de
ciertas tareas para que pueda realizar otras ms rpidamente.
Tambin existe una plataforma de servidores que sustituye al ordenador central
tradicional y que da servicio a los clientes autorizados. Incluso a veces el antiguo
ordenador central se integra en dicha plataforma como un servidor ms. Estos
servidores suelen estar especializados por funciones (seguridad, clculo, bases de
datos, comunicaciones, etc.), aunque, dependiendo de las dimensiones de la
instalacin se pueden reunir en un servidor una o varias de estas funciones.
Grfica 28. Distribucin cliente/servidor

Sistemas Operativos 91

Las unidades de almacenamiento masivo en esta arquitectura, se caracterizan por


incorporar elementos de proteccin que evitan la prdida de datos y permiten
multitud de accesos simultneos (alta velocidad, niveles RAID, etc.).
Para la comunicacin de todos estos elementos se emplea un sistema de red que
se encarga de transmitir la informacin entre clientes y servidores. Fsicamente
consiste en un cableado (coaxial, par trenzado, fibra ptica, etc.) o en conexiones
mediante seales de radio o infrarrojas, dependiendo de que la red sea local (LAN
o RAL), metropolitana (MAN) o de rea extensa (WAN).
Para la comunicacin de los procesos con la red se emplea un tipo de equipo
lgico denominado middleware que controla las conversaciones. Su funcin es
independizar ambos procesos (cliente y servidor). La interface que presenta es la
estndar de los servicios de red, hace que los procesos "piensen" en todo
momento que se estn comunicando con una red.
4.6 Caractersticas lgicas
Una de las principales aportaciones de esta arquitectura a los sistemas de
informacin, es la interface grfica de usuario (GUI). Gracias a ella se dispone de
un manejo ms fcil e intuitivo de las aplicaciones mediante el uso de un
dispositivo tipo ratn. En esta arquitectura los datos se presentan, editan y validan
en la parte de la aplicacin cliente.
En cuanto a los datos, cabe sealar que en la arquitectura cliente / servidor se
evitan las duplicidades (copias y comparaciones de datos), teniendo siempre una
imagen nica y correcta de los mismos, disponible en lnea para su uso inmediato.
Todo esto tiene como fin que el usuario de un sistema de informacin soportado
por una arquitectura cliente / servidor, trabaje desde su estacin de trabajo con
distintos datos y aplicaciones, sin importarle dnde estn o dnde se ejecuta cada
uno de ellos.
4.7 Middleware robusto y escalable en soluciones Cliente/Servidor
Con el paso de los aos y los adelantos en la tecnologa, la forma de procesar los
datos dentro de las compaas y la forma de utilizar los resultados obtenidos ha
tenido un constante cambio.
El xito futuro de las compaas y su permanencia en el mercado, est
directamente relacionado con la capacidad de adecuacin de estas nuevas
tecnologas y su correcta utilizacin para satisfacer las necesidades de
informacin dentro de la empresa. En el proyecto de rediseo de la aplicacin, la
estrategia que se utiliza incluye el concepto de middleware.

Sistemas Operativos 92

4.7.1 Definicin
El middleware es un mdulo intermedio que acta como conductor entre dos
mdulos de software. Para compartir datos, los dos mdulos de software no
necesitan saber cmo comunicarse entre ellos, sino cmo comunicarse con el
mdulo de middleware.
El middleware debe ser capaz de traducir la informacin de una aplicacin y
pasarla a la otra. El concepto es muy parecido al de ORB (Object Request Broker)
que permite la comunicacin entre objetos y servicios de gestin bsicos para
aplicaciones de objetos distribuidos.
En una aplicacin cliente / servidor el middleware reside entre la aplicacin cliente
y la aplicacin del sistema host que acta como servidor.
El mdulo middleware puede definirse tambin en trminos de programacin
orientada a objetos. El mdulo identifica diferentes objetos y conoce qu
propiedades tienen asociadas, por lo que puede responder a peticiones referentes
a los mismos.
4.7.2 Caractersticas generales
Simplifica el proceso de desarrollo de aplicaciones.
Es el encargado del acceso a los datos: acepta las consultas y datos
recuperados directamente de la aplicacin y los transmite por la red.
Tambin es responsable de enviar de vuelta a la aplicacin, los datos de
inters y de la generacin de cdigos de error.
Es diferente desarrollar aplicaciones en un entorno middleware que la
utilizacin de APIs (Application Programmer Interface. Interface de
Programacin de Aplicacin) directas del sistema. El middleware debe ser
capaz de manejar todas las facilidades que posee el sistema operativo y
esto, no es sencillo. Por eso, muchas veces se pierde potencia con la
utilizacin del middleware en lugar de las APIs del sistema operativo
directamente.
La adopcin dentro de una organizacin implica la utilizacin de unos
paquetes de software especficos para desarrollar estos mdulos. Esto liga
a un suministrador y a su poltica de actualizacin del producto, que puede
ser distinta que la de actualizacin de los sistemas operativos con los que
se comunica el mdulo middleware.

Sistemas Operativos 93

4.7.3 Campos de aplicacin


1. Migracin de los sistemas host. Rediseo de aplicaciones
La aplicacin debera disearse con base a mdulos intermedios middleware,
encargados de la comunicacin entre el ordenador personal y el host. Esto permite
desarrollar hoy la aplicacin, sin tener en cuenta los futuros cambios tecnolgicos
que puedan sufrir los sistemas host. Si el sistema host cambia, o las aplicaciones
de host se migran a plataformas de ordenadores personales, todo lo que se
necesita es un nuevo mdulo middleware. La interface de usuario, la lgica y el
cdigo interno permanecen sin cambios.
Por ejemplo, si el equipo lgico del sistema host se traslada desde el mainframe a
una base de datos de plataforma PC ejecutndose en un servidor de ficheros, slo
hay que sustituir el mdulo de middleware de forma que realice llamadas SQL.
2. Arquitectura cliente/servidor
El concepto de middleware permite tambin independizar los procesos cliente y
servidor.
Siempre que las funciones y los objetos que se definan en el mdulo intermedio
middleware se basen en el flujo de actividades que realiza el usuario, stos son
vlidos independientemente del entorno. Por eso, si se mantiene ese mdulo
separado puede servir para desarrollos futuros.
4.7.4 El middleware dentro de la empresa
El middleware es una herramienta adecuada de solucin, ya que no slo es
flexible y segura, sino que tambin protege la inversin en tecnologa y permite
manejar diferentes ambientes de computacin, tal como se ilustra a continuacin:
Flexibilidad: La infraestructura tecnolgica debe soportar crecimientos y cambios
rpidos, de manera que la empresa est en capacidad de reaccionar, de forma
oportuna, en el proceso de recoleccin y acceso de la informacin importante para
su funcionamiento y crecimiento. Debe estar en capacidad de adicionar nuevas
soluciones en forma efectiva, eficiente y tan transparente como sea posible.
Seguridad: La infraestructura informtica debe ser segura contra fallas en
componentes, prdida de informacin, control de acceso, entre otros. Asimismo,
se necesita un nivel de seguridad, como el que brindaban los mainframes, pero en
ambientes de sistemas abiertos.
Proteccin de la inversin y control de costos: Es importante mantener la
actual inversin en tecnologa. La empresa no desea desechar tecnologa que

Sistemas Operativos 94

est actualmente trabajando y funcionando, as como tampoco es deseable estar


constantemente haciendo reingeniera de procesos, redocumentando y
reentrenando.
Diferentes ambientes de computacin: Durante muchos aos las
organizaciones han coleccionado una serie de sistemas tipo legacy (otro nombre
para identificar computadoras o sistemas con tecnologa propietaria), ambientes
de escritorio, soluciones Cliente/Servidor departamentales y algunas islas de
informacin, alrededor de la empresa. Se necesita una solucin que integre todas
las piezas dispersas de la empresa, aumentando el acceso a la informacin y as
permitir que la organizacin goce los beneficios de la computacin distribuida y
abierta.
Un middleware robusto y escalable, es la infraestructura que est en capacidad
de lograr que los diversos componentes de computacin de la empresa, sean
vistos desde un nico punto de administracin. Usando un middleware adecuado,
el usuario tendr acceso seguro y confiable a la informacin, sabr dnde est y
cules son sus caractersticas, en cualquier lugar donde se tengan las siguientes
condiciones:
MS-DOS, OS/2, NT, y/o clientes windows y grandes redes tipo SNA con
terminales 3270
Servidores UNIX NCR, HP, IBM, SUN, LINUX
Oracle, Informix, Teradata, Sybase, Ingres, ADABAS.
Adicionalmente, los desarrolladores estarn en capacidad de escribir y poner en
produccin rpidamente sus aplicaciones, haciendo todas las pruebas, de manera,
que se garantice una perfecta distribucin e implementacin del nuevo mdulo,
para toda la empresa. El administrador podr manejar en forma sencilla, mediante
las interfaces apropiadas, todo el ambiente computacional de la compaa.
El middleware proveer los niveles de seguridad que se necesitan, para mantener
unos altos estndares de integridad de la informacin y una completa seguridad
que la informacin est siendo utilizada por la persona adecuada, en la tarea
adecuada.
Tambin garantizar que los planes de contingencia que se tengan, sean viables y
que se cuente con la infraestructura necesaria para colocarlos en prctica
oportunamente.
Dentro de las principales caractersticas que debe cumplir un middleware que
apoye a la administracin de la empresa, se deben garantizar las siguientes:
Balancear las cargas de trabajo entre los elementos de computacin
disponibles.

Sistemas Operativos 95

Manejo de mensajes, que le permite entrar en el modo conversacional de


un esquema Cliente/Servidor y en general, de cualquier forma de paso de
mensajes entre procesos.
Administracin Global, como una sola unidad computacional lgica.
Manejo de la consistencia entre los diferentes manejadores de bases de
datos, principalmente en los procesos de OLTP (On Line Transaction
Processing. Proceso transaccional en lnea. Mtodo de proceso continuo de
transacciones).
Administracin de la alta disponibilidad de la solucin.
Qu es un Middleware robusto y escalable?
Es una forma de middleware que est enfocado al manejo de aplicaciones tipo
Cliente/Servidor, que coloca juntas todas las piezas de computacin a travs de
una empresa (redes distribuidas WAN). Provee conexin sin costuras a todos sus
actuales componentes de computacin, junto con la posibilidad de manejar en
forma centralizada un ambiente distribuido.
Este middleware debe estar en capacidad de correr en diferentes plataformas,
crecer segn las necesidades de la empresa y permitir la completa integracin
entre los diferentes niveles de computacin y las herramientas que sean utilizadas.
Del mismo modo, cumplir con las funciones de un monitor de transacciones.
Las soluciones que requieren de este tipo de middleware son aplicaciones que
corren en forma distribuida, en mltiples y heterogneos nodos, que accesan
mltiples y heterogneas bases de datos.
4.8 Anlisis de las diferentes variantes de la arquitectura Cliente/Servidor
Existe un conjunto de variantes de la arquitectura Cliente/Servidor, dependiendo
de dnde se ejecutan los diferentes elementos involucrados:
Administracin de los datos.
Lgica de la aplicacin.
Lgica de la presentacin.
4.8.1 Presentacin distribuida
La primera variante que tiene algn inters es la llamada presentacin distribuida,
donde tanto la administracin de los datos, como la lgica de la aplicacin,
funcionan en el servidor y la lgica de la presentacin se divide entre el servidor
(parte preponderante) y el cliente (donde simplemente se muestra).

Sistemas Operativos 96

Esta alternativa es extremadamente simple, porque generalmente no implica


programacin alguna. Qu se obtiene con ella? Una mejor presentacin, desde
el punto de vista estrictamente cosmtico, y ciertas capacidades mnimas para
vincular las transacciones clsicas con el entorno Windows (un muy buen ejemplo
de esta alternativa se consigue utilizando por ejemplo, el producto Rumba de
Walldata).
Desde el punto de vista del uso de los recursos, esta primera alternativa es similar
a la Arquitectura Centralizada.
4.8.2 Administracin de datos remota
Una segunda alternativa plausible es la administracin de datos remota, donde
dicha administracin de los datos se hace en el servidor, mientras que tanto la
lgica de la aplicacin, como la de la presentacin, funcionan en el Cliente.
Desde el punto de vista de las necesidades de potencia de procesamiento, esta
variante es la ptima. Se minimiza el costo del procesamiento en el Servidor (slo
se dedica a administrar la base de datos, no participando en la lgica de la
aplicacin que, cada vez, consume ms recursos), mientras que se aumenta en el
cliente, donde es irrelevante, teniendo en cuenta las potencias de Cliente
necesarias, de todas maneras, para soportar el sistema operativo Windows.
El otro elemento a tener en cuenta es el trnsito de datos en la red. Esta variante
podr ser ptima, buena, mediocre o psima, de acuerdo a este trnsito.
En el caso de transacciones o consultas activas, donde prcticamente todos los
registros seleccionados son necesarios para configurar las pantallas a mostrar,
este esquema es ptimo.
Por otro lado, en el caso de programas "batch", donde en realidad no se muestra
nada, esta alternativa es tericamente indefendible (no obstante, si el cliente est
ligado al servidor por una red de alta velocidad, los resultados prcticos, a
menudo, son aceptables).
Una variante interesante es la de complementar el procesamiento en el cliente con
procesamiento en el servidor. Este objetivo se puede abordar de dos maneras
bastante diferentes: La primera es el uso de "Stored Procedures" y "Triggers"
asociados al servidor de base de datos.
4.8.3 Three Tiered Architecture
En este caso se tiene total libertad para escoger dnde se coloca la lgica de la
aplicacin: en el cliente, en el servidor de base de datos, o en otro(s) servidor(es).
Tambin se tiene total libertad para la eleccin del lenguaje a utilizar.

Sistemas Operativos 97

Se utiliza un lenguaje de tipo general (probablemente C) por lo que no existen


restricciones de funcionalidad.
Los programas sern ptimos desde el punto de vista de la performance.
Tambin deber implementarse especialmente el Call remoto, lo que seguramente
se har de una forma ms libre que los Remote Procedure Call actualmente
disponibles.
No existe compromiso alguno con el uso de lenguajes propietarios, por lo que las
aplicaciones sern totalmente portables sin cambio alguno.
Puede determinarse en qu servidor(es) se quiere hacer funcionar estos
procedimientos. En aplicaciones crticas se pueden agregar tantos servidores de
aplicacin como sean necesarios, de forma simple, y sin comprometer en absoluto
la integridad de la base de datos, obtenindose una escalabilidad muy grande sin
necesidad de tocar el servidor de dicha base de datos.
El problema de esta arquitectura es cmo se implementa?. Parece ilusorio tratar
de programar manualmente estos procedimientos, mientras que, si se dispone de
una herramienta que lo hace automticamente, presenta ventajas claras sobre la
alternativa anterior:
Cul ser la tendencia? Cul es la mejor solucin?
Hoy se est ante las primeras soluciones Three Tiered Architecture. La adopcin
de esta alternativa depende fundamentalmente de la disponibilidad de
herramientas para generar automticamente los procedimientos.
Se piensa que la tendencia general ser una combinacin adecuada entre
administracin remota de datos (que es el esquema ms utilizado hoy) y Three
Tiered Architecture.
Una pregunta que probablemente se formular, en este esquema, qu ocurre
con los "triggers"?. En este esquema los "triggers" siguen funcionando, de la
misma forma que lo hacen en el anterior y, en vez de llamar "stored procedures"
llamarn a estas rutinas C.
4.9 Arquitecturas Cliente/Servidor independientes de plataforma
Cmo hacer para que mquinas con arquitecturas diferentes, trabajando
con sistemas operativos diferentes, con SGBD's diferentes, comunicndose
con diferentes protocolos, sean capaces de integrarse entre s?

Sistemas Operativos 98

Esta cuestin ha sido muy estudiada en las ltimas dos dcadas. A pesar de los
avances que se han alcanzado en esta rea, todava no existe una transparencia
total.
El establecimiento de patrones es una tentativa. Existen varias instituciones que
son responsables en definir patrones en trminos de lenguajes y sistemas, como
la ANSI (American National Standards Institute) y la ISO (International
Organization for Standarization).
En el rea de banco de datos, por ejemplo, fue creado un patrn para el SQL
(Structured Query Language), que es el lenguaje ms utilizado actualmente en el
contexto del modelo relacional, el ANSI-SQL, como fue bautizado, sera un
lenguaje de referencia a ser soportado por todos los vendedores de sistemas. Mas
eso todava no ha acontecido, en funcin del ANSI-SQL, es deficiente frente a
extensiones de SQL, stos, producidos por vendedores que incorporan nuevas
caractersticas de un SGBD como patrn, ganando performance y ventaja
competitiva frente a sus competidores.
As, ahora, bajo un patrn SQL, las extensiones de SQL de cada fabricante que
generalmente exploran mejor las cualidades de un servidor de banco de datos,
son una ventaja del punto de vista de desempeo. Por otro lado, es una
desventaja la prdida de portabilidad. Las opciones generalmente consideradas
son: la utilizacin de un conjunto de instrucciones que sean comunes a todos los
SQL o la utilizacin de los llamados drivers.
El uso de drivers ha sido otra tentativa de mitigar la cuestin de transparencia y de
explorar mejor estos avances tecnolgicos, todava no incorporados como
patrones. Los drivers son programas complejos con el conocimiento especfico de
una determinada mquina y/o sistema. Ellos realizan la traduccin de los
requisitos de una interface genrica (sobre el cual un aplicativo fue construido)
para un sistema especfico, y viceversa.
Con o sin la ayuda de drivers, existen tres formas para implementar una
arquitectura cliente/servidor de banco de datos, que puedan ser independientes de
la plataforma: interface comn, gateway comn, y protocolo comn. Todas ellas se
basan en el uso de un traductor como un elemento comn que ir a efectuar las
transacciones de aplicacin con un SGBD.
La forma interface comn, utiliza una interface de cliente como traductor. Eso
implica que la aplicacin se deba preocupar solamente con la interface de cliente,
que sera la responsable de la comunicacin con el servidor. Generalmente, ella
cuenta con el auxilio de drivers para optimizacin de contacto con moldes de
protocolo y la interface de servidor (Figura 1).

Sistemas Operativos 99

Grfica 29. Arquitectura cliente/servidor con interface comn

Una forma gateway24 comn, como dice su nombre, usa una pasarela comn (es
un sistema altamente comprometido con la comunicacin) como traductor.
Normalmente, un gateway localiza una plataforma separada de plataformas de
cliente y servidor. Siendo un sistema especializado en traduccin, el gateway
ofrece grandes cantidades de drivers para diversos tipos de protocolos de
interfaces cliente y de interfaces servidor. (Grfica 30).
Por ltimo, la forma protocolo comn, utiliza un protocolo comn y abierto como
elemento traductor. Esta forma no necesariamente implica el uso de drivers, ya
que basta que ambas interfaces, cliente y servidor, entiendan el mismo protocolo.
(Grfica 31).
Ninguna de las tres, por s solas, resuelve convenientemente el problema de
transparencia entre plataformas. En verdad, una implementacin prctica ha sido
una combinacin de estas tres formas.

24

Puerta de acceso, pasarela. Unidad de interfuncionamiento. Dispositivo de comunicaciones que


interconecta sistemas diseados conforme a protocolos propietarios, o entre un sistema con un
protocolo propietario y un sistema abierto o una red RAL, teniendo lugar una conversin completa
de protocolos hasta la capa 7 del modelo de referencia OSI.

Sistemas Operativos 100

Grfica 30. Arquitectura cliente/servidor con gateway comn

Grfica 31. Arquitectura cliente/servidor con protocolo comn

4.10 Condiciones para la implantacin del modelo Cliente/Servidor


Las condiciones que pueden aconsejar
Cliente/Servidor en una empresa son:

la

implantacin

del

modelo

Cambios estructurales y organizativos.


Cambios en los organigramas, con mayor delegacin en personas y
departamentos.

Sistemas Operativos 101

Respuesta a la dinmica del mercado.


Cambios en los procesos de negocio.
La situacin est cambiando. De una poca anterior de masiva produccin
industrial, estamos pasando a otra de ajustada adaptacin a la demanda. La
capacidad de aproximacin de los productos y servicios, a la medida de las
necesidades del cliente, exige disearlos, producirlos y suministrarlos con rapidez
y mnimos costos.
Las razones que impulsan el crecimiento de las aplicaciones Cliente/Servidor son:
La demanda de sistemas ms fciles de usar, que contribuyan a una mayor
productividad y calidad.
El precio/rendimiento de las estaciones de trabajo y de los servidores.
La creciente necesidad de acceso a la informacin para tomar decisiones y
de soportar los procesos mediante unas aplicaciones ms ajustadas a la
estructura organizativa de la empresa, que permitan realizar las
operaciones de forma ms natural.
La utilizacin de nuevas tecnologas y herramientas de alta productividad,
ms aptas para la dinmica del mercado.
4.11 Costos y beneficios de Cliente/Servidor
Los costos de la implantacin de soluciones Cliente/Servidor no deben
contemplarse slo en trminos absolutos, sino que deben medirse en funcin del
beneficio que reporten los nuevos desarrollos. Como el precio de los ordenadores
personales ha bajado tanto en los ltimos aos, con frecuencia se comete el error
de pensar que las soluciones Cliente/Servidor son ms econmicas que las
basadas en ordenadores tradicionales. Estudios independientes indican que el
costo del hardware y software, en un periodo de 5 aos, representa solamente el
20% de los costos totales. En el caso de sistemas distribuidos, el 80% restante
son costos de infraestructura y gastos de explotacin.
Los beneficios percibidos de la implantacin de un modelo Cliente/Servidor se
encuadran, generalmente, en alguna de estas categoras:
La productividad que se obtiene en las estaciones de trabajo programables
con interface grfica de usuario, que permite acceder e integrar
aplicaciones muy intuitivamente.
La abundancia de software disponible comercialmente, como por ejemplo
procesadores de textos, hojas de clculo, sistemas basados en el
conocimiento, correo, etc.
La cercana del usuario a aplicaciones y datos que son necesarios para su
actividad, compartiendo servicios y costos.

Sistemas Operativos 102

La disponibilidad de potencia de clculo a nivel personal, sin la


responsabilidad del mantenimiento del sistema y del software de
aplicaciones.
La disponibilidad de herramientas de desarrollo fciles de usar, reduciendo
la dependencia del departamento informtico.
Los beneficios obtenidos por la alta direccin, seguramente estarn entre los
siguientes:
Un mejor ajuste del sistema de informacin a la organizacin y a los
procesos de negocio.
Cada tarea se puede ubicar en la plataforma que sea ms eficaz, y los
recursos informticos se pueden aplicar progresivamente. Las funciones y
los datos se pueden localizar donde sean necesarios para la operativa
diaria sin cambiar las aplicaciones.
Mayor proteccin de activos informticos e integracin de los sistemas y
aplicaciones ya existentes.
Acceso a la informacin cundo y dnde la necesitan los usuarios. Este es,
probablemente, el mayor activo corporativo.
Disponibilidad de aplicaciones estndar (comprar en vez de desarrollar).
Libertad para migrar a plataformas de sistemas alternativos y usar
servidores especializados.
Una respuesta ms rpida a las necesidades del negocio gracias a la
disponibilidad de software de productividad personal y de herramientas de
desarrollo fciles de usar.
Un entorno de utilizacin ms sencillo, que proporciona una mayor
productividad. A largo plazo, las interfaces grficas de usuario reducen los
costos asociados a educacin y formacin de los usuarios.
Los beneficios que se derivan de una aplicacin Cliente/Servidor dependen, en
gran medida, de las necesidades del negocio. Por ejemplo, renovar una aplicacin
existente aadindole una interface grfica de usuario, podra ser una solucin
rentable en un determinado momento, pero puede no serlo en otro.
Sin embargo, una nueva aplicacin basada en un proceso de negocio rediseado,
seguramente reportar mayor beneficio que migrar a una aplicacin ya existente.
Como la mayora de las empresas han realizado una importante inversin en
soluciones informticas, muy raramente se pueden construir nuevos sistemas
abandonando los ya existentes. Las inversiones se contemplan generalmente en
trminos de hardware instalado, pero es probable que sean ms importantes las
inversiones realizadas en:
Software de sistemas.
Datos disponibles en la empresa.

Sistemas Operativos 103

Aplicaciones.
Conocimientos en el departamento de SI.
Conocimientos de los usuarios.
Todos stos son activos fundamentales que, frecuentemente, se olvidan o se
desprecian.
Cliente/Servidor posibilita una migracin paso a paso, es decir, la generacin de
nuevas aplicaciones que coexistan con las ya existentes, protegiendo, de esta
forma, todas las inversiones realizadas por la empresa.
4.12 Fases de implantacin
Una arquitectura cliente / servidor debe mostrar los sistemas de informacin no
como un cliente que accede a un servidor corporativo, sino como un entorno que
ofrece acceso a una coleccin de servicios. Para llegar a este estado pueden
distinguirse las siguientes fases de evolucin del sistema:
4.12.1 Fase de iniciacin
Esta etapa se centra sobre todo en la distribucin fsica de los componentes entre
plataformas. Los dos tipos de plataforma son:
Una plataforma cliente para la presentacin (generalmente un ordenador
personal de sobremesa).
Una plataforma servidora (como por ejemplo el servidor de una base de
datos relacional) para la ejecucin de procesos y la gestin de los datos.
Un ejemplo sera el de una herramienta de consulta que reside en un ordenador
personal a modo de cliente y que genera peticiones de datos que van a travs de
la red hasta el servidor de base de datos. Estas peticiones se procesan, dando
como resultado un conjunto de datos que se devuelven al cliente.
En esta fase pueden surgir los siguientes problemas:
Cmo repartir la lgica de la aplicacin entre las plataformas cliente y
servidor de la forma ms conveniente.
Cmo gestionar la arquitectura para que permita que cualquier cliente se
conecte con cualquier servidor.
4.12.2 Fase de proliferacin
La segunda etapa de una arquitectura cliente / servidor se caracteriza por la
proliferacin de plataformas clientes y servidoras. Ahora, el entorno para la

Sistemas Operativos 104

interaccin entre clientes y servidores se hace mucho ms complejo. Puede


hacerse una distincin entre:
Datos de servidores a los que se accede a travs de una red de rea
extensa (conocida como WAN) y
Datos a los que se accede a travs de una red de rea local (conocida
como LAN).
Los mecanismos de conexin son muy variados y suelen ser incompatibles.
En esta fase los problemas que se pueden plantear son:
La gestin de accesos se convierte en crtica y compleja, debido a la
estructura del organismo donde se est implantando la arquitectura. El
mercado ofrece algunas soluciones que mejoran la interoperabilidad y que
se basan en conexiones modulares que utilizan, entre otros:

Drivers en la parte cliente.


Pasarelas (gateways) a bases de datos.
Especificaciones de protocolos cliente / servidor, etc.

Los requisitos de actualizacin de datos pasan a formar parte de los


requisitos solicitados al sistema cliente / servidor. Ahora no slo se
consultan datos, sino que se envan peticiones para actualizar, insertar y
borrar datos.
4.12.3 Fase de control
En esta fase se consolidan los caminos de acceso desde una plataforma cliente
particular, a una plataforma servidora particular.
Los conceptos en los que se debe poner especial nfasis son los siguientes:
Transparencia en la localizacin. Significa que la aplicacin cliente no
necesita saber nada acerca de la localizacin (fsica o lgica) de los datos o
los procesos. La localizacin de los recursos debe estar gestionada por
servidores y estar representada en las plataformas adecuadas, de forma
que se facilite su uso por parte de las plataformas cliente.
Gestin de copias. El sistema se debe configurar de forma que se permita
copiar la informacin (datos o procesos) de los servidores.
Especializacin de los equipos servidores, en servidores de bases de
datos o en servidores de aplicaciones. Los servidores de bases de datos

Sistemas Operativos 105

continan ofreciendo servicios orientados a datos a travs de llamadas SQL


o a travs de procedimientos almacenados. En cualquier caso, los servicios
se orientan a mantener la integridad de los datos. Por otro lado, los
servidores de aplicaciones se centran en los procesos, implementando
partes de la lgica de la aplicacin en la parte servidora.
4.12.4 Fase de integracin
Esta etapa se caracteriza por el papel conjunto que juegan la gestin de accesos,
la gestin de copias y la gestin de recursos. La gestin de la informacin se debe
realizar de forma que se pueda entregar la informacin controlada por los
servidores que contienen los datos a las plataformas clientes que los requieran. El
concepto en que se basa este tipo de gestin es la distincin entre dos tipos de
datos: datos de operacin y datos de informacin. Para ajustarse a los posibles
cambios en los procesos, los datos de operacin varan continuamente, mientras
que los datos de informacin son invariables porque son de naturaleza histrica y
se obtienen tomando muestras en el tiempo, de los datos de operacin.
4.12.5 Fase de madurez
Esta es la etapa final de una arquitectura cliente / servidor. Se caracteriza por una
visin ms flexible de las plataformas fsicas del sistema que se contemplan como
una nica unidad lgica. Este estado tambin se caracteriza porque la tecnologa
cliente / servidor se ha generalizado en la empresa. Ya no es un problema saber
qu componentes se distribuyen en qu plataformas, porque los recursos se
pueden redistribuir para equilibrar la carga de trabajo y para compartir los recursos
de informacin. Lo fundamental aqu, es saber quin ofrece qu servicios. Para
ello es necesario distinguir qu tipo de servicios y recursos se demandan y
conocer las caractersticas de esta arquitectura basada en servicios.
En la fase de integracin veamos que se estableca una distincin entre datos de
operacin y datos de informacin histrica. Por contra, en un entorno de operacin
cliente / servidor que se encuentre en la fase de madurez, lo interesante es
distinguir entre dos nuevos trminos: organismo y grupo de trabajo. Esta distincin
se establece basndose en sus diferencias organizativas. El grupo de trabajo es el
entorno en el que grupos organizados de personas se centran en tareas
especficas de la actividad del organismo al que pertenecen. Estos equipos de
personas requieren una informacin propia y unas reglas de trabajo particulares,
que pueden ser diferentes de las del organismo en su globalidad.
Una arquitectura basada en servicios es la que se contempla como una coleccin
de consumidores de servicios poco relacionados entre s y los productores de
dichos servicios. La utilizacin de este tipo de arquitectura permite pensar en
nuevos retos de diseo:

Sistemas Operativos 106

Desarrollo de componentes reutilizables entre distintas aplicaciones y


distintos grupos de trabajo
Desarrollo de aplicaciones distribuidas
Gestin del desarrollo de aplicaciones entre distintos equipos, etc.

Actividad de refuerzo:
Continu con su estudio del sistema de red seleccionado.
Prepare un pequeo informe en donde muestre los resultados obtenidos de su
investigacin.
Socialcelo con el tutor y aplique las observaciones recibidas.
Saque una lista de las preguntas que tiene acerca del tema y aproveche al
tutor para que le ayude a obtener la solucin.

Sistemas Operativos 107

BIBLIOGRAFA
ALCALDE, Eduardo. MORERA, Juan. PEREZ-CAMPANERO, Juan A. (1994).
Introduccin a los Sistemas Operativos. Serie Informtica de Gestin. Mxico:
Editorial Mc Graw Hill.
BARRETO ROA, Julio Humberto. (2001). Sistemas Operativos. Gua de estudio.
Bogot: Editorial UNAD.
CALDERA (2003). Kit de Recursos. Unifying Unix Whit Linux For Business.
CAAS, Javier. Documento pdf: Sistemas Operativos. Catorce captulos (1999).
CARRETERO PEREZ, Jess, GARCIA CABALLEIRA, Flix, ANASAGASTI, Pedro
de Miguel, PEREZ COSTOYA, Fernando (2001). Sistemas Operativos. Una visin
aplicada. Madrid: Mc Graw Hill.
FLYNN, Ida M, MCHOES, Ann McIver.(2001) Sistemas operativos. Tercera
Edicin. Mxico: Editorial Thomson Learning.
RAYA, Laura, ALVAREZ, Raquel, RODRIGO, Vctor. (2005). Sistema Operativos
en entornos Monousuario y Multiusuario. Mxico: Alfaomega, Ra-Ma.
RUEDA, Francisco. (1989). Sistemas Operativos. Santaf de Bogot: Mc Graw
Hill.
SILBERSCHATZ, Avi, GALVIN, Peter, GAGNE,
Operativos. Mxico: Editorial Limusa Wiley.

Greg.

(2002).

Sistemas

STALLING, William. (2001). Sistemas operativos. Cuarta edicin, Mxico: Prentice


Hall.
TACKETT, J. (2003). Edicin especial Linux. Mxico: Prentice Hall
TANENBAUM, S. Andrew, WOODHULL, Albert S. (1997). Sistemas Operativos.
Diseo e implementacin. Mxico: Prentice Hall.

Sistemas Operativos 108

DIRECCIONES WEB
http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/
http://www.itver.edu.mx/so1/
http://www.itver.edu.mx/so2/
http://os.matiu.com.ar/
http://os-matiu.dreamhost.com/classes/clase1.html
http://www.iespana.es/canalhanoi/so/
http://server2.southlink.com.ar/vap/sistemas_operativos.htm
http://www.inei.gob.pe/web/metodologias/attach/lib616/INDEX.HTM
http://www.itq.edu.mx/vidatec/maestros/sis/mnogues/Unidad1.htm
http://www.cs.virginia.edu/~knabe/iic2332/notes01.html

Sistemas Operativos 109

UNIDAD DIDCTICA 2
ADMINISTRACIN DE RECURSOS
INTRODUCCIN
Una de las principales funciones de un sistema operativo es la gestin, control y
organizacin de los recursos disponibles en un sistema de cmputo.
Esos recursos hacen referencia, principalmente, a los procesos, memoria,
dispositivos y archivos que son la base fundamental para las operaciones y
acciones que ejecuta el usuario con el sistema y viceversa.
Es importante revisar cules son los algoritmos, pasos o tareas que debe realizar
el SO, ante las diferentes acciones que se presentan, y ms que acciones a los
posibles errores que se puedan presentar debido a la caracterstica que todo
sistema persigue: la multitarea y la multiprogramacin.
Adems es importante reconocer con qu cuenta el sistema de cmputo y cul es
el mximo provecho (en tiempo, en dinero, en general en recursos) que se le
puede extraer para lograr los resultados deseados y ms que deseados exitosos.
En el corazn de los sistemas operativos

Sistemas Operativos 110

OBJETIVOS
1. Estudiar en detalle el concepto de proceso, la informacin asociada al
mismo, sus posibles estados, las seales y temporizadores que pueden
estar asignadas a un proceso.
2. Identificar los requisitos de la gestin de la memoria, el modelo de memoria
de un proceso, diversos esquemas de gestin, incluyendo la memoria real y
la virtual.
3. Establecer los parmetros y caractersticas fundamentales de los diferentes
dispositivos de entrada/salida y el nivel de gestin que realiza el SO para su
adecuado funcionamiento.
4. Proporcionar mecanismos para comprender el sistema de gestin de
archivos y directorios por parte de un sistema operativo.
5. Conocer los diferentes mecanismos de proteccin entre los distintos
procesos que se ejecutan en un sistema y entre los distintos sistemas que
estn conectados entre s.

Sistemas Operativos 111

CAPTULO 1. ADMINISTRACIN DE LOS PROCESOS25


Actividad inicial:
Haga una lista con los que Usted considera son procesos que maneja un
sistema operativo. El cuadro debe tener dos columnas: El proceso y la
descripcin del proceso.
Guarde la lista para la actividad final.

1.1 Introduccin a los procesos


Los sistemas operativos de la antigedad slo permitan ejecutar un programa a la
vez. Este programa obtena el control completo del sistema.
Los sistemas operativos actuales permiten la ejecucin concurrente de mltiples
programas cargados en memoria. Entonces nace el concepto de proceso.
Un proceso es un programa en ejecucin. Es la unidad de trabajo de un S.O
moderno.
Un S.O se puede ver como un conjunto de procesos. De esta manera decimos
que los procesos del S.O. ejecutan cdigo de sistema y los procesos de usuarios
ejecutan cdigo de usuario.
Todos los procesos se ejecutan en forma pseudo-concurrente, con la CPU
conmutando entre ellos. De esta manera se logra que el sistema computacional
sea ms productivo. Veamos entonces cmo es la gestin de los procesos, por
parte de un sistema operativo.
1.1.1 Concepto de proceso
Uno de los conceptos ms importantes que gira entorno a un sistema operativo es
el de proceso.
En trminos simples, un proceso es un programa en ejecucin junto con el entorno
asociado (registros, variables, etc.). La ejecucin de un proceso se realiza de una
forma secuencial.
Los conceptos de job (tareas) y procesos son equivalentes y se pueden
intercambiar. Un proceso tiene recursos como:
Cdigo ejecutable
25

Las figuras de este captulo fueron tomadas del documento pdf: Sistemas Operativos. Profesor
Javier Caas. Captulos 4, 5 y 6.


Sistemas Operativos 112

Datos
Registros temporales
Stack
Program Counter

El corazn de un sistema operativo es el ncleo, un programa de control que


reacciona ante cualquier interrupcin de eventos externos y que da servicio a los
procesos, crendolos, terminndolos y respondiendo a cualquier peticin de
servicio por parte de los mismos.
Un proceso es una actividad que se apoya en datos, recursos, un estado en cada
momento y un programa.
Tambin es importante considerar que si dos o ms procesos forman parte de un
mismo programa, se consideran secuencias separadas de ejecucin y que pueden
cooperar entre ellos.
1.1.2 Estados de un proceso
Es necesario resaltar que un proceso tiene una naturaleza dinmica, es decir es
una entidad activa.
Cuando un proceso se ejecuta, cambia de estado.
Los estados de los procesos son internos del sistema operativo y transparentes
para el usuario. Para ste, su proceso estar siempre en ejecucin
independientemente del estado en que se encuentre internamente en el sistema.
Un proceso puede estar en alguno de los siguientes estados:
Nuevo: se est creando.
Corriendo (Run): se estn ejecutando instrucciones. El proceso tiene el
control del procesador. En un sistema monoprocesador este estado slo lo
puede tener un proceso. (Ejecucin)
Espera (Wait): el proceso espera que ocurra algn evento. Por ejemplo el
trmino de una operacin de E/S o la recepcin de una seal. Son los
procesos que no pueden ejecutarse de momento por necesitar algn
recurso no disponible (generalmente recursos de E/S). (Bloqueado)
Listo (Ready): El proceso est listo para ocupar la CPU. Aquellos procesos
que estn dispuestos para ser ejecutados, pero no estn en ejecucin por
alguna causa (interrupcin, haber entrado en cola estando otro proceso en
ejecucin, etc). (Preparado)

Sistemas Operativos 113

Fin: el proceso termin su ejecucin


Grfica 32. Estados de un proceso

1.1.3 Transiciones de estados


Todo proceso a lo largo de su existencia puede cambiar de estado varias veces.
Cada uno de estos cambios se denomina transicin de estado. Estas
transiciones son las siguientes:
Comienzo de la ejecucin. Todo proceso comienza al ser dada la orden
de ejecucin del programa insertndose en la cola de preparados. El
encolamiento depender de la poltica de gestin de dicha cola.
Paso a estado de ejecucin. Cuando el procesador se encuentra inactivo
y en la cola de preparados exista algn proceso en espera de ser
ejecutado, se pondr en ejecucin el primero de ellos.
Paso a estado bloqueado. Un proceso que se encuentre en ejecucin y
que solicite una operacin a un dispositivo externo, teniendo que esperar a
que dicha operacin finalice, ser pasado de estado de ejecucin a estado
bloqueado insertndose su PCB en la cola correspondiente de bloqueados.
A partir de este momento el procesador pone en ejecucin el siguiente
proceso, que ser el primero de la cola de preparados.
Paso a estado preparado. Este paso puede ser producido por alguna de
las siguientes causas:

Sistemas Operativos 114

Orden de ejecucin de un programa, con lo cual el proceso pasa a la


cola de preparados.
Si un proceso est en estado bloqueado por causa de una operacin de
entrada/salida y sta finaliza, pasar de la cola de bloqueados a la de
preparados.
Si un proceso est en ejecucin y aparece una interrupcin que fuerza
al sistema operativo a ejecutar otro proceso, el primero pasar al estado
preparado y su PCB a la cola de preparados.
Activacin. Un proceso suspendido previamente sin estar bloqueado
pasar al estado preparado al ser activado nuevamente.

Paso a estado suspendido bloqueado. Si un proceso est bloqueado y el


sistema operativo recibe la orden de suspenderlo, su PCB entrar en la cola
de procesos suspendidos bloqueados.
Paso a estado suspendido preparado. Este paso se puede producir bajo
tres circunstancias:
Suspensin de un proceso preparado pasando ste de la cola de
procesos preparados a la de suspendidos preparados.
Suspensin de un proceso en ejecucin, con lo cual el proceso pasa a
la cola de suspendidos preparados.
Desbloqueo de un proceso suspendido bloqueado por desaparecer la
causa que impeda el ser activado de nuevo.

Grfica 33. Estados de un proceso: Modos kernel y usuario

Sistemas Operativos 115

1.1.4 Operaciones sobre procesos


Los procesos en un S.O. pueden ejecutarse concurrentemente y deben ser
creados y eliminados dinmicamente. Para esto se deben proveer llamadas al
sistema que permitan:
- Crear procesos
- Destruir procesos
- Terminar procesos
Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es
el de la manipulacin de los procesos. Las operaciones que se pueden hacer
sobre un proceso son las siguientes:
Crear el proceso. Se produce con la orden de ejecucin del programa y
suele necesitar varios argumentos, como el nombre y la prioridad del
proceso. Aparece en este momento el PCB, que ser insertado en la cola
de procesos preparados. La creacin de un proceso puede ser de dos tipos:
-

Jerrquica. En ella, cada proceso que se crea es hijo del proceso


creador y hereda el entorno de ejecucin de su padre. El primer proceso
que ejecuta un usuario ser hijo del intrprete de comandos con el que
interacta.
No jerrquica. Cada proceso creado por otro proceso se ejecuta
independientemente de su creador con un entorno diferente. Es un tipo
de creacin que no suele darse en los sistemas operativos actuales.

Un proceso puede crear nuevos procesos. El proceso que crea se


denomina proceso padre y los procesos creados, procesos hijos. Cada
uno de estos procesos, puede a su vez crear nuevos procesos. De esta
forma se logra una jerarqua de procesos.
Grfica 34. Jerarqua de procesos

Sistemas Operativos 116

Como cada proceso necesita recursos, stos los puede obtener


directamente del S.O, o compartir recursos con su padre.
Cuando se crea un nuevo proceso existen dos alternativas:
- El padre contina ejecutndose en forma concurrente con el hijo.
- El padre espera hasta que alguno o todos sus hijos terminen.
Destruir un proceso. Se trata de la orden de eliminacin del proceso con
la cual el sistema operativo destruye su PCB.
Un proceso termina cuando ejecuta su ltima sentencia y pide al S.O que lo
elimine. Cuando esto ocurre, todos los recursos son devueltos al S.O.
Pero cundo un proceso termina?
- Se ejecut la ltima sentencia.
- El proceso decide terminar.
- Un proceso decide matar a otro.
- Un proceso padre puede matar a sus hijos.
Suspender un proceso. Es un proceso de alta prioridad que paraliza un
proceso que puede ser reanudado posteriormente. Suele utilizarse en
ocasiones de mal funcionamiento o sobrecarga del sistema.
Reanudar un proceso. Trata de activar un proceso que ha sido
previamente suspendido.
Cambiar la prioridad de un proceso.
Temporizar la ejecucin de un proceso. Hace que un determinado
proceso se ejecute cada cierto tiempo (segundos, minutos, horas...) por
etapas o de una sola vez, pero transcurrido un periodo de tiempo fijo.
Despertar un proceso. Es una forma de desbloquear un proceso que
habr sido bloqueado previamente por temporizacin o cualquier otra
causa.
1.1.5 Prioridades
Todo proceso por sus caractersticas e importancia lleva aparejadas unas
determinadas necesidades de ejecucin en cuanto a urgencia y asignacin de
recursos.
Las prioridades segn los sistemas operativos se pueden clasificar del siguiente
modo:

Sistemas Operativos 117

Asignadas por el sistema operativo. Se trata de prioridades que son


asignadas a un proceso en el momento de comenzar su ejecucin y
dependen fundamentalmente de los privilegios de su propietario y del modo
de ejecucin.
Asignadas por el propietario. En este caso es el propio usuario el que
asigna a cada proceso la prioridad con que ste debe ejecutarse. Esta
modalidad de asignacin de prioridades es muy utilizada en sistema de
tiempo real, ya que algunos de sus procesos necesitan atender
rpidamente algn evento sin que tengan que interrumpirse.
Otra clasificacin de prioridades atendiendo a la posibilidad de variaciacin de las
mismas es la siguiente:
Estticas. No pueden ser modificadas durante la ejecucin del proceso.
Pueden ser utilizadas en sistemas de tiempo compartido, pero no en los de
tiempo real.
Dinmicas. La prioridad de un proceso puede ser modificada con el fin de
atender cualquier evento que se produzca.
1.1.6 Clasificacin de procesos
En trminos generales los procesos se pueden clasificar en dos conjuntos:
Procesos limitados por E/S. Son aquellos procesos que pasan ms
tiempo realizando E/S que haciendo clculos. Por ejemplo aplicaciones de
bases de datos, aplicaciones comerciales etc.
Procesos limitados por CPU. Son aquellos procesos que pasan el mayor
tiempo haciendo clculos, es decir ocupando CPU. Por ejemplo
aplicaciones cientficas, de ingeniera etc.
Si todos los procesos son limitados por E/S, la cola ready pasara vaca y el itinerador
de CPU no tendra nada que hacer.
Si todos los procesos son limitados por CPU, la cola de espera de E/S pasara vaca y
el sistema estara tambin desbalanceado.
El mejor desempeo se logra con una buena mezcla de las dos clases de procesos.

1.1.7 Estructuras de datos de procesos: La PCB


Cada proceso tiene asociada una estructura de datos llamada la PCB (Process
Control Block).

Sistemas Operativos 118

Un proceso se representa desde el punto de vista del sistema operativo, por un


conjunto de datos donde se incluyen el estado en cada momento, recursos
utilizados, registros, etc., denominado Bloque de Control de Procesos (PCB).
Los objetivos del bloque de control de procesos son los siguientes:
Localizacin de la informacin sobre el proceso por parte del sistema
operativo.
Mantener registrados los datos del proceso en caso de tener que
suspender temporalmente su ejecucin o reanudarla.
La PCB contiene toda la informacin que necesita el proceso. Por ejemplo:
PID. Identificador del proceso.
Estado. Wait, Run, Ready etc.
PC (Program Counter). Informacin relativa al contenido del contador de
programa.
Registros de CPU. Archivo de registros en uso.
Informacin de itineracin (Informacin para el Scheduler). Contadores,
relojes, prioridad, punteros a colas de ejecucin.
Informacin de Manejo de Memoria. Registros base y lmite, tablas para
manejo de memoria virtual, lista de pginas, etc.
Informacin de Contabilidad. Tiempo de CPU utilizado, tiempo real
utilizado, lmites de tiempo, etc.
Informacin sobre el estado de E/S. Dispositivos asignados al proceso,
lista de archivos abiertos, estado de esos archivos, etc.
Credenciales. UID, GID, PPID (identificadores de usuario y de proceso).
Estas informaciones se encuentran en memoria principal en disco y se accede a
ellas en los momentos en que se hace necesaria su actualizacin o consulta. Los
datos relativos al estado del proceso siempre se encuentran en memoria principal.
El concepto del PCB es seguir el estado de ejecucin y la locacin del proceso.
Cuando un proceso se crea, un nuevo PCB se crea para el proceso. Al terminar el
proceso, su PCB asociado se destruye. El PCB se coloca en una cola de
estados.

Sistemas Operativos 119

Existe un Bloque de Control de Sistema (SCB) con objetivos similares al anterior


y entre los que se encuentra el enlazado de los bloques de control de procesos
existentes en el sistema.
El cambio de contexto se producir en caso de ejecucin de una instruccin
privilegiada, una llamada al sistema operativo o una interrupcin, es decir, siempre
que se requiera la atencin de algn servicio del sistema operativo.
Grfica 35. Conmutacin y la PCB

1.2 Hebras de control (Threads)


Un proceso est definido por sus recursos y por su ubicacin en el espacio de
memoria. Un thread es una unidad bsica de utilizacin de CPU.
Los threads comparten cdigo, datos y otros recursos como archivos. El conjunto
de threads se denomina tarea (task).
Los procesos normales se denominan procesos pesados (HWP). Los threads se
denominan procesos livianos.
Un proceso pesado equivale a una tarea con un solo thread.
Un thread siempre pertenece a slo una tarea.

Sistemas Operativos 120

Para realizar la misma tarea muchas veces: es ms eficiente tener un proceso y


varias threads que varios procesos diferentes (por ejemplo, un servidor de red
http,ft,etc): es mas rpido hacer los cambios de contexto entre threads.
Al compartir el espacio de memoria, es fcil y simple cooperar entre threads (no es
necesario que hagan llamadas al sistema para este fin).
Su estructura es similar a la de los procesos, poseen estados (corriendo, lista para
correr, esperando, etc) y pueden crear thread hijas, etc. Pero difieren de los
procesos ya que no hay proteccin de memoria, esto es responsabilidad de
programador.
Grfica 36. Estructura de un proceso

Las threads se encuentran en la regin destinada al cdigo ejecutable, y son las


que forman un proceso, ya sea una sola o varias, esto es, segn la necesidad y la
forma en que opera el sistema operativo. Cada una debe tener asignada un PC
(contador de programa).
Un thread maneja recursos, que le son tiles para la ejecucin de su tarea
especfica, estos tienen que ver con la memoria y los registros. Veamos:

Sistemas Operativos 121

Grfica 37. Recursos de un thread

Como se dijo puede ser que una tarea tenga ms de un thread, en este caso cada
Thread es independiente y sigue manejando sus propios recursos y sus propias
prioridades.
Grfica 37. Tarea con mltiples threads

1.3 Comunicacin entre procesos


Los procesos pueden cooperar en la realizacin de una tarea. Una forma de
cooperacin es a travs de la facilidad llamada comunicacin entre procesos
(IPC Inter Process Communication).
El IPC provee la forma a travs de la cual los procesos pueden comunicarse y
sincronizarse.

Sistemas Operativos 122

1.3.1 Mensajes
La comunicacin va IPC no necesita compartir variables. Para esto se requieren
dos operaciones como mnimo:
Send (mensaje) Enviar (mensaje)
Receive (mensaje) Recibir (mensaje)
Los procesos que se comunican necesitan una forma de poder reverenciarse.
La comunicacin puede ser:
1. Comunicacin directa
En este esquema de comunicacin, cada proceso debe explcitamente indicar el
nombre del proceso fuente o del proceso destino:
- Enviar(P,mensaje); : Enva mensaje al proceso P
- Recibir(Q,mensaje); : Recibe un mensaje desde el proceso Q
2. La interaccin productor consumidor
Un tipo de interaccin muy comn en un sistema operativo es la llamada
Productor/Consumidor.
El proceso productor genera algn dato y el proceso consumidor recibe este
dato para algn tipo de procesamiento.
Por ejemplo:
Productor: aplicacin que genera datos.
Consumidor: impresora que imprime los datos.
Como los procesos productor y consumidor tienen distintas velocidades,
normalmente se necesita un Buffer para suavizar esta diferencia. El IPC provee de
este Buffer es forma automtica

Sistemas Operativos 123

Grfica 38. Interaccin productor consumidor

3. Direccionamiento simtrico y asimtrico


El esquema visto muestra una simetra: tanto los procesos transmisor como
receptor tienen que nombrarse explcitamente. Una variacin consiste en que slo
el proceso que enva seala explcitamente el nombre del receptor y el receptor en
vez de poner el nombre del transmisor pone una variable.
Enviar(P, mensaje)
Recibir(id, mensaje) la variable id registra el nombre del proceso que enva.
Grfica 39. Direccionamiento asimtrico- Cliente/servidor

La desventaja tanto del mtodo simtrico como asimtrico es la baja modularidad.


Si el nombre de un proceso cambia, es necesario cambiar todas las definiciones
de nombre internas.

Sistemas Operativos 124

Una forma alternativa es la llamada comunicacin indirecta.


4. Comunicacin indirecta
En el mtodo de comunicacin indirecta, los mensajes se envan y reciben desde
objetos llamados mailbox (o puertas). Cada mailbox tiene una identificacin nica.
Dos procesos slo se pueden comunicar si ambos comparten un mailbox.
Enviar(A,mensaje) : se enva un mensaje al mailbox A
Recibir(A,mensaje) : se recibe un mensaje desde el maibox A
1.3.2 Aspectos de comunicacin
El sistema IPC es un sistema de comunicacin, es decir se requiere de un enlace
de comunicacin entre dos procesos.
Un enlace de comunicacin puede ser considerado como una cola de mensajes.
Existen varias formas de implementar esta cola de mensajes:
Capacidad cero: sincronizacin rendezvous
Capacidad limitada
Capacidad ilimitada
Capacidad cero: sincronizacin rendezvous: Los procesos que envan y reciben
quedan bloqueados.
Capacidad limitada y Capacidad ilimitada: es necesario sealar cuando un
mensaje ha llegado a su destino. Esto se puede hacer va un mensaje corto
llamado ACK. O tambin llamada sincronizacin con buffers.
Grfica 40. Sincronizacin Rendezvous

Sistemas Operativos 125

Grfica 41. Sincronizacin con buffers

1.4 Sincronizacin de procesos


Se denominan procesos cooperativos a procesos que cooperan en torno a una
tarea comn. Procesos cooperativos necesitan compartir datos, y lo pueden hacer
a travs de compartir espacio de memoria o compartir archivos.
El acceso concurrente a datos compartidos puede generar inconsistencias de
datos, provocando errores severos y difciles de detectar.
Un ejemplo de procesos cooperativos es la relacin productor/consumidor.
Analizaremos una solucin usando una variable compartida.
Es necesario recordar que ambos procesos se realizan de forma asincrnica.
Grfica 42. Ejemplo de variables compartidas

Sistemas Operativos 126

Si se analiza la solucin anterior, ambas rutinas funcionan bien, pero si se


ejecutan en forma concurrente se pueden producir anomalas.
La variable compartida es contador. Supongamos que el valor es 5. El productor
ejecuta contador=contador+1 y el consumidor ejecuta contador=contador-1
concurrentemente. Qu ocurre?
La ejecucin concurrente de: contador=contador+1 y contador=contador-1 es
equivalente a la ejecucin secuencial donde se mezclan instrucciones de ambos
procesos.
De esta forma, con cada uno de los procesos anteriores la variable contador
quedara con valores diferentes (asumiendo que su valor inicial sea 5), en el
primer proceso quedara con valor 6 y en el segundo con valor 4. Como se
ejecutan al tiempo, se genera un error.
1.4.1 La seccin crtica
En el ejemplo anterior, ambos procesos tienen una parte de su cdigo en la cual
accesan variables compartidas. Esta parte del cdigo se denomina Seccin
Crtica.
Las anomalas se producen cuando dos o ms procesos ejecutan en forma
concurrente su Seccin Crtica.
Grfica 43. Ejemplo de seccin crtica

Sistemas Operativos 127

Solucin al problema de la seccin crtica


Para evitar anomalas en la ejecucin de las secciones crticas de los procesos,
cuando un proceso est en su seccin crtica, ningn otro proceso puede ejecutar
su seccin crtica.
La ejecucin de las secciones crticas, debe ser mutuamente exclusiva en el
tiempo. Si dos o ms procesos desean cooperar, es necesario disponer de un
protocolo.
Requisitos de solucin
Una solucin al problema de la seccin crtica debe satisfacer los siguientes tres
requisitos:
1. Exclusin mutua. Si un proceso Pi est en su seccin crtica, ningn otro
proceso puede estar ejecutando su seccin crtica.
2. Progreso. Si un proceso Pi est en su seccin crtica, y otro proceso desea
entrar a su seccin crtica, slo los procesos que no estn en el resto del
cdigo, pueden participar de la decisin de qu proceso entrar prximamente,
y esta seleccin no se puede postergar indefinidamente.
3. Espera acotada. Un proceso no puede quedar esperando indefinidamente a
entrar en su seccin crtica.
1.4.2 Semforos
Las soluciones a los problemas de secciones crticas son difciles de generalizar
a problemas de mayor complejidad.
Herramientas de sincronizacin mucho ms flexibles son los llamados semforos.
Un semforo es una variable entera que es accesada a travs de dos
operaciones atmicas llamadas wait y signal.
Las operaciones wait y signal
wait(S): while (S<=0);
S=S-1;
signal(S): S=S+1;

Sistemas Operativos 128

Las modificaciones a la variable entera en wait y signal se ejecutan en forma


indivisible.
Grfica 44. Implementacin del semforo

Un problema es la exclusin mutua de secciones crticas. Otro problema diferente


y frecuente es la sincronizacin de procesos. Sincronizar procesos significa
forzar un orden en su ejecucin.
Grfica 45. Implementacin de semforo para la sincronizacin

Sistemas Operativos 129

En la interaccin productor/consumidor con semforos hay que proporcionar


exclusin mutua al acceso al buffer.
Grfica 46. Implementacin de semforo en productor/consumidor

Este acceso se logra con un semforo binario inicializado en 1. Adems del


acceso al buffer hay que sincronizar para evitar que un proceso escriba en el
buffer si ste est lleno o que un proceso lea el buffer si est vaco.
Grfica 47. Productor/consumidor: sincronizacin completa

Sistemas Operativos 130

1.5 Planificacin de procesos Scheduling Itineracin de procesos


La planificacin del procesador o de CPU se refiere a la manera o tcnicas que se
usan para decidir cunto tiempo de ejecucin y cuando se le asignan a cada
proceso del sistema. Obviamente, si el sistema es monousuario y monotarea no
hay mucho que decidir, pero en el resto de los sistemas esto es crucial para el
buen funcionamiento del sistema.
1.5.1 Niveles de planificacin
En los sistemas de planificacin generalmente se identifican tres niveles: el alto, el
medio y el bajo.
El nivel alto decide que trabajos (conjunto de procesos) son candidatos a
convertirse en procesos compitiendo por los recursos del sistema.
El nivel intermedio decide que procesos se suspenden o reanudan para lograr
ciertas metas de rendimiento.
El planificador de bajo nivel es el que decide qu proceso, de los que ya estn
listos (y que en algn momento pas por los otros dos planificadores) es al que le
toca ahora estar ejecutndose en la unidad central de procesamiento.
1.5.2 Objetivos de la planificacin
Una estrategia de planificacin debe buscar que los procesos obtengan sus turnos
de ejecucin apropiadamente, conjuntamente con un buen rendimiento y
minimizacin de la sobrecarga (overhead) del planificador mismo. En general, se
buscan cinco objetivos principales:
Justicia o imparcialidad. Todos los procesos son tratados de la misma
forma, y en algn momento obtienen su turno de ejecucin o intervalos de
tiempo de ejecucin hasta su terminacin exitosa.
Maximizar la produccin. El sistema debe de finalizar el mayor numero de
procesos en por unidad de tiempo.
Maximizar el tiempo de respuesta. Cada usuario o proceso debe observar
que el sistema les responde consistentemente a sus requerimientos.
Evitar el aplazamiento indefinido. Los procesos deben terminar en un
plazo finito de tiempo.
El sistema debe ser predecible. Ante cargas de trabajo ligeras el sistema
debe responder rpido y con cargas pesadas debe ir degradndose

Sistemas Operativos 131

paulatinamente. Otro punto de vista de esto es que si se ejecuta el mismo


proceso en cargas similares de todo el sistema, la respuesta en todos los
casos debe ser similar.
1.5.3 Caractersticas a considerar de los procesos
No todos los equipos de cmputo procesan el mismo tipo de trabajos, y un
algoritmo de planificacin que en un sistema funciona excelente puede dar un
rendimiento psimo en otro cuyos procesos tienen caractersticas diferentes. Estas
caractersticas pueden ser:
Cantidad de Entrada/Salida. Existen procesos que realizan una gran
cantidad de operaciones de entrada y salida (aplicaciones de bases de
datos, por ejemplo).
Cantidad de uso de CPU. Existen procesos que no realizan muchas
operaciones de entrada y salida, sino que usan intensivamente la unidad
central de procesamiento. Por ejemplo, operaciones con matrices.
Procesos de lote o interactivos. Un proceso de lote es ms eficiente en
cuanto a la lectura de datos, ya que generalmente lo hace de archivos,
mientras que un programa interactivo espera mucho tiempo (no es lo mismo
el tiempo de lectura de un archivo que la velocidad en que una persona
teclea datos) por las respuestas de los usuarios.
Procesos en tiempo real. Si los procesos deben dar respuesta en tiempo
real se requiere que tengan prioridad para los turnos de ejecucin.
Longevidad de los procesos. Existen procesos que tpicamente requieren
varias horas para finalizar su labor, mientras que existen otros que slo
necesitan algunos segundos.
1.5.4 Planificacin
preemptive)

apropiativa o no

apropiativa (preemptive

or not

La planificacin apropiativa es aquella en la cual, una vez que a un proceso le


toca su turno de ejecucin ya no puede ser suspendido, ya no se le puede
arrebatar la unidad central de procesamiento. Este esquema puede ser peligroso,
ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto
de los procesos pueden quedar aplazados indefinidamente.
Una planificacin no apropiativa es aquella en que existe un reloj que lanza
interrupciones peridicas en las cuales el planificador toma el control y se decide
si el mismo proceso seguir ejecutndose o se le da su turno a otro proceso. Este
mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema.

Sistemas Operativos 132

Por ejemplo en los sistemas UNIX existen los cronjobs y atjobs, los cuales se
programan con base a la hora, minuto, da del mes, da de la semana y da del
ao.
La mayora de los sistemas programan el reloj para que pulse de 20 a 50 veces
por segundo y al pulso final es cuando el planificador consigue el control y puede
relegar al proceso en ejecucin.
Las prioridades de los procesos se recalculan frecuentemente. En el clculo de
prioridades se tiene en cuenta la duracin del lapso de tiempo. No tendra sentido
asignar continuamente la CPU a un proceso y luego expulsar el proceso cuando
tan slo haya ejecutado unas pocas instrucciones.
En una planificacin no apropiativa, un trabajo muy grande aplaza mucho a uno
pequeo, y si entra un proceso de alta prioridad est tambin debe esperar a que
termine el proceso actual en ejecucin.
1.5.5 Planeadores Scheduler - Itineradores
El objetivo de la multiprogramacin es maximizar la utilizacin de la CPU
mantenindola ocupada la mayor parte del tiempo.
El objetivo de un sistema de tiempo compartido es conmutar la CPU en forma
rpida para que cada usuario pueda interactuar con su aplicacin.
Cuando un proceso entra al sistema, es puesto en una cola de jobs. Los procesos
que residen en memoria y estn listos para ser ejecutados estn en una cola
llamada Cola Ready.
Los procesos que estn a la espera por dispositivo de E/S, estn en una cola
llamada Cola de Dispositivos.
De la cola ready los procesos son seleccionados para su ejecucin y
despachados a la CPU. El ciclo de vida se puede observar mediante un diagrama
de colas.
Un proceso durante su ciclo de vida en el sistema pasa por varias colas. El S.O
debe seleccionar procesos desde estas colas con algn criterio.
La seleccin de un proceso la realiza el itinerador (scheduler).
Existen dos itineradores:
De Job. Selecciona un proceso del disco y lo carga en memoria.
De CPU. Selecciona un proceso de la cola ready y le asigna CPU.

Sistemas Operativos 133

Grfica 48. Estructura de una cola

El itinerador de CPU
El Itinerador de CPU acta frecuentemente. Normalmente un proceso slo ocupa
la CPU algunos milisegundos antes de esperar por E/S.
El itinerador de CPU debe ser muy eficiente. Si normalmente un proceso toma
100mseg antes de requerir E/S, el tiempo que debe tomar el itinerador no debe
superar el 10% de este tiempo, es decir 10mseg
El itinerador de JOB
El Itinerador de CPU acta menos frecuentemente que el itinerador de CPU. El
itinerador de Job controla el grado de multiprogramacin: nmero de jobs
presentes en memoria.
Si el grado de multiprogramacin es estable, la tasa de creacin de procesos es
igual a la tasa de procesos que terminan.
Un aspecto importante del itinerador de Job es el criterio de seleccin de jobs.
1.5.6 Cundo se itinera - La cola ready
Toda vez que la CPU est ociosa, el itinerador selecciona un proceso desde la
Cola Ready. La Cola Ready no es necesariamente una cola FIFO. Su estructura
vara dependiendo del algoritmo de itineracin.

Sistemas Operativos 134

Grfica 49. Cundo se itinera

En 1 y 4 no hay alternativa. Si la Cola Ready no est vaca, se debe seleccionar un proceso.


En estas condiciones, se dice que la itineracin es no interrumpible.
No interrumpible significa una vez que la CPU se asign a un proceso, lo abandona ya sea
porque termin, o porque se pas a estado de espera.
En 2 y 3 es posible tomar decisiones. Se dice que la itineracin es interrumpible. La
itineracin interrumpible es ms difcil de implementar porque se debe mantener la
consistencia en las estructuras de datos. Por ejemplo el kernel del S.O

1.5.7 Mdulo de despacho (Dispatcher)


El despachador es el mdulo del S.O que entrega el control de la CPU a los
procesos seleccionados.
Este mdulo tiene un impacto importante en el desempeo, ya que es invocado en
el context switch.
El tiempo que toma parar un proceso y comenzar la ejecucin de otro se conoce
como latencia de despacho.
1.5.8 El context switch
Un Intercambio de contexto consiste en cambiar el proceso que se est
ejecutando. Involucra guardar el estado del proceso que se estaba ejecutando y
restaurar el estado del proceso que se va a ejecutar.
El tiempo que tarda este proceso no es despreciable, y es tiempo perdido. Se
realiza con soporte del hardware. Los tiempos tpicos: 1 a 1000E-6 s. Un esfuerzo
importante en el diseo de un sistema operativo es minimizar el tiempo de context
switch.

Sistemas Operativos 135

Cuanto ms complejo el sistema (de hardware), ms operaciones debe realizar el


cambio de contexto (guardar/restaurar mas registros en memoria).
1.5.9 Criterios de itineracin - Planificacin
Qu algoritmo seleccionar?
Cmo comparar distintos algoritmos de itineracin?
Para cuantificar se necesita tener criterios claros. Los criterios son:
Utilizacin de la CPU. Porcentaje del tiempo que la CPU est ocupada
Throughput. Nmero de procesos por unidad de tiempo.
Tiempo turnaround. Intervalo de tiempo desde la entrega del proceso al
sistema hasta su finalizacin.
Tiempo de espera: Suma de todos los tiempos que un proceso espera en
la cola sin ocupar CPU.
Tiempo de respuesta. Es el tiempo que transcurre entre un requerimiento
hasta el comienzo de la respuesta.
1.5.10 Algoritmos de itineracin - Planificacin
Cul de los procesos que estn en la cola ready se escoger para asignarle
CPU?
Existen varios algoritmos. Estos son:
Peluquera
El ms corto primero
Prioridad
Round Robin
Colas multinivel
1. Algoritmo de la peluquera Primero en llegar primero en ser servido
Tambin se llama FCFS (el primero que llega es el primero en ser atendido). La
implementacin es muy simple porque se maneja con una cola del tipo FIFO.

Sistemas Operativos 136

Si bien es simple el tiempo de espera promedio es elevado


Grfica 50. Orden de peluquera

El tiempo de espera de este algoritmo no es mnimo.


En un escenario dinmico, si un proceso ocupa ms tiempo que los dems, arrastra a los
dems produciendo un efecto llamado convoy.
La itineracin orden de peluquera es no interrumpible.

2. Algoritmo El Ms Corto Primero


Este algoritmo asocia con cada proceso el tiempo de CPU que ocupar la prxima
vez. Si ms de un proceso tiene el mismo tiempo, se rompe el empate usando
orden de peluquera en la itineracin.

Sistemas Operativos 137

Grfica 51. El ms corto primero

El algoritmo el ms corto primero es ptimo, en el sentido que entrega el tiempo de


espera mnimo para un conjunto de procesos.
La dificultad est en saber cul ser el tiempo que ocupar el proceso en su prxima
utilizacin de CPU.
Normalmente se utiliza este algoritmo en la itineracin de job (Disco Memoria)

3. Itineracin por Prioridad


El algoritmo el ms corto primero es un caso especial de la itineracin por
prioridad.
Se asocia una prioridad a cada proceso, y se le asigna la CPU al proceso que
tiene mayor prioridad.
Los procesos con la misma prioridad se itineran segn orden de peluquera.
La prioridad se expresa con un rango de nmeros. Generalmente los nmeros
menores representan alta prioridad.

Sistemas Operativos 138

Grfica 52. Por prioridad

Las prioridades se pueden definir en forma interna o externa.


Internamente implica definir criterios como por ejemplo: lmites de tiempo, requerimientos
de memoria etc.
Externamente se fijan criterios como: importancia del proceso, grupo de trabajo etc.
La itineracin por prioridad puede ser interrumpible o no interrumpible
Con un algoritmo interrumpible, la CPU se transfiere a otro proceso, si la prioridad del
proceso que llega, es mayor que la actual.
Un algoritmo no interrumpible significa poner el nuevo proceso en la cabeza de la cola
ready.
Un problema con el algoritmo de prioridad es que puede producir un bloqueo indefinido.
Para solucionar este problema se usa la tcnica de aumentar gradualmente la prioridad
de los procesos que esperan.

4. Itineracin Round Robin


Esta itineracin se disea especialmente para sistemas de tiempo compartido. Es
similar al orden de peluquera, pero se interrumpe la CPU para conmutar entre los
procesos.
Se define una unidad de tiempo llamada quantum tq

La cola ready es tratada como una cola circular. El itinerador recorre la cola
asignando CPU a cada proceso un intervalo de tiempo dado por el cuantum de
tiempo.
La Cola Ready es tratada como cola FIFO. Los procesos que entran se agregan al
final. Si el tiempo que ocupa un proceso es menor que el cuantum, el proceso
abandona la CPU voluntariamente y el itinerador toma el siguiente proceso.

Sistemas Operativos 139

El Algoritmo Round Robin (RR) es interrumpible.


Si hay n procesos en la cola, cada proceso obtiene 1/n del tiempo de CPU en cada ciclo
de a lo ms q unidades de tiempo.
Cada proceso no espera ms que (n -1)*q hasta el siguiente cuantum.
El desempeo depende del tamao de tq.
Si tq es muy grande, infinito, RR se transforma en itineracin por orden de peluquera.
Si tq es muy chico, RR se transforma en un algoritmo que comparte la CPU, de forma tal
que si hay n procesos, cada usuario percibe que la velocidad es 1/n de la velocidad del
procesador.
Es necesario considerar el tiempo que demora el context switch.
Si el tiempo de context switch es el 10% de tq, aproximadamente el 10% del tiempo de
CPU se gasta en context switch.

Grfica 53. Round Robin

5. Algoritmo Colas Multinivel


Una clase distinta de algoritmo se necesita cuando los procesos son clasificados
en diferentes grupos.
En un sistema normalmente coexisten dos tipos de procesos:
Interactivos
Batch
Ambos tipos de procesos requieren distintos tiempos de respuesta, y por lo tanto
sus necesidades de itineracin son distintas.

Sistemas Operativos 140

El Algoritmo de colas multinivel, particiona la Cola Ready en mltiples colas.


Cada proceso es asignado permanentemente a una cola, basndose en alguna
propiedad como por ejemplo tamao, tipo o prioridad.
Cada Cola tiene un algoritmo distinto.
Por ejemplo procesos Batch se pueden itinerar por orden de peluquera mientras
que los procesos interactivos se pueden itinerar usando RR.
Los procesos interactivos tienen prioridad sobre los procesos Batch.

Grfica 54. Colas multinivel

Algoritmo Colas Multinivel Realimentadas


En el algoritmo de colas multinivel, los procesos son asignados permanentemente
en el momento que entran al sistema.
El algoritmo de colas multinivel realimentadas permite que los procesos se
muevan entre las colas.
La idea es separar procesos con distintos tiempos de CPU.

Sistemas Operativos 141

Grfica 55. Colas multinivel realimentadas

t
El algoritmo de mltiples colas realimentadas est definido por los siguientes
parmetros:
Nmero de colas.
El algoritmo de itineracin de cada cola.
Mtodos para cambiar de colas a procesos.
Mtodo para determinar a cul cola entra el proceso.
Este algoritmo es el ms general. Se puede configurar para mltiples requerimientos.

Actividad final:
De la lista de procesos realizada inicialmente revise cules eran procesos
verdaderos y cules no. Recuerde que aqu ya debe manejar bien este
concepto. Analice el por qu acert o fall en cada punto, segn el caso.
Guarde la lista para la actividad final.

Sistemas Operativos 142

CAPTULO 2. ADMINISTRACIN DE LA MEMORIA


Actividad inicial:
Sabe a qu hacen referencia los trminos: paginacin, segmentacin,
memoria virtual, reemplazo de pginas?
Si es as coloque en una lista la definicin que sepa y al final concluimos.

En este captulo se describirn las tcnicas ms usuales en el manejo de


memoria, revisando los conceptos relevantes. Se abarcarn los esquemas de
manejo simple de memoria real, la multiprogramacin en memoria real con sus
variantes, el concepto de overlays, la multiprogramacin con intercambio y los
esquemas de manejo de memoria virtual.
2.1 Estructura general
La memoria es un importante recurso que debe administrarse con cuidado. Los
programas crecen en tamao tan rpido como las memorias.
La parte del sistema operativo que administra la memoria se llama administrador
de la memoria. Su labor consiste en llevar el registro de las partes de memoria que
se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a
los procesos; cuando estos la necesiten y liberarlo cuando terminen. As como
administrar el intercambio entre la memoria principal y el disco, en los casos en
que la memoria principal no pueda albergar a todos los procesos.
Un vistazo al material que se va a cubrir en este captulo se muestra en la
siguiente grfica en donde se especifican, en trminos generales, los conceptos
ms importantes en cuanto a las tcnicas empleadas en el manejo de memoria.
Grfica 56. Panorama del manejo de memoria

2.2 Manejo de memoria en sistemas monousuario sin intercambio


Este esquema se usa principalmente en sistemas monousuario y monotarea,
como son las computadoras personales con DOS.

Sistemas Operativos 143

Bajo este esquema, la memoria real es tomada para almacenar el programa que
se est ejecutando en un momento dado, con la visible desventaja de que se est
limitado a la cantidad de RAM disponible nicamente.
La organizacin fsica bajo este esquema es muy simple: El sistema operativo se
ubica en las localidades superiores o inferiores de la memoria, seguido por
algunos manejadores de dispositivos (drivers). Esto deja un espacio contiguo de
memoria disponible que es tomado por los programas del usuario, dejando
generalmente la ubicacin de la pila (stack) al ltimo, con el objetivo de que sta
pueda crecer hasta el mximo posible.
Estas diferentes opciones se pueden ver en la siguiente grfica. Como es obvio,
bajo estos esquemas no se requieren algoritmos sofisticados para asignar la
memoria a los diferentes procesos, ya que stos son ejecutados secuencialmente
conforme van terminando.
Grfica 57. Organizacin simple de memoria

2.3 Multiprogramacin en memoria real


En los 60's, las empresas e instituciones que haban invertido grandes sumas en
la compra de equipo de cmputo se dieron cuenta rpidamente que los sistemas
en lote invertan una gran cantidad de tiempo en operaciones de entrada y salida,
donde la intervencin de la unidad central de procesamiento era prcticamente
nula, y se comenzaron a preguntar cmo hacer que se mantuviera ms tiempo
ocupada. Fue as como naci el concepto de multiprogramacin, el cual consiste
en la idea de poner en la memoria fsica ms de un proceso al mismo tiempo, de
manera que si el que se est ejecutando en este momento entraba en un periodo
de entrada/salida, se poda tomar otro proceso para que usara la unidad central de
procesamiento. De esta forma, la memoria fsica se divida en secciones de
tamao suficiente para contener a varios programas.
De esta manera, si un sistema gastaba en promedio 60% de su tiempo en
entrada/salida por proceso, se poda aprovechar ms el CPU. Anterior a esto, el

Sistemas Operativos 144

CPU mantena ese mismo porcentaje ocioso; con la nueva tcnica, el tiempo
promedio ocioso disminuye de la siguiente forma:
Llmese al tiempo promedio que el CPU est ocupado grado de
multiprogramacin. Si el sistema tuviese un slo proceso siempre, y ste gastara
60% en entrada/salida, el grado de multiprogramacin sera 1 - 60% = 40% = 0.4.
Con dos procesos, para que el CPU est ocioso se necesita que ambos procesos
necesiten estar haciendo entrada/salida, es decir, suponiendo que son
independientes, la probabilidad de que ambos estn en entrada/salida es el
producto de sus probabilidades, es decir, 0.6x0.6 = 0.36. Ahora, el grado de
multiprogramacin es 1 - (probabilidad de que ambos procesos estn haciendo
entrada/salida) = 1 - 0.36 = 0.64.
Como se ve, el sistema mejora su uso de CPU en un 24% al aumentar de uno a
dos procesos. Para tres procesos el grado de multiprogramacin es 1 - (0.6) 3 =
0.784, es decir, el sistema est ocupado el 78.4% del tiempo. La frmula del grado
de multiprogramacin, aunque es muy idealista, pudo servir de gua para planear
un posible crecimiento con la compra de memoria real, es decir, para obtener el
punto en que la adicin de procesos a RAM ya no incrementa el uso de CPU.
Dentro del esquema de multiprogramacin en memoria real surgieron dos
problemas interesantes: la proteccin y la relocalizacin.
2.3.1 El problema de la relocalizacin
Este problema no es exclusivo de la multiprogramacin en memoria real, sino que
se present aqu pero se sigue presentando en los esquemas de memoria virtual
tambin. Este problema consiste en que los programas que necesitan cargarse a
memoria real ya estn compilados y ligados, de manera que internamente
contienen una serie de referencias a direcciones de instrucciones, rutinas y
procedimientos que ya no son vlidas en el espacio de direcciones de memoria
real de la seccin en la que se carga el programa.
Esto es, cuando se compil el programa se definieron o resolvieron las direcciones
de memoria de acuerdo a la seccin de ese momento, pero si el programa se
carga otro da en una seccin diferente, las direcciones reales ya no coinciden. En
este caso, el manejador de memoria puede solucionar el problema de dos
maneras: de manera esttica o de manera dinmica. La solucin esttica
consiste en que todas las direcciones del programa se vuelvan a recalcular al
momento en que el programa se carga a memoria, esto es, prcticamente se
vuelve a recompilar el programa. La solucin dinmica consiste en tener un
registro que guarde la direccin base de la seccin que va a contener al programa.

Sistemas Operativos 145

Cada vez que el programa haga una referencia a una direccin de memoria, se le
suma el registro base para encontrar la direccin real. Por ejemplo, suponga que
el programa es cargado en una seccin que comienza en la direccin 100. El
programa har referencias a las direcciones 50, 52, 54. Pero el contenido de esas
direcciones no es el deseado, sino las direcciones 150, 152 y 154, ya que ah
comienza el programa. La suma de 100 + 50,..., etc. se hacen al tiempo de
ejecucin.
La primera solucin vale ms la pena que la segunda si el programa contiene
ciclos y es largo, ya que consumir menos tiempo en la resolucin inicial que la
segunda solucin en las resoluciones en lnea.
2.3.2 El problema de la proteccin
Este problema se refiere a que, una vez que un programa ha sido cargado a
memoria en algn segmento en particular, nada le impide al programador que
intente direccionar (por error o deliberadamente) localidades de memoria menores
que el lmite inferior de su programa o superiores a la direccin mayor; es decir,
quiere referenciar localidades fuera de su espacio de direcciones. Obviamente,
este es un problema de proteccin, ya que no es legal leer o escribir en reas de
otros programas.
La solucin a este problema tambin puede ser el uso de un registro base y un
registro lmite. El registro base contiene la direccin del comienzo de la seccin
que contiene al programa, mientras que el lmite contiene la direccin donde
termina. Cada vez que el programa hace una referencia a memoria se checa si
cae en el rango de los registros y si no es as se enva un mensaje de error y se
aborta el programa.
2.3.3 Particiones fijas o particiones variables
En el esquema de la multiprogramacin en memoria real se manejan dos
alternativas para asignarle a cada programa su particin correspondiente:
particiones de tamao fijo o particiones de tamao variable.
La alternativa ms simple son las particiones fijas. Dichas particiones se crean
cuando se enciende el equipo y permanecern con los tamaos iniciales hasta
que el equipo se apague. Es una alternativa muy vieja, quien haca la divisin de
particiones era el operador analizando los tamaos estimados de los trabajos de
todo el da. Por ejemplo, si el sistema tena 512 Kb de RAM, poda asignar 64 Kb
para el sistema operativo, una particin ms de 64 Kb, otra de 128 Kb y una mayor
de 256 Kb.

Sistemas Operativos 146

Esto era muy simple, pero inflexible, ya que si surgan trabajos urgentes, por
ejemplo, de 400Kb, tenan que esperar a otro da o reparticionar, inicializando el
equipo desde cero.
La otra alternativa, que surgi despus y como necesidad de mejorar la alternativa
anterior, era crear particiones contiguas de tamao variable.
Para esto, el sistema tena que mantener ya una estructura de datos suficiente
para saber en dnde haban huecos disponibles de RAM y de dnde a dnde
haban particiones ocupadas por programas en ejecucin. As, cuando un
programa requera ser cargado a RAM, el sistema analizaba los huecos para
saber si haba alguno de tamao suficiente para el programa que quera entrar, si
era as, le asignaba el espacio. Si no, intentaba relocalizar los programas
existentes con el propsito de hacer contiguo todo el espacio ocupado, as como
todo el espacio libre y as obtener un hueco de tamao suficiente. Si an as el
programa no caba, entonces lo bloqueaba y tomaba otro.
El proceso con el cual se juntan los huecos o los espacios ocupados se le llama
compactacin.
Existen varios algoritmos para elegir el mejor tamao de particin para un
programa, en memoria real y son.
Primer ajuste: Se asigna el primer hueco que sea mayor al tamao
deseado.
Mejor ajuste: Se asigna el hueco cuyo tamao exceda en la menor
cantidad al tamao deseado. Requiere de una bsqueda exhaustiva.
Peor ajuste: Se asigna el hueco cuyo tamao exceda en la mayor cantidad
al tamao deseado. Requiere tambin de una bsqueda exhaustiva.
El siguiente ajuste: Es igual que el primer ajuste con la diferencia que se
deja un apuntador al lugar en donde se asign el ltimo hueco para realizar
la siguiente bsqueda a partir de l.
Ajuste rpido: Se mantienen listas ligadas separadas de acuerdo a los
tamaos de los huecos, para as buscarle a los procesos un hueco ms
rpido en la cola correspondiente.
Otro problema que se vislumbra desde aqu es que, una vez asignado un hueco,
por ejemplo, con "el peor ajuste", puede ser que el proceso requiriera 12 kilobytes
y que el hueco asignado fuera de 64 kilobytes, por lo cual el proceso va a
desperdiciar una gran cantidad de memoria dentro de su particin, lo cual se le
llama fragmentacin interna.
Por otro lado, conforme el sistema va avanzando en el da, finalizando procesos y
comenzando otros, la memoria se va configurando como una secuencia contigua
de huecos y de lugares asignados, provocando que existan huecos, por ejemplo,
de 12 k, 28k y 30 k, que sumados dan 70k, pero que si en ese momento llega un

Sistemas Operativos 147

proceso pidindolos, no se le pueden asignar ya que no son localidades contiguas


de memoria (a menos que se realice la compactacin).
Al hecho de que aparezcan huecos no contiguos de memoria se le llama
fragmentacin externa.
De cualquier manera, la multiprogramacin fue un avance significativo para el
mejor aprovechamiento de la unidad central de procesamiento y de la memoria
misma, as como dio pie para que surgieran los problemas de asignacin de
memoria, proteccin y relocalizacin, entre otros.
2.3.4 Los overlays
Una vez que surgi la multiprogramacin, los usuarios comenzaron a explorar la
forma de ejecutar grandes cantidades de cdigo en reas de memoria muy
pequeas, auxiliados por algunas llamadas al sistema operativo. Es as como
nacen los overlays.
Esta tcnica consiste en que el programador divide lgicamente un programa muy
grande en secciones que puedan almacenarse el las particiones de RAM. Al final
de cada seccin del programa (o en otros lugares necesarios) el programador
insertaba una o varias llamadas al sistema con el fin de descargar la seccin
presente de RAM y cargar otra, que en ese momento resida en disco duro u otro
medio de almacenamiento secundario.
Aunque esta tcnica era eficaz (porque resolva el problema) no era eficiente (ya
que no lo resolva de la mejor manera).
Esta solucin requera que el programador tuviera un conocimiento muy profundo
del equipo de cmputo y de las llamadas al sistema operativo. Otra desventaja era
la portabilidad de un sistema a otro: las llamadas cambiaban, los tamaos de
particiones tambin.
Resumiendo, con esta tcnica se podan ejecutar programas ms grandes que las
particiones de RAM, donde la divisin del cdigo corra a cuenta del programador
y el control a cuenta del sistema operativo.
2.4 Multiprogramacin en memoria virtual
La necesidad cada vez ms imperiosa de ejecutar programas grandes y el
crecimiento en poder de las unidades centrales de procesamiento empujaron a los
diseadores de los sistemas operativos a implantar un mecanismo para ejecutar
automticamente programas ms grandes que la memoria real disponible, esto es,
de ofrecer memoria virtual.

Sistemas Operativos 148

La memoria virtual se llama as porque el programador ve una cantidad de


memoria mucho mayor que la real, y en realidad se trata de la suma de la
memoria de almacenamiento primario y una cantidad determinada de
almacenamiento secundario.
El sistema operativo, en su mdulo de manejo de memoria, se encarga de
intercambiar programas enteros, segmentos o pginas entre la memoria real y el
medio de almacenamiento secundario. Si lo que se intercambia son procesos
enteros, se habla entonces de multiprogramacin en memoria real, pero si lo
que se intercambian son segmentos o pginas, se puede hablar de
multiprogramacin con memoria virtual.
La memoria virtual se apoya en varias tcnicas interesantes para lograr su
objetivo. Una de las teoras ms fuertes es la del conjunto de trabajo, la cual se
refiere a que un programa o proceso no est usando todo su espacio de
direcciones en todo momento, sino que existen un conjunto de localidades activas
que conforman el conjunto de trabajo.
Si se logra que las pginas o segmentos que contienen al conjunto de trabajo
estn siempre en RAM, entonces el programa se desempear muy bien.
Otro factor importante es si los programas exhiben un fenmeno llamado
localidad, lo cual quiere decir que algunos programas tienden a usar mucho las
instrucciones que estn cercanas a la localidad de la instruccin que se est
ejecutando actualmente.
2.4.1 Mecanismos de asignacin
Para ejecutar un proceso este debe cargarse en memoria. Generalmente el
proceso reside en disco como archivo binario o ejecutable. El conjunto de
procesos en disco que esperan entrar en la memoria para ejecutarse forman la
cola de entrada.
El procedimiento normal consiste en seleccionar uno de los procesos de la cola de
entrada y cargarlos en memoria. Esto ocasiona la relocalizacin de direccin o
enlaces a referencias externas, segn sea el caso. Mientras se ejecuta un
programa, se accede a las instrucciones o datos en la memoria.
Finalmente, el programa termina de ejecutarse y su espacio en memoria se
declara disponible.
Un proceso de usuario puede residir en cualquier parte de la memoria fsica. Por
esto, aunque el espacio de direcciones de la computadora comience con 00000,
no necesariamente debe de ser ocupado por el proceso del usuario.

Sistemas Operativos 149

En la mayora de los casos, un programa de usuario pasar por varias etapas


(algunas pueden ser optativas) antes de ejecutarse. En estas etapas las
direcciones pueden representarse de maneras distintas.
En un programa fuente las direcciones son generalmente simblicas. Un
compilador enlazar estas direcciones simblicas con direcciones relocalizables
(como 14 bytes a partir del inicio del mdulo).
A su vez, el director de enlaces o cargador enlazar las direcciones relocalizables
con direcciones absolutas (como 70414). Cada enlace es una correspondencia
entre un espacio de direcciones y otro (hueco de direcciones virtuales).
El enlace de las instrucciones y datos con las instrucciones y datos con las
direcciones de memoria casi siempre puede efectuarse en cualquier etapa del
camino:
Compilacin

Si en la compilacin se sabe donde residir el programa en memoria, se puede


generar cdigo absoluto. Es decir, si se sabe la posicin donde inicia el cdigo,
entonces el compilador comenzara en esa posicin y se extendera a partir de
ah. Si se cambia la posicin de inicio, ser necesario volver a compilar el
cdigo. Los programas con formato. COM se enlazan de manera absoluta
durante la compilacin.

Carga

Si en la compilacin no se conoce dnde residir el programa en memoria,


entonces el compilador deber cargar el cdigo relocalizable.

Ejecucin

Si durante la ejecucin el proceso puede moverse de un segmento de memoria


a otro, entonces el enlace final se debe postergar hasta el momento de la
ejecucin. Esto depende de hardware especial.

Vemos en este diagrama como se inicia a partir del cdigo fuente de algn
lenguaje de alto nivel, pasando a travs de un compilador a ensamblador para
crear as el cdigo objeto, si es posible este es enlazado por el editor de enlaces.
Si las direcciones no son absolutas, es necesario que el mdulo de carga realice
las operaciones necesarias con el cdigo relocalizable:

Sistemas Operativos 150

Grfica 58. Proceso enlace de direcciones en memoria

2.4.2 Implementacin de los mecanismos de asignacin de memoria virtual


Existen tres estrategias de administracin de la memoria virtual:
Determina cuando es que se debe transferir una pgina o segmento del
almacenamiento secundario al primario. Se espera a que un proceso en ejecucin
OBTENCIN
haga referencia a una pgina o segmento antes de traer la pgina o segmento
antes de traer la pgina o segmento al almacenamiento primario, y adems
intenta determinar por anticipado a que lugar se har referencia.
Determina en que lugar del almacenamiento primario se debe colocar una pgina
o segmento entrante. Esto hace que se vuelva una decisin trivial de colocacin,
COLOCACIN
porque la pgina entrante se puede ubicar en cualquier marco de pgina
disponible.
Sirve para decidir cual pgina o segmento se debe desplazar para dejar espacio a
una pgina o segmento entrante cuando est ocupado el almacenamiento
REMPLAZO
primario. En este caso, las rutinas de almacenamiento primario se van a
desplazar para dejar espacio a una pgina entrante. Estrategia de colocacin del
almacenamiento.

Las estrategias de colocacin del almacenamiento sirven para determinar en qu


lugar del almacenamiento primario se deben colocar los programas y datos
entrantes.
Estrategia de mejor ajuste

Sistemas Operativos 151

Un trabajo que entre en el sistema se colocar en el hueco del almacenamiento


primario principal en el que quepa mejor y que deje la menor cantidad de espacios
posibles sin utilizar. Para muchos, el mejor ajuste parece ser intuitivamente la
estrategia ms efectiva.
Grfica 59. Estrategia de mejor ajuste

Estrategia de primer ajuste


Un trabajo que entre en el sistema se colocar en el almacenamiento primario
principal en el primer hueco disponible, lo suficientemente grande para contenerlo.

Grfica 60. Estrategia de primer ajuste

Sistemas Operativos 152

Estrategia de peor ajuste


Consiste en colocar un programa en el almacenamiento primario en el hueco
donde peor se ajusta, es decir, el hueco ms grande.
Grfica 61. Estrategia de peor ajuste

Sistemas Operativos 153

2.4.3 Paginacin pura


La paginacin pura en el manejo de memoria consiste en que el sistema operativo
divide dinmicamente los programas en unidades de tamao fijo (generalmente
mltiplos de 1 kilobyte) los cuales va a manipular de RAM a disco y viceversa.
Al proceso de intercambiar pginas, segmentos o programas completos entre
RAM y disco se le conoce como intercambio o swapping.
En la paginacin, se debe cuidar el tamao de las pginas, ya que si stas son
muy pequeas el control, por parte del sistema operativo para saber cules estn
en RAM y cuales en disco, sus direcciones reales, etc; crece y provoca mucha
sobrecarga (overhead). Por otro lado, si las pginas son muy grandes, el
overhead disminuye pero entonces puede ocurrir que se desperdicie memoria en
procesos pequeos. Debe haber un equilibrio.
Uno de los aspectos ms importantes de la paginacin, as como de cualquier
esquema de memoria virtual, es la forma de traducir una direccin virtual a
direccin real. Para explicarlo, obsrvese la siguiente grfica:
Grfica 62. Traduccin de direcciones de memoria

Como se observa, una direccin virtual v = (b,d) est formada por un nmero de
pgina virtual b2 y un desplazamiento d.
Por ejemplo, si el sistema ofrece un espacio de direcciones virtuales de 64
kilobytes, con pginas de 4 kilobytes y la RAM slo es de 32 kilobytes, entonces
tenemos 16 pginas virtuales y 8 reales. La tabla de direcciones virtuales contiene
16 entradas, una por cada pgina virtual.

Sistemas Operativos 154

En cada entrada, o registro de la tabla de direcciones virtuales se almacenan


varios datos: si la pgina est en disco o en memoria, quin es el dueo de la
pgina, si la pgina ha sido modificada o es de lectura nada ms, etc.
Pero el dato que nos interesa ahora es el nmero de pgina real que le
corresponde a la pgina virtual. Obviamente, de las 16 virtuales, slo ocho tendrn
un valor de control que dice que la pgina est cargada en RAM, as como la
direccin real de la pgina, denotada en la grfica anterior como b'.
Por ejemplo, supngase que para la pgina virtual nmero 14 la tabla dice que,
efectivamente est cargada y es la pgina real 2 (direccin de memoria 8192).
Una vez encontrada la pgina real, se le suma el desplazamiento, que es la
direccin que deseamos dentro de la pgina buscada ( b' + d ).
La tabla de direcciones virtuales a veces est ubicada en la misma memoria RAM,
por lo cual se necesita saber en qu direccin comienza, en este caso, existe un
registro con la direccin base denotada por la letra a.
Cuando se est buscando una pgina cualquiera y sta no est cargada, surge lo
que se llama un fallo de pgina (page fault). Esto es caro para el manejador de
memoria, ya que tiene que realizar una serie de pasos extra para poder resolver la
direccin deseada y darle su contenido a quien lo pide. Primero, se detecta que la
pgina no est presente y entonces se busca en la tabla la direccin de esta
pgina en disco. Una vez localizada en disco se intenta cargar en alguna pgina
libre de RAM. Si no hay pginas libres se tiene que escoger alguna para enviarla
hacia el disco. Una vez escogida y enviada a disco, se marca su valor de control
en la tabla de direcciones virtuales para indicar que ya no est en RAM, mientras
que la pgina deseada se carga en RAM y se marca su valor para indicar que
ahora ya est en RAM. Todo este procedimiento es caro, ya que se sabe que los
accesos a disco duro son del orden de decenas de veces ms lentos que en RAM.
En el ejemplo anterior se mencion que cuando se necesita descargar una pgina
de RAM hacia disco se debe de hacer una eleccin. Para realizar esta eleccin
existen varios algoritmos, los cuales se describen enseguida.
La primera en entrar, Se escoge la pgina que haya entrado primero y est cargada en RAM.
primera en salir
Se necesita que en los valores de control se guarde un dato de tiempo.
No es eficiente porque no aprovecha ninguna caracterstica de ningn
sistema. Es justa e imparcial.
La
no
usada Se escoge la pgina que no haya sido usada (referenciada) en el ciclo
recientemente
anterior. Pretende aprovechar el hecho de la localidad en el conjunto de
trabajo. R
La usada menos recientemente: Es parecida a la anterior,
pero escoge la pgina que se us hace ms tiempo, pretendiendo que
como ya tiene mucho sin usarse es muy probable que siga sin usarse en
los prximos ciclos. Necesita de una bsqueda exhaustiva.

Sistemas Operativos 155

La
no
usada Este algoritmo toma en cuenta no tanto el tiempo, sino el nmero de
frecuentemente
referencias. En este caso cualquier pgina que se use muy poco, menos
veces que alguna otra.
La
menos Es parecida a la anterior, pero aqu se busca en forma exhaustiva
frecuentemente
aquella pgina que se ha usado menos que todas las dems. R En
usada
forma aleatoria: Elige cualquier pgina sin aprovechar nada. Es justa e
imparcial, pero ineficiente.

Otro dato interesante de la paginacin es que ya no se requiere que los programas


estn ubicados en zonas de memoria adyacente, ya que las pginas pueden estar
ubicadas en cualquier lugar de la memoria RAM.
Tomando en consideracin que la paginacin trabaja con memoria virtual,
entonces recordaremos que en la memoria virtual se encuentran las direcciones
virtuales, las cuales se generan por ndices, registros, palabras o bytes. Estas
direcciones virtuales no pasan de forma directa al bus de memoria, sino que van a
la unidad de administracin de memoria (MMU), y por medio de un chip se asocian
las virtuales con las reales.
La paginacin surge de la necesidad de crear espacios de memoria contiguos,
pues debido a que la fragmentacin genera espacios dispersos de
almacenamiento, no se pueden ejecutar los procesos.
Claro est que esto se soluciona mediante la paginacin y la compactacin. La
paginacin permite que la memoria de un proceso no sea contigua
(almacenamiento secundario), pero al ser asignado al almacenamiento primario
necesariamente seria contigua.
El usuario ya no se preocupa al tener espacio disponible en el almacenamiento
secundario, pues as se lograrn ejecutar los procesos. La paginacin es un
mtodo comn en los sistemas operativos.
La memoria fsica se divide en bloques de tamao fijo llamados Marcos.
La memoria lgica se divide en bloques del mismo tamao pginas.
Cuando un proceso se va a ejecutar, sus pginas se cargan desde el
almacenamiento auxiliar(secundario) en cualquiera de los marcos disponibles. Por
lo tanto al crear al crear la paginacin (pginas) se crean tambin los marcos de
las pginas resultantes del nmero de pginas que ocurran. Viendo entonces que
la paginacin se da en el almacenamiento secundario (disco, dispositivos),
estamos haciendo uso del hardware por lo que el hardware representa el apoyo
para la paginacin.

Sistemas Operativos 156

2.4.4 Segmentacin pura


La segmentacin se aprovecha del hecho de que los programas se dividen en
partes lgicas, como son las partes de datos, de cdigo y de pila (stack). La
segmentacin asigna particiones de memoria a cada segmento de un programa y
busca como objetivos el hacer fcil el compartir segmentos (por ejemplo libreras
compartidas) y el intercambio entre memoria y los medios de almacenamiento
secundario.
En la segmentacin pura las particiones de memoria son de tamao variable, en
contraste con pginas de tamao fijo en la paginacin pura.
Tambin se puede decir que la segmentacin pura tiene una granularidad menor
que la paginacin por el tamao de segmentos versus tamao de pginas.
Nuevamente, para comprender mejor la segmentacin, se debe dar un repaso a la
forma en que las direcciones virtuales son traducidas a direcciones reales (Grfica
63).
Prcticamente la traduccin es igual que la llevada a cabo en la paginacin pura,
tomando en consideracin que el tamao de los bloques a controlar por la tabla de
traduccin son variables, por lo cual, cada entrada en dicha tabla debe contener la
longitud de cada segmento a controlar. Otra vez se cuenta con un registro base
que contiene la direccin del comienzo de la tabla de segmentos. La direccin
virtual se compone de un nmero de segmento (s) y un desplazamiento (d) para
ubicar un byte (o palabra) dentro de dicho segmento. Es importante que el
desplazamiento no sea mayor que el tamao del segmento, lo cual se controla
simplemente chequeando que ese valor sea mayor que la direccin del inicio del
segmento y menor que el inicio sumado al tamao.
Una vez dada una direccin virtual v=(s,d), se realiza la operacin b + s para hallar
el registro (o entrada de la tabla de segmentos) que contiene la direccin de inicio
del segmento en la memoria real, denotado por s'.
Ya conociendo la direccin de inicio en memoria real s' slo resta encontrar el byte
o palabra deseada, lo cual se hace sumndole a s' el valor del desplazamiento, de
modo que la direccin real r = s' + d.

Sistemas Operativos 157

Grfica 63. Traduccin de direcciones de memoria en segmentacin

La finalidad de la tabla de pginas es asociar pginas virtuales con marcos de


pgina.
La entrada tpica en una tabla de pginas es la siguiente:

La direccin del marco de pgina, guarda la direccin en memoria real


donde se encuentra la pgina.
El bit presente/ausente, indica si la pgina reside en la memoria real o no.
Si la pgina no est presente (0) y se referencia, se producir un defecto de
pgina.
Los bits de proteccin indican el tipo de acceso permitido. Estos
generalmente se conocen como rwx y dependiendo de si estn
encendidos, la pgina se podr leer (r), escribir (w) o ejecutar (x).
El bit de modificacin se enciende cada que la pgina sufre algn cambio
en memoria real. Se utiliza cuando la pgina es seleccionada para salir de
la memoria real, cuando se presenta un defecto de pgina. Si el bit est

Sistemas Operativos 158

encendido, entonces la pgina se escribir sobre el disco. En caso contrario


slo se desecha pues la imagen en disco es igual a la existente en la
memoria real.
El bit de referencia como su nombre lo indica se enciende cada vez que la
pgina es referenciada, bien sea para lectura o escritura. Sirve para apoyar
al sistema operativo, para seleccionar la pgina a salir cuando se presenta
un defecto de pgina. Las pginas no referenciadas son unas muy buenas
candidatas a salir.
El bit de caching. Si est esta desactivado, cuando se produzca una
operacin de E/S, el sistema operativo busca la informacin en el hardware
y no una copia antigua en el cach.
Cada entrada en la tabla de segmentos tiene un formato similar al mostrado en la
siguiente tabla. Se tienen campos que indican la longitud, los permisos, la
presencia o ausencia y direccin de inicio en memoria real del segmento.

Un hecho notable en los sistemas que manejan paginacin es que cuando el


proceso comienza a ejecutarse ocurren un gran nmero de fallos de pgina,
porque es cuando est referenciando muchas direcciones nuevas por primera vez,
despus el sistema se estabiliza, conforme el nmero de marcos asignados se
acerca al tamao del conjunto de trabajo.
2.4.5 Sistemas combinados
La paginacin y la segmentacin puras son mtodos de manejo de memoria
bastante efectivos, la mayora de los sistemas operativos modernos implantan
esquemas combinados, es decir, combinan la paginacin y la segmentacin.
La idea de combinar estos esquemas se debe a que de esta forma se aprovechan
los conceptos de la divisin lgica de los programas (segmentos) con la
granularidad de las pginas. De esta forma, un proceso estar repartido en la
memoria real en pequeas unidades (pginas) cuya liga son los segmentos.
Tambin es factible as el compartir segmentos a medida que las partes
necesitadas de los mismos se van referenciando (pginas). Para comprender este
esquema, nuevamente se ver cmo se traduce una direccin virtual en una
localidad de memoria real. Para la paginacin y segmentacin puras se puede
decir que el direccionamiento es bidimensional porque se necesitan dos valores

Sistemas Operativos 159

para hallar la direccin real. Para el caso combinado, se puede decir que se tiene
un direccionamiento tridimensional.
En la grfica 64 se muestran las partes relevantes para lograr la traduccin de
direcciones. El sistema debe contar con una tabla de procesos (TP).
Por cada rengln de esa tabla se tiene un nmero de proceso y una direccin a
una tabla de segmentos. Es decir, cada proceso tiene una tabla de segmentos.
Cuando un proceso hace alguna referencia a memoria, se consulta TP para
encontrar la tabla de segmentos de ese proceso. En cada tabla de segmentos de
proceso (TSP) se tienen los nmeros de los segmentos que componen a ese
proceso. Por cada segmento se tiene una direccin a una tabla de pginas. Cada
tabla de pginas tiene las direcciones de las pginas que componen a un solo
segmento.
Por ejemplo, el segmento A puede estar formado por las pginas reales
a,b,c,p y x. El segmento B puede estar compuesto de las pginas
f,g,j,w y z.
Para traducir una direccin virtual v=(s,p,d) donde s es el segmento, p es la
pgina y d el desplazamiento, en la pgina se hace lo siguiente:
Primero se ubica de qu proceso es el segmento y se localiza la tabla de
segmentos de ese proceso en la TP. Con s' como ndice se encuentra un rengln
(registro) en la tabla de segmentos de ese proceso y en ese rengln est la
direccin de la tabla de pginas que componen al segmento. Una vez en la tabla
de pginas, se usa el valor p' como ndice para encontrar la direccin de la pgina
en memoria real. Una vez en esa direccin de memoria real, se encuentra el byte
(o palabra) requerido por medio del valor de d'.

Sistemas Operativos 160

Grfica 64. Traduccin en la segmentacin paginacin

Ahora, en este esquema pueden haber dos tipos de fallos: por fallo de pgina y
por fallo de segmento.
Cuando se hace referencia a una direccin y el segmento que la contiene no est
en RAM (aunque sea parcialmente), se provoca un fallo por falta de segmento y lo
que se hace es traerlo del medio de almacenamiento secundario y crearle una
tabla de pginas. Una vez cargado el segmento se necesita localizar la pgina
correspondiente, pero sta no existe en RAM, por lo cual se provoca un fallo de
pgina y se carga de disco y finalmente se puede ya traer la direccin deseada por
medio del desplazamiento de la direccin virtual.
La eficiencia de la traduccin de direcciones tanto en paginacin pura,
segmentacin pura y esquemas combinados se mejora usando memorias
asociativas para las tablas de pginas y segmentos, as como memorias cach
para guardar los mapeos ms solicitados.

Sistemas Operativos 161

Otro aspecto importante es la estrategia para cargar pginas (o segmentos) a la


memoria RAM. Se usan ms comnmente dos estrategias: cargado de pginas
por demanda y cargado de pginas anticipada.
La estrategia de cargado por demanda consiste en que las pginas solamente
son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una
direccin que cae dentro de ellas.
La carga anticipada consiste en tratar de adivinar qu pginas sern solicitadas
en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no
ocurran fallos de pgina.
2.5 Algoritmos de reemplazo de pginas
Existen muchos y diferentes algoritmos para el reemplazo de pgina, pero en
general se prefieren los que presenten el menor nmero de fallos de pgina,
Los fallos de pgina, slo ocurren en dos ocasiones:
Cundo la memoria est vaca y entran solo las pginas disponibles de
acuerdo al tamao del marco de pginas.
Cuando entran las dems pginas en localidades diferentes a la pgina
que entra en ese momento.
Para realizar esta eleccin existen varios algoritmos, los cuales se describen
enseguida.
La primera en entrar, primera en salir: Se escoge la pgina que haya entrado
primero y est cargada en RAM. Se necesita que en los valores de control segura
de un dato de tiempo. No es eficiente porque no aprovecha ninguna caracterstica
de ningn sistema. Es justa e imparcial.
La no usada recientemente. Se escoge la pgina que no haya sido usada
(referenciada) en el ciclo anterior. Pretende aprovechar el hecho de la localidad en
el conjunto de trabajo.
La usada menos recientemente. Es parecida a la anterior, pero escoge la pgina
que se us hace ms tiempo, pretendiendo que como ya tiene mucho sin usarse
es muy probable que siga sin usarse en los prximos ciclos. Necesita de una
bsqueda exhaustiva.
La no usada frecuentemente. Este algoritmo toma en cuenta no tanto el tiempo,
sino el nmero de referencias. En este caso cualquier pgina que se use muy
poco, menos veces que alguna otra.

Sistemas Operativos 162

La menos frecuentemente usada. Es parecida a la anterior, pero aqu se busca


en forma exhaustiva aquella pgina que se ha usado menos que todas las dems.
En forma aleatoria. Elige cualquier pgina sin aprovechar nada. Es justa e
imparcial, pero ineficiente. Otro dato interesante de la paginacin es que ya no se
requiere que los programas estn ubicados en zonas de memoria adyacente, ya
que las pginas pueden estar ubicadas en cualquier lugar de la memoria RAM.
2.5.1 Algortimo FIFO
El algoritmo de remplazo de pginas ms sencillo es el primero en entrar, primero
en salir (First Input, first output). Un algoritmo FIFO asocia a cada pgina el
instante en el que se trajo a memoria. Cuando hay que reemplazar una pgina se
elige la ms antigua.
Si construimos una cola FIFO que contenga las en memoria reemplazamos la
pgina de inicio de la cola y cuando se introduce en memoria una pgina, la
insertamos al final de la cola.
Por ejemplo: Teniendo la serie de referencias con un marco de pgina de tamao
3, observamos: 7 0 1 2 3 0 4 2 3 0 1 2 7 0 1
7

7
0

7
0
1

2
0
1

2
3
1

2
3
0

4
3
0

4
2
0

4
2
3

0
2
3

0
1
3

0
1
2

7
1
2

7
0
2

7
0
1

Nota: Los cuadros en color gris indican las pginas que entran.
Despus de descargar una pgina activa para incorporar una pgina nueva, se
provocar casi de inmediato una falla por la pgina activa. Tendremos que
reemplazar otra pgina para devolver memoria la pgina activa. De esta manera,
una mala eleccin en el reemplazo aumenta la cantidad de fallos de pginas y
frena la ejecucin de procesos, pero no provoca ejecucin incorrecta.
Al elegir una pgina equivocada el sistema operativo tiene varias opciones
conocidas como ANOMALIA DE BELADY.
1. Abortar el proceso del usuario lo cual no es la mejor opcin ya que el sistema
operativo realiza la paginacin para mejorar la utilizacin y productividad el
sistema de computadora.
2. Descargar un proceso de pginas por cualquier algoritmo de reemplazo.
3. Reemplazo de pginas por cualquier algoritmo de reemplazo.

Sistemas Operativos 163

En este ejemplo se muestra como se implementan los algoritmos de reemplazo de


pginas. Tomamos como referencia la siguiente serie:
9 0 1 8 3 1 0 4 6 3 8 7 0 8 2 5 1 3 4 5 0 7 1 2 8 4 6 7 1 2 0 9.
1 1 1 1 0 0 0 3 3 3 0 0 0 0 1 1 1 5 5 5 1 1 1 4 4 4 1 1 1 9
0 0 3 3 3 3 6 6 6 7 7 7 7 5 5 5 4 4 4 7 7 7 8 8 8 7 7 7 0 0
9 8 8 8 8 4 4 4 8 8 8 8 2 2 2 3 3 3 0 0 0 2 2 2 6 6 6 2 2 2

Total de fallos = 30
Nota: Los cuadros en color gris indican las pginas que entran.
2.5.2 Algoritmo ptimo
Una consecuencia del estudio de la anomala de Belady, fue la bsqueda de un
algoritmo de reemplazo de pginas ptimo. Este algoritmo tiene la menor tasa de
fallos de pgina de todos los algoritmos: un algoritmo ptimo nunca presentar la
anomala de Belady.
Consiste en reemplazar la pgina que no se usar durante el mayor periodo de
tiempo. Por ejemplo considerando la siguiente serie de referencias, tendremos
que: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
7

7
0

7
0

2
0

2
0

2
4

2
0

2
0

7
0

Nota: Los cuadros en negrillas indican las pginas que entran.


Las primeras tres referencias causan fallas que llenan los tres marcos vacos. La
referencia a la pgina 2 reemplaza a la pgina 7 hasta la referencia nmero 1, la
pgina 0 se usar en la pgina 5 y la pgina 1 en la referencia No. 14. La
referencia a la pgina 3 reemplaza a la pgina 1, ya que esta ser la ltima de las
3 pginas en memoria a la que se volver a hacer referencia. Con slo 9 fallos de
pgina el reemplazo ptimo es mucho mejor que el FIFO que con la misma serie
presenta 15 fallos de pgina. De hecho, ningn algoritmo de reemplazo puede
procesar esta serie de referencias con menos de 9 fallos usando un marco de
tamao 3. Por desgracia, es difcil de implantar el algoritmo de reemplazo de
pginas ptimo, ya que se requiere el conocimiento a futuro de la serie de
referencias.
2.5.3 Algoritmo LRU
Si el algoritmo no es tan factible quiz sea posible una aproximacin. La principal
diferencia entre el FIFO y el OPTIMO, es que el FIFO utiliza el instante en que
entr la pgina a memoria; el OPTIMO utiliza el tiempo en que usar la pgina.

Sistemas Operativos 164

Si utilizamos el pasado reciente como aproximacin de que suceder en un futuro


cercano, reemplazaremos la pgina que no se ha utilizado durante el mayor
periodo de tiempo posible.
Este es el algoritmo MENOS RECIENTE USADO (LRU, Least Recently Used). El
reemplazo LRU asocia a cada pgina al instante en que se us por ltima vez.
Cuando hay que reemplazar una pgina, LRU asocia la pgina que no ha sido
utilizada durante el mayor perodo de tiempo posible, es decir, ve hacia atrs en el
tiempo (su utilizacin en el pasado). Por ejemplo, si tenemos la misma serie de
referencias que en el ptimo 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1,2,0,1,7,0,1.
7

7
0

7
0
1

2
0
1

2
0
3

4
0
3

4
0
2

4
3
2

0
3
2

1
3
2

1
0
2

1
0
7

Nota: Los cuadros en negrillas indican las pginas que entran.


El algoritmo LRU produce 12 fallos. Las cinco primeras son las mismas que en el
ptimo, sin embargo, cuando se presenta la referencia a la pgina 4, el reemplazo
observa que de las 3 pginas en memoria, la 2 fue la menos reciente usada.
La pgina que se us ms recientemente es la pgina 0 y justo antes se us la
pgina 3. Por lo tanto, el LRU reemplaza a la pgina 2, sin saber que est a punto
de usarse. Luego, cuando se d la falla por la pgina 2, el algoritmo LRU puede
reemplazar la pgina 3.
A pesar de estos problemas, el reemplazo por LRU con 12 fallos sigue siendo
mejor que el FIFO con 15 fallos.
La poltica de implantar el algoritmo LRU es generalmente buena, sin embargo
existe el problema de cmo implantar el reemplazo de pginas. El problema
consiste en determinar un orden para los marcos definidos por el instante del
ltimo uso. El algoritmo LRU se puede implementar de dos maneras:
Contadores. A cada entrada de la tabla de pginas asociamos un registro de
instante de uso y aadimos al CPU un reloj lgico o contador. El reloj se
incremento con cada referencia a memoria. De esta manera siempre tendremos
el tiempo de la ltima referencia a la pgina y reemplazaremos la pgina con
menor valor.
Pilas. Cuando se hace referencia a una pgina, se saca la pila y se coloca en la
parte superior. De esta manera, en la parte superior de la pila siempre se
encuentra la pila ms recientemente usada, y en la parte inferior de la pila la

Sistemas Operativos 165

pgina menos reciente usada. Puesto que las entradas deben sacarse de la mitad
de la pila, puede implantarse mejor con una lista doblemente ligada.
La siguiente serie muestra el algoritmo : 9 0 1 8 3 1 0 4 6 3 8 7 0 8 2 5 1 3 4 5 0 7
1 2 8 4 6 7 1 2 0 9.
1 1 1 1 1 1 6 6 6 7 7 7 2 2 2 3 3 3 0 0 0 2 2 2 6 6 6 2 2 2
0 0 3 3 3 4 4 4 8 8 8 8 8 8 1 1 1 5 5 5 1 1 1 4 4 4 1 1 1 9
9 8 8 8 0 0 0 3 3 3 0 0 0 5 5 5 4 4 4 7 7 7 8 8 8 8 8 8 0 0

Total de fallos = 29
Nota: Los cuadros en color gris indican las pginas que entran.
2.5.4 Algoritmos aproximados (bit de referencia)
Pocos sistemas proporcionan suficiente ayuda del hardware para un verdadero
reemplazo de pginas LRU. Algunos sistemas no ofrecen ningn apoyo del
hardware, por lo que hay que emplear otros algoritmos de reemplazo de pginas,
sin embargo, muchos sistemas ofrecen cierta ayuda en la forma de un bit de
referencia.
El hardware coloca un 1 en el bit de referencia para una pgina cada vez que se
hace referencia a ella. Los bits de referencia estn asociados a cada entrada de la
tabla de pginas.
2.5.5 Algoritmo de bits adicionales de referencia
Podemos obtener informacin del uso de las pginas en un algoritmo de
reemplazo. Esta informacin se puede implementar utilizando una tabla adicional
de 8 bits para cada pgina. Estos registros contienen la historia de utilizacin de
la pgina durante los 8 periodos. Si el registro del desplazamiento contiene
00000000, entonces la pgina no se ha utilizado por lo menos en 8 periodos. Una
pgina que se utiliza cuando menos una vez cada periodo tendra un, valor de 1 1
1 1 1 1 1 en su registro adicional de referencia al desplazamiento de la pgina.
Una pgina con valor de 1 1 0 0 0 1 0 0, si interpretamos esto en bytes de 8 bits
como enteros sin signo, la pgina con el menor nmero de 1's a la izquierda es la
pgina menos reciente usada y puede entonces reemplazarse. Por lo mismo,
puede haber ms de una pgina que, casi no se est usando, entonces habra que
aplicar una seleccin FIFO entre ellas.
Por ejemplo:

Sistemas Operativos 166


El proceso ms usado = 2
El proceso menos usado =
9
El proceso con mayor
demanda = 2
El proceso con menor
demanda = 8
El proceso nunca usado = 3,
5

PROCESO

0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
2
1
1
1
0
0
0
1
1
3
0
0
0
0

Sistemas Operativos 167

0
0
0
0
4
0
0
0
0
1
1
1
0
5
0
0
0
0
0
0
0
0
6
0
0
0
1
1
1
0
0
7
0
0
1
1
1
0
0
0

Sistemas Operativos 168

8
0
0
0
0
0
1
1
1
9
1
0
0
0
0
0
0
0
2.5.6 Algoritmo de segunda oportunidad
El algoritmo bsico para el reemplazo de segunda oportunidad es el FIFO, sin
embargo, cuando se selecciona una pgina examinamos su bit de referencia; si el
bit dereferencia es igual a 0, reemplazamos.
Sin embargo, si el bit de referencia es 1, damos a la pgina la segunda
oportunidad y pasa a seleccionar la siguiente pgina en el orden FIFO.
Cuando a una pgina se le da segunda oportunidad, se borra su bit de referencia y
se establece como llegada actual, de esa pgina. De esta manera, una de las
pginas a las que se les brinde una segunda oportunidad no sern reemplazadas
hasta que todas las dems pginas se reemplacen (o que se les otorgue una
segunda oportunidad). Adems si una pgina se usa con frecuencia suficiente
para mantener su bit de referencia en 1, nunca ser reemplazada.
Actividad final:
Realice un mapa conceptual o cuadro sinptico en donde se evidencien los
diferentes algoritmos de reemplazo de pginas y los algoritmos para el manejo
de memoria virtual, tambin paginacin, segmentacin y el sistema
combinado.
Revise los conceptos que relacion en la actividad inicial, comprelos con los
vistos en el captulo y concluya.

Sistemas Operativos 169

CAPTULO 3. ADMINISTRACIN DE DISPOSITIVOS26


Actividad inicial:
Realice una lista de todos los dispositivos que considere hacen parte de un
sistema computacional.
Y para cada uno de ellos diga si es dispositivo de entrada o de salida al
sistema.
Adems imagine qu tipo de controlador de proceso tiene cada dispositvo.

El cdigo destinado a manejar la entrada y salida de los diferentes perifricos en


un sistema operativo es de una extensin considerable y sumamente complejo.
Resuelve necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al
sistema para los programadores. En este captulo se repasarn los principios ms
importantes a tener en cuenta en el manejo de E/S.
3.1 Entrada/salida
Las funciones ms importantes de un sistema computacional son procesamiento y
E/S. En la mayora de los casos, lo ms importante es la E/S y el clculo es
incidental. Ejemplo:
Navegacin por Internet
Multimedia
Edicin, etc.
En este captulo discutiremos:
Fundamentos del hardware de E/S
Servicios de E/S que proporciona el S.O.
Interfaz de software
3.1.1 Caractersticas de la E/S
La tecnologa de E/S est sometida a dos fuerzas:
Estandarizacin del software (SW) e interfaces de hardware (HW).
Gran variedad de dispositivos distintos con fuerte penetracin en el
mercado.
26

Las grficas de este captulo fueron copiadas del documento pdf: Sistemas Operativos. Profesor
Javier Caas. Captulo 11.


Sistemas Operativos 170

Para encapsular los detalles de los dispositivos, el S.O. utiliza mdulos llamados
device drivers.
3.2 Dispositivos de Entrada/Salida
Los dispositivos de entrada salida se dividen, en general, en dos tipos:
Dispositivos orientados a bloques y
Dispositivos orientados a caracteres.
Los dispositivos orientados a bloques tienen la propiedad de que se pueden
direccionar, esto es, el programador puede escribir o leer cualquier bloque del
dispositivo realizando primero una operacin de posicionamiento sobre el
dispositivo.
Los dispositivos ms comunes orientados a bloques son los discos duros, la
memoria, discos compactos y, posiblemente, unidades de cinta.
Por otro lado, los dispositivos orientados a caracteres son aquellos que trabajan
con secuencias de bytes sin importar su longitud ni ninguna agrupacin en
especial. No son dispositivos direccionables.
Ejemplos de estos dispositivos son el teclado, la pantalla o display y las
impresoras.
La clasificacin anterior no es perfecta, porque existen varios dispositivos que
generan entrada o salida que no pueden englobarse en esas categoras. Por
ejemplo, un reloj que genera pulsos. Sin embargo, aunque existan algunos
perifricos que no se puedan categorizar, todos estn administrados por el
sistema operativo por medio de una parte electrnica - mecnica y una parte de
software.
Los dispositivos de E/S son muy diversos. Para poder clasificarlos se utilizan 3
caractersticas:
Comportamiento. Entrada, salida o almacenamiento.
Contraparte. Mquina o ser humano.
Tasa de transferencia. Tasa peak de transferencia entre dispositivo y
memoria.

Sistemas Operativos 171

Grfica 65. Ejemplos de dispositivos

3.3 Controladores de Dispositivos ( Terminales y Discos Duros)


Los controladores de dispositivos (tambin llamados adaptadores de dispositivos)
son la parte electrnica de los perifricos, pueden tener la forma de una tarjeta o
un circuito impreso integrado a la tarjeta maestra de la computadora.
Por ejemplo, existen controladores de discos que se venden por separado y que
se insertan en una ranura de la computadora, o existen fabricantes de
computadoras que integran esa funcionalidad en la misma tarjeta en que viene la
unidad central de procesamiento (tarjeta maestra).
Los controladores de dispositivos generalmente trabajan con voltajes de 5 y 12
volts con el dispositivo propiamente, y con la computadora a travs de
interrupciones. Estas interrupciones viajan por el bus de la computadora y son
recibidos por la CPU la cual a su vez pondr en ejecucin algn programa que
sabr qu hacer con esa seal. A ese programa se le llama manejador de
dispositivo (device driver).
Algunas veces el mismo controlador contiene un pequeo programa en una
memoria de solo lectura o en memoria de acceso aleatoria no voltil y re-escribible
que interacta con el correspondiente manejador en la computadora.
Para intercambiar datos o seales entre la computadora y los controladores,
muchas veces se usan registros o secciones predefinidas de la memoria de la
computadora. A este esquema se le llama manejo de entrada - salida mapeado
por memoria (memory mapped I/O).

Sistemas Operativos 172

3.4 Principios en el Software de Entrada - Salida


Los principios de software en la entrada - salida se resumen en cuatro puntos: el
software debe ofrecer manejadores de interrupciones, manejadores de
dispositivos, software que sea independiente de los dispositivos y software para
usuarios.
3.4.1 Manejadores de interrupciones
El primer objetivo referente a los manejadores de interrupciones consiste en que el
programador o el usuario no debe darse cuenta de los manejos de bajo nivel para
los casos en que el dispositivo est ocupado y se debe suspender el proceso o
sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el
sistema simplemente se tard ms o menos en responder a su peticin.
3.4.2 Manejadores de dispositivos
El sistema debe proveer los manejadores de dispositivos necesarios para los
perifricos, as como ocultar las peculiaridades del manejo interno de cada uno de
ellos, tales como el formato de la informacin, los medios mecnicos, los niveles
de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos
duros, para el usuario o programador las diferencias tcnicas entre ellos no le
deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas
para leer y escribir datos.
3.4.3 Software independiente del dispositivo
Este es un nivel superior de independencia que el ofrecido por los manejadores de
dispositivos. Aqu el sistema operativo debe ser capaz, en lo ms posible, de
ofrecer un conjunto de utileras para accesar perifricos o programarlos de una
manera consistente. Por ejemplo, que para todos los dispositivos orientados a
bloques se tenga una llamada para decidir si se desea usar buffers o no, o para
posicionarse en ellos.
3.4.4 Software para usuarios
La mayora de las rutinas de entrada - salida trabajan en modo privilegiado, o son
llamadas al sistema que se ligan a los programas del usuario formando parte de
sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la
apariencia de los datos.
Existen otras libreras en donde el usuario si tiene poder de decisin (por ejemplo
la llamada a "printf" en el lenguaje "C").

Sistemas Operativos 173

Otra facilidad ofrecida son las reas de trabajos encolados (spooling areas), tales
como las de impresin y correo electrnico.
3.5 Relojes
Los relojes son esenciales para el buen funcionamiento de cualquier sistema
porque juegan un papel decisivo en la sincronizacin de procesos, en la
calendarizacin de trabajos por lote y para la asignacin de turnos de ejecucin
entre otras tareas relevantes.
Generalmente se cuenta con dos relojes en el sistema: uno que lleva la hora y
fecha del sistema y que oscila entre 50 y 60 veces por segundo y el reloj que
oscila entre 5 y 100 millones de veces por segundo y que se encarga de enviar
interrupciones a la CPU de manera peridica.
El reloj de mayor frecuencia sirve para controlar el tiempo de ejecucin de los
procesos, para despertar los procesos que estn durmiendo y para lanzar o
iniciar procesos que fueron calendarizados.
Para mantener la hora y fecha del sistema generalmente se usa un registro
alimentado por una pila de alta duracin que almacena estos datos y que se
programan de fbrica por primera vez. As, aunque se suspenda la energa la
fecha permanece.
Para lanzar procesos (chequeo de tiempo ocioso de un dispositivo, terminacin del
time slice de un proceso, etc), se almacena un valor en un registro (valor
QUANTUM) el cual se decrementa con cada ciclo del reloj, y cuando llega a cero
se dispara un proceso que ejecutar las operaciones necesarias (escoger un
nuevo proceso en ejecucin, verificar el funcionamiento del motor del disco
flexible, hacer eco de un caracter del teclado, etc).
3.6 Puertas y buses
Un dispositivo se conecta con un sistema computacional a travs de puertas y
buses.
Un Bus se utiliza para conectar diversos subsistemas: CPU - Memoria - E/S. Un
Bus es un medio compartido.

Sistemas Operativos 174

Grfica 66. Organizacin sistema pentium. Buses

3.6.1 Manejo de Controladores


Cmo el procesador enva comandos y datos a los controladores de
dispositivos?
Los controladores tienen registros para datos y control. El procesador enva bits a
estos registros.
Para esto se usan dos estrategias:
Instrucciones especiales de E/S
Mapa de memoria: los registros del controlador estn en el espacio de
direcciones del procesador.
Una puerta de E/S tiene 4 registros: status, control, data-in y data-out.

Sistemas Operativos 175

3.7 Protocolos de interaccin


Los protocolos de interaccin en su detalle son bastante complicados, pero en lo
esencial son simples:
El controlador y el host establecen una relacin productor-consumidor.
Se usan dos bits en el controlador para coordinar la interaccin:
- busy: bit del registro de status que indica que el controlador est
ocupado (con un 1)
- command-ready: bit del registro de comando, activado por el host
Grfica 67. Coordinacin de la interaccin

3.7.1 Algoritmo de Polling (Interrogacin)


Supongamos que el host desea escribir salidas a un controlador va una puerta.
Para esto se ejecuta el siguiente loop:
El host lee el bit busy para ver si est desocupado.
El host pone en 1 el bit write del registro de comando y escribe un byte en
el registro data-out.
El host pone en 1 el bit command ready en 1 del registro de comando.
El controlador lee el registro de comando, lee el registro data-out y lo pasa
al dispositivo.
El controlador limpia el bit comand ready y el bit busy para indicar que
termin.

Sistemas Operativos 176

El Algoritmo de Polling es eficiente, pero puede llegar a no serlo cuando se ocupa


repetidamente.
Un esquema distinto es permitir al dispositivo notificar a la CPU cuando est listo. Este
mecanismo se denomina interrupcin.

3.7.2 Interrupciones
El hardware de la CPU tiene una lnea llamada lnea de requerimiento de
interrupcin. Despus de ejecutar cada instruccin, la CPU lee esta lnea. Si se
detecta que est alta, la CPU salva el estado y salta a una rutina de manejo de
interrupciones en una direccin fija de memoria.
Esta rutina determina la causa de la interrupcin, realiza el procesamiento
necesario y vuelve a ejecutar la instruccin siguiente.
Muchas arquitecturas tienen un vector de interrupcin que evita la rutina de
manejo direccionando la rutina especializada.
Grfica 68. Manejo de interrupciones

3.7.3 Acceso Directo a la Memoria (DMA)


Los mtodos de Polling e Interrupciones se basan en programas que controlan la
E/S. Estos mtodos se denominan PIO (Programmed I/O).

Sistemas Operativos 177

Muchos computadores evitan sobrecargar laCPU con PIO incorporando un


procesador especializado cuando se realizan grandes transferencias de datos, por
ejemplo en discos. El procesador especializado se denomina DMA.
Para iniciar una transferencia, la CPU slo escribe un comando DMA en la
memoria.
El comando contiene: puntero al comienzo del bloque fuente, un puntero al bloque
destino y el nmero de bytes a transferir.
Grfica 69. Hardware DMA

Etapas en una transferencia DMA


1. El driver se informa que debe transferir datos del disco a la direccin X.
2. El driver informa al controlador del disco que debe transferir C Bytes del disco
al buffer en X.
3. El controlador de disco inicia transferencia DMA.
4. El controlador del disco enva cada cada byte al controlador de DMA.
5. El Controlador DMA transfiere bytes a X incrementando la direccin de
memoria y decrementando C en cada paso hasta que C==0.
6. Cuando C==0 el DMA interrumpe la CPU informando que la transferencia est
completa.
Actividad final:
Revise la lista realizada al inicio del captulo y corrija, adicione o complete si
es necesario.

Sistemas Operativos 178

CAPTULO 4. ADMINISTRACIN DE ARCHIVOS27


Actividad inicial:
Usted conoce cmo es la organizacin interna del sistema operativo para
manejar la estructura de archivos y directorios?
Qu tipos de estructuras de archivos y directorios conoce. De cules sistemas
operativos?

4.1 El sistema de archivos


El sistema de archivos es la parte ms visible de un sistema operativo.
Un sistema de archivos est formado por:
Una coleccin de archivos.
Una estructura de directorios.
4.1.1 El archivo
El S.O proporciona una visin lgica uniforme de la informacin almacenada.
Un archivo es una unidad lgica de almacenamiento. Los archivos son mapeados
a travs el S.O en dispositivos fsicos.
Desde la perspectiva del usuario, no es posible escribir datos en el
almacenamiento secundario si no es a travs de un archivo.
Un archivo tiene una estructura que est definida por su tipo
4.1.2 Atributos de archivos
Los siguientes son atributos de un archivo:
Nombre. Nombre simblico.
Tipo. Informacin necesaria para sistemas que soportan tipos diferentes.
Localizacin. Algn puntero a un dispositivo y lugar dentro del dispositivo
donde se almacena el archivo.

27

Todas las grficas de este captulo fueron extradas del documento en formato pdf: Sistemas
Operativos. Profesor Javier Caas. Captulos 9: Sistema de archivos y Captulo 10: Estructura de
archivos.

Sistemas Operativos 179

Tamao. Tamao actual en bytes o palabras o bloques.


Proteccin. Informacin de control de acceso. Establece quin puede leer,
escribir y ejecutar.
Tiempo, fecha, identificacin de usuario. Para proteccin, seguridad y
monitoreo de uso.
4.1.3 Operaciones sobre archivos
Un archivo es un tipo abstracto de datos. Para definirlo, se deben considerar las
operaciones que se pueden realizar sobre l. Estas operaciones estn definidas a
travs de llamadas al sistema. Las operaciones bsicas sobre archivos son:
Crear un archivo. Para esto se requieren dos acciones; crear espacio en el
sistema de archivos y ubicarlo en un directorio.
Escribir
Leer
Reposicionar (seek)
Eliminar
Truncar
Operaciones de mayor complejidad son posibles con estas operaciones primitivas.
Por ejemplo copiar = crear + leer + escribir.
Qu significa abrir un archivo?
La mayora de las operaciones sobre archivos involucran una navegacin
constante sobre el directorio buscando un archivo con un determinado nombre.
Abrir un archivo significa poner en una tabla de acceso rpido informacin de los
archivos usados por un proceso. De esta forma se mantiene en la tabla un ndice
de acceso rpido.
Estas operaciones se denominan open y close:
Open. Toma un nombre de archivo y busca en el directorio. Retorna un
ndice a la tabla de archivos.
Close. Libera una entrada en la tabla de archivos.
4.1.4 Tipos de archivos
Una decisin de diseo de un sistema de archivos y en general de un S.O es la
facilidad de reconocer y soportar distintos tipos de archivos.

Sistemas Operativos 180

Por ejemplo si se imprime un archivo binario, se genera basura. Lo razonable es


prevenir que esto ocurra.
La forma ms comn es incorporar en el nombre el tipo del archivo, es decir su
extensin.
Una forma es la usada en MS-DOS con el formato punto (ejemplo: tarea.com,
carta.txt, etc.)
En Unix cada archivo tiene al comienzo un nmero mgico que indica el formato
del archivo.

4.2 Mtodos de acceso


Los archivos almacenan informacin. Hay muchas maneras de accesar a la
informacin contenida en un archivo.
Existen sistemas que proporcionan slo una forma y otros mltiples formas de
acceso.
Las formas bsicas de acceso son dos:
Acceso secuencial.
Acceso directo.
Acceso indexado

Sistemas Operativos 181

4.2.1 Acceso secuencial


En este tipo de acceso la informacin es procesada en orden y la mayora de
operaciones son lecturas y escrituras.
Este mtodo est basado en el modelo de cinta magntica.
Grfica 70. Acceso secuencial

4.2.2 Acceso directo


Tambin se denomina acceso relativo. Un archivo se construye con base a
registros lgicos de tamao fijo. Se pueden leer en cualquier orden.
Se basa en el modelo de disco. Cada registro tiene un nmero (No. de bloque
No. de registro). Los bloques se numeran consecutivamente: 0, 1,...
Si el tamao de un bloque es L, solicitar el bloque N significa buscarlo en la
posicin L x N dentro del archivo.
Grfica 71. Acceso directo

4.2.3 Acceso indexado


Se construye sobre el mtodo de acceso directo.
Un archivo llamado archivo ndice contiene punteros a varios bloques. Encontrar
una entrada a un archivo involucra buscar primero en el ndice.
Grfica 72. Acceso indexado

Sistemas Operativos 182

4.3 Directorios
Cuntos archivos se mantienen en cualquier sistema?
Para manejar tanta informacin, es necesario organizarla. Esta organizacin
requiere dos niveles:
Particiones (volmenes o minidiscos).
Directorios (tabla de contenido de volmenes).
Grfica 73. Ejemplo de organizacin

4.3.1 Operaciones sobre un directorio


Un directorio puede organizarse de varias maneras. Las operaciones que se
pueden hacer sobre un directorio son:
Bsqueda de archivos
Crear archivos
Borrar archivos
Ver directorios (nombres de archivos)
Renombrar un archivo
Navegar por un sistema de archivos

Sistemas Operativos 183

4.3.2 Estructuras de directorios


Los directorios se pueden organizar de diversas maneras. Las distintas
posibilidades son:

Un nivel
Dos niveles
rboles
Grafos acclicos
Grfica 74. Directorio de un nivel

Grfica 75. Directorio de dos niveles

Sistemas Operativos 184

Grfica 76. Directorio de rbol

Grfica 77. Grafo cclico

4.4 Proteccin
Cuando la informacin se almacena en un sistema computacional, se deben tomar
dos tipos de proteccin:
Daos fsicos (confiabilidad).
Accesos no autorizados (proteccin).
La confiabilidad se logra por la mantencin de respaldos y duplicacin, mientras
que la proteccin se logra por varias vas:

Sistemas Operativos 185

Removiendo discos, usando llaves


Proteccin por software
4.4.1 Tipos de acceso
Los extremos de la proteccin son:
No permitir el acceso a nadie ms.
Permitir libre acceso a todos.
Entre estos dos extremos est el control de acceso. Las operaciones que
normalmente se controlan son:
Lectura
Agregar al final

Escritura
Borrar

Ejecucin
Ejecucin

4.4.2 Listas de acceso


Un esquema general es asociar a cada archivo y directorio una lista de acceso.
La lista de acceso especifica el nombre del usuario y los tipos de accesos que son
permitidos.
Al hacer un acceso se verifica la lista. Si no hay acceso ocurre una violacin y se
niega el permiso. La dificultad de la lista de acceso es su gran tamao.
Una implementacin prctica de listas de acceso, es a travs de la definicin de
grupos de usuario, con diferentes niveles de acceso.
Muchos sistemas operativos reconocen tres tipos de usuarios:
Dueo. El usuario que creo el archivo. Conocido como propietario.
Grupo. Conjunto de usuarios que comparten el archivo.
Universo. Todos los usuarios del sistema.
Un ejemplo es UNIX/LINUX que usa tres bits para cada tipo de usuario: rwx
r = acceso de lectura. Valor de 4. 22=4
w = acceso de escritura. Valor de 2. 21=2
x = acceso de ejecucin. Valor de 1. 20=1
-rw-rw-r- 1jcr academ 32400 sep 4 08:30 archivos.ps

Sistemas Operativos 186

4.5 Estructura de archivos


Trata sobre aspectos relacionados con el almacenamiento y acceso de archivos
almacenados en discos. El sistema de archivos se almacena en disco.
Para mejorar el desempeo de la E/S de un sistema, las transferencias entre
discos y memorias se realizan en bloques.
Cada bloque est formado de uno o ms sectores (32B a 4096B).
Grfica 78. Organizacin de un disco

Grfica 79. Organizacin de un sistema de archivos

Control de E/S. Drivers de discos y manejador de interrupciones.

Sistemas Operativos 187

Sistema bsico. Se ocupa de enviar comandos genricos a los drivers


apropiados para leer y escribir bloques fsicos en el disco.
Mdulo de organizacin de archivos. Se encarga de convertir direcciones
lgicas de bloques en direcciones fsicas para el sistema bsico. Tambin
forma parte de este mdulo el manejador de espacio libre.
Sistema de archivos lgico: Usa la estructura de directorios para
proporcionar al mdulo de organizacin de archivos la informacin que
necesita a partir de un nombre simblico.
Programas de aplicacin.
Cmo se crea un nuevo archivo?
Para crear un nuevo archivo:
El programa de aplicacin llama al sistema de archivos lgico.
El sistema de archivos lgico lee el directorio apropiado en memoria, lo
actualiza con la nueva entrada y lo escribe en disco.
Una vez creado se puede usar para E/S.
Para evitar recorrer el directorio en E/S, el archivo se abre.
Abrir significa copiar sus parmetros en la tabla de archivo.
Grfica 80. Estructura de la tabla de archivos

4.5.1 Sistema de archivo


El aspecto clave de la implementacin del almacenamiento de archivos es el
registro de los bloques asociados a cada archivo. Una vez ms, cada sistema de
archivos implementa mtodos distintos para solucionar este problema.

Sistemas Operativos 188

Un bloque est compuesto por un determinado nmero de sectores que se


asocian a un nico archivo. Un archivo, por tanto, se almacena en uno o ms
bloques de sectores.
Un aspecto muy importante es la eleccin del tamao del bloque, para esto hay
que entender que si el tamao del bloque es muy grande, aun cuando el archivo
sea de un tamao muy pequeo, se l asignar el bloque entero como lo que se
desperdiciar gran parte de la capacidad del disco.
Por otra parte, si el tamao del bloque es demasiado pequeo par almacenar un
archivo, harn falta muchos bloques con lo que se producir un retraso en la
lectura del archivo al tener que localizar el disco todos los bloques que componen
dicho archivo. Una vez ms, se ha de llegar a la solucin de compromiso,
eligiendo un tamao de bloque lo suficientemente pequeo para no desperdiciar
capacidad de disco pero lo suficientemente grande como para no ralentizar en
exceso la lectura de los archivos. Diversos estudios realizados indican que el
tamao medio de los archivos en sistemas UNIX y MS-DOS ronda el 1 Kbyte, as
pues, son adecuados los tamaos de bloque de 512 Bytes, 1 Kbyte o 2 kybytes.
Si se elige un tamao de bloque de, por ejemplo, 2 kbytes en un disco cuyo sector
tiene 512 bytes, cada bloque estar compuesto por cuatro sectores.
Para manejar los bloques asociados a cada archivo, se pueden utilizar varias
tcnicas, las cuales se tratan ms adelante.
4.6 Mtodos de asignacin
El acceso directo proporciona gran flexibilidad en la implantacin de archivos. El
principal problema es cmo asignar el espacio a los archivos de forma tal que el
disco sea utilizado eficientemente y que los accesos sean rpidos.
Los tres principales mtodos de asignacin son:
Contigua
Enlazada
Indexada
4.6.1 Asignacin contigua
Se requiere que cada archivo ocupe un conjunto contiguo de bloques. Las
direcciones definen un orden lineal.
Con esta organizacin se minimiza el movimiento del cabezal al limitarlo slo a un
track al pasar de un cilindro a otro. Este sistema provee un buen desempeo.

Sistemas Operativos 189

Una entrada al directorio slo necesita la direccin inicial y el largo del bloque.
La asignacin contigua genera fragmentacin externa.
Grfica 81. Asignacin contigua de espacio

Adems de la fragmentacin se genera otro problema: Cuando se crea un


archivo, cmo se sabe el tamao del archivo final?.
Si se asigna poco espacio, el archivo no se puede extender, si se asigna mucho
espacio, se pierde por fragmentacin interna.

4.6.2 Asignacin enlazada


Cada archivo es una lista enlazada de bloques de disco.
El directorio contiene un puntero al primer y ltimo bloque. Cada bloque contiene
un puntero al siguiente bloque. Este puntero est oculto al usuario.
No hay fragmentacin externa con este mtodo. Tampoco es necesario definir el
tamao del archivo cuando es creado. El archivo sigue creciendo mientras haya
bloques libres.
El gran problema es que slo es eficiente para archivos de acceso secuencial.
Otra desventaja es el espacio requerido para punteros.

Sistemas Operativos 190

Grfica 82. Asignacin de espacio enlazada

FAT: File Allocation Table


Una variacin importante de la asignacin enlazada es el uso de FAT (MS-DOS y
OS/2). Una seccin del disco al comienzo de cada particin contiene una tabla.
Esta tabla contiene una entrada para cada bloque de disco y su ndice por nmero
de bloque.
Una entrada al directorio contiene el nmero de bloque del primer nmero de
bloque del archivo. Se puede observar que este esquema puede resultar en
muchos movimientos del cabezal lector, al menos que la FAT sea capturada en
una cach.
Grfica 83. FAT

4.6.3 Asignacin indexada


La asignacin enlazada resuelve la fragmentacin externa y el problema del
tamao inicial del archivo.

Sistemas Operativos 191

Si no se usa FAT, la asignacin enlazada no puede soportar acceso directo ya que


los punteros a bloques estn dentro de los mismos bloques. Este problema se
resuelve poniendo junto todos los punteros a bloques en un mismo lugar.
Cada archivo tiene su propio ndice de bloques formado por un arreglo de
direcciones de bloques. Cuando un archivo es creado, cada entrada tiene el valor
NIL(nulo).
Grfica 84. Asignacin de espacio indexada

Soporta acceso directo sin ser afectada por fragmentacin externa


Se gasta espacio. El overhead que impone el bloque de punteros es superior al espacio
perdido en punteros en una asignacin enlazada.
El sistema operativo UNIX tiene un esquema indexado en el cual la informacin de un
archivo se almacena en una estructura llamada inodo.

Esta tcnica es llamada asignacin mediante una lista ligada y un ndice, que
intenta eliminar los defectos de la anterior. En esta tcnica se crea una tabla con
un registro por cada uno de los bloques del disco, en cada registro se indica si
dicho bloque esta libre (null) o cul es la direccin del siguiente bloque ( en caso
de que ese bloque pertenezca a un determinado archivo) De esta forma, en el
directorio se asocia con el nombre del archivo el nmero del bloque en el que
comienza dicho archivo; con este dato y, mediante la tabla, se puede averiguar la
direccin de todos los bloques que componen dichos archivos simplemente
siguiendo la lista ligada.
Con esta organizacin, todo el bloque estar disponible para los datos. Adems,
el acceso a un determinado bloque es mucho ms rpido, ya que aunque tambin
haya que seguir la cadena de bloques como en la asignacin en forma de lista
ligada, al estar la tabla en memoria, estas consultas son mucho ms rpidas y no
es necesario acceder al disco.

Sistemas Operativos 192


Nmero de Bloque
0
1
2
3
4
5
6
7
8
9
10
11
12
13
.
.
n-2
n-1

Direccin siguiente bloque


13
3
7
0
2
1
11
n-2
0
4

Tabla de registros de asignacin continua de bloques


La desventaja que tiene este mtodo es que toda la tabla de registros deber estar
en la memoria principal permanentemente, con lo que la memoria consumida para
almacenar la tabla no estar disponible para ser usada por otros procesos. Esto
llega a ser un gran problema en el supuesto de discos con un gran nmero de
bloques, ya que en la tabla de registros puede llegar ocupar gran parte de la
memoria principal del ordenador o incluso desbordarla.
Esta es la tcnica utilizada por el MS-DOS y por Windows. En este caso a la tabla
de registros se denomina FAT (File Allocation Table) y se puede encontrar en
sus dos versiones: FAT16 y FAT32, dependiendo de si los bloques se direccionan
con 16 o con 32 bits respectivamente.
Ejemplo: Ejemplo de funcionamiento de lectura de un fichero en MS-DOS.
Supongamos que un usuario solicita leer el fichero prueba.txt. En este caso, el sistema
operativo leer el directorio activo (y que se trata de una ruta relativa) en busca de la entrada
correspondiente a dicho archivo. Si ste existe, se hallar un registro con cierta informacin
relativa a dicho archivo (como son los atributos del archivo y, tambin, el bloque del disco en el
que el archivo comienza). Con dicha informacin busca en la FAT, que se encuentra en la
memoria principal, el registro perteneciente a ese bloque y en l se encontrar la direccin del
siguiente bloque en el que el archivo esta escrito. Repitiendop esta operacin hasta en la
direccin del siguiente bloque sea 0 obtenemos la lista completa de bloques en los que el
archivo est almacenado.
En la tabla, se puede ver que el archivo que comienza en el bloque No. 6, continuar en los
bloques: 2, 3, 7, 1 y 13.
El lector tambin podr ver que los bloques 0, 5, 8, 9, 12 y n-1 estn libres y hay otro fichero
almacenado en los bloques 10, 11, n-2 y 4.

Sistemas Operativos 193

Por ltimo, los sistemas operativos como UNIX y Linux utilizan un sistema de
archivos basados en i-nodos. En esta tcnica se asocia a cada archivo una
pequea tabla, llamada i-nodo, que contiene los atributos y direcciones en disco
de los bloques del archivo.
Atributos
Direccin del bloque 1
Direccin del bloque 2
Direccin del bloque 3
Direccin del bloque 4
.
.
.
Direccin del bloque n

I-nodo de UNIX
Las ltimas entradas del i-nodo se reservan para cuando el archivo ocupa ms
bloques de los que el i-nodo es capaz de almacenar y pueden contener la
direccin de otro bloque en el que se guardan las dems direcciones de los
bloques del archivo. A este bloque se le llama bloque indirecto. En este caso de
que con este bloque extra no haya suficiente espacio para guardar todas las
direcciones de los bloques del archivo, existe la posibilidad de utilizar un bloque
doblemente indirecto e, incluso, un tercer bloque triplemente indirecto.
Cuando UNIX abre un archivo, lo primero que hace es cargar en memoria su inodo correspondiente para que el proceso sea lo ms rpido posible.
4.7 Tipos de sistemas de archivo
Como se dijo anteriormente, existen distintos tipos de sistemas de de archivos,
siendo los siguientes los ms utilizados
para el entorno monousuario y
multiusuario.
FAT16. Se puede acceder a este sistema de archivos desde MS-DOS,
Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP y
Windows Server 2003. Permite trabajar con particiones de hasta 2 GB, las
unidades de asignacin de 32 KB, el tamao mximo de un archivo es de 2
GB, los volmenes pueden llegar hasta 2 GB, no distingue entre
maysculas y minsculas en los nombres de archivos y no soporta
dominios.
FAT32. Se puede acceder a este sistema de archivos desde Windows 95
OSR2, Windows 98, Windows 2000, Windows XP y Windows Server 2003.

Sistemas Operativos 194

Permite trabajar con particiones mayors de 2 GB, las unidades de


asignacin son de 4 KB, el tamao mximo de un archivo es de 4 GB, los
volmenes pueden llegar hasta 2TB (en Windows 200/XP/2003 solo hasta
32 GB), no distingue entre maysculas y minsculas en los nombres de
archivo y no soporta dominios.
NTFS 4 (NT File System 4). Es el sistema desarrollado para Windows NT
4 que permite nombres de archivo de hasta doscientos cincuenta y seis
caracteres, ordenacin de directorios, atributos de acceso a archivos,
reparto de unidades en varios discos duros, reflexin de discos duros y
registro de actividades, distingue entre maysculas y minsculas en los
nombres de archivo y soporta dominios de Windows NT.
NTFS 5 (NT File System 5). En Windows 2000 Server se incluyeron
mejoras que permitirn utilizar el Directorio Activo, dominios de Windows
2000/2003, cuotas en disco para cada usuario, cifrado y comprensin de
archivos, alamacenamiento remoto, una herramienta de desfragmentacin y
utilizacin de enlaces de archivos similares a los realizados en UNIX. Sus
volmenes pueden llegar hasta 16 TB menos 64 KB y el tamao msimo
de un archivo slo est limitado por el tamao del volumen. Distingue
entre maysculas y minsculas en los nombres de archivos.
Sistema de Ficheros Extendidos 2 (ext2fs). Es uno de los ms eficientes
y flexibles sistemas de archivos. Se puede acceder desde UNIX/LINUX,
permite hasta 256 caracteres en los nombres de los ficheros, el tamao del
mximo del sistema de archivos es de 4 Terabytes y el tamao mximo de
un archivo es de 2GB. Distingue entre maysculas y minsculas en los
nombres de archivo.
Servicios de almacenamiento de Novell (NSS). Es el ms reciente
sistema de archivos propietarios de Novell que se ejecuta desde NetWare 5
y NetWare 6. Permite hasta 8 billones de archivos por servidor pudiendo
haber un milln de archivos abiertos simultneamente, el tamao del bloque
se adapta automticamente en funcin del tamao del volumen, el volumen
mximo de un archivo y de un volumen es de 8 TB, y puede haber hasta
255 volmenes montados en un servidor.
HPFS (High Perfomance File System). Se puede acceder desde OS/2 y
se cre para resolver todos los problemas del sistema de archivos FAT.
Utilizan un tamao de sector de 512 bytes y pueden tener un tamao
mximo de 2 GB.

Sistemas Operativos 195

4.8 Mecanismos de proteccin de los ficheros


Dentro de los mecanismos de proteccin de la informacin contenida en los
ficheros se encuentran los siguientes:
Las unidades RAID
Los permisos de acceso
Las copias de seguridad
4.8.1 Las unidades Raid
El trmino RAID significa Redundant Array of Independent Disk (Matriz
Redundante de Discos Independeintes)
La filosofa de esta tecnologa consiste en disponer de varias unidades de disco,
conectadas entre s, por medio de controladoras, software o combinacin de
ambas; de manera que cuando una unidad fsica de disco falle o se venga abajo,
los datos que se encontrarn en dicha unidad no se pierdan sino que se
reconstruyan usando la paridad de los mismos (el sistema operativo ve a la matriz
como si sta fuese una sola).
Las configuraciones definidas en RAID son las siguientes:
RAID 0. La informacin se divide entre los discos del sistema, de forma que no se
establece ningn tipo de redundancia.
Ventajas: Proporciona alto rendimiento (tiempos de acceso muy bajos,
posibilidad de acceso en paralelo). No tiene costo adicional. Se emplea
toda la capacidad del disco.
Inconvenientes: No es verdaderamente un disco RAID ya que no presenta
integridad de los datos. Un error en uno de los discos implica la prdida
total de los datos.
RAID 1. Tambin conocido como MDA (Mirrored Disk Array), en esta
configuracin los discos se asocian por parejas y cada una de ellas almacenar la
isma informacin. Cada pareja est formada por un disco primario, donde se leen
y se escriben los datos, y un disco espejo, donde solamente se escriben las
modificaciones y del que se leern datos cuando el primario falle.
Ventajas: En caso de error de uno de los disco se recuperan todos los
datos. Es la arquitectura ms rpida que presenta tolerancia a fallos. Con
un mnimo de dos discos es suficiente.

Sistemas Operativos 196

Inconvenientes: Es bastante caro, ya que se emplea el doble espacio del


necsario.
RAID 2. Emplea mltiples discos, como en el nivel RAID 0, pero algunos de estos
son empleados para guardar tambin los cdigos de control de error. Este nivel
tiene un costo bastante elevado ya que se necesitan muchos discos para
mantener los cdigos de error.
Gracias a cmo estn distribuidos los datos en los discos, se consigue mejorar la
velocidad de transferencia principalmente en la lectura, ya que es posible emplear
todos los discos en paralelo.
Estos discos, auque proporcionan un buen rendimiento, no son muy empleados,
ya que los niveles 1,3 y 5 proporcionan una mejor relacin costo/rendimiento.
Ventajas: Se consigue aumentar la velocidad de transferencia. Es posible
recuperar los datos a partir de los cdigos redundantes de error.
Inconvenientes: Es una solucin cara ya que se requiere mucho espacio
para almacenar los cdigos de error. El tiempo de lectura de los datos es
bastante lento, aunque los datos se separen en los diferentes discos.
RAID 3. Es un sistema de discos en paralelo con discos de paridad para la
correccin de errores. Tambin conocida como PDA (Parallel Disk Array). Al igual
que RAID 0 y RAID 2, almacena la informacin en varios (dividida a nivel de byte)
pero se deja uno de ellos para almacenar los dgitos de paridad generados a partir
de dichos datos. La informacin de paridad se utiliza para comprobar la
consistencia de los datos almacenados.
Este nivel RAID es una buena alternativa para aplicaciones de velocidad de
transferencia alta, ya que gracias a la distribucin de datos se pueden emplear
todos los discos en paralelo.
Ventajas: Se consigue un alto rendimiento para aplicaciones que necesiten
velocidades de transferencia alta. Es posible recuperar datos gracias al
disco de paridad.
Inconvenientes: Si se daa el disco de paridad y se pierde toda la
informacin redundante el tiempo de escritura es bastante alto.
RAID 4. Es un sistema de discos independientes con disco de control de errores.
Tambin conocido como IDA (Independet Disk Array). Es parecido al RAID 3
pero con la diferencia de que los datos se dividen en bloques o sectores. Los
bloques de datos que se distribuyen en los diferentes discos, al ser ms grandes,
hace que se consiga un rendimiento superior en la escritura.

Sistemas Operativos 197

Ventajas: Mantiene la integridad de los datos. Buen rendimiento en la


escritura de datos.
Inconvenientes: Si se pierde un disco de paridad se pierde toda la
informacin redundante. Menor rendimiento en lectura de datos.
RAID 5. Es un sistema de discos independientes con integracin de cdigos de
error, mediante paridad. En RAID 5 los datos y la paridad se guardn en los
mismos discos, por lo que se consigue aumentar la velocidad de demanda. La
diferencia respecto al RAID 3 es que en RAID 5 se guarda la paridad de los datos
dentro del disco y no hace falta un disco para guardar dichas paridades.
La paridad se genera haciendo un XOR de los datos A0, B0, C0, D0 y creando la
zona de paridad PAR0; como se ve la paridad nunca se guarda en los discos que
contienen los datos que han generado dicha paridad, ya que en el caso de que
uno de ellos se estropear (como por ejemplo el dato A0) bastara con regenerar
las bandas B0, C0, D0 y Par0 para que el dato volviera a reestablecerse.
Ventajas: Alto rendimiento en aplicaciones con gran demanda de
velocidad. No se desaprovecha ningn disco exclusivamente para
almacenar cdigos de paridad. Se pueden recuperar los datos.
Inconvenientes: Bajo rendimiento en escritura. Se requiere un mnimo de
tres discos.
RAID 6. Es un sistema de discos indepedientes con integracin de cdigos de
error mediante paridad doble. Es igual que RAID 5, con la diferencia de que se
guardan dos paridades para cada bloque de informacin, cada una de ellas
alojada en un disco diferente (tambin diferente al de los datos).
Ventajas: Es posible recuperar varios errores al mismo tiempo. El nivel de
integridad de datos es muy elevado.
Inconvenientes: El rendimiento en escritura de datos es muy bajo.
RAID 7. Es igual a RAID 4, aunque utiliza un sistema operativo en tiempo real
residente en el equipo, que es el que gestiona los accesos a los discos.
RAID 10. Es igual a RAID 1, salvo que se incluyen otros discos donde se
almacena otra copia completa de la informacin. Se utiliza para conseguir un
mayor tiempo de acceso.

Sistemas Operativos 198

RAID 53. Es igual que RAID 3, salvo que se incluyen otros discos donde se
almacena otra copia completa de la informacin. Se utiliza para conseguir un
mayor tiempo de acceso.
RAID 0 + 1. Es una combinacin de las tcnicas RAID 0 y RAID 1, de forma que la
informacin se duplica en conjuntos de discos, los cuales almacenan los datos
distribuidos con ellos.
4.9 Administracin del espacio libre
Como el espacio de almacenamiento es limitado, es necesario reutilizar el espacio
de archivos que se borran para dejar espacio a los nuevos archivos que se crean.
Para registrar el espacio libre, el sistema operativo mantiene una lista de espacio
libre. Esta lista registra todos los bloques que estn libres.
Mtodos para implementar la lista de bloques libres:

Bit vector
Listas enlazadas
Agrupacin
Conteo

4.9.1 El mtodo Bit vector


Tambin se denomina bit map. Cada bloque se representa por un bit. Si el bloque
est libre se representa por 1 y si est ocupado por 0.
Ejemplo:
Bloques libres: 2, 3, 4 ,5, 8, 9, 10, 11, 12, 13, 17, 18, 25,....
Bit vector: 00111100111111000110000001,.....
Ventaja: simple.
Desventaja: para que sea eficiente hay que mantener la estructura completa en
memoria principal. En la prctica slo es posible para discos chicos.
4.9.2 El mtodo lista enlazada
Otra alternativa es enlazar todos los bloques libres de disco, almacenando un
puntero al primer bloque libre en un lugar especial de disco.
Este esquema no es eficiente ya que para recorrer la lista se requiere mucho
tiempo de E/S (no es muy frecuente hacer esto).

Sistemas Operativos 199

Grfica 85. Lista enlazada de bloques libres

4.9.3 El mtodo de agrupacin


Una modificacin a la lista enlazada de bloques es almacenar la direccin de n
bloques libres en el primer bloque libre. Las primeras n-1 direcciones de bloques
corresponden a bloques libres y la ltima direccin contiene la direccin de otros n
bloques y as...
El S.O.UNIX (AT&T) tiene esta implementacin.
4.9.4 El mtodo de conteo
Este mtodo aprovecha el hecho que normalmente muchos bloques contiguos se
asignan o liberan simultneamente, especialmente en algoritmos de asignacin
contigua de memoria.
En vez de almacenar la direccin de n bloques, slo se almacena la direccin del
primer bloque libre y el nmero de los n bloques contiguos que le siguen.
De esta manera, cada entrada de la lista est formada por una direccin de bloque
y una cuenta.
Actividad final:
Ahora que ya conoci o repas acerca de la organizacin interna del sistema
operativo para manejar la estructura de archivos y directorios puede realizar
un pequeo mapa conceptual en donde resuma los tipos de estructuras de
archivos y qu sistemas operativos los manejan. Este material le servir para
la preparacin de la evaluacin final del curso?

Sistemas Operativos 200

CAPTULO 5. PROTECCIN Y SEGURIDAD28


Actividad inicial:
Imagine cmo ser el sistema de seguridad y proteccin de un sistema
operativo. Adems imagine qu tiene que proteger el sistema operativo y
contra quin o qulo protegen.
De acuerdo a esto, elabore un ensayo de 2 pginas en donde desarrolle sus
hiptesis acerca del tema.

5.1 Proteccin
Los mecanismos de proteccin proveen un control de acceso limitando el tipo de
accesos que se pueden hacer a los archivos.
La proteccin considera los mecanismos para asegurar que otros recursos como
memoria, CPU y dispositivos, sean operados slo por usuarios con autorizacin
del sistema operativo.
5.2 Objetivos de la proteccin
Cada proceso se debe proteger de las dems actividades del S.O. La proteccin
se refiere a mecanismos para el control de acceso de programas.
Para qu proteger?
Prevenir violaciones de acceso intencionales.
Asegurar que cada proceso use recursos slo en forma consistente con las
polticas de uso.
Asegurar confiabilidad detectando errores latentes entre interfaces.
Distinguir usos autorizados y no autorizados de recursos.
5.2.1 Polticas de proteccin
La proteccin sirve para generar un mecanismo que fuerce polticas de uso de
recursos.
Las polticas pueden ser:
Fijas e incorporadas en el diseo del S.O.
28

Todas las grficas de este captulo fueron extradas del documento en formato pdf: Sistemas
Operativos. Profesor Javier Caas. Captulos 12: Proteccin y Captulo 13: Seguridad.

Sistemas Operativos 201

Definidas por usuarios individuales para proteger archivos y programas.


Hay que separar dos conceptos: mecanismos y polticas:
Mecanismo. Determina cmo algo debe ser hecho.
Poltica: Decide qu debe ser hecho.
5.3 Dominios de proteccin
Un sistema computacional es una coleccin de procesos y objetos.
Objetos: CPU, segmentos de memoria, discos, etc. Programas. Cada objeto es
distinguible de los dems objetos. Un objeto es un tipo abstracto de datos.
Las operaciones posibles dependen de los objetos. Un objeto CPU slo puede
ejecutar procesos. Un proceso tiene permitido accesar slo aquellos recursos que
estn autorizados para su uso.
Ejemplo: un compilador no tiene acceso a cualquier archivo: slo aquellos que
estn bien definidos y pueden ser compilados. El compilador usa sus propios
archivos que no pueden ser accesados por otros procesos.
5.3.1 Estructura de dominio
Un proceso opera dentro de un dominio de proteccin que especifica los recursos
que puede acceder. Cada dominio define un conjunto de objetos y tipos de
operaciones que pueden ser invocadas por cada objeto. La posibilidad de ejecutar
una operacin sobre un objeto se denomina derecho de acceso.
Un dominio es una coleccin de derechos de accesos, cada un de los cuales es el
par: <nombre de objeto, conjunto de derechos>.
El dominio D tiene derechos de acceso:
ej: <archivo F, {lectura,escritura}>
Un proceso ejecutndose en el dominio D puede leer y escribir el archivo F, pero
no puede hacer ninguna otra operacin sobre este objeto.
Los dominios no necesitan ser disjuntos. Pueden compartir derechos de acceso.

Sistemas Operativos 202

Grfica 86. Dominios compartidos

La asociacin entre un proceso y un dominio puede ser esttica o dinmica.


La implementacin ms fcil es la esttica.
Cuando es dinmica, es necesario un mecanismo para permitir que un proceso conmute de
un dominio a otro.

5.3.2 Niveles de dominios


Un dominio puede ser:
Cada usuario. El conjunto de objetos que se pueden accesar dependen de
la identidad del usuario. La conmutacin ocurre cuando se cambia el
usuario.
Cada proceso. Los objetos a acceder dependern de la identidad del
proceso. La conmutacin de dominios ocurre cuando un proceso enva un
mensaje a otro, esperando por respuesta.
Cada procedimiento. El conjunto de objetos corresponde a las variables
locales definidas en el procedimiento. La conmutacin de dominios ocurre
en una llamada a procedimientos.
5.3.3 Modo dual de operacin
Un ejemplo de dominio es el modo dual de operacin de la CPU:
Modo usuario.
Modo kernel o monitor.
Un proceso que se ejecuta en modo usuario slo tiene acceso a instrucciones no
privilegiadas. En un sistema multiprogramado esto es insuficiente.

Sistemas Operativos 203

5.4 Matriz de acceso


El modelo de proteccin puede ser visto en forma abstracta como una matriz de
acceso.
Las filas representan dominios y las columnas objetos.
La matriz de acceso permite implementar una variedad de polticas. El mecanismo
consiste en implementar la matriz de acceso y asegurar que un proceso que se
ejecuta en el dominio Di pueda accesar slo los objetos especificados en la fila i,
en la forma como se especifica en las entradas de la matriz.
Grfica 87. Matriz de acceso

5.4.1 Implementacin de polticas


La matriz de acceso provee un mecanismo que permite especificar una variedad
de polticas.
Decisiones polticas relativas a proteccin se pueden implementar con la matriz de
acceso, indicando qu derechos se deben incluir en la entrada (i,j). Adems se
debe decidir el dominio en el cual cada proceso se ejecuta (usualmente esta
poltica la decide el S.O.).
Los usuarios normalmente deciden el contenido de las entradas de la matriz de
acceso. Cuando se crea un nuevo objeto Oj, la columna Oj se agrega y la entrada
se fija acorde a los derechos que dicta el creador.
Hay que notar que la matriz de acceso tambin es un objeto. Cuando se cambia
un contenido, se estn haciendo operaciones sobre ella. Se debe proteger cada
entrada de ella.

Sistemas Operativos 204

5.4.2 Conmutacin de dominios


La conmutacin es tambin un derecho. Si Di conmuta a Dj, la entrada (i,j) de la
matriz de acceso, debe contener el derecho switch.
Por ejemplo, un proceso ejecutndose en el
Dominio D3 o el Dominio D4.

Dominio D2 puede conmutar al

Grfica 88. Matriz de acceso con dominios como objetos

La entrada S significa switch, o sea, la posibilidad de conmutar.


5.5 Seguridad
La proteccin es un problema interno. La seguridad incluye adems el ambiente
externo.
Ejemplo. La "seguridad ciudadana" es ms que tener alarma, rejas o guardias en
los barrios.
La seguridad en S.O es esencialmente un problema de administracin.
Qu se saca tener buenos sistemas de proteccin si cualquiera puede
llevarse un disco removible?
5.5.1 El problema de la seguridad
Un sistema es seguro si sus recursos se usan y accesan acorde a la forma como
estn definidos en toda circunstancia. Esto no es posible siempre.
Algunas violaciones de seguridad pueden ser:
Intencionales

Sistemas Operativos 205

Lectura no autorizada de datos


Modificacin no autorizada de datos
Destruccin no autorizada de datos
Accidentales
La proteccin absoluta no es posible. Se busca subir el costo de violaciones de seguridad
poniendo barreras adecuadas.

5.5.2 Medidas de seguridad


Para proteger un sistema, se deben tomar medidas en dos niveles diferentes:

Fsico. Los lugares que contienen el sistema deben tener proteccin de


entradas a personas ajenas.
Humano. Asegurar que un usuario no de acceso a una persona no autorizada.
Esto es difcil.

Es importante para cualquier organizacin proteger sus datos: informacin para la


competencia ("La casa del espa")
5.6 Autenticacin
El principal problema de seguridad para un S.O es la autenticacin. Es necesario
proteger los programas y los procesos que se estn ejecutando.
Cmo saber si un usuario que se identifica es autntico?. Para hacer esto se
usan tres cosas:
Algn objeto: llave o tarjeta.
Algn conocimiento: Password.
Algn atributo: huellas digitales, imagen de la retina, largo de los dedos.
5.6.1 Password
Las password se usan para proteger objetos: archivos, cuentas, etc. Distintos
derechos de acceso se protegen con passwords diferentes.
Dificultad: cmo mantenerla secreta?
Encriptacin de password
UNIX usa un sistema de encriptacin para mantener las passwords secretas.
Cada usuario tiene una password, por ejemplo x.

Sistemas Operativos 206

El sistema tiene una funcin f(x). El sistema almacena f(x). Obtener x a partir de
f(x) en la prctica resulta imposible. Este mtodo hace posible que el archivo de
password no sea secreto.
5.7 Amenazas
Existen dos tipos de amenazas:
A programas y
Al sistema.
En ambientes donde un programa escrito por un usuario puede ser usado por otro,
se presenta un problema de seguridad.
5.7.1 Amenazas a programas
Pueden ocurrir dos situaciones, en cuanto a amenazas a programas:
Caballo de Troya
Trampas
Amenazas a programas: Caballo de troya
Que pasa si un programa escrito por un usuario es usado por otro?. El programa
podra usar de mala manera los derechos del usuario que ejecuta.
Ejemplo. Editor de texto escrito por Vernica es usado por Carolina. El editor
busca palabras claves y si las encuentra copia el texto completo en un archivo de
Vernica.
Un segmento de cdigo que usa mal un ambiente se llama caballo de troya. Una
variacin es un programa que emula un ambiente de login. W/NT evita esta
situacin con secuencia Ctrl-Alt-Del.
Amenazas a programas: Trampas
Una programadora puede dejar un "hoyo" en un programa que slo ella es capaz
de usar.
Ejemplos reales son programas bancarios que tienen errores de redondeo. Los
centavos son todos transferidos a alguna cuenta.
Encontrar trampas es muy difcil por la gran cantidad de lneas de cdigo que
puede llegar a tener una aplicacin.

Sistemas Operativos 207

5.7.2 Amenazas a sistemas


La mayora de los sistemas operativos proveen de mtodos para que procesos
puedan generar otros procesos (ej. fork() en UNIX).
En estos sistemas, es posible crear situaciones donde los recursos y archivos de
usuarios sean mal usados.
Los mtodos ms comunes son:
Gusanos (Worms)
Virus
Amenazas al sistema: Gusanos
Un gusano es un proceso que usa el mecanismo de generacin de procesos para
afectar el rendimiento de un sistema.
Un gusano genera copia de s mismo sobre una red de computadores.
En 1988 ocurri este evento sobre Internet causando prdidas de millones de
dlares. Robert Tappan, un aventajado estudiante de sistema operativos de la U.
de Cornell fue el autor de este malfico gusano.
Amenazas al sistema: Virus
Los virus son diseados para infectar programas y producir daos en el sistema,
modificando y destruyendo archivos, generando cadas y mal funcionamiento.
Un gusano es un programa completo. Un virus es un fragmento de cdigo oculto
en un programa inocuo.
Normalmente el ataque se produce entre usuarios de PC. Los sistemas
multiusuarios son menos vulnerables ya que los programas ejecutables se
protegen contra escritura. An si se infectan programas otros componentes estn
bien protegidos.
Infeccin por Virus
La forma de contagio es va bajar programas infectados de la red o copiar desde
disquettes.
Para evitarlos se deben manejar criterios como el de computacin segura y cuidar
sector de booteo. Controlar el checksum de cada archivo.
Los Virus son ms bien problemas de seguridad que de proteccin.

Sistemas Operativos 208

5.7.3 Monitoreo de amenazas


El monitoreo es una tcnica de administracin.
Qu monitorear?
En un sistema tiempo compartido: n de password incorrectas.
Auditar bitcoras de sistema: usuarios conectados, tiempo de conexin.
Indudablemente los sistemas de red son mucho ms susceptibles a ataques de
seguridad. El tema de seguridad en redes se debe considerar dentro de la
seguridad en sistemas operativos.
5.8 Encriptacin
Cualquier sistema mantiene datos sensibles para la organizacin. A travs de las
redes viaja esta informacin. Es posible entonces accesar o interceptar
informacin sensible.
Para proteger informacin sensible se necesitan mecanismos de proteccin.
5.8.1 Mecanismos de encriptacin
El mecanismo bsico trabaja de la siguiente manera:
La informacin (texto) es encriptada desde su forma legible (texto claro) a
una forma interna (texto cifrado). El texto cifrado no es posible de entender.
El texto cifrado se puede almacenar en archivos sin proteccin de lectura o
transmitido sobre canales inseguros.
Para leer el texto cifrado se necesita desencriptar la informacin para
volverla a transformar en texto claro.
5.8.2 Propiedades de la encriptacin
Sea:

E: algoritmo general de encriptacin


D: algoritmo general de desencriptacin
k: clave de encriptacin
m: mensaje

Se debe cumplir que:

Dk(Ek(m)) = m
Ek y Dk se calculen en forma eficiente
Si se publica E, no hay forma de calcular D
La seguridad debe depender de k y no de los algoritmos E y D

Sistemas Operativos 209

5.8.3 Algoritmos de encriptacin


Una forma posible para realizar una encriptacin es el estndar DES (Data
Encryption Standard)
Cmo distribuir la clave k?
Una solucin posible es la utilizacin de claves pblicas y claves privadas.
Cada usuario tiene dos claves una pblica y una privada. Ambos se pueden
comunicar conociendo slo la clave pblica del otro.
Algoritmo RSA (Rivest, Shamir y Adleman): ejemplo de algoritmo de claves
pblicas
Clave pblica: <E,n>
Clave privada: <D,n>
E,D,n: enteros positivos
Cada mensaje se representa como un entero entre 0 y n-1 (mensajes
largos de descomponen en mensajes cortos. Cada uno se representa por
un entero).
Se definen E y D como:
E(m) = mE mod n = C
D(C) = CD mod n = m

Propiedades del algoritmo RSA


Sea:
E: Llave pblica para codificar
D: Llave privada para decodificar
m: mensaje
Se debe cumplir que:
1) D (E (m)) = m
2) E y D se calculan en forma fcil
3) Si se publica E, no hay forma de calcular D
4) E(D(m))=m
Cmo se obtiene D y E?
Hay que obtener p y q: nmeros enteros, primos y muy grandes.
Se calcula n= p x q.
Se elige E <n tal que E y (p-1)x(q-1) son primos relativos.
Se calcula D tal que E x D mod ((p-1)x(q-1))=1
La Llave pblica es <E,n>
La Llave privada es <D,n>

Sistemas Operativos 210

Grfica 89. Codificacin RSA

Codificacin RSA
Codificar: x iE mod n = yi
Decodificar: y iE mod n = xi
Ejemplo:
Sea p=2 y q=5 (p y q son primos)
Sea n=10
(p-1)x(q-1)=4
E < n y 4 deben ser primos relativos. Elijo E=3
Clculo de D: E x D mod ((p-1)x(q-1))=1
O sea, E x D mod 4 = 1, E x D= 4 k +1
E x D= 4k +1. Existe k?
3 x D= 4k +1. D= (4k+1)/3. Si k=2, D=3. Si k=5, D=7
21 mod 10=1 Funciona!
E

Sea x=2 el nmero a encriptar. 2 =2 =8 mod 10=8, y=8.


D

Ahora desencriptaremos. 8 =8 =2097152 mod 10=2 Funciona!

Cmo se eligen las claves?


La seguridad depende del nmero de bits:
Netscape y Explorer usan RSA con 48 bits.
Mejor seguridad se obtiene con 128 y 1024 bits, pero el clculo se vuelve
muy difcil.

Sistemas Operativos 211

Se puede quebrar RSA?


En 1977 se lanz el reto de quebrar un string de 129 dgitos (430 bits). Se
pensaba que era inviolable ya que los algoritmos de factorizacin de grandes
nmeros estimaban 40 cuadrillones de aos de computacin para quebrarlo.
En abril de 1994, slo 17 aos ms tarde, cuatro cientficos reportaron que haban
quebrado el cdigo. El mensaje encriptado era:
THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE
Se utiliz un mtodo de factorizacin que requera 5000 MIPS-ao. Se dividi el
problema en pequeas partes que se distribuyeron por correo electrnico a todo el
mundo. En la prctica no se requieren 5000 MIPS-ao ya que las claves no
siempre se eligen de manera ptima.
5.9 Clasificacin de seguridad
El Departamento de Defensa del Gobierno de USA, especifica 4 divisiones para
clasificar sistemas acorde a su seguridad:
A (proteccin mxima), B, C, D (proteccin mnima).
Por ejemplo MS-DOS corresponde a la clasificacin D.
El nivel C tiene dos niveles:
- C1: protege informacin privada y resguarda a los dems usuarios de
lectura o destruccin accidental de informacin. Ej. Muchas
implementaciones de Unix.
- C2: Agrega a C1 de un control de acceso a nivel individual. Existen
versiones seguras de Unix certificadas como C2. W/NT se puede configurar
a C2.
El nivel B tiene todo lo de C2 y agrega rtulos de sensibilidad a cada objeto. Se
clasifican en B1, B2 y B3.
El nivel ms alto es A. Al nivel B3 agrega especificaciones de diseo y verificacin
formal de seguridad.
Actividad inicial:
De acuerdo a lo desarrollado en el captulo, revise su ensayo y
complemntelo, sera bueno que coevaluar su trabajo con un compaero de
clase.
Los aportes enriquecen el producto obtenido..

Sistemas Operativos 212

BIBLIOGRAFA
ALCALDE, Eduardo. MORERA, Juan. PEREZ-CAMPANERO, Juan A. (1994).
Introduccin a los Sistemas Operativos. Serie Informtica de Gestin. Mxico:
Editorial Mc Graw Hill.
BARRETO ROA, Julio Humberto. (2001). Sistemas Operativos. Gua de estudio.
Bogot: Editorial UNAD.
CALDERA (2003). Kit de recursos. Unifying Unix Whit Linux For Business.
CAAS, Javier. Documento pdf: Sistemas Operativos. Catorce captulos (1999).
CARRETERO PEREZ, Jess, GARCIA CABALLEIRA, Flix, ANASAGASTI, Pedro
de Miguel, PEREZ COSTOYA, Fernando (2001). Sistemas Operativos. Una visin
aplicada. Madrid: Mc Graw Hill.
FLYNN, Ida M, MCHOES, Ann McIver.(2001) Sistemas operativos. Tercera
Edicin. Mxico: Editorial Thomson Learning.
RAYA, Laura, ALVAREZ, Raquel, RODRIGO, Vctor. (2005). Sistema Operativos
en entornos Monousuario y Multiusuario. Mxico: Alfaomega, Ra-Ma.
RUEDA, Francisco. (1989). Sistemas Operativos. Santaf de Bogot: Mc Graw
Hill.
SILBERSCHATZ, Avi, GALVIN, Peter, GAGNE,
Operativos. Mxico: Editorial Limusa Wiley.

Greg.

(2002).

Sistemas

STALLING, William. (2001). Sistemas operativos. Cuarta edicin, Mxico: Prentice


Hall.
TACKETT, J. (2003). Edicin especial Linux. Mxico: Prentice Hall
TANENBAUM, S. Andrew, WOODHULL, Albert S. (1997). Sistemas Operativos.
Diseo e implementacin. Mxico: Prentice Hall.

Sistemas Operativos 213

DIRECCIONES WEB
http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/
http://www.itver.edu.mx/so1/
http://www.itver.edu.mx/so2/
http://os.matiu.com.ar/
http://os-matiu.dreamhost.com/classes/clase1.html
http://www.iespana.es/canalhanoi/so/
http://server2.southlink.com.ar/vap/sistemas_operativos.htm
http://www.inei.gob.pe/web/metodologias/attach/lib616/INDEX.HTM
http://www.itq.edu.mx/vidatec/maestros/sis/mnogues/Unidad1.htm
http://www.cs.virginia.edu/~knabe/iic2332/notes01.html

Sistemas Operativos 214

UNIDAD DIDCTICA 3
PRINCIPALES SISTEMAS OPERATIVOS
INTRODUCCIN
Sistemas operativos hay muchos, segn la necesidad, la potencia del hardware, la
seguridad que se desea, el respaldo y confiabilidad. Cada uno de ellos ha
evolucionado en diferentes versiones que hacen que la actual siempre supere por
mucho a la anterior y as ganarse un merecido puesto en el tan competido
mercado del software.
En esta unidad vamos a enfocarnos en los dos sistemas operativos actuales ms
comerciales y conocidos: Windows y Linux, sin dejar de lado otros no menos
importantes, adems de algunas caractersticas de las principales arquitecturas
para trabajo en red.
Aqu se vuelven muy importante los criterios que se deben tener en cuenta a la
hora de seleccionar el sistema operativo ideal, pues de ello depende la
conformidad de nuestro usuario final, que en ltimas es el que sufre las
consecuencias de nuestra decisin.
Pero ya que menciono el sistema operativo ideal, es bueno aclarar que no existe,
pues aquello que llam ideal se logra de acuerdo al grado de satisfaccin de
nuestros clientes y el grado de optimizacin logrado en el sistema que est o que
se va a montar.
Ah es donde entran en juego todas las caractersticas vistas en las dos unidades
anteriores, que se deben analizar muy bien en cada uno de los sistemas
operativos que se estan analizando para su implementacin.
Cada uno tiene puntos a favor y puntos en contra, en mi concepto, y slo en mi
concepto, digo que no existe un sistema operativo que se pueda recomendar a la
ligera, sin antes haber determinado las necesidades, tipos de aplicaciones, nivel
de seguridad, costos, etc, para su implementacin.
Sin embargo tengo mi favorito, que no estara bien mencionarlo.

Sistemas Operativos 215

Para ubicarnos en la diversidad de sistemas operativos que existen, a


continuacin se presenta la siguiente tabla que contiene sistemas operativos,
segn la casa matriz que lo desarrolla:29
AtheOS/Syllable/Cosmoe
OSBOS
PenBeOS
Zeta
BlueeyedOS
Cosmoe
BeFree
Sequel
SkyOS
Familia Amiga
AmigaDOS 1.x
AmigaOS 2
AmigaOS 3.03.1
AmigaOS 3.5/3.9
WarpOS (AmigaOS 3.x
+ subsistema PowerPC)
MorphOS
AmigaOS 4.0
Familia Macintosh
Mac OS 8
Mac OS X
Familia QNX
RTOS
Neutrino
RTP
Familia DOS
MSDOS
DRDOS
PCDOS
FreeDOS
Novell DOS
Familia Microsoft
Microsoft XP
Windows 95, 98, Me
Windows NT
Windows CE
Windows 2003
Windows Longhorn?

29

Familia UNIX
AIX
AMIX
GNU/Linux
GNU / Hurd
HPUX
Irix
Minix
System V
Solaris
UnixWare
LynxOS
Xenix
Familia BSD
FreeBSD
NetBSD
VINO
OpenBSD
PicoBSD
Familia Mach
GNU / Hurd
BSD lites
Mac OS X
NEXTSTEP
YAMIT
MKlinux
Familia IBM
OS/2
OS/360
OS/390
OS/400
Sist. Op.Acadmicos o experimentales
Chorus/Jaluna
Amoeba
MIT Exokernel
BriX

GUARQUIN, Margarita y QUIROGA, Edgar (2005). Mdulo ensamble y mantenimiento de


computadores. Bogot: UNAD.

Sistemas Operativos 216

OBJETIVOS
1. Reconocer las diferentes caractersticas internas y externas de los
sistemas operativos de la familia Windows, con el fin de obtener el mximo
provecho posible en su administracin.
2. Identificar la estructura interna de los sistemas operativos de la familia
UNIX (UNIX/LINUX), para entender su funcionamiento y establecer las
ventajas y desventajas con respecto a otros sistemas del mercado.
3. Explorar otros sistemas operativos, que aunque es complicado trabajar con
ellos en el laboratorio, es necesario conocer su estructura interna y
caractersrticas ms sobresalientes.
4. Revisar los conceptos bsicos de las diferentes arquitecturas de red, en las
que puede operar un sistema operativo.

Sistemas Operativos 217

CAPTULO 1. SISTEMAS OPERATIVOS FAMILIA WINDOWS30


Actividad a realizar: En grupos de trabajo. En sesiones de laboratorio o
prcticas se debe instalar el respectivo sistema operativo y verificar las
ventajas y caractersticas bsicas que este posee. A medida que se va
desarrollando la temtica Usted debe ir detectando cules caractersticas de
cada SO Windows ya conoca y cules son nuevas, para poder verificarlas.
Realizar un manual de instalacin de la versin del SO. Probarlo en la sesin.

Como se ha descrito en la primera unidad, existen distintos tipos de sistemas


operativos. Hay dos tipos que son especialmente necesarios (si no
imprescindibles) para los usuarios:
Multitarea: Es el modo de funcionamiento mediante el cual un computador
procesa varias tareas al mismo tiempo.
Multiusuario: Se pueden dar dos opciones:
-

De servidor de red: que permite cumplir simultneamente las


necesidades de dos o ms usuarios, para trabajar con los mismos o
distintos recursos del equipo.
De estacin de trabajo: que permite que cada usuario pueda tener
sus propias carpetas, archivos, escritorio, historial, directivas de
seguridad, etc., sin interferencias con los de otros usuarios. Esta
opcin permitir que cada usuario que trabaje en un ordenador,
tenga un mnimo de seguridad para que sus datos estn a salvo de
las miradas indiscreta del resto de usuarios que trabajen en el mismo
equipo.

Este captulo se va a centrar en una exploracin de los principales sistemas


operativos de la familia Windows, iniciando con el primero de la lnea de entorno
grfico Windows 95 hasta llegar a Windows Server 2003. De esta forma se
pretende brindar una visin general de la evolucin que ha sufrido hasta el
momento la lnea de sistemas operativos Windows, tanto en su estructura como
en su diseo.
Se va ha hacer un nfasis especial en los dos sistemas operativos multitarea y
multiusuario: Windows Server 2003 que funciona como servidor de red cuando se
instala el directorio activo y Windows XP Profesional que funciona como estacin
de trabajo.



/DGRFXPHQWDFLyQUHIHULGDHQHVWHFDStWXORVREUHOD)DPLOLD:LQGRZVIXHWRPDGD
GHYDULDVIXHQWHVEiVLFDVFRPRVRQ

Sistemas Operativos 218

1.1 Windows 95
1.1.1 Caractersticas
Sistema operativo orientado a documentos.
El sistema tiene asociado un programa con cada fichero de datos, arranca
de manera automtica la aplicacin asociada. (Por ejemplo abrir un texto de
WORD picando en fichero, sin abrir previamente la aplicacin).
Sistema operativo de 32 bits (con lo que se pueden aprovechar mejor las
caractersticas de los nuevos procesadores); si se trabaja con aplicaciones
de 16 bits no se le saca el rendimiento a la multitarea.
Windows 95 ofrece un soporte muy completo para las prestaciones
multimedia que se puede aadir a cualquier PC de casa.
Multitarea: el sistema es capaz de ejecutar ms de un programa al mismo
tiempo.
Aprovecha los tiempos muertos para ejecutar instrucciones de otros
procesos (por ejemplo mientras el controlador del disco lee un bloque de
datos).
Permite abrir varias sesiones de DOS con la ventana del MS-DOS.
La interfaz de usuario es ms fcil de usar.
Se pueden usar nombres largos de fichero, con lo que no se limita a 8
caracteres para el nombre y 3 para la extensin. Ahora pueden tener un
tamao mximo de 256 caracteres.
Elemento nuevo son los accesos directos que son enlaces a un fichero que
est en un directorio determinado, de forma que se puede acceder a dicho
fichero picando dos veces en el acceso directo situado en el escritorio en
vez de tener que colocarnos en el directorio en el que se encuentra dicho
fichero.
La pantalla general de Windows 95 permite acceder a todos los elementos
tanto de software como de hardware del sistema. Partes de la pantalla:
o Escritorio
o Barra de tareas
Todos los programas se ejecutan en una o varias ventanas, salvo los que
usan la pantalla completa (juegos).
El rendimiento es FAT 16, de Windows 95.
El disco duro con el formato FAT 16, no se podr un disco con otro formato
a no ser que se vuelva a realizar un nuevo formateo de la unidad bajo ese
formato.
Tiene varios inconvenientes, como configurar infinidad de parmetros,
localizar los drivers correctos e instalar las nuevas versiones de los
programas. La mayora de las aplicaciones funcionaban ms lentamente
que en MS-DOS y Windows 3.1, dado que no aprovechaban las mejoras
realizadas.

Sistemas Operativos 219

1.1.2 Arquitectura
Grfica 90. Arquitectura Windows 95
Fuente: www.club.telepolis.com
Aplicacin
Win 32

Aplicacin
Win32

(VSDFLR
FRPSDUWLGRGH
GLUHFFFLRQHVLRQHV

6HUYLFLRVGHO6LVWHPD
1~FOHR .HUQHO 
8VXDULR 8VHU 
*',

0iTXLQDYLUWXDO
06'26
0iTXLQDYLUWXDO
06'26
0iTXLQDYLUWXDO
06'26

&RPSRQHQWHVHQHODQLOOR
&RPSRQHQWHVHQHODQLOOR
6XEVLVWHPDGHJHVWLyQGH
DUFKLYRV

FAT de
32

Sistema
archivos
CD ROM

Redirec
de red

6XEVLVWHPDGH(6SRUEORTXHV

6XEVLVWHPDDGPLQLVWUDGRU
GHPiTXLQDYLUWXDO
Servicios:
Gestin de memoria
Planificador
Servicios VxD y cargador dinmico
Administrador de la VM MS-DOS
Servidor DPMI
Controladores:
Teclado, comunicaciones, ratn,
visualizacin, etc..

Mquina Virtual del sistema


Servicios de planificacin y gestin de memoria.
Gestin de las aplicaciones basadas en Windows dentro de la mquina
virtual del sistema.
Gestin de las mquinas virtuales MS-DOS
Las bases de la capa API de Windows. (recordemos que la capa API, es la
interfaz que pueden utilizar las aplicaciones para comunicarse con
Windows).
Todas las aplicaciones Windows, se ejecutan dentro del contexto de la VM (Virtual
Machine) del sistema. Las aplicaciones de 16 bits (las viejas aplicaciones de
Windows 3.1) comparten un espacio nico de direcciones. El soporte de 32 bits,
proporciona a cada aplicacin un espacio de direcciones privado.
Mquinas virtuales MS-DOS. Windows 95, admite la ejecucin de mltiples
programas MS-DOS que se ejecutan bien en modo virtual 8086 o bien en modo
protegido.

Sistemas Operativos 220

Administrador de mquina virtual. El VMM (Administrador de Mquina Virtual)


es el verdadero corazn del sistema operativo. Proporciona servicios de
planificacin y gestin de memoria de bajo nivel, adems de los controladores
virtuales de dispositivo.
De todos los componentes nuevos que aparecen en Windows 95, el principal es el
sistema de gestin de archivos. Este es un subsistema completamente
rediseado que admite mltiples sistemas de archivos accesibles
concurrentemente. Excepto cualquier viejo controlador de dispositivo MS-DOS,
que pudiera estar presente para soportar un dispositivo particular, todo el Sistema
de gestin de archivos ejecuta cdigo de 32 bits en modo protegido. Su diseo
original, admita discos locales y unidades CD-ROM, adems de una o ms
interfaces de red mediante una interfaz del sistema de archivos instalable (IFS).
Los servicios del sistema llamados por las aplicaciones Windows (para grficos,
gestin de ventanas, etc) siguen estando all y conservan los nombres de Ncleo,
Usuario y GDI que tenan en las versiones anteriores de Windows. El cambio
principal en el subsistema de servicios del sistema es su soporte para las
aplicaciones de 32 bits. Aparte de sus diferentes requisitos de gestin de memoria
las aplicaciones de 32 bits utilizan una API completa de 32 bits de Windows y
llaman a servicios que ahora se implementan con la utilizacin del cdigo de 32
bits. Uno de los principales desafos de diseo e implementacin con los que se
enfrent el equipo de desarrollo de Windows fue hacer que cooperasen de forma
efectiva y con un buen rendimiento (al menos aceptable) los componentes de 16 y
32 bits mezclados.
Manejo de aplicaciones
Las aplicaciones que se pueden instalar en Windows'95 se pueden clasificar en
dos grupos:
Los programas autnomos, que slo hay que copiarlos en el disco duro
para que funcionen.
Las aplicaciones con instalacin, que necesitan un proceso previo para
funcionar que consta de una serie de programas y bibliotecas dinmicas
(.dll). Estas aplicaciones contienen un programa (instalar, setup) que realiza
estas funciones.
Manejo de comunicaciones
Hyper Terminal
Es un sistema bsico de comunicacin para conectarse a otros sistemas. Es un
emulador de terminal tipo texto y slo se puede utilizar para conectarnos con un
sistema multipuesto y multitarea (ej. UNIX). Tambin se pueden transferir ficheros
de una mquina a otra si se dispone del software apropiado.

Sistemas Operativos 221

Acceso telefnico a redes


Su funcin principal es permitir el acceso a Internet. El protocolo de comunicacin
entre los equipos que componen Internet se llama TCP/IP, sin embargo al no estar
nuestro equipo fsicamente conectado a la red hay otro protocolo que nos permite
conectarnos, que se llama PPP.
1.2 Windows 98
1.2.1 Caractersticas
Un ncleo de sistema de 32 bits que incluye gestin de memoria,
multitarea preentiva y soporte de multitarea.
Un sistema de archivos en modo protegido de 32 bits, que elimina la
necesidad de contar con una copia separada de MsDos una vez que el
sistema arranca.
Un sistema de ficheros de 32 bit que soporta FAT, FAT32, ISO 9660
(CDROM), ISO 13346 (UDF/DVD Universal Disk Format / Digital Video
Disk), redireccionamiento de redes y alta eficacia. Este sistema de ficheros
tambin soporta el uso de nombres largos de fichero.
Soporte para WDM (Win32 Driver Model), que hace que los dispositivos
que cuentan con este driver puedan ejecutarse, usando el mismo driver, en
Windows 98 y Windows NT.
Chequeo automtico del sistema cada vez que una aplicacin falla.
Un entorno de configuracin dinmico que reduce la necesidad de ajustes
y reinicios del sistema manualmente por parte del usuario.
1.2.2 Arquitectura
Windows 98 es un sistema operativo de 32 bits que incorpora acceso interno a
Internet, soporte de hardware Plug & Play y compatibilidad con Windows 95.
Como mejoras frente a la anterior versin de Windows 95 incluye mejoras en la
gestin de energa, soporte para mltiples tarjetas de vdeo, y soporte para
hardware aparecido recientemente.
Los principales componentes de Windows 98 son los siguientes:
Aplicaciones.
Interfaz de usuario e interfaz de rdenes de 32 bits. Base de Registro.
Ncleo de Windows.
Administrador de mquina virtual. Administrador del sistema de archivos
instalable (IFS). Administrador de configuracin. Administrador WDM.
Controladores de dispositivo.

Sistemas Operativos 222

Grfica 91. Componentes de Windows 98

Drivers de dispositivos (Device Drivers)


Windows 98 proporciona soporte mejorado para dispositivos de hardware,
incluyendo tarjetas grficas, unidades de disco, mdems, fax, impresoras, etc.
En Windows 3.1 los drivers (controladores para el dispositivo, normalmente
creados por el fabricante del propio dispositivo) eran, en la mayora de los casos,
monolticos y difciles de desarrollar, ya que el driver tena que proporcionar todos
los servicios, interfaces de usuario, funciones API y servicios de acceso al
hardware.
Con Windows 98 se pasa a una arquitectura basada en minidrivers, que hace
que el desarrollo del driver sea ms fcil para los fabricantes: el sistema operativo
proporciona los servicios bsicos para las distintas clases de dispositivos de
hardware (lo que se denomina un driver genrico o universal) y el fabricante
slo tiene que aportar los cdigos especficos para su hardware particular
(minidriver). Adems Windows 98 utiliza arquitectura WDM, que proporciona un
juego comn de servicios de entrada/salida compatible tambin con Windows NT,
de modo que los drivers que se desarrollen servirn en ambos sistemas
operativos.
El driver virtual (VxD)
Un driver virtual (VxD) es un driver de 32 bits que funciona en modo protegido y
que administra recursos del sistema tales como dispositivos de hardware o
software instalado, de modo que ms de una aplicacin pueda usar el recurso al
mismo tiempo. Es ejecutado en modo kernel y tiene todos los niveles de privilegio
para efectuar cualquier operacin.

Sistemas Operativos 223

Windows 98 carga dinmicamente estos VxDs en memoria siempre que son


necesarios. Igualmente, el sistema operativo utiliza para ellos memoria
"bloqueada". Es decir marcada como no paginable, para que permanezcan
siempre en memoria e intentar optimizar as los accesos a estas VxD.
Un driver VxD realiza un control sobre el estado del recurso que est bajo su
gestin, para cualquier aplicacin que desee usar dicho recurso. La misin del
VxD es comprobar el estado del recurso y actuar como rbitro entre las
aplicaciones que intentan acceder a l. Adems asegura que el recurso funciona
adecuadamente, y toma el control cuando algo falla.
Gestor de Mquina Virtual (VMM)
El gestor de mquina virtual, gestiona todos los recursos necesarios para cada
aplicacin y proceso que se ejecute en el ordenador. El gestor de mquina virtual
crea y mantiene un entorno para cada aplicacin, en el que dicha aplicacin y el
sistema se ejecutan correctamente.
Una mquina virtual (VM), es un entorno creado en memoria que, desde el punto
de la aplicacin, aparece como un ordenador separado, con todos los recursos
disponibles del ordenador fsico que la aplicacin necesite para ejecutarse.
Grfica 92. Recursos que necesita el sistema para VM

Windows 98 tiene un nico sistema denominado sistema VM, en el que todos los
procesos del sistema se ejecutan.
El gestor de mquina virtual es responsable de tres reas de servicios:
Planificador de procesos (para permitir la multitarea).
Paginacin de memoria.

Sistemas Operativos 224

Soporte protegido para modo MsDOS (solo para aplicaciones basadas en


MsDOS).
El planificador de procesos de Windows 98 utiliza dos mtodos para permitir que
varios procesos se ejecuten de forma concurrente: multitarea cooperativa y
multitarea con derecho preferente o preventiva. (Recordemos Unidad didctica 2.
Captulo 1. Tema 1.5.4 Planificacin apropiativa o no apropiativa)
La multitarea cooperativa. Esta depende de la ayuda de los programadores de
aplicaciones para mantener el sistema ejecutndose sin sobresaltos.
Con la tcnica cooperativa el planificador puede conmutar entre procesos slo
cuando el proceso actualmente en ejecucin entrega la CPU. Segn la buena
prctica de programacin para sistemas de multitarea cooperativa las aplicaciones
deben devolver regularmente la CPU al sistema operativo.
Es la que se utiliza con las aplicaciones de Windows 3.1 (aplicaciones Win16), y
se mantiene en Windows 98 para mantener la compatibilidad con dichas
aplicaciones.
Multitarea preventiva. Esta planificacin pone a disposicin del Windows 98 un
control completo sobre qu proceso se ejecuta a continuacin y por cunto tiempo.
En cualquier momento, el planificador puede despojar de la CPU al proceso en
curso y asignrsela a otro.
Sistema de archivos instalable (IFS)
Windows 98 presenta una arquitectura en capas del sistema de ficheros que
soporta mltiples sistemas de ficheros, incluyendo los VFAT (virtual file allocation
table), CDFS (CDROM file system), UDF, etc.
Esta arquitectura nos permite usar nombres largos de archivo y un sistema de
cach dinmico para entrada/salida en ficheros y redes. Se pueden emplear
nombres de hasta 255 caracteres para identificar los documentos en lugar de la
relacin 8.3 de MsDOS. Adems los nombres de los ficheros son menos
encrpticos y fciles de leer, porque Windows 98 esconde los nombres de las
extensiones a los usuarios.
La arquitectura de ficheros de Windows 98 se basa en tres componentes:
Installable File System (IFS) Manager. Es el responsable de arbitrar los
accesos a los distintos componentes de los sistemas de ficheros.
File System Drivers. Incluye acceso a discos con particiones FAT,
ficheros en CDROM, y redireccin de dispositivos de red.

Sistemas Operativos 225

Block I/O Subsystem. Es responsable de interactuar con los dispositivos


de hardware.
Sistema VFAT (FAT 32)
Este sistema de ficheros es la novedad que Windows 98 present en su
lanzamiento. Es un sistema de ficheros que presenta una serie de ventajas sobre
los antiguos sistemas FAT, usados por DOS.
-

Mayor velocidad de acceso dado que el software que se utiliza para la


cach de disco trabaja en modo real de 32 bits.
No utiliza memoria convencional.
Permite mejorar los accesos en multitarea al disco.
Soporte de cach dinmico.
Utilizacin optimizada para accesos en 32 bits.

Windows 98 incluye la utilidad grfica de conversin Convertidor a FAT32, que


convierte de modo rpido y seguro discos duros de FAT a FAT32.
Gestor de configuracin
La arquitectura de Windows 98 incluye un componente llamado Gestor de
Configuracin, que dirige el proceso de configuracin. Este proceso involucrara a
muchas arquitecturas de bus y dispositivo coexistiendo en un nico sistema, con
ms de un tipo de dispositivo usando la misma arquitectura de bus, an cuando
cada dispositivo tuviera unos requerimientos de configuracin especficos.
El Gestor de Configuracin trabaja con varios subcomponentes para identificar
cada bus y cada dispositivo del sistema y para identificar la configuracin
establecida para cada dispositivo. El Gestor de Configuracin se asegura de que
cada dispositivo del ordenador pueda usar una peticin de interrupcin (IRQ), una
direccin de puerto de E/S, y otros recursos sin entrar en conflicto con otros
dispositivos.
Para realizar sus funciones, el Gestor de Configuracin (realizado como una parte
del VMM32) dispone de los enumeradores de bus para identificar todos los
dispositivos en sus buses especficos y sus respectivas necesidades de recursos.
Los enumeradores de bus son drivers nuevos que son responsables de la
creacin del rbol de hardware de Windows 98. Un rbol de hardware es una
representacin jerrquica de todos los buses y dispositivos del ordenador. Cada
bus y cada dispositivo es presentado como un nodo.

Sistemas Operativos 226

Grfica 92. Ejemplo de rbol de Hardware de Windows 98

Durante el proceso de enumeracin del dispositivo, el enumerador de bus localiza


y rene informacin de bien de los drivers de dispositivo o bien de los servicios de
la BIOS para ese tipo particular de dispositivo. El Gestor de Configuracin llama al
rbitro de recursos para asignar los recursos a cada dispositivo.
Windows 98 proporciona rbitros para los recursos de E/S, la memoria, las
interrupciones de hardware y los accesos directos a memoria (DMA).
Componentes del corazn del sistema
Se compone de tres componentes: Usuario, Kernel y GDI (Interface grfica de
dispositivos).
Cada uno de estos componentes incluye un par de libreras de enlace dinmico
(DLL), una de 32 bits y otra de 16 bits, que proporcionan servicios para las
aplicaciones que se ejecuten. Windows 98 est diseado para usar cdigo de 32
bit siempre que mejore el funcionamiento de la aplicacin y no existan problemas
de compatibilidad. Windows 98 mantiene el cdigo de 16 bits donde se necesite
para la compatibilidad o donde el uso del cdigo de 32 bits incremente los
requerimientos de memoria sin mejorar significantemente el funcionamiento.
Todos los subsistemas de E/S de Windows 98 (tales como las redes y el sistema
de ficheros) y los driver de los dispositivos son de 32 bits, igual que todos los
gestores de memoria y los componentes de planificacin, incluyendo el Kernel y
VMM.

Sistemas Operativos 227

1.3 Windows 2000


1.3.1Ediciones de Windows 2000

Windows 2000 profesional


Windows 2000 Server
Windows 2000 Advanced Server, y
Windows 2000 Datacenter Server.

Se diferencian en el nmero de procesadores y memoria fsica soportados, el


nmero de conexiones de red, y servicios (RAID, AD, DHCP, DNS, DFS, etc.)
1.3.2 Objetivos de diseo
Extensibilidad. Debe poder crecer y cambiar confortablemente segn las
necesidades de mercado.
Transportabilidad. El sistema debe ser capaz de ejecutarse sobre mltiples
plataformas hardware y debe moverse a aquellas que aparezcan. Includos
multiprocesadores.
Fiabilidad y robustez. El sistema debe protegerse l mismo de
malfuncionamientos internos y ataques externos. Las aplicaciones no deben poder
daas al sistema o a otras aplicaciones.
Compatibilidad. Su API debe ser compatible con viejas versiones de Windows y
MS-DOS. Debera poder interoperar con Unix, OS/2 y Netware.
Rendimiento. Dentro de las restricciones de los otros objetivos de diseo, el
sistema debe ser tan rpido y responsivo como sea posible sobre cada plataforma.
1.3.3 Modelos usados en implementacin
Cliente-servidor. Ciertos servicios del SO estn implementados como procesos
de usuario.
De capas. En el Ejecutivo, y la gestin de E/S.
Orientado a objetos. Si bien no es un SOOO, trata algunos elementos como
objetos: procesos, hebras, archivos, puertos, semforos, mutantes, etc.
Estructura microkernel. No un modelo puro, por razones de eficiencia.
Multiprocesamiento simtrico. Tanto la ejecucin del SO como de varias hebras
de una tarea se puede realizar en diferentes procesadores.

Sistemas Operativos 228

1.3.4 Arquitectura

1. El Ejecutivo (Executive)
El Ejecutivo contiene los componentes sensibles en rendimiento que se ejecutan
en modo kernel, donde pueden interaccionar con el hardware, y entre ellos, sin
incurrir en la sobrecarga de cambios de contexto y cambios de modo.
El programa NTOSKRNL.EXE contiene todos los componentes del Ejecutivo
(excepto el subsistema Win32 -que est en WIN32K.SYS), y el kernel. Se carga
en la mitad superior de memoria en la fase de arranque del sistema.
Funciones del ejecutivo
Exportadas y llamadas desde modo usuario (servicios del sistema). Exportadas
por ntdll.dll.
Llamadas desde modo kernel pero exportadas y documentadas por Windows 2000
DDK (Device Driver Kit) o IFS Kit (Installable File System).
Subsistemas del Ejecutivo
Gestor de objetos. Crea, gestiona, y borra objetos del ejecutivo y TAD que
representan recursos: procesos, hebras, etc.

Sistemas Operativos 229

Monitor de referencia de seguridad. Asegura la poltica de seguridad del


computador local. Guarda losrecursos realizando proteccin y auditora en tiempo
de ejecucin.
Gestor de memoria virtual. Implementa memoria virtual, y soporte de base para
elgestor de cach.
Gestor de E/S. Implementa E/S independientes del dispositivo.
Gestor de cach. Implementa una cach global de archivos.
Mecanismo LPC. Suministra paso de mensajes entre clientes y servidores de la
misma mquina (una RPC eficiente y optimizada)
Gestor de configuraciones. Responsable de implementar y gestiona el Registro
del sistema.
Gestor de procesos y hebras. Exporta procesos y hebras a travs de la API.
Win32 Implementa funciones de mensajes y dibujo de Win32.
Gestor de Potencia. Controla el estado de potencia de la mquina.
Gestor de Plug-and-Play. Notifica a los gestores de dispositivos la puesta en
lnea o desconexin de los dispositivos.
Despachador de servicios del sistema
El Kernel. El Kernel contiene:
Planificador de hebras.
Primitivas de sincronizacin (mutex, semforos, eventos y cerrojos espera
ocupada (spin locks)
Despacho de interrupciones y excepciones.
Rutinas y objetos base usados por el Ejecutivo.
Este mdulo nunca es paginado fuera de memoria y su ejecucin nunca es
apropiada por una hebra.
Capa Abstraccin Hardware (HAL)
La HAL (archivo Hall.dll) asla al kernel, manejadores de dispositivos y al resto del
ejecutivo de las diferencias hardware de la plataforma.
HAL exporta un modelo de procesador comn. Los gestores de dispositivos
utilizan este procesador comn ms que una CPU especfica. La existencia de
diferentes placas para el mismo procesador (por ejemplo multiprocesador) base se
asegura mediante la escritura de una HAL personalizada por el propio fabricante.
Sistema grfico y de ventanas
El sistema grfico y de ventanas implementa las funciones de la interfaz grfica de
usuario (GUI), tales como las que tratan con ventanas, control de la interfaz de
usuario, y dibujo.
Implementado por los archivos Win32.dll, Kernel32.dll, Advapi32.dll, User32.dll y
Gdi32.dll.

Sistemas Operativos 230

Este sistema estaba en la versin de NT 3.5 en modo usuario, y de introdujo en


NT 4.0 en modo kernel por razones de eficiencia.
Procesos de usuario
Procesos de soporte del sistema, tales como logon y el gestor de sesiones, que
no son servicios Win 2000(no iniciados por el gestor de control de servicios).
Procesos servidores, son servicios 2000 (equivalentes a demonios UNIX) tales
como el Event Logger, Microsoft SQL Server y Microsoft Exchage Server.
Subsistemas de entorno, que exponen los servicios nativos del SO a las
aplicaciones de usuario y suministran un entorno de SO: Win32, Posix, y OS/2.
Aplicaciones de usuario, que pueden ser de los tipos: Win32, Windows 3.1, MSDOS, Posix, OS/2 1.2.
Subsistemas: entorno y DLLs
Un ejecutable se liga en tiempo de enlace a un nico subsistema. Al ejecutarse, se
examina el tipo de subsistema (cabecera de la imagen) para notificar al
correspondiente subsistema de la creacin del proceso. Por ejemplo un programa
Win32 se enlaza con las DLLs del lado-cliente de Win32 (kernel32.dll, gdi32. dll, y
user32.dll); uno POSIX lo hace con psxdll.dll, etc.
La aplicaciones no invocan llamadas nativas directamente; en su lugar, utilizan las
DLLs de los subsistemas para traducir una funcin documentada en la no
documentada apropiada nativa de Windows 2000.
Entornos de sistema operativo
La DLL cliente se ejecuta en beneficio de su servidor.
Ofrece una API completa, o invoca al servidor (modificar informacin del entorno).
DLLs y servidor pueden usar los servicios nativos. La API de entorno de SO
aumenta la funcionalidad o semntica que le son especficas.
Servicios de sistema nativos
La API nativa es similar a la API de Win32, y no da a la aplicacin ms privilegios
que el subsistema de entorno.
Las aplicaciones y subsistemas de entorno acceden a la API nativa a travs de la
ntdll.dll,(contiene entre otras cosas los puntos de entrada a los servicios del
sistema).
Existen ms de 200 llamadas nativas.

Sistemas Operativos 231

Manejadores de dispositivos
Los manejadores de dispositivos son mdulos en modo kernel cargables que hace
de interfaz entre el Gestor de E/S y el hardware.
Se ejecutan en modo kernel en uno de los tres contextos siguientes:
Contexto de la hebra que inicio la E/S
Contexto de una hebra de sistema en modo kernel.
Como resultado de una interrupcin, en cuyo caso no utiliza el contexto de
ninguna hebra.
Tipos de manejadores
Hardware. Manipulan el hardware para realizar E/S, por ejemplo driver de bus, de
disco, etc.
Sistemas de archivos. Aceptan solicitudes de E/S orientadas a archivos y las
traducen a solicitudes E/S ligadas al correspondiente dispositivo.
Filtros de sistemas de archivos. Interceptan E/S y le dan un valor aadido antes
de pasarla a la capa siguiente, por ejemplo mirroring, encriptacin.
Redirectores de red. Manejadores de sistemas de archivos que
transmiten/reciben operaciones de E/S de sistemas de archivos a otra mquina.
Protocolos. Implementan los protocolos de red, tales como TCP/IP, NetBUI, e
IPX/SPX.
Filtros de flujo kernel. Se encadenan para realizar procesamiento de seales
sobre flujos de datos, tales como grabar y reproducir vdeo/audio.
Procesos de sistema
Proceso ocioso (hay uno por CPU).
Proceso de sistema. Contiene gran parte de hebras de sistema en modo kernel,
por ejemplo, la hebra Balance Set Manager, control de dispositivos.
Gestor de sesiones (smss.exe). Primer proceso en modo usuario; gestiona parte
de la inicializacin del sistema, y lanza csrss, y winlogon.
Subsistema Win32 (csrss.exe).
Proceso Logon (winlogon.exe). Maneja las entradas/salidas de usuarios
interactivos. Se activa con la secure attention sequence (SAS).
1.4 Windows Server 2003
1.4.1 Caractersticas
Disponible en cuatro versiones: Standard, Enterprise, Datacenter y Web.
Enterprise y Datacenter cuentan con versiones para plataformas de 64 bits
(Itanium) y con configuraciones de hasta 8 nodos en cluster, mientras que

Sistemas Operativos 232

la versin para entornos de Internet se puede comprar sin las licencias de


todos aquellos servicios ajenos al propio de servidor web.
Soporta configuraciones en cluster de hasta 8 nodos.
Mejoras en cuanto a rendimiento y eficiencia.
Windows Server 2003 es una infraestructura integrada y segura diseada
para ayudar a los clientes a reducir costes e incrementar la eficacia de las
operaciones IT (Itanium).
La nueva plataforma ayuda a los clientes a ampliar los recursos existentes
mientras sientan las bases para construir una nueva generacin de
aplicaciones conectadas que mejoran la productividad del negocio.
Esta familia de servidores soporta tambin la versin de 64 bit de Microsoft
Windows Server 2003. Configurado con los procesadores 64 basados en
Itanium con 512 GB de memoria sobre Datacenter Edition de Windows
.NET.

1.4.2 Arquitectura
Abandon la estructura relativamente monoltica de anteriores versiones de IIS,
donde un solo componente manejaba las peticiones HTTP y los procesos de
administracin. En su lugar, se ha construido un servicio formado por varios
componentes especializados, que optimizan cada tarea.
La innovacin ms destacable en cuanto a rendimiento se refiere, es que se ha
incluido en el ncleo del sistema operativo un componente llamado HTTP.SYS,
dedicado a manejar las peticiones HTTP.
Grfica 93. Estructura del sistema operativo Windows 2003 Server
Fuente: www.windowstimag.com

Sistemas Operativos 233

1.4.3 Descripcin
Fcil de implementar, administrar y usar
Windows Server 2003 es fcil de usar. Los nuevos asistentes simplificados
facilitan la configuracin de funciones especficas de servidor y de las tareas
habituales de administracin de servidores, de tal forma que incluso los servidores
que no disponen de un administrador dedicado son fciles de administrar.
Adems, los administradores disponen de diversas funciones nuevas y mejoradas,
diseadas para facilitar la implementacin de Active Directory. Las rplicas de
Active Directory de gran tamao pueden implementarse desde medios de copia de
seguridad, y la actualizacin desde sistemas operativos de servidor anteriores,
como Microsoft Windows NT, es ms fcil gracias a la Herramienta de Migracin
de Active Directory (ADMT), que copia contraseas y permite la creacin de
secuencias de comandos.
El mantenimiento de Active Directory es ms fcil con las funciones nuevas, como
la posibilidad de cambiar el nombre de los dominios y de volver a definir
esquemas, proporcionando a los administradores la flexibilidad necesaria para
controlar los cambios organizativos que puedan producirse. Adems, las
relaciones de confianza entre bosques permiten a los administradores conectar los
bosques de Active Directory, proporcionando autonoma sin sacrificar la
integracin.
Las herramientas de implementacin mejoradas, como los Servicios de instalacin
remota, ayudan a los administradores a crear rpidamente imgenes del sistema y
a implementar servidores.
Infraestructura segura
La administracin de identidades en Active Directory abarca la totalidad de la red.
El cifrado de datos confidenciales resulta sencillo, y las directivas de restriccin de
software pueden usarse para prevenir los daos causados por virus y otro tipo de
cdigo malintencionado. Windows Server 2003 es adecuado para implementar
una infraestructura de claves pblicas (PKI), tiene funciones de inscripcin
automtica y de renovacin automtica.
Confiabilidad,
empresarial

disponibilidad,

escalabilidad

rendimiento

de

nivel

Se ha mejorado la confiabilidad mediante una gama de funciones nuevas y


mejoradas, como el reflejo de memoria, la memoria agregada en caliente y la
deteccin de estado en Internet Information Services (IIS) 6.0. Para tener una
mayor disponibilidad, el servicio Microsoft Cluster admite ahora clsteres de hasta
ocho nodos y nodos separados geogrficamente. Se proporciona una mayor

Sistemas Operativos 234

escalabilidad, con la posibilidad de escalar desde un nico procesador hasta


sistemas de 32 direcciones. Globalmente, Windows Server 2003 es ms rpido,
con un rendimiento del sistema de archivos hasta un 140 por ciento superior, as
como un rendimiento significativamente ms rpido para Active Directory, los
servicios Web XML, los Servicios de Terminal Server y las redes.
Creacin fcil de sitios Web de Internet e intranet dinmicos
IIS 6.0, el servidor Web incluido en Windows Server 2003, proporciona una
seguridad avanzada y una arquitectura confiable que ofrece aislamiento para las
aplicaciones y un rendimiento muy mejorado.
Cambios en el diseo de IIS
El IIS 6 ahora proporciona:
Soporte de tecnologa .NET. Las aplicaciones basadas en ASP.NET, que
se ejecutan bajo IIS, son la clave para la construccin de aplicaciones Web
y Web Services. Para soportar con garantas estas aplicaciones, IIS ha
tenido que hacerse ms fiable y seguro, y ser capaz de manejar un gran
nmero de peticiones.
Demanda de clientes. Hay una serie de caractersticas que se deben
cubrir para satisfacer la demanda como: estabilidad suficiente para que el
funcionamiento 24x7 sea normal y no excepcional, facilidad de manejo ms
centralizado, soportar miles de sitios Web por servidor hardware,
escalabilidad tanto vertical como horizontal.
Competencia. Los servidores Web del tipo open source tales como
Apache sobre plataforma Linux o FreeBSD, ofrecen unas caractersticas
muy atractivas a muy bajo coste.
Para satisfacer estos requerimientos, Microsoft ha dirigido sus esfuerzos en
mejorar IIS en los siguientes aspectos:
Rendimiento. Se ha trasladado al ncleo el cdigo que procesa el
Hypertext Transfer Protocol (HTTP) aumentando la capacidad de manejar
peticiones, y se ha mejorado la capacidad de las aplicaciones para
aprovechar los servidores multiprocesador y las granjas de servidores.
Estos cambios pueden acelerar la entrega de contenido esttico y la
ejecucin de pginas dinmicas, compitiendo con otros productos open
source.
Fiabilidad y tolerancia a fallos. Microsoft ha reestructurado el modelo de
procesos para proteger de manera ms efectiva a IIS de cdigo errante y
proteger los sitios Web unos de otros. Estos cambios son cruciales para
proporcionar un alto nivel de disponibilidad a sitios de Web de comercio
electrnico y Web Services.

Sistemas Operativos 235

Seguridad. El cdigo de IIS se ha visto sujeto a una revisin de seguridad y


se han hecho cambios radicales en su configuracin inicial. Estos cambios
podran hacerlo ms resistente a vulnerabilidades de seguridad.
Desarrollo rpido con el servidor de aplicaciones integrado
Microsoft .NET Framework est profundamente integrado en el sistema operativo
Windows Server 2003. Microsoft ASP.NET permite la creacin de aplicaciones
Web de alto rendimiento. Con la tecnologa conectada a .NET, los desarrolladores
ya no estn obligados a crear cdigo pesado y esttico, y pueden trabajar
eficazmente con los lenguajes de programacin y las herramientas que ya
conocen.
Las aplicaciones ya existentes pueden volver a empaquetarse
fcilmente como servicios Web XML. Las aplicaciones UNIX pueden integrarse o
migrarse fcilmente. Y los desarrolladores pueden crear rpidamente aplicaciones
Web preparadas para servicios y dispositivos mviles mediante los controles de
formularios Web mviles de ASP.NET y otras herramientas.
Herramientas de administracin slidas
La nueva consola de administracin de directivas de grupo (GPMC) permite a los
administradores implementar y administrar mejor las directivas que automatizan
las reas de configuracin de claves, como los perfiles mviles, la seguridad, la
configuracin y los escritorios de los usuarios.
1.4.4 Versiones
La familia de servidores Windows 2003 est formada por cuatro versiones:

Web Edition
Standard Edition
Enterprise Edition
Datacenter Edition

Cada una de ellas necesita los siguientes requisitos del sistema:


Requisito
Velocidad
mnima de la
CPU

Web
Standard
Edition
Edition
133 MHz 133 MHz

Velocidad
550 MHz 550 MHz
recomendada
de la CPU

Enterprise Editon

Datacenter Edition

133MHz para equipos


basados en x 86.
733
MHz
para
equipos basados en
Itanium.
733 MHz

133MHz para equipos basados en


x 86.
733 MHz para equipos basados
en Itanium
733 MHz

Sistemas Operativos 236

Requisito

Web
Edition
Memoria RAM 128 MB
mnima
Memoria RAM 256 MB
mnima
recomendada
Memoria RAM 2 GB
mxima

Standard
Edition
128 MB

128 MB

512 MB

256 MB

256 MB

1 GB

4GB

32 GB para equipos
basados en x 86.
64 GB para equipos
basados en Itanium
Hasta 8

Soporte para 1 o 2
multiprocesa
dores

Hasta 4

Espacio
en 1.5 GB
disco
necesario
para
la
instalacin

1.5 GB

Enterprise Editon

Datacenter Edition

64 GB para equipos basados en x


86.
128 GB para equipos basados en
Itanium.
Un mnimo de 8.
Un mximo de 32 para equipos
basados en x86.
Un mximo de 64 para equipos
basados en Itanium.
1.5 GB para equipos 1.5 GB para equipos basados en
basados en X86.
x86.
2.0 GB para equipos 2.0 GB para equipos basados en
basados en Itanium.
Itanium.

1.5 WINDOWS XP
1.5.1 Historia
Windows XP es una continuacin de Windows 2000 en el hecho de que admite la
especificacin de la interfaz de configuracin y energa (ACPI), que proporciona
una administracin de energa y una configuracin del sistema seguras.
XP, est construido sobre los modernos sistemas operativos Windows NT y, los
que, hasta ahora, eran la gama alta de Microsoft destinada a empresas y
servidores. Windows XP fue construido sobre el motor renovado de Windows por
lo que, en teora, debe ser igual de estable.
1.5.2 Caractersticas
Windows XP viene en dos versiones que son Windows XP professional y Windows
XP Home Edition.
Windows XP requiere al menos 128 MB de RAM, 1.5 GB de disco duro (algo ms
si se quiere instalar despus otras cosas aparte del sistema operativo) y un
procesador de 233 MHz. Y esto slo es el mnimo. Para trabajar en condiciones
ptimas no servir casi ningn ordenador con ms de un ao y medio de
antigedad.
Windows XP ofrece caractersticas de administracin de energa mejoradas para
los equipos mviles y de escritorio. Tambin proporciona una compatibilidad ms

Sistemas Operativos 237

limitada para la administracin de energa de sistemas basados en la API de


administracin de energa avanzada.
Es un sistema compatible con ACPI, el sistema operativo administra, dirige y
coordina la energa de modo que el sistema est accesible para los usuarios al
instante, cuando sea necesario, mientras que se mantienen en silencio y con el
menor consumo de energia posible cuando no est funcionando activamente.
Windows XP incluye las siguientes caractersticas para la administracin de
energa:
Funcionamiento mejorado de reinicio y reanudacin. En Windows XP se
reducen los intervalos de espera de inicio y cierre de modo que el equipo
est preparado para utilizarlo rpidamente cuando el usuario lo active.
Energa eficaz. Las caractersticas que mejoran la eficacia de la energa,
especialmente para los equipos porttiles, incluyen la compatibilidad nativa
de tecnologas de control de rendimiento del procesador, la atenuacin de
la pantalla LCD cuando se utilice la energa de la batera y la desactivacin
del panel de la pantalla del equipo mvil cuando se cierre la tapa.
Compatibilidad de activacin. El equipo aparentemente est apagado
cuando no se utiliza, pero responde a sucesos de activacin, como una
llamada de telfono o una solicitud de red.
Interfaz de usuario para establecer preferencias de energa. Opciones de
energia , en el panel de control , proporciona una interfaz de usuario con la
que se pueden establecer preferencias mediante la seleccin o creacin de
esquemas de energa, la especificacin de opciones de utilizacin de
batera y el establecimiento de alarmas de baja energa. Si hay un sistema
de energa ininterrumpida (UPS), Opciones de energa administrativa
tambin dicho sistema.
Directiva de energa independiente para cada dispositivo. Todos los
dispositivos diseados para que utilicen
las caractersticas de
administracin de energa de windows pueden participar en la
administracin de la energa. Cuando no se estn utilizando, pueden
solicitar que el sistema operativo los coloque en un estado de bajo consumo
para conservar la energa.
1.5.3 Windows XP Professional
Est basada en el cdigo central de software utilizado en Windows 200 y Windows
NT worstation. Este cdigo, conocido como ncleo de windows NT, o el nuevo
motor de Windows, hace que Windows XP sea ms eficaz, seguro y estable que

Sistemas Operativos 238

Windows Me, Windows 98 o Windows 95. Incluso cuando se bloquea un


programa, el sistema seguir ejecutndose.
Seguridad del protocolo Internet (IPSec). El protocolo estndar que se utiliza
para enviar y recibir informacin a travs de Internet hace que los datos sean
susceptibles de ser interceptados, modificados, reproducidos o falsificados. Sin
seguridad, tanto las redes pblicas como privadas pueden ser objeto de vigilancia
y acceso no autorizado.
Windows XP professional utiliza IPSec para ofrecer una plataforma ideal para
proteger las comunicaciones en una intranet o en Internet.
Antes de enviar los datos, IPsec negocia con el equipo al que est conectado.
IPsec establece un nivel de seguridad apropiado para la sesin de comunicacin.
Despus, genera una clave de autentificacin secreta y autentica la identidad del
otro equipo, antes de comenzar a intercambiar los datos de manera segura.
Escenarios de reinicio reducidos drsticamente. Elimina la mayora de los
escenarios que obligaban a los usuarios finales a reiniciar los equipos en Windows
NT 4.0 y Windows 95/98/Me. Adems, una gran parte de las instalaciones de
software no requieren reiniciar.
Proteccin de cdigos mejorada. Las estructuras de los datos importantes del
ncleo son de slo lectura, por lo que los controladores y las aplicaciones no
pueden corromperlas. Todos los cdigos de controladores de dispositivos son de
slo lectura y con proteccin de pgina.
Soporte. Proporciona un mecanismo para instalar y ejecutar colateralmente varias
versiones de componentes individuales de Windows. Esto ayuda a resolver el
problema DLL hell, al permitir que una aplicacin escrita y probada con una
versin de un componente del sistema siga utilizando la misma versin, aunque se
instale una aplicacin que utilice una versin ms reciente del mismo componente.
Proteccin de archivos de Windows. Protege los archivos principales del
sistema contra la sobrescritura por la instalacin de aplicaciones. Si se sobrescribe
un archivo, la proteccin de archivos de Windows restaura la versin correcta.
Instalador de Windows. Servicio del sistema que ayuda al usuario a instalar,
configurar, realizar el seguimiento y quitar programas de software correctamente.
Ayuda a minimizar los periodos de inactividad y aumenta la estabilidad del
sistema.
Arquitectura multitarea preferente. Su diseo permite que varias aplicaciones se
ejecuten simultneamente, al tiempo que garantiza una gran respuesta y
estabilidad del sistema. Memoria escalable y soporte de procesador Admite

Sistemas Operativos 239

hasta 4 gigabytes (GB) de memoria RAM y hasta dos multiprocesadores


simtricos.
Sistema de cifrado de archivos (EFS) con soporte para varios usuarios. Cifra
todos los archivos con una clave generada aleatoriamente. Los procesos de
cifrado y descifrado son transparentes para el usuario. En Windows XP
Professional, EFS permite que varios usuarios tengan acceso a un documento
cifrado. El ms alto nivel de proteccin contra piratas informticos y robo de datos.
Seguridad IP (IPSec). Ayuda a proteger los datos transmitidos a travs de una
red. IPSec es una parte importante de la seguridad de las redes virtuales privadas
(VPN), que permiten a las organizaciones transmitir datos de forma segura a
travs de Internet. Los administradores de tecnologas de la informacin podrn
crear redes virtuales privadas seguras con rapidez y facilidad.
Soporte para Kerberos. Proporciona el estndar industrial y autenticacin de alto
nivel con un nico inicio de sesin para los recursos de la empresa basados en
Windows 2000. Kerberos es un estndar de Internet especialmente eficaz en
redes que incluyen sistemas operativos diferentes, como UNIX.
Soporte para tarjetas inteligentes. Las capacidades de tarjeta inteligente estn
integradas en el sistema operativo, incluido el soporte para el inicio de sesin con
tarjetas inteligentes en sesiones del servidor de terminal alojadas en servidores
basados en Windows .Server 2003 (la plataforma de servidores de la prxima
generacin). Las tarjetas inteligentes mejoran las soluciones slo para software,
como la autenticacin de clientes, el inicio de sesin interactivo, la firma de cdigo
y el correo electrnico seguro.
Hibernacin.Tras un tiempo establecido, o cuando se requiera, Windows XP
Professional guarda la memoria en el disco y desconecta la energa. Cuando se
restaura la energa, todas las aplicaciones se vuelven a abrir exactamente como
se dejaron.
Fiabilidad a nivel empresarial. Windows XP proporciona un nuevo nivel de
estabilidad, para que usted se pueda concentrar en el trabajo. Por ejemplo, en la
mayora de los casos, si se produce un error en un programa, el equipo seguir
funcionando.
Rendimiento avanzado. Windows XP administra los recursos del sistema con
eficacia; obtiene los mismos niveles de rendimiento que Windows 2000 y
sobrepasa en un 46% los de Windows 98 Segunda edicin.
Escritorio remoto. Escritorio remoto permite crear una sesin virtual y utilizar el
equipo de escritorio desde otro equipo que ejecute Windows 95 o posterior, lo que

Sistemas Operativos 240

le permitir tener acceso a todos los datos y aplicaciones aunque no se encuentre


en la oficina.
Nuevo diseo visual basado en tareas. Por medio de un diseo ms claro y
nuevas pistas visuales llegar rpidamente a las tareas que ms utiliza.
Soporte para redes inalmbricas 802.1x. El soporte para redes inalmbricas
802.1x proporciona soporte para acceso seguro, adems de mejoras de
rendimiento en redes inalmbricas.
Windows Messenger. Windows Messenger es la manera ms fcil de
comunicarse y colaborar en tiempo real utilizando el equipo. Puede ver el estado
en lnea de sus personas de contacto y elegir comunicarse con ellas mediante
texto, voz o vdeo con un mejor rendimiento y una calidad superior.
Sistema de codificacin de archivos. El sistema de codificacin de archivos
proporciona un alto nivel de proteccin contra piratas informticos y el robo de
datos, mediante la codificacin transparente de los archivos con una clave
generada aleatoriamente.
Rpida reanudacin desde el modo de hibernacin o suspensin. Ahorre la
energa de las bateras cuando trabaje fuera de la oficina. Con Windows XP su
equipo porttil puede entrar en modo de suspensin o hibernacin y comenzar a
trabajar rpidamente tras reanudar la actividad desde la suspensin o hibernacin.
Centro de ayuda y soporte con asistencia remota. Adems de una exhaustiva
documentacin, el Centro de ayuda y soporte de Windows XP incluye Asistencia
remota, que le permite que un amigo o un profesional de tecnologas de la
informacin, que tambin ejecute Windows XP, controle de manera remota su
equipo para mostrarle un proceso o ayudarle a resolver un problema.
Restaurar sistema. Si se produce algn error en el equipo, puede devolver el
sistema a su estado anterior.
1.5.4 Windows XP Home Edition
El sistema operativo Windows XP Home Edition ofrece un conjunto de nuevas
caractersticas que ayudan a trabajar de manera ms inteligente, conectarse ms
rpido a Internet y con otros usuarios.
Proteccin de archivos de Windows. Impide que las aplicaciones cambien
accidentalmente los archivos importantes del sistema operativo. De esta manera,
el sistema se protege de forma activa y automtica.

Sistemas Operativos 241

Arquitectura de modo de ncleo protegido. Las aplicaciones no tienen acceso


al ncleo del cdigo de software en que se basa el sistema operativo. De esta
manera, aumenta significativamente la fiabilidad del sistema.
Separacin de procesos. Las aplicaciones de roaming no provon daos en el
equipo. Cada aplicacin est en un espacio de memoria completamente separado
y protegido.
Monitor del sistema. Analiza automticamente cientos de diferentes medidas del
sistema, por ejemplo, memoria, disco y rendimiento de la red.
Administrador de tareas. Ofrece informacin til acerca del rendimiento del
equipo y permite terminar programas inactivos. Tambin puede solicitar un
mecanismo para informes opcional que se ajuste mejor a sus requisitos
especficos.
Redes domsticas. Permiten:
Configurar una red domstica, incluidas las conexiones fsicas para
impresoras o faxes, e instalar protocolos y puentes.
Compartir una conexin de Internet con todos los equipos de una red.
Compartir recursos en un equipo.
Novedades:
La red domstica se ha mejorado con el servidor de seguridad de conexin
a Internet para ayudarle a protegerse de accesos no autorizados mientras
est conectado a Internet.
Conexin compartida a Internet. Permite que varios equipos domsticos
tengan acceso a Internet al mismo tiempo a travs de la misma conexin de
banda ancha o de acceso telefnico.
Windows XP Home Edition ya dispone de una opcin para desconectar de
forma remota la conexin de acceso telefnico y poder utilizar la lnea de
telfono y volver a conectarse de nuevo fcilmente.
Asistente para la publicacin en la red. El Asistente para la publicacin en
Web muestra cmo publicar imgenes en Internet fcil y rpidamente para
que pueda compartirlas con otros.
Windows XP Professional le proporciona todas las ventajas de Windows XP Home
Edition, adems de caractersticas adicionales de acceso remoto, seguridad,
rendimiento, facilidad de uso y soporte multilinge.
A continuacin se presenta un paralelo con las caractersticas correspondientes a
las dos versiones de XP, vistas anteriormente:

Sistemas Operativos 242

Caractersticas

Windows
XP
Home
Edition

Windows XP
Professional

Todas las caractersticas de Windows XP Home Edition


Nueva interfaz de usuario: encontrar lo que necesite cuando lo
SI
SI
necesite con ms facilidad. 7
Una base en la que puede confiar: mantiene su equipo
funcionando cuando ms lo necesita.
Reproductor de Windows Media para Windows XP: un solo lugar
para buscar, reproducir, organizar y almacenar medios digitales.
Asistente para configuracin de red: conecte y comparta
fcilmente los equipos y dispositivos de su hogar.
Windows Messenger: lo ltimo en herramientas de comunicaciones
y colaboracin, con mensajera instantnea, conferencias de vdeo y
voz y aplicaciones compartidas.
Centro de ayuda y soporte tcnico: permite una fcil resolucin de
los problemas y obtener ayuda y soporte tcnico cuando lo necesite.
Soporte para dispositivos mviles: acceso a la informacin mientras se encuentra de viaje
Compatibilidad avanzada con equipos porttiles (incluida la
SI
SI
compatibilidad con ClearType, DualView, mejoras en la
administracin de la energa): le permite realizar el mismo trabajo
mientras est de viaje que en la oficina.
Conexiones inalmbricas: configuracin de red inalmbrica 802.1x
SI
SI
automtica.
Escritorio remoto: obtenga acceso remoto a su equipo con
NO
SI
Windows XP Professional desde otro equipo con Windows, de
manera que pueda trabajar con todos sus datos y aplicaciones
mientras est fuera de la oficina.
Archivos y carpetas sin conexin: tenga acceso a archivos y
NO
SI
carpetas de un recurso compartido de red cuando est desconectado
del servidor.
Alta disponibilidad con capacidad para trabajar en varias tareas a la vez
Inicio rpido y mejoras en la administracin de la energa:
SI
SI
tiempos de reinicio y reanudacin ms rpidos.
Multitarea: permite ejecutar varias aplicaciones a la vez.
SI
SI
Compatibilidad con procesador escalable: admite varios
NO
SI
procesadores bidireccionales.
Mantiene sus datos y su intimidad a salvo
Servidor de seguridad de conexin a Internet: protege
SI
SI
automticamente el equipo contra el acceso no autorizado cuando
est conectado a Internet.
Proteccin de la confidencialidad de Internet Explorer 6:
SI
SI
mantiene el control sobre su informacin personal cuando visite sitios
Web.
Sistema de cifrado de archivos: protege los datos confidenciales
NO
SI
de los archivos que se almacenan en el disco mediante el sistema de
archivos NTFS.
Control de acceso: restringe el acceso a los archivos, las
NO
SI
aplicaciones y otros recursos seleccionados.
Diseado para funcionar con servidores y soluciones de administracin de Microsoft
Windows

Sistemas Operativos 243

Administracin centralizada: combine servidores Windows XP


Professional con un dominio de un servidor Windows para
aprovechar las ventajas de la completa gama de eficaces
herramientas de administracin y seguridad.
Directiva de grupo: simplifica la administracin de grupos de
usuarios y equipos.
Instalacin y mantenimiento de software: instale, configure,
repare y quite aplicaciones automticamente.
Perfiles mviles de usuario: obtenga acceso a todos sus
documentos y valores de configuracin sin importar dnde inicia la
sesin.
Servicio de instalacin remota (RIS): permite la instalacin remota
de sistemas operativos donde los escritorios se pueden instalar a
travs de la red.
Comunique con personas de todo el mundo de un modo eficaz
Modo binario nico en todo el mundo: escriba texto en cualquier
idioma y ejecute la versin en cualquier idioma de aplicaciones
Win32 en cualquier versin de Windows XP.
Complemento Interfaz de usuario multilinge (MUI): cambie el
idioma de la interfaz de usuario para obtener cuadros de dilogo,
mens, archivos de ayuda, diccionarios, herramientas de correccin,
etc. en otros idiomas.

NO

SI

NO

SI

NO

SI

NO

SI

NO

SI

SI

SI

NO

SI

1.6 Windows NT
1.6.1 Arquitectura
Wndows NT presenta una arquitectura del tipo cliente-servidor. Los programas de
aplicacin son contemplados por el sistema operativo como si fueran clientes a los
que hay que servir, y para lo cual viene equipado con distintas entidades
servidoras uno de los objetivos fundamentales de diseo fue el tener un ncleo tan
pequeo como fuera posible, en el que estuvieran integrados mdulos que dieran
respuesta a aquellas llamadas al sistema que necesariamente se tuvieran que
ejecutar en modo privilegiado (tambin llamado modo kernel, modo ncleo y modo
supervisor). El resto de las llamadas se expulsaran del ncleo hacia otras
entidades que se ejecutaran en modo no privilegiado (modo usuario), y de esta
manera el ncleo resultara una base compacta, robusta y estable. Por eso se dice
que Windows NT es un sistema operativo basado en micro-kernel
En la arquitectura se distingue un ncleo que se ejecuta en modo privilegiado, y se
denomina Executive, y unos mdulos que se ejecutan en modo no privilegiado,
llamados subsistemas protegidos.
Los programas de usuario (tambin llamados programas de aplicacin)
interaccionan con cualquier sistema operativo (S.O. en adelante) a travs de un
juego de llamadas al sistema propio de dicho sistema. En el mundo Windows en
general, las llamadas al sistema se denominan API (Application Programming
Interfaces, interfaces para la programacin de aplicaciones).

Sistemas Operativos 244

Grfica 94. Arquitectura Windows NT

El ncleo se ejecuta en modo privilegiado (Executive) y en modo no privilegiado


(subsistemas protegidos).
Los subsistemas protegidos
Son una serie de procesos servidores que se ejecutan en modo no privilegiado, al
igual que los procesos de usuario, pero que tienen algunas caractersticas propias
que los hacen distintos.
Se inician al arrancar el S.O. y existen dos tipos: integrales y de entorno.
Un subsistema integral es aquel servidor que ejecuta una funcin crtica del S.O.
(como por ejemplo el que gestiona la seguridad). Un subsistema de entorno da
soporte a aplicaciones procedentes de S.O. distintos, adaptndolas para su
ejecucin bajo Windows NT. Existen tres de este tipo:
Win32, que es el principal, y proporciona la interfaz para aplicaciones
especficamente construidas para Windows NT.
POSIX, que soporta aplicaciones UNIX.
OS/2, que da el entorno a aplicaciones procedentes del S.O. del mismo
nombre.
El subsistema Win32. Es el ms importante, ya que atiende no slo a las
aplicaciones nativas de Windows NT, sino que para aquellos programas no Win32,
reconoce su tipo y los lanza hacia el subsistema correspondiente. En el caso de

Sistemas Operativos 245

que la aplicacin sea MS-DOS o Windows de 16 bits (Windows 3.11 e inferiores),


lo que hace es crear un nuevo subsistema protegido. As, la aplicacin DOS o
Win16 se ejecutara en el contexto de un proceso llamado VDM (Virtual DOS
Machine, mquina virtual DOS), que no es ms que un simulador de un ordenador
funcionando bajo MS-DOS. Las llamadas al API Win16 seran correspondidas con
las homnimas en API Win32. Microsoft llama a esto WOW (Windows On Win32).
El subsistema soporta una buena parte del API Win32. As, se encarga de todo lo
relacionado con la interfaz grfica con el usuario (GUI), controlando las entradas
del usuario y salidas de la aplicacin.
El subsistema POSIX. La norma POSIX (Portable Operating System Interface for
UNIX) fue elaborada por IEEE para conseguir la portabilidad de las aplicaciones
entre distintos entornos Windows NT,UNIX, VMS, etc. Se trata de un conjunto de
23 normas, identificadas como IEEE 1003.0 a IEEE 1003.22, o tambin POSIX.0 a
POSIX.22, de las cuales el subsistema POSIX soporta la POSIX.1, que define un
conjunto de llamadas al sistema en lenguaje C. El subsistema sirve las llamadas
interaccionando con el Executive.
El subsistema OS/2. Igual que el subsistema POSIX proporciona un entorno para
aplicaciones UNIX, este subsistema da soporte a las aplicaciones del S.O. OS/2.
Proporciona la interfaz grfica y las llamadas al sistema; las llamadas son servidas
con ayuda del Executive.
El subsistema proceso de inicio. El proceso de inicio (Logon Process) recibe las
peticiones de conexin por parte de los usuarios. En realidad son dos procesos,
cada uno encargndose de un tipo distinto de conexin: el proceso de inicio local,
que gestiona la conexin de usuarios locales directamente a una mquina
Windows NT; y el proceso de inicio remoto, el cual gestiona la conexin de
usuarios remotos a procesos servidores de NT.
El subsistema de seguridad. Este subsistema interacciona con el proceso de
inicio y el llamado monitor de referencias de seguridad, de esta forma se construye
el modelo de seguridad en Windows NT. El subsistema de seguridad interacciona
con el proceso de inicio, atendiendo las peticiones de acceso al sistema. Consta
de dos subcomponentes: la autoridad de seguridad local y el administrador de
cuentas.
El primero es el corazn del subsistema de seguridad, en general gestiona la
poltica de seguridad local, as, se encarga de generar los permisos de acceso, de
comprobar que el usuario que solicita conexin tiene acceso al sistema, de
verificar todos los accesos sobre los objetos (para lo cual se ayuda del monitor de
referencias a seguridad) y de controlar la poltica de auditoras, llevando la cuenta
de los mensajes de auditora generados por el monitor de referencias. El
administrador de cuentas mantiene una base de datos con las cuentas de todos
los usuarios (login, claves, identificaciones, etc.).

Sistemas Operativos 246

El Executive. No debemos confundir el Executive con el ncleo de Windows NT,


aunque muchas veces se usan (incorrectamente) como sinnimos. El Executive
consta de una serie de componentes software, que se ejecutan en modo
privilegiado, uno de los cuales es el ncleo. Dichos componentes son totalmente
independientes entre s, y se comunican a travs de interfaces bien definidas. En
el diseo se procur dejar el ncleo tan pequeo como fuera posible y, su
funcionalidad es mnima.
El administrador de objetos (Object Manager). Se encarga de crear, destruir y
gestionar todos los objetos del Executive. Se tiene infinidad de objetos: procesos,
subprocesos, ficheros, segmentos de memoria compartida, semforos, mutex,
sucesos, etc. Los subsistemas de entorno (Win32, OS/2 y POSIX) tambin tienen
sus propios objetos. Por ejemplo, un objeto ventana es creado (con ayuda del
administrador de objetos) y gestionado por el subsistema Win32. La razn de no
incluir la gestin de ese objeto en el Executive es que una ventana slo es innata
de las aplicaciones Windows, y no de las aplicaciones UNIX o OS/2. Por tanto, el
Executive no se encarga de administrar los objetos relacionados con el entorno de
cada S.O. concreto, sino de los objetos comunes a los tres.
El administrador de procesos (Process Manager). Se encarga (en colaboracin
con el administrador de objetos) de crear, destruir y gestionar los procesos y
subprocesos. Una de sus funciones es la de repartir el tiempo de CPU entre los
distintos subprocesos. Suministra slo las relaciones ms bsicas entre procesos
y subprocesos, dejando el resto de las interrelaciones entre ellos a cada
subsistema protegido concreto. Por ejemplo, en el entorno POSIX existe una
relacin filial entre los procesos que no existe en Win32, de manera que se
constituye una jerarqua de procesos. Como esto slo es especfico de ese
subsistema, el administrador de objetos no se entromete en ese trabajo y lo deja
en manos del subsistema.
El administrador de memoria virtual (Virtual Memory Manager). Windows NT y
UNIX implementan un direccionamiento lineal de 32 bits y memoria virtual
paginada bajo demanda. El VMM se encarga de todo lo relacionado con la poltica
de gestin de la memoria. Determina los conjuntos de trabajo de cada proceso,
mantiene un conjunto de pginas libres, elige pginas vctima, sube y baja pginas
entre la memoria RAM y el archivo de intercambio en disco, etc.
El administrador de entrada salida (I/O Manager). Consta de varios
subcomponentes: el administrador del sistema de ficheros, el servidor de red, el
redirector de red, los drivers de dispositivo del sistema y el administrador de
cachs. Buena parte de su trabajo es la gestin de la comunicacin entre los
distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida
que permite el tratamiento de todos los drivers de una manera homognea, sin
preocuparse del funcionamiento especfico de cada uno. Trabaja en conjuncin
con otros componentes del Executive, sobre todo con el VMM. Le proporciona la

Sistemas Operativos 247

E/S sncrona y asncrona, la E/S a archivos asignados en memoria y las caches de


los ficheros. El administrador de caches no se limita a gestionar unos cuantos
buffers de tamao fijo para cada fichero abierto, sino que es capaz de estudiar las
estadsticas sobre la carga del sistema y variar dinmicamente esos tamaos de
acuerdo con la carga. El VMM realiza algo parecido en su trabajo.
El monitor de referencias a seguridad. Este componente da soporte en modo
privilegiado al subsistema de seguridad, con el que interacciona. Su misin es
actuar de alguna manera como supervisor de accesos, ya que comprueba si un
proceso determinado tiene permisos para acceder a un objeto determinado, y
monitoriza sus acciones sobre dicho objeto. De esta manera es capaz de generar
los mensajes de auditoras. Soporta las validaciones de acceso que realiza el
subsistema de seguridad local.
El ncleo (Kernel). Situado en el corazn de Windows NT, se trata de un microkernel que se encarga de las funciones ms bsicas de todo el sistema operativo:
ejecucin de subprocesos, sincronizacin multiprocesador, manejo de las
interrupciones hardware.
El nivel de abstraccin de hardware (HAL). Es una capa de software incluida en
el Executive que sirve de interfaz entre los distintos drivers de dispositivo y el resto
del sistema operativo. Con el HAL, los dispositivos se presentan al S.O. como un
conjunto homogneo con el cual interacciona a travs de un conjunto de funciones
bien definidas. Estas funciones son llamadas tanto desde el S.O. como desde los
propios drivers. Permite a los drivers de dispositivo adaptarse a distintas
arquitecturas de E/S sin tener que ser modificados en gran medida. Adems oculta
los detalles hardware que conlleva el multiprocesamiento simtrico de los niveles
superiores del S.O.
Llamadas a procedimientos locales y remotos. Windows NT, al tener una
arquitectura cliente-servidor, implementa el mecanismo de llamada a
procedimiento remoto (RPC) como medio de comunicacin entre procesos clientes
y servidores, situados ambos en mquinas distintas de la misma red. Para clientes
y servidores dentro de la misma mquina, la RPC toma la forma de llamada a
procedimiento local (LPC).
Llamada a Procedimiento Remoto (Remote Procedure Call -RPC). Se puede
decir que el sueo de los diseadores de Windows NT es que algn da se
convierta en un sistema distribuido puro, es decir, que cualquiera de sus
componentes pueda residir en mquinas distintas, siendo el kernel en cada
mquina el coordinador general de mensajes entre los distintos componentes. En
la ltima versin de Windows NT esto no es an posible. No obstante, el
mecanismo de RPC permite a un proceso cliente acceder a una funcin situada en
el espacio virtual de direcciones de otro proceso servidor situado en otra mquina
de una manera totalmente transparente. Vamos a explicar el proceso en conjunto.

Sistemas Operativos 248

Llamada a procedimiento local (Local Procedure Call LPC. Se usan cuando


un proceso necesita los servicios de algn subsistema protegido, tpicamente
Win32. El subsistema Win32 va guardando en su propio espacio de direcciones
una lista con todos los objetos que le van pidiendo los procesos. Por consiguiente,
los procesos no tienen acceso a la memoria donde estn los objetos; simplemente
obtienen un descriptor para trabajar con ellos.
1.6.2 Windows NT Server
Windows NT Server es un sistema operativo para servidores, ampliable e
independiente de la plataforma. Puede ejecutarse en sistemas basados en
procesadores Intel x86, RISC y DEC Alpha, ofreciendo al usuario mayor libertad a
la hora de elegir sus sistemas informticos. Es ampliable a sistemas de
multiproceso simtrico, lo que permite incorporar procesadores adicionales cuando
se desee aumentar el rendimiento.
Internamente posee una arquitectura de 32 bits. Su modelo de memoria lineal de
32 bits elimina los segmentos de memoria de 64 KB y la barrera de 640 KB de
MS-DOS.
Posee mltiples threads (subprocesos) de ejecucin, lo que permite utilizar
aplicaciones ms potentes. La proteccin de la memoria garantiza la estabilidad
mediante la asignacin de reas de memoria independientes para el sistema
operativo y para las aplicaciones, con el fin de impedir la alteracin de los datos.
La capacidad de multitarea de asignacin prioritaria permite al sistema operativo
asignar tiempo de proceso a cada aplicacin de forma eficaz.
Arquitectura de redes abiertas. Windows NT Server es compatible con los
estndares NDIS (Especificacin de la interfaz del controlador de red) y TDI
(Interfaz del controlador de transporte). NDIS es una interfaz estndar para
comunicacin entre controladores de tarjetas adaptadoras de red y protocolos de
red. NDIS le permite combinar y coordinar tarjetas y protocolos de red sin que sea
necesario disponer de una versin diferente del protocolo de red para cada tipo de
tarjeta. Permite tambin utilizar varios protocolos en una misma tarjeta de red. Con
Windows NT Server se suministran cuatro protocolos compatibles con el estndar
NDIS: TCP/IP, Microsoft NWLink, NetBEUI y DLC (Control de vnculos de datos).
La interfaz TDI se comunica entre el protocolo de red y el software de red de alto
nivel (como el servidor y el redirector). TDI elimina la necesidad de que el
redirector y el servidor se comuniquen directamente con los protocolos de red, o
de tener informacin de los mismos, permitiendo de esta forma utilizar protocolos,
servidores o redirectores diferentes con Windows NT Server. Tambin es
compatible con aplicaciones de RPC (Llamada a procedimientos remotos),
aplicaciones de sistema de entrada/salida bsico de red (NetBIOS) y aplicaciones
con Windows Sockets.

Sistemas Operativos 249

Grfica 95. Arquitectura de Windows NT con Advanced Server

Seguridad incorporada. Windows NT Server incorpora la seguridad en el sistema


operativo. El control de acceso discrecional le permite asignar permisos a archivos
individuales. El concepto de derechos de usuario le ofrece un sistema de control
discrecional de las funciones bsicas del sistema, como establecer la hora y cerrar
la computadora. Se incluyen, asimismo, funciones completas de auditora.
Windows NT Server permite crear dominios y establecer relaciones de confianza,
con el fin de centralizar las cuentas de usuario de la red y otro tipo de informacin
de seguridad, facilitando el uso y la administracin de la red. Con una
administracin centralizada de la seguridad, slo es necesario administrar una
cuenta por cada usuario. Dicha cuenta permite al usuario acceder a todos los
recursos de la red.
Registro de configuracin. Windows NT Server y Windows NT Workstation
mantienen una base de datos denominada Registro. Esta base de datos contiene
informacin acerca del sistema operativo, de la computadora y de los usuarios que
anteriormente hayan iniciado sesiones en esta computadora. Las aplicaciones que

Sistemas Operativos 250

detecten la presencia de Windows NT podrn almacenar en el Registro la


informacin de inicializacin.
El Registro reemplaza la necesidad de separar los archivos de configuracin. Sin
embargo, para ser compatible con aplicaciones escritas para utilizar CONFIG.SYS
y AUTOEXEC.BAT, Windows NT automticamente mantiene y usa versiones de
estos archivos que contienen solamente la informacin de la aplicacin.
Administracin de las estaciones de trabajo de los usuarios. Los perfiles de
usuario de Windows NT Server le permiten proporcionar mayor facilidad de uso a
los usuarios y al mismo tiempo restringir sus actividades en las estaciones de
trabajo. Si desea utilizar perfiles para aumentar la productividad de los usuarios,
puede guardar en los servidores un perfil con la configuracin y las preferencias
de los usuarios, tales como las conexiones de red, los grupos de programas e
incluso los colores de la pantalla. Este perfil se utilizar cada vez que el usuario
inicie una sesin en cualquier computadora con Windows NT, de forma que el
entorno definido por el usuario le siga de una estacin de trabajo a otra. Si desea
utilizar los perfiles de usuario para limitar las actividades de los usuarios, deber
agregar restricciones al perfil, como por ejemplo, impedir que el usuario cambie los
grupos y los elementos de programas que usted haya definido, o inhabilitar parte
de la interfaz de Windows NT cuando el usuario haya iniciado una sesin.
Monitorizacin del rendimiento. Windows NT Server incluye tambin una
sofisticada aplicacin que permite monitorizar el rendimiento. Puede utilizar esta
herramienta para observar, representar grficamente y registrar cientos de datos
estadsticos acerca de tipos especficos de rendimiento, agrupados en categoras
generales tales como trfico entre servidores de la red, rendimiento de los discos,
uso de los procesadores, y estadsticas de los servidores y las estaciones de
trabajo.
El Monitor de sistema le permite supervisar simultneamente el rendimiento de un
gran nmero de computadoras remotas, de forma que pueda controlar y comparar
simultneamente el rendimiento y el uso de un gran nmero de servidores.
Seguimiento de la actividad de la red. Windows NT Server proporciona
numerosas herramientas para realizar el seguimiento de la actividad y el uso de la
red. Puede observar los servidores y examinar qu recursos estn compartiendo,
ver qu usuarios estn conectados a un servidor de la red y observar qu archivos
tienen abiertos, registrar y ver las anotaciones de auditora de seguridad,
mantener registros de error exhaustivos y especificar las alertas que se deben
enviar a los administradores en caso de que se produzcan determinados sucesos.
Si su red utiliza el protocolo TCP/IP, podr emplear tambin la utilidad de
administracin SNMP, suministrada con Windows NT Server.

Sistemas Operativos 251

1.6.3 Ventajas de Windows NT

La instalacin es muy sencilla y no requiere de mucha experiencia.


Es multitarea y multiusuario.
Apoya el uso de mltiples procesadores.
Soporta diferentes arquitecturas.
Permite el uso de servidores no dedicados.
Soporta acceso remoto, ofreciendo la deteccin de intrusos, y mucha
seguridad en estas sesiones remotas.
Apoyo para archivos de DOS y MAC en el servidor.
El sistema est protegido del acceso ilegal a las aplicaciones en las
diferentes configuraciones.
Permite cambiar peridicamente las contraseas.
Soporta mltiples protocolos.
Carga automticamente manejadores en las estaciones de trabajo.
Trabaja con impresoras de estaciones remotas.
Soporta mltiples impresoras y asigna prioridades a las colas de impresin.
Muestra estadsticas de Errores del sistema, Cach, Informacin Del disco
duro, Informacin de Manejadores, N de archivos abiertos, Porcentaje de
uso del CPU, Informacin general del servidor y de las estaciones de
trabajo, etc.
Brinda la posibilidad de asignar diferentes permisos a los diferentes tipos de
usuarios.
Permite realizar diferentes tipos de auditoras, tales como del acceso a
archivos, conexin y desconexin, encendido y apagado del sistema,
errores del sistema, informacin de archivos y directorios, etc.
No permite criptografa de llave pblica ni privada.
No permite realizar algunas tareas en sesiones remotas, como instalacin y
actualizacin.

1.6.4 Desventajas de Windows NT


Tiene ciertas limitaciones por RAM, como: N Mximo de archivos abiertos
y almacenamiento de disco total.
Requiere como mnimo 64 Mb en RAM y un procesador Pentium de 133
MHz o uno superior.
El usuario no puede limitar la cantidad de espacio en el disco duro.
No soporta archivos de NFS.
No ofrece el bloqueo de intrusos.
No soporta la ejecucin de algunas aplicaciones para DOS.

Sistemas Operativos 252

1.6.5 Caractersticas
Es nueva tecnologa para el mundo de las PC y es diferente por su
ambiente grfico, pero realmente no es nueva tecnologa.
Est basado en variaciones del kernel de Mac de UNIX. La arquitectura del
microkernel soporta aplicaciones no diseadas para Windows NT.
Operaciones bsicas de sistemas y otras capas sobre ella.
Soporta 5 subsistemas: Windows 32 bits / Windows 16 bits / DOS / POSIX /
OS/2.
Funciona como Cliente Servidor en un ambiente de red.
Permite desarrollar servicios de redireccionamiento para LAN Manager de
Mips, RISC y Digital Alpha.
Soporta sistemas de multiproceso.
Cada aplicacin se encuentra ejecutando en un hilo tratado como una caja
multiprocesadora.
Al igual que OS/2 ejecuta aplicaciones con errores de codificacin,
principalmente al ejecutarse en procesadores 386 y 486.
Cada aplicacin es limitada a un espacio de memoria (Esquema de
direccionamiento de 32 bits real). Ejecuta aplicaciones de 16 y 32 bits y de
otros Sistemas Operativos y para RISC de 64 bits.
Existe una versin para Laptop.
Soporta la tecnologa Plug-in para sistemas API y sistemas de archivos
instalables.
Tambin cuenta con servicios bsicos de redes y APIs para archivos,
manejadores de impresin, manejo de mensajes y seguridad directa.
Aplicaciones para redes digitales que pueden ejecutarse en diferentes
plataformas.
Implanta facilidades para el uso de OSF, DCE y RPCs.
Para facilitar los puertos de aplicacin asla el kernel del Hardware (Tipo de
interfaz para el Sistema Operativo), con lo que se logra la portabilidad o
compatibilidad a nivel de cdigo.
Provee datos, aplicaciones y proteccin del sistema contra accesos
inadvertidos.
Permite a los usuarios un acceso seguro a ms informacin sin
comprometer la seguridad del sistema.
Conserva las principales caractersticas del servidor 3.51 incluso el
protocolo nativo NetBEUI, IPX y TCP/IP.
Soporta hasta 256 usuarios, administracin de multidominio y replicacin de
directorio.
Nuevas o mejoradas herramientas de administracin y perfeccionamiento
en la ejecucin.
El servidor NT relacionado con Internet, enva la informacin con el servidor
de Internet IIS versin 2.0. Tambin hace uso del FTP. Relaciona nuevos
rasgos punto a punto con el protocolo PPTP y TCP/IP.

Sistemas Operativos 253

Ayuda a consolidar la posicin de NT como la plataforma del servidor en


escenarios de Internet.
Adopta el estilo de Unix de servicio de dominio DNS como norma.
Incluye herramientas basadas en el Web referentes a la administracin.
Seguridad. Windows NT ofrece gran seguridad por medio del acceso por cuentas
y contraseas. Es decir un usuario debe tener su cuenta asignada y una
contrasea para poder tener acceso al sistema.
Contiene protecciones para directorios, archivos, y perifricos, es decir que todo
esto se encuentra con una contrasea para poder ser utilizados.
Concepto de derechos.Permite a un grupo de usuarios efectuar determinadas
operaciones.
Cuenta administrador. Controla todos los permisos y con ellas se puede: dar de
alta; asignar cuentas; cancelar derechos.
Comunicacin. Permite acceder y compartir discos en red. Permite compartir
archivos, directorios y perifricos.
Sistemas de Archivos. Tiene 3 diferentes tipos y uno nuevo desarrollado por NT.
Los primeros 3 son para compatibilidad: FAT para DOS; HPFS para OS/2; CDFS
se usa para acceder discos compactos; NTFS es el sistema de archivos propio de
Windows NT, el cual est basado en un sistema de transacciones, es decir que
tiene la capacidad de almacenar una gran cantidad de operaciones a disco para
que en el caso de alguna falla este elemento pueda ser usado para la
reconstruccin del sistema de archivos del disco.
Multitarea. Para la ejecucin simultnea de mltiples tareas NT utiliza: Manager;
Scheduler; Manejador de excepciones e interrupciones. Mecanismos de
sincronizacin. El usuario puede dejar ejecutando alguna tarea en una ventana y
seguir trabajando en otra.
Memoria Virtual. NT tiene un manejador de memoria virtual que permite el uso de
un espacio de direccionamiento de 2 GB. Este espacio de direccionamiento esta
protegido de otros procesos del sistema. Traduce direcciones virtuales a
direcciones fsicas. Y tambin se encarga del problema de traer y llevar pginas
de disco a memoria y de memoria a disco.
Protocolos que soporta. Son los siguientes:
NetBEUI.
TCP/IP.
IPX/SPX.

Sistemas Operativos 254

Banyan
DECnet.
Apple Talk.
Funcionamiento de TCP/IP. Protocolo de control de transmisin/Protocolo
Internet. Fue desarrollado a finales de los aos 70, como resultado de un proyecto
de investigacin sobre interconexin de redes realizado por la Agencia de
proyectos de investigacin avanzada para la defensa (DARPA) de Estados
Unidos. La principal ventaja y utilidad de TCP/IP es que es un protocolo estndar y
reencaminable; se trata del protocolo ms completo y aceptado de todos los
existentes. Permite comunicarse a travs de redes interconectadas con distintos
sistemas operativos y arquitecturas de hardware, como UNIX o computadoras
principales, as como con Windows NT.
Permite comunicarse a travs de redes interconectadas con distintos sistemas
operativos y arquitecturas de hardware, como UNIX o computadoras principales,
as como con Windows NT.
TCP/IP de Microsoft utiliza tambin la interfaz de NetBIOS, comnmente conocida
como peticin para comentarios (RFC) de NetBIOS. Adems, Microsoft
proporciona diversas utilidades TCP/IP para su uso con TCP/IP en Windows NT.
Es el protocolo ms aceptado, aunque no es tan rpido como NetBEUI en redes
locales de pequeo tamao.
Funcionamiento de NetBEUI. NetBEUI (Interfaz extendida de usuario de
NetBIOS) fue presentado por primera vez por IBM en 1985. NetBEUI es un
protocolo compacto, eficiente y rpido.
NetBEUI est optimizado para obtener un rendimiento muy elevado cuando se
utiliza en redes locales o segmentos de redes locales departamentales. En cuanto
al trfico cursado dentro de un segmento de red local, NetBEUI es el ms rpido
de los protocolos suministrados con Windows NT.
Funcionamiento de DLC (Control de vnculo de datos). A diferencia de
NetBEUI y TCP/IP, el protocolo DLC no ha sido diseado para servir de protocolo
principal entre PC. Por el contrario, se suele utilizar DLC con Windows NT si se
necesita que las computadoras con Windows NT accedan a computadoras
principales IBM o si se est configurando una impresora que se conecta
directamente a un cable de red.
Si se desea utilizar DLC para permitir la comunicacin entre computadoras con
Windows NT y computadoras principales, bastar con aadir el protocolo DLC
como protocolo adicional en cada una de las computadoras que se comunican
realmente con las computadoras principales. No ser necesario que instale DLC
en todas las computadoras de la red.

Sistemas Operativos 255

1.7 Instalacin Windows XP/2003


Para instalar Windows XP Professional se necesita, como mnimo, la siguiente
configuracin de memoria RAM de 64 MB, un disco duro de 2 GB con controladora
IDE, una tarjeta Ethernet de 10/100 Mbps y CD ROM.
Sin embargo, la recomendacin que se realiza para la configuracin de las
estaciones de trabajo es de ordenadores con un procesador Pentium II a 350 Mhz
o superior, una configuracin de memoria RAM de 128 MB y un disco duro de
entre 8 y 20 GB.
Para Windows 2003 se deben seguir las recomendaciones del punto 1.4.4
Requisitos del sistema Windows 2003.
Aunque ambos (XP/2003) chequean automticamente el hardware antes de su
instalacin para informar de cualquier conflicto que pudiera exisitir, puede
asegurarse previamente de que no va a encontrar ningn conflicto si consulta la
lista de compatibilidad de hardware (HCL), que se encuentra en la direccin
http://www.microsoft.com/windows/catalog/server/ (con las ltimas actualizaciones
hardware y software). Tambin se puede comprobar desde la opcin comprobar
compatibilidad del sistema del propio CD de la instalacin.
Incorpora la tecnologa Plug and Play que permite que el sistema operativo
reconozca automticamente cualquier dispositivo que incorpore dicha tecnologa
(de esta manera, se resolvern los problemas que pudieran existir referidos a su
configuracin).
Sin embargo si no sabe si cuenta con dispositivos que no incorporen esta
tecnologa en su equipo, deber realizar un inventario previo para averiguar si
dispone de dichos dispositivos y, en caso de que sea as, anotar la direccin de
memoria y la interrupcin (IRQ) que estn utilizando todos los dispositivos. Una
vez anotado deber comprobar que no hay conflictos entre las direcciones de
memoria y las play como los que no lo hacen y, en caso de haber conflictos,
deber corregir manualmente los conflictos existentes.
1.7.1 Consideraciones previas antes de la instalacin
Antes de realizar una instalacin nueva es necesario tener en cuenta las
siguientes consideraciones:
El modo de licencia que se va a utilizar. Windows Server 2003 soporta dos
tipos de licencia.
Por servidor. En este tipo, se asigna un nmero de licencias al servidor
que permitir realizar conexiones con un determinado producto de

Sistemas Operativos 256

servidor. Cuando un usuario se conecte con el producto de servidor en


dicho servidor, la conexin consume una licencia que, cuando dicho
usuario se desconecte, quedar libre para su utilizacin por otro usuario.
Es necesario, como mnimo, disponer del mismo nmero de licencias
en cada servidor que de estaciones vayan a conectarse en un momento
dado. Suele ser la instalacin ms econmica para redes en que las
estaciones se conectan a un nico servidor.
Por dispositivo o por usuario. En este tipos e requiere una licencia de
acceso de cliente por cada dispositivo o usuario que se conecte al
producto del servidor seleccionado.
Una vez que el dispositivo
disponga de una licencia puede tener acceso a cualquier servidor en el
que se ejecute dicho producto. Suele ser la ms econmica si se
realizan conexiones a ms de un servidor.
Se necesita una
organizacin de acceso de cliente para cada equipo que tenga acceso al
servidor para servicios bsicos de red.
En caso de no estar seguro del modo de licencia que se necesita es preferible
seleccionar por servidor ya que se puede cambiar posteriormente sin ningn
problema.
Si se desea una configuracin de arranque dual, es decir, si se va a poder
escoger entre dos o ms sistemas operativos cuando se inicie el ordenador
(la principal desear disponer de una configuracin de arranque doble, es
poder utilizar aplicaciones que nicamente se ejecuten en un sistema
operativo). Es necesario tener en cuenta que no es posible trabajar con
discos dinmicos con Windows Server 2003 si se tiene una configuracin
de arranque dual.
Entre las posibles configuraciones de arranque dual se encuentran las siguientes:
En un arranque dual con Windows 95
cumplir los siguientes requisitos:

y Windows XP/2003 se deben

La participacin primaria debe estar formateada como FAT o FAT32 (si


es Windows 95 OSR2).
WindowsXP/2003 se debe instalar despus de Windows 95 y en una
particin distinta.
Los volmenes comprimidos con DriveSpace o DoubleSpace no estarn
disponibles cuando se ejecute Windows XP/2003.

Sistemas Operativos 257

En un arranque dual con Windows 98 y Windows XP/2003 se debe cumplir


los siguientes requisitos:
La particin primaria debe estar formateada como FAT o FAT32.
Windows XP/2003 se debe instalar despus de Windows 95 y en una
particin distinta.
Los volmenes comprimidos con DriveSpace o DoubleSpace no estarn
disponibles cuando se ejecute Windows XP/2003.
En un arranque dual con Windows NT 4 o Windows 2000 y Windows
XP/2003 se deben cumplir los siguientes requisitos:
No es recomendable instalar ambos sistemas operativos con NTFS.
Asegrese de tener instalado el ltimo Service Pack de Windows NT o
Windows 2000.
Instale cada uno de los sistemas operativos en un disco distinto o en
particiones distintas.
No instale Windows XP/2003 en una unidad comprimida (a no ser que
haya sido comprimida con NTFS)
Instale los programas que va a utilizar con cada sistema operativo en su
particin correspondiente (si desea instalar los mismos programas para
ambos, deber instalarlo dos veces).
Si ambos van a estar en el mismo dominio, cada instalacin deber
hacerse con un nombre distinto cada vez.
Qu sistema de archivos se va a utilizar. Es posible escoger entre tre
sistemas de archivos distintos para las particiones del disco.
FAT (File Allocation System). Se puede acceder a este sistema de
archivos desde MS-DOS y todas las versiones d Windows. Permite
trabajar con particiones menores de 2 GB y no soporta dominios.
FAT32. Se puede acceder a este sistema de archivos desde Windows
95 ORS2, Windows 98, Windows 2000, Windows XP y Windows Server
2003. Permite trabajar con particiones mayores de 2 GB, el tamao
mximo de un archivo es de 4 GB, los volmenes pueden llegar hasta 2
TB (en Windows 2000 solo hasta 32 GB) y no soporta dominios.
NTFS (NT File System). Es el sistema desarrollado para Windows NT 4
que permite nombres de archivos de hasta doscientos cincuenta y seis
caracteres, ordenacin de directorios, atributos de acceso a archivos,
reparto de unidades en varios discos duros, reflexin de discos duros y
registro de actividades. En Windows 2000 Server s incluyeron mejoras

Sistemas Operativos 258

que permiten utilizar el Directorio Activo, dominios, cuotas de discos


para cada usuario, cifrado y compresin de archivos, almacenamiento
remoto, una herramienta de desfragmentacin y utilizacin de enlaces
de archivos similares a los realizados en UNIX. Sus volmenes
pueden llegar a 16 TB menos 64 KB y el tamao mximo de un archivo
slo esta limitado por el tamao del volumen.
Cuando se sta trabajando con nombres de archivo de formato largo (NTFS) en
el servidor y s tienen que convertir automticamente a un alias en formato MSDOS, se utiliza el siguiente mtodo:

Se eliminan espacios.
Se mantienen los seis primeros caracteres del nombre.
Se aade el carcter seguido del nmero del uno al cuatro.
Se mantiene la extensin existente.

Por ejemplo, los nombres largos se convertirn de la forma siguiente en cortos:


Informe anual ao 1991.doc
Informe anual ao 1992.doc
Informe anual ao 1993.doc
Informe anual ao 1994.doc

INFORM1.DOC
INFORM2.DOC
INFORM3.DOC
INFORM4.DOC

Pero cuando se halla llegado a este nivel, ya no se puede mantener el mismo


mtodo y se modifica al siguiente:
Se eliminan espacios
Se mantienen los dos primeros caracteres el nombre
Se generan los cuatro caracteres siguientes desde el tres hasta el seis
Se aade al carcter seguido del nmero uno (a no ser que en el proceso
anterior hubiera resultado unos caracteres que ya estuvieran en otro
archivo anterior en cuyo caso pondra el nmero dos).
Se mantiene la extensin existente

Por ejemplo, los nombres largos se seguirn convirtiendo de la forma siguiente en


cortos:
Informe anual ao 1995.doc
Informe anual ao 1996.doc
Informe anual ao 1997.doc

INA4F51.DOC
INE5A71.DOC
INE5A72.DOC

En qu particin se instalar o si se necesita crear una nueva particin. Es


necesario tener planificadas las particiones del disco que se van a utilizar antes de

Sistemas Operativos 259

proceder a la instalacin de Windows XP/2003, en dicha planificacin es necesario


tener en cuenta:
Las particiones son la manera en que se divide el disco fsica, de forma
que cada una de ellas funcionan como si fueran unidades separadas.
Cada particin se puede formatear en un sistema e archivo distinto y se
pueden designar con una letra de una unidad distinta. (C: D: etc.)
Cuando se formatea una particin, todos los archivos que hubiera
previamente se destruyen.
La particin primaria (o del sistema) es aquella en donde se instalan los
archivos que van a cargar el sistema operativo.
Es preciso determinar el tamao de la particin donde s va a instalar
Windows XP/2003 antes de realizar la instalacin.
No instale Windows XP/2003 en una unidad comprimida a no ser que haya
sido comprimida con el sistema de compresin de NTFS.
Durante el proceso de la instalacin se crear la paricin donde se instalar
el sistema operativo. Una vez finalizada esta, se podrn administrar los
discos utilizando las herramientas que lleva incorporadas.
No es posible trabajar con discos dinmicos en una configuracin de
arranque dual.
Se van a utilizar los servicios de instalacin remota, se necesitar una
particin distinta para ellos.
Es conveniente colocar nicamente el sistema operativo en una particin (o
en un disco) y los archivos de datos y aplicaciones por separado.
Qu componentes se van a instalar. Windows Server 2003 incorpora una serie
de componentes que se aaden automticamente durante la instalacin. Adems,
se pueden escoger oros componentes que aumentan sus posibilidades (en caso
de no hacerlo durante la instalacin, se podr hacer posteriormente desde agregar
o quitar componentes de Windows de agregar o quitar programas del panel de
control). O desde instalar componentes adicionales desde el CD de instalacin.
Estos componentes son los siguientes:
Accesorios y utilidades. Incluye accesorios y utilidades de Windows
como WordPad, Saint, calculadora, comunicaciones, etc.

Sistemas Operativos 260

Actualizacin de certificados raz.


Descarga automticamente los
certificados raz ms actuales para obtener seguridad de correo electrnico,
exploracin y distribucin de software.
Configuracin de seguridad mejorada de Internet Explorer. Limita la
forma en que los usuarios exploran los sitios Web de Internet.
Herramientas de administracin y supervisin. Incluye herramientas
para supervisar y mejorar el rendimiento de la red (por ejemplo SNMP).
Licencias de Terminal Server. Permite configurar el equipo como servidor
de licencias de Terminal Server y proporcionar licencias de cliente.
Otros servicios de impresin y archivo en red. Permite compartir
archivos o impresoras en este equipo con otros de la red que utilicen
Machiton o UNIX.
Servicios de Index Server. Proporciona funciones de indexacin para los
documentos almacenados en disco permitiendo, a los usuarios, la
bsqueda rpida de texto o propiedades.
Servicios de Certificate Server. Instala una entidad emisora para emitir
certificados que se utilicen con programas de seguridad de claves pblicas.
Servicio de correo electrnico.
Permite instalar el servicio e
administracin de POP3 para recuperacin del correo electrnico resivido.
Servicios de fax. Recibir y enviar.
Servicio de instalacin remota.
Ofrece la posibilidad de instalar
estaciones de trabajo de forma remota.
Servicios de red. Proporcionan soporte para las comunicaciones de red
incluyendo:
Protocolo de configuracin dinmica de Host (DHCP). Permite asignar
direcciones IP dinmicas a distintos dispositivos de red. (servidores,
estaciones, impresoras, escneres)
RPC sobre el Proxy HTTP. Habilita. RPC/DCOM para desplazarse por
HTTP a travs de IIS.

Sistemas Operativos 261

Servicio de autenticacin de Internet. Proporciona autenticacin,


autorizacin y contabilidad de usuarios de acceso telefnico y VPN (incluye
soporte protocolo RADIUS).
Servicio WINS. Proporciona resolucin de nombres para clientes que
ejecuta Windows NT o versiones de anteriores de otros sistemas operativos
Windows.
Servicios simples de TCP/IP. Admite los siguientes servicios de TCP/IP:
generador de caracteres, hora diurna, desechar, eco y cita del da.
Sistema de nombres de dominio (DNS). Proporciona resolucin de
nombres para clientes que ejecutan Windows 2000, Windows XP o
Windows Server 200.
Servicios de Windows Media. Proporcionan soporte multimedia que permiten
enviar contenidos digitales a travs de la red
Servicios UDDI. Instala los servicios (Universal Descrption Discovery and
Integration) que permiten publicar y buscar informacin acerca de los
servicios Web.
Servidor de aplicaciones. Permite instalar ASP.NET, IIS, Mesage, Queuv
Server y la consola del servidor de aplicaciones.
Terminal Server. Configura el equipo para permitir que varios usuarios
ejecuten una o ms aplicaciones de forma remota.
Qu configuracin de direcciones se va a utilizar
Como se explic en Windows NT, TCP/IP es un protocolo que proporciona acceso
a Internet, y por ello, necesita una direccin IP por cada ordenador (se ha de
indicar en las propiedades del protocolo TCP/IP). Para proporcionrsela se
pueden seguir los siguientes mtodos de configuracin:
Configuracin manual o esttica. Se utilizar este mtodo de
configuracin cuando se disponga de una red con mltiples segmentos y no
se cuente con un servidor DHCP. Ser necesario indicar una direccin IP,
una mscara de subred, la puerta de enlace predeterminada, el servidor
DNS y/o el servidor WINS en cada uno de los equipos (incluido el servidor).
Configuracin automtica o dinmica. Con este mtodo se asignar
automticamente una direccin IP al equipo. Hay dos formas posibles:

Sistemas Operativos 262

Configuracin automtica. Se utilizar este tipo de configuracin


cuando se disponga de una red pequea con pocos servidores sin
necesidad de conexin a Internet y no se cuente con un servidor DHCP.
Se deber indicar que se desea obtener una asignacin automtica de
direccin IP, y al no encontrar un servidor DHCP, Windows asignar la
direccin IP utilizando APIPA (Automatic Private IP Addressing). Esta
asignacin se realizar en el rango de direcciones 169.254.0.1169.254.255.254 y con la mscara de subred 255.255.0.0 (no es
necesario indicar la puerta de enlace predeterminada, el servidor DNS o
el servidor WINS).
configuracin dinmica. Este tipo de configuracin se utilizar en una
red que disponga de un servidor DCHP. Se deber indicar que se
desea obtener una asignacin automtica de direccin IP y, al encontrar
DCHP, ste asignar una direccin IP, una mscara de subred, la puerta
de enlace predeterminada, el servidor DNS y/o el servidor WINS a cada
uno de los equipos cuando se conecten.
Qu resolucin de nombres desea
Como se ha visto en un apartado anterior, la resolucin de nombres es un proceso
que permite a los usuarios conectarse a la red utilizando el nombre de los
equipos en lugar de su direccin IP (de esta manera, no es necesario tener que
usar la direccin IP, que es ms difcil de recordar). Windows 2000 Server
proporciona dos mtodos de resolucin de nombres que pueden coexistir
conjuntamente:
DNS. Es un mtodo que utiliza servidores distribuidos a lo largo de una red
para resolver el nombre de un ordenador en su direccin IP. Se necesita
DNS para correo electrnico de Internet, navegacin por pginas Web,
trabajar con el Directorio Activo y para los clientes que ejecutan Windows
2000 o Windows XP. Este mtodo de resolucin de nombres se instala
automticamente cuando se instala automticamente cuando se crea un
controlador de dominio (o se promociona un servidor a controlador de
dominio) a no ser que se detecte que ya existe un servidor DNS.
WINS. Si va disponer de clientes que ejecuten Windows NT u otros
sistemas operativos de Windows distintos de Windows 2000 o Windows XP,
ser necesario utilizar este mtodo de resolucin de nombres. Es un
componente opcional y deber seleccionarse, si se considera necesario,
durante el proceso de instalacin (tambin es posible hacerlo
posteriormente).
Si se van a crear dominios o grupos de trabajo para los servidores.

Sistemas Operativos 263

Un dominio es un conjunto de cuentas de usuario y recursos de red bajo un


nombre sencillo que tiene establecidas fronteras de seguridad. Se necesita para
instalar el directorio Activo en Windows Server 2003 y tener un servidor de red.
Un grupo de trabajo es una agrupacin bsica que, nicamente, se establece
para ayudar a determinados usuarios a utilizar objetos compartidos (impresoras y
carpetas). Se necesita para tener una red entre iguales con Windows XP
Profesional.
En un grupo de trabajo los usuarios deben trabajar con varias contraseas (una
para cada recurso compartido) mientras que, en un dominio, los usuarios
nicamente han de utilizar una contrasea para conectarse a la red y trabajar con
los recursos que haya disponibles. Adems, en un dominio se puede restringir a
los usuarios la utilizacin de determinados recursos utilizando los permisos.
Los servidores dentro de un dominio pueden tomar uno de los siguientes papeles:
Controladores de dominio. Pertenecen al dominio y contiene una copia de
las cuentas de usuario y de otros datos del Directorio Activo. Es obligatorio
que haya, al menos, un controlador de dominio.
Servidores miembro. Pertenecen al dominio y no contienen una copia de
las cuentas de usuario y de otros datos del directorio Activo. Se utilizan
para almacenar los archivos y otros recursos de red.
Adems de estos dos tipos, sin formar parte de ningn dominio puede haber
Servidores Independientes. Pertenecern a grupos de trabajo y se utilizarn
para almacenar archivos y otros recursos de red.
Se recomienda utilizar siempre dominios en lugar de grupos de trabajo
(exceptuando para redes muy pequeas y con pocos usuarios).
1.7.2 Preparando la instalacin
Antes de proceder con la instalacin, es necesario realizar los pasos siguientes
que van a preparar el ordenador para una instalacin nueva:
Hacer una copia de seguridad de los archivos que hubiera en el ordenador
(si hay alguno o se consideran necesarios). Dicha copia se puede realizar
en otro disco duro, una unidad de cinta u otro ordenador de la red.
Descomprimir el disco donde se va a realizar la instalacin (a no ser que se
haya comprimido con NTFS).
Desactivar el reflejado de discos (si lo hubiera).

Sistemas Operativos 264

Desconectar el ordenador de cualquier dispositivo SAI (Sistema de


alimentacin ininterrumpida). Al desconectar el cable serie que conecta el
SAI con el ordenador, se evitar que haya problemas en el proceso de
deteccin automtica de dispositivos que se realiza durante la instalacin.
1.7.3 Procediendo con la instalacin Windows Server 2003
Una instalacin nueva se puede realizar en un equipo que dispone previamente de
otro sistema operativo (para realizar una configuracin de arranque dual) o en un
equipo totalmente limpio. En ambos casos, el proceso de la instalacin se puede
comenzar de varias formas:
Desde una unidad CD-ROM del propio equipo. Es la forma ms comn de
iniciar la instalacin y puede hacerse de dos maneras distintas:
Iniciando el ordenador desde la unidad CD-ROM de un ordenador
limpio. Comenzar automticamente la instalacin, aunque previamente
habr de haberse colocado el CD de Windows Server 2003 en la unidad
correspondiente y se habr indicado en el SETUP o BIOS del ordenador
que puede iniciarse desde una unidad CD-ROM.
Iniciando el ordenador desde otro sistema operativo. Una vez cargado
dicho sistema operativo y colocado el CD de Windows Server 2003 en la
unidad CD-ROM correspondiente, se pueden dar tres opciones:
o Ejecutarse automticamente el proceso de instalacin.
o Desde el explorador de Windows, ver el contenido del CD y
comenzar la instalacin.
o Cambiarse a la letra correspondiente a la unidad CD-ROM, ver su
contenido y comenzar la instalacin.
Desde un recurso compartido de la red y utilizando un equipo que ya
cuenta con otro sistema operativo. Para ello, se puede actuar de dos
maneras distintas:
o Colocando el CD de Windows Server 2003 en una unidad CDROM compartida de un equipo de la red. Habr que buscar dicho
recurso compartido, ver su contenido y comenzar la instalacin.
o Copiando el contenido del CD de Windows Server 2003 en una
carpeta compartida de un equipo de la red. Habr que buscar
dicho recurso compartido, ver su contenido y comenzar la
instalacin.
Con cualquier mtodo de iniciar la instalacin, si sta no comienza
automticamente, se deber ejecutar el archivo SETUP.EXE del directorio raz del

Sistemas Operativos 265

CD de la instalacin o el archivo WINNT32.EXE del subdirectorio I386 del CD de


la instalacin (desde Windows) o el archivo WINNT.EXE del subdirectorio I386 del
CD de la instalacin (desde MS-DOS).
Una vez ejecutado el proceso de instalacin se deben seguir uno a uno los pasos
indicados en cada pantalla hasta terminar. El asistente para la instalacin es muy
completo y no deja que el usuario se pierda en ninguno de los pasos sealados.
1.8 Resumen de los principales sistemas operativos Windows
Sistema
operativo
Microsoft
Windows 95

Descripcin

Este sistema operativo era un entorno multitarea dotado de una interfaz grfica de usuario que,
a diferencia de las versiones anteriores de Windows, no necesitaba que se cargara primero
MS DOS para ser ejecutado. Estaba basado en mens desplegables, ventanas y un
dispositivo sealador (ratn). Una de las caractersticas principales de Windows 95 era que los
nombres de los archivos no estaban restringidos a ocho caracteres y tres de la extensin, ya
que podan tener hasta 256 caracteres para realizar una descripcin completa del contenido
del archivo. Adems, incorporaba PLUG AND PLAY que es una tecnologa desarrollada por
los fabricantes de PCs, por la que un usuario puede instalar fcilmente los dispositivos de
hardware, permitiendo al sistema realizarlo automticamente sin la intervencin de usuario.
Microsoft
Es el siguiente escaln en la familia de sistemas operativos Windows. Como era obvio, esta
Windows 98 nueva versin contina soportando 32 bits y PLUG AND PLAY. Desde el punto de vista del
usuario, Windows 98 no trae nada nuevo en su interfaz grfica. Podra decirse que es una
compilacin de caractersticas, ya que muchas de ellas ya se encontraban en Internet Explorer
4.0 (al ser instalada esta actualizacin con Windows 95 OSR- 2). Permite soporte para FAT32
(al igual que Windows 95 OSR 2) y el Active Desktop (de IE 4). Poda instalarse una opcin
para poder trabajar como sistema multiusuario de estacin de trabajo.
Microsoft
Es un sistema operativo que brinda poder, velocidad y nuevas caractersticas; adems de las
Windows NT tradicionales de los sistemas Windows. Fue lanzado al mercado el 24 de mayo de 1993) y es
un sistema operativo de 32 bits que puede trabajar en procesadores 386, 486 y Pentium.
Adems de ser multitarea y multiusuario (en opcin de servidor de redes), es multiprocesador
(es decir, permite trabajar en un equipo que disponga de varios procesadores en la CPU). Se
encuentra disponible en dos versiones: Estacin de trabajo (versin Workstation) o Servidor
(versin Server).
Windows
Soporta y comparte el mismo cdigo que Windows 98 pero con una caracterstica propia: dice
Millenium
adis a MS DOS, ya que no estn disponibles las opciones de arranque solo Smbolo del
Sistema y Reiniciar en modo MSDOS. Los archivos de configuracin conf.sys y autoexec.bat
no se ejecutan (existan o no); solo tienen sentido durante la instalacin de Windows; despus
dar igual su contenido. Por ello, no funcionar ningn programa MSDOS (que necesite
insertar parmetros en el archivo config.sys) y no es compatible 100% con aplicaciones
diseadas para MS-DOS.
Windows
Es ms rpido que Windows 98, ya que, a igualdad de memoria RAM, se ejecuta ms rpido
2000
que Windows 98 y no se ralentiza con cargas pesadas. los usuarios pueden ejecutar ms
programas y hacer ms tareas al mismo tiempo porque Windows 2000est basado totalmente
en una arquitectura de 32 bits. Mejora el interfaz grfico de Windows al reducir los iconos
innecesarios del escritorio, simplifica el men de inicio (introduciendo una nueva funcionalidad
que adapta el men de inicio a la manera de trabajo del usuario, mostrando slo las
aplicaciones que se utilizan ms frecuentemente). Es ms seguro que Windows NT, ya que
est basado en un sistema de seguridad que permite a los usuarios o/y administradores
seleccionar el nivel de proteccin apropiado para su informacin y aplicaciones, para
intercambiar o almacenar informacin y aplicaciones, para intercambiar o almacenar
informacin en ordenadores independientes, en la red, en una intranet o en Internet.
Se encuentran disponibles cuatro versiones:
Professional. Es el sucesor de Windows NT Workstation. Permite utilizar hasta 2

Sistemas Operativos 266

Sistema
operativo

Descripcin

procesadores simtricos, hasta 4 GB de memoria RAM, herramientas de gestin de


Windows, infraestructura de seguridad Kerberos y PKI, servicios de componentes y
servicios de Internet.
Server. Es el sucesor de Windows NT Server. Permite utilizar hasta 4 procesadores,
hasta 4 GB de memoria RAM e incorpora Directorio Activo, herramientas de gestin
de Windows, infraestructura de seguridad Kerberos y PKI, servicios de terminales,
servicios de componentes y servicios de Internet, balanceo de la carga de la red y
servicios de cluster.
Advanced Server. Permite utilizar 8 procesadores, hasta 8 Gb de memoria RAM e
incorpora Directorio Activo, herramientas de gestin de Windows, insfraestructura de
seguridad Kerberos y PKI, servicios de terminales, servicios de componentes,
servicios de Internet, balanceo de la carga de la red y servicios de cluster.
Datacenter Server. Permite utilizar hasta 32 procesadores, hasta 64 GB de memoria
RAM e incorpora Directorio Activo, herramientas de gestin de Windows,
infraestructrura de seguridad Kerberos y PKI, servicios de terminales, servicios de
componentes, servicios de Internet, balanceo de la carga de la red y servicios de
cluster avanzados.
Windows XP Bsicamente es Windows 2000 Professional, pero con un nuevo y mejorado aspecto, as como
Profesional una mejora notable de las caractersticas multimedia e Internet. Incorpora Direct X 8 (para
juegos 3D y efectos grficos), Internet Explorer 6, Outlook Express 6 y Windows Media Player
8.

Sistemas Operativos 267

CAPTULO 2. SISTEMA OPERATIVO UNIX/LINUX


Actividad a desarrollar:
Al igual que con el SO Windows es importante que Usted instale el SO LINUX,
revise cada una de las caractersticas aqu descritas y verifique su
funcionamiento. La versin la definen en cada CEAD dependiendo del
software disponible o deseado. Realizar un manual de instalacin de la
distribucin de linux seleccionada. En grupos de trabajo. Probarla en el
laboratorio.

En Ias unidades precedentes se han visto conceptos, principios y caractersticas


de los sistemas operativos actuales. En este captulo se tratar ms en
profundidad uno de los ms extendidos e interesantes, el UNIX en sus diferentes
versiones, pero haciendo hincapi en Linux, una de sus variantes ms extendidas
en la actualidad.
El estudio de LINUX es especialmente interesante ya que se puede ejecutar en
ms tipos de arquitecturas que cualquier otro S.O., de hecho actualmente se
puede decir que hay una versin de LINUX para cada mquina del mercado.
2.1 Historia
En 1965, los laboratorios de telefona Bell (una divisin de A T&T) trabajaban
(Iunto con General Electric y el M.I.T. (Instituto Tecnolgico de Massachussets) en
el desarrollo de Multics, un proyecto para realizar un sistema operativo de grandes
prestaciones, multitarea y de tiempo compartido. Por diversas razones, Bell se
separ del grupo y Ken Thompson y Dennis Ritchie (empleados de Bell
Technologies) decidieron continuar independientemente con el proyecto para su
empresa. As pues, se dedicaron a desarrollar un sistema operativo que cumpliera
con la mayor parte de los requisitos del proyecto anterior pero con una
concepcin diferente, mucho ms simple.
En 1970, Ken Thompson implement una primera versin escrita en ensamblador,
en una PDP-7, y, a modo de burla hacia el Multics de la General Electrics, lo llam
UNIX. Posteriormente, en 1973 Dennis Ritchie desarroll junto a B.W. Kernighan
el lenguaje de programacin C y junto a Thompson rescribieron todo el cdigo

Sistemas Operativos 268

UNIX con este lenguaje, lo que, como se ver ms adelante lo impuls a los
niveles de popularidad actuales.
En 1977, UNIX se port a otra arquitectura diferente a la de la PDP, gracias a que
para recompilarlo slo era necesario realizar los cambios pertinentes para
adaptarlo a la nueva arquitectura, manteniendo intacto el resto del cdigo. Este es
el concepto de sistema abierto que lo hizo triunfar. Adems, UNIX fue diseado
modularmente, es decir, se programaron multitud de sencillos mdulos genricos
que una vez interconectados eran capaces de realizar tareas complejas. Esto
permiti una fcil depuracin de sus errores y facilit la colaboracin entre distintos
equipos de desarrollo.
En resumen, UNIX es uno de los sistemas operativos ms populares del mundo
debido a su extenso soporte, distribucin y, sobre todo, a su caracterstica de
sistema abierto. Originalmente fue desarrollado como sistema multitarea con
tiempo compartido para mini ordenadores y mainframes y, desde entonces, se ha
convertido en uno de los sistemas ms utilizados a pesar de su, ocasionalmente,
confusa interfaz con el usuario y el problema de su estandarizacin.
Por su parte, Linux es una versin de UNIX de libre distribucin, inicialmente
desarrollada por Linus Torvalds en la Universidad de Helsinki, en Finlandia. Ha
sido desarrollado con la colaboracin de muchos programadores y expertos de
UNIX a lo largo y ancho del mundo, gracias a la existencia de Internet. Cualquier
habitante del planeta puede acceder a Linux y desarrollar nuevos mdulos o
cambiarlo a su antojo.
El ncleo de Linux no utiliza ni una sola lnea del cdigo de A T &T o de cualquier
otra fuente de propiedad comercial y buena parte del software para Linux se
desarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation.
Cambridge, Massachusetts.
Inicialmente, Linux fue un proyecto de aficionado de Linus Torvalds. Se inspiraba en
Minix, un pequeo UNIX de carcter fundamentalmente acadmico diseado para
microprocesadores de Intel de las familias 8086, 8088 y 80286 desarrollado por
Andrew Tanenbaum. La intencin de Linus Torvalds era la de mejorar MINIX para
aprovechar al mximo las caractersticas avanzadas del procesador 80386 de Intel
como son la conmutacin de tareas en modo protegido y el coprocesador
matemtico.
Comenc a utilizar el C tras escribir algunos drivers, y ciertamente se aceler el
desarrollo. En este punto, sent que mi idea de hacer un "un Minix mejor' que Mini"
se haca ms seria. Esperaba que algn da pudiese recompilar el gcc bajo Linux...
Dos meses de trabajo, hasta que tuve un driver de discos (con numerosos bugs,
pero que pareca funcionar en mi PC) y un pequeo sistema de ficheros. Aqu tena

Sistemas Operativos 269

ya la versin 0.01 [Finales de Agosto e de 1991]: no era muy agradable de usar sin
el drive de disketes, y no hacia gran cosa. No pens que alguien compilara esa
versin.
El 5 de octubre de 1991, Linus anunci la primera versin oficial de Linux, La
0.02. Ya poda ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU),
pero no haca mucho ms. La intencin era ser un juguete para hackers. No haba
nada sobre soporte a usuarios, distribuciones, documentacin ni nada parecido.
Hoy, la comunidad de Linux an trata estos asuntos de forma secundaria. Lo
primero sigue siendo el desarrollo del kemel.
Actualmente, Linux es ya un clnico de UNIX completo, capaz de ejecutar XWindow, TCP/IP, Emacs, UUCP y software de correo y News, mucho software de
libre distribucin ha sido ya portado a Linux y estn empezando a aparecer
multitud de aplicaciones comerciales. El hardware soportado es mucho mayor que
en las primeras versiones del ncleo y abarca la prctica totalidad de arquitecturas
y perifricos.
Linux es, pues, una reimplementacin completamente gratuita de las
especificaciones POSIX, con extensiones de SYSV y BSD (lo cual significa que
parece UNIX pero no proviene del mismo cdigo fuente base), que est disponible
tanto en su versin fuente como ya compilada. El copyright pertenece a Linus B.
Torvalds ([email protected]) y otros colaboradores, y es libremente
redistribuible bajo las condiciones de la GNU Public License.
2.2 Arquitectura de UNIX y LINUX
2.2.1 Arquitectura del Ncleo de Unix
Grfica 96. Arquitectura del sistema UNIX



Sistemas Operativos 270

El ncleo del Sistema Operativo


El ncleo del sistema operativo Unix (llamado Kernel) es un programa escrito casi
en su totalidad en lenguaje C, con excepcin de una parte del manejo de
interrupciones, expresada en el lenguaje ensamblador del procesador en el que
opera.
Las funciones del ncleo son permitir la existencia de un ambiente en el que sea
posible atender a varios usuarios y mltiples tareas en forma concurrente,
repartiendo al procesador entre todos ellos, e intentando mantener en grado
ptimo la atencin individual.
El Kernel opera como asignador de recursos para cualquier proceso que necesite
hacer uso de las facilidades de cmputo. Es el componente central de Unix y tiene
las siguientes funciones:
Creacin de procesos, asignacin de tiempos de atencin y sincronizacin.
Asignacin de la atencin del procesador a los procesos que lo requieren.
Administracin de espacio en el sistema de archivos, que incluye: acceso,
proteccin y administracin de usuarios; comunicacin entre usuarios y
entre procesos, y manipulacin de E/S y administracin de perifricos.
Supervisin de la transmisin de datos entre la memoria principal y los
dispositivos perifricos.
El Kernel reside siempre en la memoria central y tiene el control sobre la
computadora, por lo que ningn otro proceso puede interrumpirlo; slo pueden
llamarlo para que proporcione algn servicio de los ya mencionados. Un proceso
llama al Kernel mediante mdulos especiales conocidos como llamadas al
sistema.
El Kernel consta de dos partes principales: la seccin de control de procesos y la
de control de dispositivos.
La primera asigna recursos, programas, procesos y atiende sus requerimientos de
servicio; la segunda, supervisa la transferencia de datos entre la memoria principal
y los dispositivos perifricos.
Cuando se inicia la operacin de la computadora, debe cargarse en la memoria
una copia del ncleo, que reside en el disco magntico (operacin denominada
bootstrap). Para ello, se deben inicializar algunas interfaces bsicas de hardware;
entre ellas, el reloj que proporciona interrupciones peridicas. El Kernel tambin
prepara algunas estructuras de datos que abarcan una seccin de
almacenamiento temporal para transferencia de informacin entre terminales y
procesos, una seccin para almacenamiento de descriptores de archivos y una
variable que indica la cantidad de memoria principal.

Sistemas Operativos 271

A continuacin, el Kernel inicializa un proceso especial, llamado proceso 0. En


general, los procesos se crean mediante una llamada a una rutina del sistema
(fork), que funciona por un mecanismo de duplicacin de procesos. Sin embargo,
esto no es suficiente para crear el primero de ellos, por lo que el Kernel asigna una
estructura de datos y establece apuntadores a una seccin especial de la
memoria, llamada tabla de procesos, que contendr los descriptores de cada uno
de los procesos existentes en el sistema.
Despus de haber creado el proceso 0, se hace una copia del mismo, con lo que
se crea el proceso 1; ste muy pronto se encargar de "dar vida" al sistema
completo, mediante la activacin de otros procesos que tambin forman parte del
ncleo. Es decir, se inicia una cadena de activaciones de procesos, entre los
cuales destaca el conocido como despachador, o scheduler, que es el
responsable de decidir cul proceso se ejecutar y cules van a entrar o salir de la
memoria central. A partir de ese momento se conoce el nmero 1 como proceso
de inicializacin del sistema, init. El proceso init es el responsable de establecer la
estructura de procesos en Unix.
Normalmente, es capaz de crear al menos dos estructuras distintas de procesos:
el modo monousuario y el multiusuario. Comienza activando el intrprete del
lenguaje de control (Shell) en la terminal principal, o consola, del sistema y
proporcionndole privilegios de "superusuario". En la modalidad de un solo usuario
la consola permite iniciar una primera sesin, con privilegios especiales, e impide
que las otras lneas de comunicacin acepten iniciar sesiones nuevas. Esta
modalidad se usa con frecuencia para revisar y reparar sistemas de archivos,
realizar pruebas de funciones bsicas del sistema y para otras actividades que
requieren uso exclusivo de la computadora.
Init crea otro proceso, que espera pacientemente a que alguien entre en sesin en
alguna lnea de comunicacin. Cuando esto sucede, realiza ajustes en el protocolo
de la lnea y ejecuta el programa login, que se encarga de atender inicialmente a
los nuevos usuarios. Si la clave del usuario, y la contrasea proporcionadas son
las correctas, entonces entra en operacin el programa Shell, que en lo sucesivo
se encargar de la atencin normal del usuario que se dio de alta en esa terminal.
A partir de ese momento el responsable de atender al usuario en esa terminal es
el intrprete Shell.
Cuando se desea terminar la sesin hay que desconectarse de Shell (y, por lo
tanto, de Unix), mediante una secuencia especial de teclas (usualmente. < CTL > D). A partir de ese momento la terminal queda disponible para atender a un nuevo
usuario.

Sistemas Operativos 272

2.2.2 Arquitectura del Ncleo de Linux


Para empezar, la arquitectura abstracta de Linux puede describirse como la
composicin de un conjunto subsistemas o componentes interactuando unos con
otros de forma simultanea. El ncleo se descompone en estos subsistemas
basndose en su funcionalidad, donde cada subsistema pone su granito de arena
propio y diferente en la labor del sistema operativo.
De esta manera, identificamos cinco subsistemas importantes en el ncleo, que
son: el subsistema de llamadas al sistema, el administrador de memoria, el
administrador de procesos, el sistema de ficheros y el subsistema encargado
de la Red.
Grfica 97. Arquitectura Sistema Operativo Linux

Esta arquitectura muestra todos estos subsistemas, escondiendo los mecanismos


internos de cada uno de ellos.
La arquitectura de Linux es como un estilo "hbrido" o mezcla entre un estilo de
una arquitectura de capas y un estilo de una arquitectura orientada a objeto.

Sistemas Operativos 273

Capas
La idea clave del estilo de arquitectura por capas es el planteamiento de una
jerarqua de capas para los distintos mdulos del ncleo, diferenciados segn su
funcionalidad y nivel de acceso a los dispositivos fsicos. En Linux se pueden
distinguir tres grandes capas, donde cada capa se comunica con los dispositivos
pasando por las inmediatamente inferiores. Veamos un momento estas tres capas
independientes:
1 capa: Programas de usuario: Aplicaciones ejecutadas por el usuario,
programas desarrollados por l, rutinas del sistema operativo, etc.
2 capa: Kernel: Subsistemas encargados de facilitar las herramientas al
programador que le permitan comunicarse con el hardware, sin tener que
ocuparse del manejo detallado de cada uno de los dispositivos. As, el
programador se olvida de si pretende leer de una unidad de disquetera, de
un disco duro, de un CDROM o de un recurso de red compartido, ya que
dispone de una herramienta que "escribe en dispositivos" cuya tarea
particular se reparten estos subsistemas para llevarla a cabo eficazmente.
3 capa: Dispositivos hardware: Son los propios aparatos, unidades de
almacenamiento, dispositivos de lectura, impresoras, tarjetas de
comunicaciones, sonido, imagen... etc.
Sin embargo, no se puede afirmar que Linux es estrictamente una arquitectura de
capas, ya que las capas se forman de subsistemas que colaboran entre s.
Si se revisa el otro estilo de arquitectura, el de arquitectura orientada a objeto, se
tiene que los diferentes subsistemas "encapsulan" las operaciones que realizan
sobre los dispositivos en forma de herramientas, de tal forma, que el programador
hace uso de esas herramientas olvidndose de las vicisitudes del manejo del
hardware y todo lo que ello conlleva.
Pero el estilo "hbrido" entre las dos ideas de arquitectura explicadas, es la que
mejor describe el estilo de la arquitectura de Linux.
Subsistema de llamadas al sistema. El subsistema de llamadas al sistema es el
que provee al ncleo de una interfaz externa. Es decir, es el subsistema que
permite la comunicacin a los programas de usuario interactuar con los dems
subsistemas mediante lo que se denominan "llamadas al sistema".
Como cualquier interfaz, lo que se pretende es esconder los detalles del ncleo y
del hardware del ordenador. De esta manera, se pueden aadir dispositivos o

Sistemas Operativos 274

simplemente cambiarlos sin que afecte al funcionamiento del los programas de


usuario.
El conjunto de las llamados al sistema pueden agruparse en categoras
basndose en su funcionalidad, lo que nos llevara a una descomposicin de este
subsistema en mdulos. Pero no es de nuestro inters en la tarea que nos ocupa.
Subsistema Administrador de Memoria. El subsistema administrador de
memoria, como su propio nombre indica, ofrece los servicios necesarios que
permiten acceder a la memoria fsica del ordenador. Este subsistema esconde a
los programas de usuario todo el manejo de la memoria virtual, que proporciona
una mejor gestin de la memoria disponible del sistema, creando la apariencia de
una mayor cantidad de memoria fsica utilizable, adems de ofrecer la posibilidad
de que los procesos compartan fragmentos de memoria.
El sistema de memoria virtual mejora en los siguientes aspectos:
Gran espacio de direcciones: Parece como si el sistema dispusiera de una
cantidad superior de la que realmente tiene, ya que la memoria virtual es
mucho ms grande que la memoria fsica del sistema.
Proteccin: Cada proceso en el sistema tiene su propio espacio de
direcciones virtual. Estos espacios son totalmente independientes, sin que
puedan influir en otros procesos que corren al mismo tiempo. Adems,
existen herramientas del hardware que permiten proteger reas de memoria
contra escritura. Este mecanismo protege el cdigo y los datos de ser
sobrescritos por programas que acceden indebidamente a memoria.
Mapeado de la Memoria: El mapeado de la memoria se utiliza para
direccionar archivos en el espacio de direcciones de un proceso. De esta
manera, el contenido de un archivo esta vinculado directamente en el
espacio de direcciones virtuales de un proceso.
Justa distribucin de Memoria Fsica: El administrador de memoria permite
que cada proceso que se ejecute en el sistema tome una parte justa de la
memoria fsica del sistema.
Memoria Virtual Compartida: Aunque la memoria virtual permita que los
procesos tengan espacios de direcciones separados, frecuentemente es til
para los procesos el hecho de trabajar sobre una misma porcin de
memoria, compartiendo datos de lectura y/o escritura. Adems si dos
programas iguales estn corriendo al mismo tiempo, ambos podran
compartir, al menos, su porcin de cdigo.
El subsistema del Administrador de Memoria puede descomponerse en los
mdulos que desempean las distintas funciones. Y aunque estos mdulos
buscan objetivos independientes, deben cooperar para trabajar en el nico modelo

Sistemas Operativos 275

estructurado de tablas de pginas, listas de pginas libres, listas de espacios de


direcciones virtuales, etc.
Subsistema Administrador de procesos. Linux es un sistema operativo
multiproceso y como tal permite que muchos procesos se ejecuten a la vez. Este
subsistema gestiona la creacin, planificacin y eliminacin de los procesos (de
los que se encargan los tres mdulos del subsistema). Todos los procesos tienen
un espacio de direcciones virtuales propio y un conjunto de ficheros abiertos, as
que para su gestin habr que administrar todos estos recursos.
Para ello este subsistema trabaja con estructuras donde guarda de cada proceso
que se est ejecutando, su identificador de proceso, su espacio de direcciones,
sus ficheros abiertos, etc.
Subsistema del Sistema de ficheros. Linux utiliza el standard de sistema de
ficheros de Unix. Este subsistema se encarga de todo acceso (ya sea lectura o
escritura) a cualquier dispositivo fsico utilizado para almacenar datos. Estos
dispositivos fsicos pueden ser discos duros (p. ej. IDE, SCSI), discos flexibles,
CDROMS e incluso sistemas de ficheros de red (NFS). No solamente se soportan
muchos dispositivos fsicos, sino que adems son varios los sistemas de ficheros
que deben ser utilizados para poder acceder a los distintos dispositivos fsicos.
Este subsistema se comunica con el resto de subsistemas mediante un Sistema
Virtual de Ficheros (VFS), que acta de interfaz. El VFS es un sistema de ficheros
genrico que ofrece una estructura jerrquica y conceptual de archivos y
directorios. El VFS sigue el modelo de sistemas de ficheros de Unix, construido
mediante inodos, nexos simblicos, etc.
La estructura del sistema de ficheros sigue el modelo de estructura por capas con
niveles crecientes de abstraccin.
La jerarqua comienza con los drivers especficos de cada dispositivo que se
comunican directamente con el hardware. Ms arriba tenemos los controladores
de dispositivo segn su tipo, los diferentes sistemas de ficheros y por ltimo el
interfaz ofrecido por el VFS.

Sistemas Operativos 276

Grfica 98. Subsistema de ficheros

Subsistema de Red. Linux provee servicios de red mediante la utilizacin de


sockets BSD y los protocolos de red TCP/IP, para seguir en la lnea de
compatibilidad con Unix. De esta manera permite la comunicacin con otras
computadoras diferentes, que utilicen los mismos protocolos.
El subsistema de Red, parecido al sistema de ficheros, ya que tambin se
comunica con el resto de subsistemas mediante una interfaz, que en este caso le
proporciona los sockets BSD. Adems tambin se estructura mediante capas,
donde la capa ms baja la ocupan los drivers de los dispositivos de red que
mediante las capas del protocolo TCP/IP llegan a la interfaz de los sockets BSD,
que se comunica con el ncleo, todo tal y como observamos en la figura.
Grfica 99. Subsistema de red

Sistemas Operativos 277

2.3 Versiones y caractersticas Linux/Unix


2.3.1 Versiones
Existen numerosas versiones de UNIX para muchos sistemas, desde ordenadores
personales hasta supercomputadores como el Cray Y-MP.
Entre las versiones de los sistemas operativos UNIX actuales cabe destacar:
Linux, disponible para las familias x86 de Intel y compatibles, las estaciones
Alpha de Oigital (ahora Compaq-HP), la familia 68K de Motorola, estaciones
MIPS, estaciones SP ARC, etc.
SunOS, disponible. para la familia 68K as como para la familia de
estaciones de trabajo SP ARC de Sun Microsystems.
Solaris, disponible para la familia SP ARC de Sun y la familia x86 de Intel y
compatibles.
OSF1 (tambin conocido como OEC UNIX), para procesadores Alpha de
Digital
Ultrix, disponible para estaciones V AX de Digital.
SYSVR4 (tambin conocido como Novell-UNIX o UNIXwaredisponible para
las familias de procesadores x86, V AX.
IRIX, disponible para MIPS.
AIX, disponible para las series RS6000 de IBM y para el PowerPC.
Como puede observarse, se puede asegurar que existe una versin de UNIX para
cualquier mquina medianamente conocida. Esto es debido a la gran portabilidad
de su cdigo, escrito en C, y a que ste es pblico y accesible.
2.3.2 Caractersticas de Linux/Unix
Debido a que LINUX es una versin de UNIX, ambos sistemas comparten la
mayora de las caractersticas tcnicas y funcionalidades. Este captulo se
centrar en las caractersticas y funcionalidades de Linux, ya que tiene un carcter
ms didctico y, al ser de libre distribucin, el lector tendr mayor facilidad para
acceder a l. Adems se comentarn, cuando las hubiere, las diferencias entre
ambos sistemas operativos.
Linux es un sistema operativo completo con multitarea y multiusuario (como

Sistemas Operativos 278

cualquier otra versin de UNIX). Esto significa que pueden trabajar varios
usuarios, simultneamente en l y que cada uno de ellos puede tener varios
programas en ejecucin. Esto se consigue mediante la tcnica de time-sharing
(comparticin de tiempo), en la que el sistema operativo, a travs de su gestor de
procesos, asigna intervalos de tiempo de CPU a cada proceso de la mquina.
El sistema Linux es compatible con ciertos estndares de UNlX a nivel de cdigo
fuente, incluyendo el IEEE POSIX.1, System V y BSD. Fue desarrollado
buscando la portabilidad de los fuentes: casi todo el software gratuito desarrollado
para UNIX se compila en Linux sin problemas. Y todo el software que se hace
para Linux (cdigo del ncleo, drivers, libreras y programas de usuario) es de
libre distribucin.
E] ncleo es capaz de emular por su cuenta las instrucciones del coprocesador
80387, con lo que en cualquier Intel 80386, con coprocesador matemtico o sin l
podrn ejecutar aplicaciones que requieran la presencia de la unidad de clculo
en coma flotante. As, se evita que los programas tengan que hacer su propia
emulacin matemtica.
Linux implementa el control de trabajos POSIX (que se usa en los shells csh y
bash), las pseudoterminales (dispositivos pty) y teclados nacionales mediante
manejadores de teclado cargables dinmicamente. Adems, soporta consolas
virtuales, lo que permite tener ms de una sesin abierta en la consola de texto y
conmutar entre ellas fcilmente.
Linux soporta diversos sistemas de ficheros para almacenar los datos. Algunos de
ellos, como el ext2fs (un avanzado sistema de archivos propio con una capacidad
de hasta 4 Terabytes y nombres de archivos de hasta 255 caracteres de longitud)
han sido desarrollados especficamente para Linux. Tambin soporta, entre otros,
el sistema de ficheros Minix-1 (el sistema de ficheros de Xenix), HPF8-2 del OS/2
2.1, el sistema de ficheros de MS-DOS (FAT) con el que se podrn acceder desde
Linux a los disquetes y particiones en discos duros formateados con MS-DOS,
tambin soporta la versin ms moderna de este sistema de ficheros (FAT32) y
todos los sistemas de archivo tpicos de System V. Adems, soporta el ISO-9660,
que es el estndar seguido en el formato de los CD-ROMs.
Linux implementa todo lo necesario para trabajar en red con la pila de protocolos
TCP/IP, desde manejadores para las tarjetas de red ms populares hasta
SLIP/PPP, que permiten acceder a una red TCP/IP por el puerto serie. Asimismo
se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS
(Network File System, para acceso remoto a ficheros). Y tambin se han portado
los clientes de TCP/IP, como FTP, telnet, NNTP y SMTP. Recientemente se han
incorporado los protocolos de red Appletalk y Netware de Novell.
El ncleo de Linux ha sido desarrollado para utilizar las caractersticas del modo
protegido de los microprocesadores 80386 80486 y superiores. En concreto, hace

Sistemas Operativos 279

uso de la gestin de memoria avanzada del modo protegido y otras caractersticas


avanzadas. Cualquiera que conozca la programacin del 386 en el modo
protegido sabr que este modo fue diseado para su uso en UNIX (o tal vez
MuItics). Linux hace uso de esta funcionalidad precisamente.
El ncleo soporta ejecutables con paginacin por demanda. Esto significa que
slo los segmentos del programa que se necesitan se cargan en memoria
desde el disco. Las pginas de los ejecutables son compartidas mediante la
tcnica copy on write (copia en escritura), esto significa que varios procesos
pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta
escribir en esa zona de memoria, la pgina (4Kb de memoria) se copia a otro
lugar. Esta poltica de copia en escritura tiene dos beneficios: aumenta la
velocidad y reduce la cantidad de memoria requerida para las aplicaciones.
Con el fin de incrementar la memoria disponible, Linux implementa paginacin
de memoria en disco: puede tener hasta 256 megabytes de espacio de
intercambio o swap en el disco duro. Cuando el sistema necesite ms memoria
expulsar pginas inactivas al disco, permitiendo la ejecucin de programas
ms grandes o aumentando el nmero de usuarios que puede atender a la vez.
Sin embargo el espacio de intercambio no puede suplir totalmente a la memoria
RAM, ya que el primero es mucho ms lento que sta.
La memoria dedicada a los programas y a la cach de disco est unificada. Por
ello, si en cierto momento hay mucha memoria libre, el tamao de la cach de
disco aumentar acelerando as los accesos, de tal forma que toda la memoria
libre puede ser usada para cach y este puede a su vez ser reducido cuando se
ejecuten grandes programas.
Los ejecutables hacen uso de las libreras de enlace dinmico. Esto significa
que los ejecutables comparten el cdigo comn de las libreras en un nico
fichero como sucede en SunOS. As, los ejecutables sern ms cortos a la hora
de guardarlos en el disco, incluyendo aquellos que hagan uso de muchas
funciones de librera. Tambin pueden enlazarse estticamente cuando se
deseen ejecutables que no requieran la presencia de las libreras dinmicas en
el sistema. El enlace dinmico se hace en tiempo de ejecucin, con lo que el
programador puede cambiar las libreras sin necesidad de recompilacin de los
ejecutables.
Se accede a los diferentes dispositivos como si se tratase de ficheros. De esta
forma, es posible abstraerse del tipo de dispositivo con el que se est
interactuando, ya que de cara al programador o al usuario se trabaja de forma
idntica con todos los dispositivos. Para el sistema operativo, cada dispositivo
es un fichero (de hecho se podra llegar a decir que en UNIX todo es un fichero)
y crea un fichero en su sistema de archivos por cada dispositivo instalado en la
mquina. Cuando se quiere utilizar un dispositivo, se abre su fichero asociado y

Sistemas Operativos 280

se escribe o lee de l como si de un fichero de datos se tratara. El sistema


operativo se encarga del resto.
A continuacin, se exponen en una lista las principales caractersticas de Linux:
Multitarea: varios programas (realmente procesos) se pueden ejecuta: a
mismo tiempo.
Multiusuario: varios usuarios pueden trabajar en la misma mquina a
mismo tiempo.
Multiplataforma: corre en muchas CPUs distintas, no slo Intel.
Funciona en modo protegido 386.
Proteccin de la memoria entre procesos, de manera que uno de ellos pueda colgar el sistema.
Carga de ejecutables por demanda: Linux slo lee de disco aquellas
partes de un programa que estn siendo usadas actualmente.
Poltica de copia en escritura (copy on write).
Memoria virtual usando paginacin (sin intercambio de procesos
completos) a disco.
La memoria se gestiona como un recurso unificado para los programas
de usuario y para la cach de disco.
Libreras compartidas de carga dinmica (DLL's).
Casi totalmente compatible con POS IX, System V y BSD a nivel fuente.
Cdigo fuente disponible, incluyendo el ncleo completo y todos los
drivers, las herramientas de desarrollo y todos los programas de usuario.
Control de tareas POS IX.
Pseudo-terminales (pty , s).
Acceso a los diferentes dispositivos como si de ficheros se tratase.
Emulacin de la unidad de coma flotante 80387 en el ncleo.
Consola virtual es mltiples: varias sesiones de login a travs de la

Sistemas Operativos 281

consola.
Soporte para varios sistemas de archivo comunes.
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FA T)
mediante un sistema de archivos especial.
Sistema de archivos ISO-9660 que lee todos los formatos estndar de
CD-ROM.
Pila de protocolos TCP/IP.
Admite protocolos Appletalk.
Software cliente y servidor NetWare disponible en los ncleos de
desarrollo.
2.4 Instalacin del sistema
Antes de proceder a la instalacin del sistema operativo Linux en una mquina,
se han de realizar dos pasos muy importantes:
Verificar que la mquina cumple al menos con los requisitos mnimos de
hardware que el sistema operativo a instalar requiere.
Elegir la distribucin a instalar entre las muchas existentes.
2.4.1 Requisitos hardware
Las necesidades hardware de Linux no son nada exigentes y mucho menos en
la actualidad, donde cualquier ordenador del mercado supera, y con creces, los
requisitos mnimos. An as, es conveniente tener presentes estos requisitos
mnimos especialmente si se va a instalar en equipos de cierta antigedad.
Estas necesidades varan en funcin del uso que se le vaya a dar a la mquina
de la cantidad de usuarios a los que se vaya a dar servicio y a las aplicaciones
que estos vayan a ejecutar.
Requisitos de placa base y de CPU
Actualmente Linux soporta, dentro de la arquitectura PC, sistemas con una CPU
Intel 80386, 80486 o Pentium, Pentium II, III y IV. Esto incluye todas las
variantes del tipo de CPU, como el 386SX, 486SX, 486DX, 486DX2, Pentium
Pro. Pentium Celeron, Mendocino, etc. Los clnicos no Intel, como AMD y
Cyrix tambin estn soportados por Linux.

Sistemas Operativos 282

La placa base debe ser de arquitectura ISA o EISA en cuanto a bus se refiere.
El bus MicroChannel (MCA), que se encuentra en mquinas como los IBM/PS2,
no est soportado actualmente.
Requisitos de memoria
Linux, comparado con otros sistemas operativos avanzados, necesita muY poca
memoria para funcionar. Se debera contar con un mnimo de 4 Megabytes de
RAM; sin embargo, es altamente recomendable tener al menos 32 Megabytes
para un funcionamiento ms fluido.
En equipos con poca memoria RAM, se reserva una parte del disco duro para
espacio de intercambio o swap que se usa como memoria RAM virtual. Incluso
si se dispone de bastante memoria RAM fsica en la mquina, es recomendable
utilizar un rea de swap. El rea de swap no puede reemplazar a una memoria
fsica RAM real pero puede permitir al sistema ejecutar aplicaciones cuyos
requisitos de memoria superen a la RAM disponible en el sistema guardando en
disco duro aquellas partes de cdigo que estn inactivas.
Una vez ms, el uso final del equipo marca las necesidades de hardware. Si el
sistema no va a ejecutar ningn tipo de entorno grfico, con 16-32 ME habr
suficiente, pero si la intencin es que disponga de alguno de ellos
(posteriormente se vern ms en detalle), es recomendable dotar al equipo con,
al menos, 64 MB de RAM.
La controladora de disco duro
Si bien, no es imprescindible un disco duro para ejecutar Linux, ya que se puede
ejecutar un sistema mnimo completamente desde disquete, esto resulta lento y
muy limitado, por lo que la presencia de disco duro se hace obligada. Para ello,
Linux soporta tanto las controladoras AT-estndar (l6-bits) como las
controladoras XT- estndar (8 bits). Soporta todas las controladoras MFM, RLL
e IDE. La mayora, pero no todas, las controladoras ESDI estn soportadas
(slo aquellas que hacen emulacin hardware de la ST506). La regla general
para controladoras que no sean SCSI es que, si se puede acceder a las
unidades desde MS-DOS u otro sistema operativo, se debe poder hacerlo
desde Linux.
Linux tambin soporta un nmero de controladoras de disco SCSI, si bien el
soporte para SCSI es ms limitado a causa de la gran cantidad de estndares
que existen para la interfaz de las controladoras. Las controladoras SCSI
soportadas incluyen las Adaptec AHA1542B, AHA1542C, AHA1742A (versin
de BIOS 1.34), AHA1522, AHA1740, AHA1740 (controladora SCSI-2, BIOS 1.34
en modo mejorado); Future Domain 1680, TMC-850, TMC-950; Seagate ST-02;

Sistemas Operativos 283

UltraStor SCSI; Western Digital WD7000FASST. Las controladoras clnicas


basadas en estas tarjetas tambin deberan funcionar.
Espacio en disco
La cantidad de espacio en disco duro que se necesita depende, una vez ms,
en gran medida de la cantidad de servicios que se quieran ejecutar y de la
cantidad de software que va a instalar. Linux es relativamente pequeo en
relacin a las implementaciones de UNIX. Se podra correr un sistema completo
con slo 20 MB de espacio en disco. Sin embargo, si se quiere disponer de
espacio para expansiones y para paquetes ms grandes como X- Window, se
necesita ms espacio.
Por otra parte, hay que calcular que, por cada usuario que vaya a utilizar la
mquina, se tendr que reservar espacio de disco para sus ficheros. A todo esto
hay que aadir que se necesita crear un espacio de intercambio o swap, para
ser usado como RAM virtual. (Esto ltimo se ver ms en profundidad al final de
este apartado).
As pues, antes de comenzar con la instalacin del sistema operativo, se han de
planificar cuidadosamente los requisitos de espacio en disco duro a tener de
estos aspectos.
Linux soporta mltiples discos duros en la misma mquina, por lo que se puede
disponer de espacio para Linux en mltiples unidades si es necesario. Es
prctica recomendable separar en distintas particiones y, a ser posible, en
distintos discos, las reas de swap, sistema (lroot) y usuario (/home) para una
administracin ms sencilla.
Requisitos del adaptador de video
Linux soporta todas las tarjetas de vdeo estndar Hercules, CGA, EGA. VGA,
IBM monocromo y Super VGA para la interfaz por defecto basada en texto. En
general, si la combinacin que tiene de monitor y tarjeta de vdeo funcionan bajo
otro sistema operativo como MS-DOS, debera funcionar perfectamente con
Linux. Las genuinas tarjetas CGA de IBM sufren el (d)efecto nieve bajo Linux,
por lo que no es muy recomendable su uso.
Los entornos grficos como el Sistema X-Window, KDE, Gnome, etc. tienen
requerimientos propios de hardware para la tarjeta de vdeo que, generalmente,
son ms restrictivos que para el trabajo en modo comando, especialmente si se
requiere una alta resolucin de pantalla. Cada uno de ellos incluye una lista con
el hardware soportado y probado, por lo que se debe comprobar en estos
documentos si nuestro hardware est incluido.

Sistemas Operativos 284

Otro hardware
Para el resto del hardware de la mquina, teclado, ratn, impresoras, tarjeta de
red, mdems, unidades de cinta, unidades lectoras-regrabadoras de CD-ROM,
DVD, escneres, etc., se puede decir que siempre que el dispositivo siga los
estndares internacionales estar soportado por el sistema. En cualquier caso,
da a da se estn aadiendo dispositivos a la lista de perifricos soportados,
por lo que es conveniente informarse en las publicaciones de novedades y en
los foros de desarrollo.
2.4.2 Distribuciones
En s mismo, Linux es slo el ncleo del sistema operativo, por lo que necesita
acompaarse de otras aplicaciones para ser realmente til; muchas de estas
aplicaciones han sido portadas desde otros sistemas operativos (generalmente
UNIX) o creadas especficamente para l. Todas estas aplicaciones estn
disponibles gratuitamente desde Internet pero, para evitar esta labor de
bsqueda y descarga, algunas empresas presentan en paquetes colecciones de
aplicaciones que, junto al ncleo, completan un sistema operativo completo.
A continuacin se citan algunas de las ms populares:
Slackware (http://www.slackware.com). Una de las primeras y muy
popular en un principio, actualmente ha perdido terreno debido a que su sistema de instalacin no tiene control de versiones ni dependencias
como el sistema RPM de Red Hat o el DEB de Debian.
Debian (http://www.debian.org). Esta distribucin no est desarrollada
por ninguna compaa, sino que es fruto de la colaboracin de la
comunidad de Internet, por lo que se trata de una distribucin totalmente
gratuita donde todo el software es GNU/GPL y no incluye software
comercial. Otra de sus ventajas es su sistema de instalacin de paquetes
DEB.
SUSE (http://www.suse.de). Distribucin que combina el sistema de
paquetes de Red Hat (RPM) con una organizacin derivada de
Slackware. Es la distribucin ms popular en Europa e incluye soporte
para diferentes idiomas incluido el castellano. Es una de las ms fciles
de instalar y configurar, adems es muy completa en cuanto al nmero
de paquetes se refiere.
Caldera (http://www.calderasystems.com). Presenta la distribucin
OpenLinux, basada en el sistema de paquetes RPM de Red Hat y
orientada a entornos comerciales, ya que incluye aplicaciones de oficina
como Aplixware y Corel W ord Perfecto.

Sistemas Operativos 285

Mandrake (http://www.Linux-mandrake.com). Surge como un clon de


RedHat integrando adems el entorno grfico KDE. Hoyes una de las
distribuciones ms extendidas.
Red Hat (http://www.redhat.com). Es la distribucin ms famosa,
precursora del sistema de instalacin por paquetes RPM, muy sencilla de
instalar gracias a su interfaz de instalacin grfica y con auto deteccin
de dispositivos. A todo esto hay que aadir un excelente conjunto de
aplicaciones comerciales en su distribucin oficial. Debido a su
popularidad es emulada por otras muchas como la Mandrake.
Una vez elegida y adquirida la distribucin a instalar de Linux ya se puede
comenzar con la instalacin en s pero antes es muy recomendable informarse
de los dispositivos hardware que tiene instalada la mquina, ya que durante el
proceso de instalacin es muy posible que se deba suministrar esta informacin
al asistente de la instalacin.
Bajo UNIX y Linux, los dispositivos y las particiones tienen nombres muy
distintos a los utilizados en otros sistemas operativos. Bajo MS-DOS, las
disqueteras se identifican como A: y B:, mientras que las particiones del disco
duro se identifican como C:, D:, etc. Bajo Linux, la denominacin es algo
diferente.
Los manejadores de dispositivos (en realidad son ficheros), que se encuentran
en el directorio /dev, se usan para comunicar con los dispositivos del sistema
(como discos duros o ratones).
Por ejemplo, si se tiene un ratn en el sistema, se puede acceder a l a travs
del manejador (fichero) /dev/mouse. Las disqueteras, discos duros y particiones
tienen cada uno un manejador (fichero) propio. Es importante entender cmo
son nombrados los dispositivos con el fin de poderlos usar.
Lista los nombres de diversos manejadores:
Primera disquetera (A:)
Segunda disquetera (B:)
Primer disco duro (todo el disco)
Primer disco duro, particin primaria 1
Primer disco duro, particin primaria 2
Primer disco duro, particin primaria 3
Primer disco duro, particin primaria 4
Primer disco duro, particin lgica 1
Primer disco duro, particin lgica 2
..
.

/dev/fd0
/dev/fd1
/dev/hda
/dev/hda1
/dev/hda2
/dev/hda3
/dev/hda4
/dev/hda5
/dev/hda6

Sistemas Operativos 286

Segundo disco duro (todo el disco)


Segundo disco duro, particin primaria 1
..
.
Primer disco duro SCSI (todo el disco)
Primer disco duro SCSI, particin primaria 1
..
.
Segundo disco duro SCSI (todo el disco)
Segundo disco duro, SCSI, particin primaria 1

/dev/hdb
/dev/hdb1
/dev/sda
/dev/sda1
/dev/sdb
/dev/sdb1

Es destacable que los discos duros SCSI se nombran de manera diferente a


otros discos. Se accede a los IDE, MFM Y RLL a travs de los dispositivos
/dev/hda, /dev/hdb, etc. Las particiones de /dev/hda son /dev/hdal, /dev/hda2,
etc. Sin embargo, los dispositivos SCSI se nombran con /dev/sda, /dev/sdb, etc.,
y las particiones con /dev/sdal, /dev/sda2..
EJEMPLO
Supongamos un ordenador que tiene un disco duro IDE con tres particiones primarias. Las
dos primeras son para MS-DOS y la tercera es extendida y contiene dos particiones lgicas,
ambas para ser usadas con Linux.
Los dispositivos quedaran representados con:
Primera particin MS-DOS (C:)
Segunda particin MS-DOS (D:)
Particin extendida
Primera particin lgica de Linux
Segunda particin lgica de Linux

/dev/hda1
/dev/hda2
/dev/hda3
/dev/hda5
/dev/hda6

Obsrvese que se ha saltado /dev/hda4, ya que corresponde a la cuarta particin primaria,


que no existe en el ejemplo. Las particiones lgicas se nombran de forma consecutiva
partiendo de /dev/hda5

A pesar de ser diferente en cada distribucin de Linux, el mtodo utilizado para


instalar el software es, en general, como sigue:
1. Reparticionar el o los discos duros. Con el fin de reservar el espacio
necesario para Linux. En este punto es muy conveniente ayudarse de alguna
aplicacin de gestin de discos como FIPS, Partition Magic o alguna otra
utilidad de particionamiento que incluya la distribucin (como por ejemplo, el
Disk Wizard de mandrake.
2. Arranque de la instalacin de Linux. Cada distribucin de Linux incluye un
mtodo para arrancar inicialmente e instalar el software, usualmente un

Sistemas Operativos 287

disquete o un CD-ROM de arranque. Arrancando de esta forma, se entrar en


un programa de instalacin para el resto del software.
3. Crear las particiones para Linux. Despus de reparticionar el disco, se deben
crear particiones de Linux en dicho espacio. Esto se realiza con el programa
fdisk:
Se debe crear, como mnimo, una particin para el software de Linux propiamente
dicho y otra para el rea de intercambio, aunque es recomendable crear varias
particiones para el sistema de archivos de Linux con el fin de obtener una
administracin ms fcil del sistema.
Para ello, hay que ejecutar el comando fdisk tecleando fdisk <drive> donde
<drive> es el nombre de dispositivo con el que Linux identifica el disco duro donde
quiere realizar las particiones (vase la Tabla 5.1). Por ejemplo, si se desea
ejecutar fdisk sobre el primer disco SCSI del sistema, se utilizar el comando fdisk
/dev/sda. Por defecto, fdisk acta sobre /dev/hda (el primer disco IDE). Para crear
particiones de Linux en ms de un disco, ejecute fdisk una vez por disco.
Se ilustra con un completo ejemplo ya que es quiz el punto ms confuso de todo
el proceso:
EJEMPLO 5.2
# fdisk /dev/hda
Command (m for help)
En este punto, fdisk est esperando un comando; se puede teclear m para obtener una lista
de opciones.
Command (m for help): m
Command action
a toggle a bootable flag
d delete a partition
1 list known partition types
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
El comando n se usa para crear una nueva particin. Para salir de fdisk sin salvar los
cambios, se utiliza el comando q. Para salir escribiendo los cambios en la tabla de

Sistemas Operativos 288

particiones, se utiliza el comando w.


Lo primero que se debe hacer es mostrar su tabla de particiones actual y anotar sus datos,
para referencias posteriores. Usar el comando p para esto.
Command (m for help): p
Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
Units = cylinders of 608 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M
Command (m for help):
En este ejemplo, se tiene una particin nica en /dev/hdal, con 61.693 bloques (unos 60 ME
ya que en Linux un bloque son 1.024 bytes.
Esta particin comienza en el cilindro 1 y finaliza en el 203. En total el disco tiene 683
cilindros de los cuales 480 estn libres para crear particiones de Linux.
Para crear una nueva particin, se usa el comando n. En este ejemplo se crearn dos
particiones primarias (/dev/hda2 y /dev/hda3) para Linux.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Aqu, fdisk pide el tipo de particin a crear: extendida o primaria. En nuestro ejemplo se
elige p pues solo se van a crear particiones primarias.
Partition number ( 1 4 ) :
Fdisk pregunta entonces por el nmero de la particin a crear; puesto que la 1 est en uso,
la primera particin para Linux debe ser la 2.
Partition number ( 1 4 ) : 2
First cylider (204 683) :
Ahora se debe introducir el cilindro de comienzo de la particin. Dado que actualmente no
estn en uso los cilindros 204 a 683, se escoge el primero disponible 204), ya que no hay
razn para dejar huecos entre particiones.
First cylinder (204-683): 204
last cylinder or +size or +sizeM or +sizeK (204-683):
Ahora fdisk est preguntando acerca del tamao de la particin a crear. Podemos
especificar el cilindro de terminacin de la particin o introducir directamente el tamao
requerido, en bytes, kilobytes o megabytes. Como se desea que la particin ocupe 80 MB,
se introduce +80M. Cuando se indica el tamao de esta forma, fdisk lo redondea a un
nmero de cilindros
Last cylinder or + size or + sizeM or +sizeK (204 683):

Sistemas Operativos 289

Ahora fdisk est preguntando acerca del tamao de la particin a crear. Podemos
especificar el cilindro de terminacin de la particin o introducir directamente el tamao
requerido, en bytes, kilobytes o megabytes. Como se desea que la particin ocupe 80 MB,
se introduce +80M. Cuando se indica el tamao de esta forma, fdisk lo redondea a un
nmero de cilindros.
Last cylinder or + size or + sizeM or +sizeK (204 683):
+ 80M
Warning: Linux cannot currently use 3390 sectors of this partition
Si se obtiene un mensaje como el anterior, este puede ignorarse. fdisk imprime este, aviso
debido a que es un programa antiguo que data de cuando las particiones de Linux no
podan superar los 64 MB.
Ahora se va a crear la segunda particin. Para el ejemplo, se va a crear de 10 MB.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (474-683): 474
Last cylinder or + size or + sizeM or +sizeK (474 683):
+ 10M.
Finalmente, se ha de ver la tabla de particiones, para comprobar el estado final del disco.
Una vez ms, es recomendable anotar la informacin que se presenta, sobre todo los
tamaos en bloques de las nuevas particiones. Esta informacin ser til al crear, ms
tarde, los sistemas de ficheros. Adems, se debe verificar que las particiones no se solapen.
Command (mfor help): p
Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
Units = cylinders of 608 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 203 61693 6 DOS 16 - bit >= 32M
/dev/hda2 204 204 473 82080 81 Linux/MINIX
/dev/hda3 474 474 507 10336 81 Linux/MINIX
Se puede ver que ahora en /dev/hda2 hay una particin de 82.080 bloques
(aproximadamente 80 MB) y en /dev/hda3 hay 10.336 bloques (unos 10MB).
Los cilindros sobrantes (508 a 683) se quedan sin usar. Puede que se desee hacerlo as para ms adelante crear ms particiones. Finalmente, se utilizar el comando w para
escribir los cambios en el disco y salir.
Command (m for help): w
#

Durante el proceso de creacin de particiones, o posteriormente a l, se debe


indicar el tipo que tendr cada particin, para ello se utiliza e comando t en fdisk.

Sistemas Operativos 290

As, por ejemplo, para la particin dedicada a rea de intercambio se selecciona el


tipo Linux swap, normalmente indicado con el nmero 82. Para la particin que
albergar el sistema de archivos de Linux se selecciona el tipo Linux native. Se
puede usar el comando L para ver una lista de los tipos de particiones conocidas,
y luego t para establecer el tipo de la particin. De esta forma, el software de
instalacin podr encontrar automticamente las particiones creadas y sugerir las
ms apropiadas durante el proceso de instalacin.
Ningn cambio realizado durante la ejecucin de fdisk tendr efecto hasta que se
teclee el comando w, por lo que se puede jugar con diferentes configuraciones y
salvar los cambios slo cuando estos sean correctos totalmente. Adems, se
puede usar el comando q para abandonar fdisk sin hacer ningn cambio. Es
importante recordar que las particiones de otros sistemas operativos no deben
tocarse desde el programa fdisk de Linux.
Asimismo, hay que recordar que no se puede arrancar Linux desde una particin
que comience ms all del cilindro 1.023. Por lo tanto, se puede crear la particin
de raz en el rango inferior a este cilindro o, si esto es imposible, arrancar siempre
desde un disquete.
Algunas distribuciones de Linux necesitan rearrancar el sistema tras ejecutar fdisk.
Esto permite que los cambios en la tabla de particiones tengan efecto. Las nuevas
versiones de fdisk cambian de forma automtica esta informacin en el ncleo,
con lo que no es necesario rearrancar.
4. Crear los sistemas de ficheros y el espacio de intercambio. En este
momento, se debe crear uno o ms sistemas de ficheros, que se utilizarn para
guardar los archivos, en las particiones recin creadas. Adems, si se piensa
usar espacio de intercambio (altamente recomendable), se debe crear dicho
espacio en una de las particiones para Linux.
Antes de que se puedan usar las particiones de Linux (creadas en el punto
anterior) para almacenar ficheros, hay que crear los sistemas de ficheros en ellas.
La creacin de un sistema de ficheros es anloga a formatear una particin de
MS-DOS u otros sistemas operativos.
Hay varios tipos de sistemas de ficheros disponibles en Linux. Cada tipo de
sistema de ficheros tiene su propio formato y caractersticas (como longitud del
nombre de los ficheros, tamao mximo, etc.). Adems, Linux soporta sistemas de
ficheros de terceros como el de MS-DOS.
El tipo de sistema de ficheros ms usado en Linux es el Sistema de Ficheros
Extendido (ext2fs). Es uno de los ms eficientes y flexibles sistemas; permite
hasta 256 caracteres en los nombres de los ficheros y tamaos de estos de hasta
4 TB.

Sistemas Operativos 291

Actualmente, las distribuciones, en el propio procedimiento de instalacin, crean


los sistemas de ficheros de forma automtica. An as es conveniente saber cmo
se realiza esta tarea manualmente.
Para crear un sistema tipo ext2fs se utiliza el comando:
mke2fs -c <partition> <size>
donde <partition> es el nombre de la particin y <size> es el tamao de la
particin en bloques.
Por ejemplo, para crear un sistema de 82.080 bloques en /dev/hda2, se usa el
comando:
# mke2fs -c /dev/hda2 82080
Si se desea usar varios sistemas de ficheros en Linux, se necesitar repetir el
comando mke2fs por cada sistema de ficheros.
rea de intercambio
Como ya se ha explicado anteriormente, Linux permite utilizar memoria de disco
para emular a la RAM fsica mediante el sistema de paginacin a disco. De esta
forma se logra poder ejecutar un mayor nmero de procesos simultneamente o
ejecutar procesos con grandes requisitos de memoria que de otra forma no
podran ser ejecutados.
Es recomendable reservar un tamao de intercambio igual al doble de la memoria
RAM del equipo para optimizar el mecanismo de paginacin a disco. As pues, si
el equipo en el que se va a instalar el sistema operativo cuenta con 64 MB de
RAM, se reservarn 128 ME de espacio de intercambio.
El comando utilizado para preparar una particin de intercambio es mkswap,
teclendose:
# mkswap -c <partition>

<size>

donde <partition> es el nombre de la particin de swap y <size> es el tamao de la


particin, en bloques. Por ejemplo, si la particin de intercambio es la /dev/hda3 y
tiene 10.336 bloques, se ha de teclear el comando:
# mkswap -c /dev/hda3 10336

Sistemas Operativos 292

La opcin -c indica a mkswap que compruebe si hay bloques errneos en la


particin mientras la crea.
Si se usan varias particiones de intercambio, se necesitar ejecutar el comando
mkswap apropiado para cada particin.
Despus de preparar el rea de swap, hay que decirle al sistema que la use
aunque, normalmente, el sistema comienza a usarla automticameme durante el
arranque. Sin embargo, durante la instalacin como an no tiene instalado el
software de Linux, se tiene que activar a mano.
El comando para hacerlo es swapon y. tiene el formato swapon <partition>.
En el ejemplo anterior, para activar el espacio de intercambio en /devlhda3, se
usar el comando:
# swapon /dev/hda3
5. Instalar los programas en los sistemas de ficheros. Ya slo resta
instalar el software en la mquina. Este proceso est bastante
automatizado por parte de las distintas distribuciones y, generalmente, se
presenta un men en el que se muestran los paquetes de aplicaciones, con
una breve descripcin de su funcionalidad, incluidos en la distribucin para
que el usuario elija los que desee.
El resto del proceso consiste simplemente en la copia a disco de dichos paquetes.
La mayora de las distribuciones de Linux proporcionan un programa de
instalacin que asesora en cada paso de la instalacin y automatiza, en mayor o
menor medida, algunos o todos de estos pasos.
2.5 La interfaz de usuario
2..5.1 El sistema X - Window
X-Window es el entorno grfico habitual de los sistemas UNIX. El sistema XWindow se compone de dos partes principales: el servidor X y el programa para la
gestin de las ventanas o gestor de ventanas. El servidor X es el programa que
se encarga realmente de dibujar en la pantalla. Por el contrario, el gestor de
ventanas, como su nombre indica, es el encargado de crear las ventanas y
gestionar su apariencia. Debido a este modelo de trabajo (cliente-servidor), la
apariencia de las aplicaciones vara segn se use uno u otro gestor de ventanas,
entre los que destacan por su sencillez de uso y bajos requisitos hardware los
entorno s twm, fvwm, olvwm, etc. y, por su versatilidad y riqueza grfica, GNOME
y KDE.

Sistemas Operativos 293

Al instalar Linux, el sistema puede preguntar si se desea arrancar Linux en modo


texto o en modo grfico. Si se ha seleccionado esta ltima opcin, Linux arrancar
directamente X-Window. En caso contrario, en la lnea de comandos hay que
escribir startx con lo cual se arranca el modo grfico. Por defecto, se ejecutar el
entorno grfico GNOME (en distribuciones que no sean Red Hat 6.0, se puede
arrancar por defecto otro entorno como KDE o AfterStep.
El sistema X-Window es un interface grfico estndar para mquinas UNIX. Es un
potente entorno que soporta muchas aplicaciones. Usando X-Window, el usuario
puede tener mltiples terminales a la vez en ventanas sobre la pantalla, cada una
conteniendo una sesin diferente.
Han sido escritas muchas aplicaciones especficamente para X, como juegos,
utilidades grficas, herramientas de programacin, documentacin y un largsimo
etctera.
Con Linux y X, el sistema es una autntica estacin de trabajo. Junto con una red
TCP/IP se puede incluso visualizar aplicaciones que se estn ejecutando en otras
mquinas en su pantalla local, tal y como es posible con otros sistemas que
ejecuten X.
El sistema X-Window fue desarrollado originalmente en el MIT y es de libre
distribucin. A pesar de esto, muchas empresas han distribuido sus mejoras
particulares al diseo original de X- Window. La versin de X- Window disponible
para Linux es conocida como XFree86 (una adaptacin de XllR56 de libre
distribucin para sistemas UNJX basados en 80386, como es Linux). Linux
dispone en la actualidad de la versin XIIR6 de X-Window.
XFree86 soporta una gran variedad de tarjetas de video, incluyendo VGA. Sper
VGA y gran cantidad de tarjetas aceleradoras de video. Esta es una distribucin
completa de X-Window que contiene el servidor de X, muchas aplicaciones ~
utilidades, libreras de programacin y documentacin.
Aplicaciones X estndar incluyen xterm (emulador de tenninal usado por la
mayora de las aplicaciones en modo texto dentro de X), xdm (el gestor de
sesiones.. maneja los login), xclock (un reloj simple), xman (un lector de pginas
de manua: para X) y muchos ms. El nmero de aplicaciones disponibles para X
Windows en Linux es demasiado numeroso como para mencionarlas aqu, pero la
distribucin bsica de XFree86 incluye las aplicaciones estndar que se
encontraban en la versin:, original del MIT. Muchas otras estn disponibles de
fonna separada y, tericamente cualquier aplicacin escrita para X Windows
debera compilar limpiamente bajo Linux.

Sistemas Operativos 294

Ventana de Configuracin de XConfigurator

La distribucin estndar XFree86 incluye twm (el clsico controlador z ventanas


del MIT) aunque hay disponibles controladores mucho ms avanzados como
Open Look Virtual Window Manager (olvwm).
Para configurar en servidor X, se pueden usar las siguientes utilidades:

Xf86config. Programa en modo texto y modo consola, actualmente en


desuso, pero igualmente til.
Xconfigurator. Programa en modo consola, pero con ventanas (figura 5.2).
XF86Setup. Programa en modo grfico VGA.
X Configuration. Programa en modo grfico (ver figura 5.3).

Durante la configuracin, se especifica el modelo de la tarjeta grfica instalada y


del monitor, as como las resoluciones y frecuencias que estos dispositivos
soportan, de entre los que se elige una combinacin como predeterminada.
Tambin se indican los directorios en los que se guardar la configuracin as
como el gestor de ventanas elegido entre los disponibles en el sistema.
Un controlador de ventanas muy popular entre los usuarios de Linux es el fvwm.
Es un pequeo controlador que requiere menos de la mitad de la memoria usada
por twm. Proporciona aspecto de 3D para las ventanas, as como un escritorio
virtual: si el usuario desplaza el ratn al borde de la pantalla, la pantalla entera es
desplazada, pareciendo mucho ms grande de 10 que realmente es.

Sistemas Operativos 295

Panel de configuracin de X-Window


El controlador de ventanas fvwm es altamente configurable y permite el acceso a
todas las funciones (tanto desde el teclado como desde el ratn). Muchas
distribuciones de Linux 10 utilizan como controlador de ventanas estndar.
La distribucin XFree86 contiene libreras para programacin y ficheros de
cabecera para aquellos programadores maosos que deseen desarrollar
aplicaciones para X. Estn soportados varios conjuntos de controles como los de
Athena, Open Look y Xaw3D. Todas las fuentes estndar, mapas de bits, pginas
de manual y documentacin estn incluidas. PEX (interface de programacin para
grficos 3D) tambin est soportado.
Muchos programadores de aplicaciones para X usan el conjunto comercial de
controles Motif para el desarrollo. Algunos vendedores proporcionan licencias
simples o multiusuario de una versin ejecutable de Motif para Linux, pero, como
Motif en s es bastante caro, no disponen de l demasiados usuarios de Linux. A
pesar de todo, los ejecutables estticamente enlazados con las libreras de Motif
pueden ser distribuidos libremente. Por lo tanto, si se escribe un programa usando
Motif y se desea distribuido libremente, se deber proporcionar un ejecutable con
las libreras enlazadas estticamente para que los usuarios que no posean Motif
puedan utilizarlo.
2.5.2 GNOME
GNOME es un entorno de ventanas muy popular debido a que est incluido en la
distribucin Red Hat. Se trata de un software gratuito ya que se distribuye bajo los
trminos de la licencia GNU.
GNOME (GNU Network Objet Model Environment) est basado en et entorno
GTK y no se limita a ser un simple manejador de ventanas, sino que es un
completo escritorio interactivo que proporciona una interfaz de usuario potente, consistente y altamente modular.
Cuando Linux arranca en modo grfico y el gestor de ventanas seleccionado es el

Sistemas Operativos 296

GNOME, aparece una ventana similar a la siguiente:

En ella se debe introducir el nombre del usuario y la clave (tanto Linux coN UNIX
distinguen entre letras maysculas y minsculas, por lo que root no es mismo que
Root o ROOT).
Cuando se sale del sistema, volver a aparecer esta misma ventana. Para apagar
el ordenador se puede seleccionar el botn de Options..., tras lo que aparece un
men con las siguientes opciones:
Sessions. Permite elegir al usuario el entorno de ventanas con el que va a
trabajar, los entornos ms habituales son: AnotherLevel, Default (arranca el
entorno por defecto instalado que puede ser cualquiera de los otros),
FailSafe (Modo a prueba de fallos), Gnome o KDE
Language. Permite cambiar el idioma en el que se muestran algunos de los
mensajes del sistema.
System. Contiene dos opciones: Reboot (para rearrancar el sistema) y Halt
para apagarlo. Nota: NUNCA se debe apagar directamente el ordenador
siempre hay que apagarlo empleando la opcin halt anterior (tras salir del
entorno con logout) o empleando el comando halt en el caso de trabajar en
modo texto.
Tras introducir el nombre del usuario y el password aparecer una pantalla similar
a la siguiente:

Sistemas Operativos 297

Entorno de Trabajo GNOME

Como puede observarse en la figura anterior, este entorno es muy similar a otros
como Windows, OS/2 o Macintosh. Al igual que estos entornos, GNOME est
diseado para ser empleado con el ratn e incluye elementos comunes con estos
entornos como conos, mens, etc. Al igual que Windows, incluye en la parte
inferior una barra, el Panel de GNOME (GNOME Panel), en el cual se encuentran
accesos directos a determinados programas de uso comn.
La pantalla de GNOME se encuentra dividida en dos zonas principales como se
puede apreciar en la figura anterior: la parte superior en la que aparecen las
ventanas de las aplicaciones y documentos del usuario recibe el nombre de
escritorio, y la parte inferior de la pantalla que recibe el nombre de panel de
GNOME. Este elemento est diseado para contener la siguiente informacin:
La huella de pie o footprint. Al seleccionar este elemento aparece un men
similar al men Inicio de Windows 9x con las aplicaciones ms importantes
instaladas.
Las applets que son enlaces a las aplicaciones de uso ms frecuente como
la consola, Netscape, la ayuda, etc.
El acceso a los escritorios virtuales. Al contrario que en Windows, X
Window permite organizar las ventanas en varios escritorios virtuales.
GNOME dispone tambin de un rea especfica en la que aparecen los
botones representativos de las ventanas activas en el sistema.
En los dos extremos del panel aparecen dos botones con flechas con los
que el usuario puede colapsar el panel de forma que se maximice el rea
til del escritorio. Haciendo clic con el botn derecho del ratn sobre
cualquiera de los elementos anteriores, aparecer un men contextual que
permite configurar el elemento.

Sistemas Operativos 298

Las cuatro opciones ms habituales son:


Remove from Panel que permite eliminar el applet del panel.
Move applet que permite modificar la posicin del applef arrastrndola y
soltndola en la nueva posicin.
About que muestra informacin sobre el autor del applet.
Properties que abre un cuadro de dilogo en el que se permite personalizar
todas las caractersticas del applet.
Seleccionado as mismo en alguna de las reas libres del panel se despliega otro
men que permite configurar todo el panel, aadir y quitar applets del mismo. A
este mismo men se puede acceder a travs de la opcin Panel del men
principal: (footprint)
De igual forma que en el panel, en el escritorio tambin se puede hacer clic con el
botn derecho, lo que despliega un men contextual con diversas opciones.
Para salir de GNOME hay que seleccionar la opcin Log Out que aparece en la
parte inferior del men.
2.5.3 KDE
KDE (K Desktop Environment) est basado en el entorno Qt. KDE es uno de los
entornos grficos ms populares de Linux puesto que une una gran facilidad de
uso a un entorno bonito y agradable. Al arrancar KDE aparece el escritorio en el
que se pueden encontrar elementos similares a los de otros entornos:

Entorno de Trabajo en KDE

Sistemas Operativos 299

Por defecto la pantalla de KDE se divide en tres partes fundamentales:


Panel de KDE
Escritorio
Panel de ventanas
El panel de KDE contiene accesos directos a las aplicaciones ms empleadas as
como dos mens:
El equivalente al men Inicio de Windows. Es el men a travs del cual se
pueden ejecutar las aplicaciones. Al seleccionar este elemento, se
despliega un men subdivido en distintas categoras. KDE incluye una gran
cantidad de utilidades que se integran con el entorno.
El segundo men del KDE. En el men de ventanas se puede acceder a
todas las que estn abiertas en los distintos escritorios. Al contrario que
otros entornos grficos, X Window permite organizar las ventanas en
distintos escritorios virtuales. Para cambiar de escritorio virtual se puede
escoger uno de los cuatro botones que aparecen en el panel.
Justo encima del panel de KDE, aparece el escritorio; al igual que en Windows
este elemento contiene iconos que permiten acceder a los elementos ms
comunes como las unidades de disco o la papelera.
Por ltimo, en la parte superior del escritorio aparece otra barra, en la que irn
apareciendo botones por cada ventana que se cree.
Las ventanas en el KDE tienen un aspecto similar al de las ventanas de Windows
(al menos con el aspecto bsico), pudindose distinguir diversas partes:
En la parte superior izquierda, aparece el icono de la aplicacin que, al
seleccionarlo, mostrar un men con las opciones bsicas de manipulacin
de ventanas: minimizar, maximizar, cerrar; as como otras no tan habituales
como enviar la ventana a otros escritorios.
En la parte superior central de la ventana, se encuentra la barra de ttulos
de la ventana.
En la parte superior derecha aparecen tres botones con las opciones de
minimizar, maximizar y cerrar.
Esta es la disposicin por defecto pero puede ser adaptada a los gustos del
usuario de una forma muy sencilla. Por debajo de este elemento se extiende la
barra de mens y de herramientas y el rea de trabajo de la aplicacin.

Sistemas Operativos 300

KDE Control Center


Esta aplicacin es la principal encargada de configurar KDE y a ella se puede
acceder de muchas formas, tanto desde el icono que aparece en el panel, como
desde cualquiera de las entradas al men Settings, en cuyo caso slo se accede a
una de las posibles opciones de configuracin. Cuando se arranca, aparecer una
ventana dividida en dos:
En la parte de la izquierda aparecen ordenadas las diferentes categoras de
configuracin (que coinciden con las categoras del men Settings).
En la parte derecha se abrirn los distintos cuadros de dilogo que permiten
configurar KDE (por ejemplo, seleccionando la opcin Desktop/Background,
aparecer a la derecha el cuadro de dilogo que permite cambiar la imagen
de fondo de los escritorios virtuales.

KDE Control Center

2.5.4 EL SHELL
Hasta este momento, se han visto algunos de los entornos grficos ms
importantes existentes para Linux. No obstante, cualquier usuario de Linux
acabar antes o despus relacionndose con el sistema empleando el modo texto.
Este modo se basa en la ejecucin de una serie de comandos, que son
interpretados por un programa o shell.
El kernel o ncleo del sistema ofrece sus servicios y el acceso a dispositivos
travs de llamadas al sistema y llamadas de funciones. Pero, mientras los
programas acceden directamente a estos, para que el usuario pueda acceder a los
servicios de sistema se necesita un programa que haga de intermediario entre el
usuario (a travs del terminal) y el kernel. Este programa es el shell y, como su
nombre indica, es algo que envuelve y protege al ncleo como si este fuese una
perla.

Sistemas Operativos 301

Linux dispone de varios de estos programas pero el ms habitual es conocido


como bash o Bourne Shell. Alternativas a este son el sencillo sh, el csh (C shell),
tcsh, el ksh de Korn, etc.
Bajo Linux hay algunas diferencias en los intrpretes de comandos disponibles.
Dos de los ms usados son los ya mencionados Bourne Again Shell o Bash
(/bin/bash). Bash es un equivalente al Bourne con muchas caractersticas
avanzadas de la C shell. Como Bash es un superconjunto de la sintaxis del
Bourne, cualquier guin escrito para el intrprete de comandos Bourne Standard
funcionar en Bash. Si se prefiere el uso del intrprete de comandos C, Linux tiene
el Tcsh, que es una versin extendida del C original.
El tipo de intrprete de comandos a usar es una cuestin de gustos. Algunas
personas prefieren la sintaxis del Bourne con las caractersticas avanzadas que
proporciona Bash y otras prefieren el ms estructurado intrprete de comandos C.
En o que respecta a los comandos usuales como cp, ls. Etc, es indiferente el tipo
de intrprete de comandos usado, la sintaxis es la misma. Slo cuando se
escriben scripts (guiones) para el intrprete de comandos o se usan
caractersticas avanzadas aparecen las diferencias entre los diferentes intrpretes
de comandos.
Si Linux se ha arrancado en modo texto, el sistema arranca de forma directa el
shell y queda a la espera de introduccin de nuevos comandos. Si se ha
arrancado en modo grfico se puede acceder al shell de dos formas:
Presionando alguna de las siguientes combinaciones de teclas:
<ctrl>+<alt>+<F1>
<ctrl>+<alt>+<F2>
<ctrl>+<alt>+<F3>
<ctrl>+<alt>+<F4>
<ctrl>+<alt>+<F5>
<ctrl>+<alt>+<F6>
Esto hace que el sistema salga del modo grfico y acceda a alguna de las seis
consolas virtual es de Linux, a las cuales tambin se puede acceder cuando se
arranca en modo de texto. Para volver al modo grfico hay que presionar
<ctrl>+<alt>+<F7> o <ctrl>+<alt>+<F8>.
La segunda forma es acceder al shell desde el mismo entorno grfico. Para
esto hay que abrir un programa llamado terminal o consola, por ejemplo:
kconsole (en el entorno KDE), xterm, gnome-terminal (en GNOME), etc.
En su forma ms habitual (los shells de Bourne o de Korn), el sistema operativo

Sistemas Operativos 302

utiliza un signo de $ como prompt para indicar que est preparado para aceptar
comandos, aunque este carcter puede ser fcilmente sustituido por otro u otros
elegidos por el usuario. En el caso de que el usuario acceda como administrador
este signo se sustituye por #.
En este punto, el usuario puede teclear comandos con o sin argumentos que
sern ejecutados por el sistema operativo.
Como utilidad prctica, cabe mencionar que, cuando sea necesario introducir el
nombre de un fichero o directorio como argumento a un comando, Linux permite
escribir las primeras letras del mismo y realiza un autorrellenado al presionar la
tecla del tabulador. Si no puede distinguir entre diversos casos, rellenar hasta el
punto en el que se diferencien.
2.6 Estructura de archivos
2.6.1 Tipos de archivos
La base del sistema de archivos de Linux es, obviamente, el archivo que no es
otra cosa que la estructura empleada por el sistema operativo para almacenar
informacin en un dispositivo fsico como un disco duro, un disquete, un CD-ROM,
etc. Como es natural, un archivo puede contener cualquier tipo de informacin,
desde una imagen en formato GIF o JPEG a un texto o una pgina WEB en
formato HTML. El sistema de archivos es la estructura que permite que Linux
maneje los archivos que contiene.
Todos los archivos de Linux tienen un nombre, el cual debe cumplir unas ciertas
reglas:
Un nombre de archivo puede tener entre 1 y 255 caracteres.
Se puede utilizar cualquier carcter excepto la barra inclinada / y no es
recomendable emplear los caracteres con significado especial en Linux,
que son los siguientes: =, 1\ , -, ', ", ', *, ;, -, ?, [,
], (, )>>, !, &, -, < y >>>. Para emplear ficheros con estos
caracteres o espacios hay que introducir el nombre del fichero entre
comillas.
Se pueden utilizar nmeros exclusivamente si as se desea. Las letras
maysculas y minsculas se consideran diferentes y, por lo tanto, no es lo
mismo carta.txt que Carta.txt o carta.Txt
Como en Windows, se puede emplear un cierto criterio de tipo para marcar las
distintas clases de ficheros empleando una serie de caracteres al final del nombre

Sistemas Operativos 303

que indiquen el tipo de fichero del que se trata. As, los ficheros de texto, HTML,
las imgenes PNG o JPEG tienen extensiones .txt, .htm (o .html), .png y .jpg (o
jpeg) respectivamente.
Pese a esto Linux slo distingue tres tipos de archivos:
Archivos o ficheros ordinarios que son los mencionados anteriormente.
Directorio (o carpetas). Son archivos especiales que agrupan otros ficheros
de una forma estructurada.
Archivos especiales. Son la base sobre la que asienta Linux, puesto que
representan los dispositivos conectados a un ordenador, como puede ser
una impresora. De esta forma, introducir informacin en ese archivo
equivale a enviar informacin a la impresora. Para el usuario estos
dispositivos tienen el mismo aspecto y uso que los archivos ordinarios.
2.6.2 Enlaces
Los enlaces son un tipo de archivo ordinario cuyo objetivo es crear un nuevo
ftombre para un archivo determinado. Una vez creado el enlace simblico este
permite acceder al fichero que enlaza de igual modo como si se accediese desde
el archivo original. Los enlaces simblicos son especialmente tiles cuando se
quiere que un grupo de personas trabajen sobre un mismo fichero, puesto que
permiten compartir el fichero pero centralizan las modificaciones.
2.6.3 El camino o path
En cualquier sistema operativo moderno la estructura de archivos es jerrquica y
depende de los directorios. En general, la estructura del sistema de archivos se
asemeja a una estructura de rbol, estando compuesto cada nudo por un
directorio o carpeta, que contiene otros directorios o archivos.
En Windows, cada unidad de disco se identifica como una carpeta bsica que
sirve de raz a otras y cuyo nombre es especial a:, C:, d: etc. En los sistemas UNIX
y, por lo tanto, en Linux, existe una nica raz llamada I de la que cuelgan todos
los ficheros y directorios, y que es independiente de los dispositivos que estn
conectados al ordenador.
El camino o path de un fichero o directorio es la secuencia de directorios que se
ha de recorrer para acceder a un determinado fichero separados por l.
Supongamos la estructura de archivos de la siguiente figura:

Sistemas Operativos 304

Figura. rbol de Direccin.

Existen dos formas del path o camino:


Camino absoluto que muestra toda la ruta a un fichero (por ejemplo,
/home/luis/Carta.txt.
El path relativo a un determinado directorio (por ejemplo, si nos
encontramos en el directorio /home, el path relativo al fichero Carta.lxt es
luis/Carta. Ixt).
Adems, todos los directorios contienen dos directorios especiales:
El directorio actual, representado por el punto (.).
El directorio padre representado por dos puntos (..).
Estando en el directorio /home/pedro se puede acceder a Carta.txt con
/home/luis/Carta.txt (path absoluto) o bien ../luis/Carta.txt (path relativo). En luis
como ./Carta.txt o simplemente Carta.txt.
2.6.4 Estructura del sistema de archivos de Linux
El sistema de archivos de Linux sigue todas las convenciones de UNIX lo que
significa que tiene una estructura determinada, compatible y homognea con el
resto de los sistemas UNIX. Al contrario que en Windows o MS-DOS, el sistema
de archivos en cualquier sistema UNIX no est ligado de una forma directa con la
estructura del hardware (es decir, no depende de si un determinado ordenador
tiene uno, dos o siete discos duros para crear las unidades c:\, d:\ o m:\).
Todos los sistemas de archivos de UNIX tienen un origen nico la raz o roo!
representada por l. Bajo este directorio se encuentran todos los ficheros a los que
puede acceder el sistema operativo. Estos ficheros se organizan en distintos
directorios cuya misin y nombre son estndar para todos los sistema UNIX. Estos
directorios son y se utilizan para:
l. Raz del sistema de archivos.

Sistemas Operativos 305

/dev. Contiene ficheros del sistema representando los dispositivos que


estn fsicamente instalados en el ordenador.
/etc. Este directorio est reservado para los ficheros de configuracin de:
sistema. En este directorio no debe aparecer ningn fichero binaric
(programas). Bajo este deben aparecer otros dos subdirectorios:
o letc/Xll. Ficheros de configuracin de X Windows
o letc/skel. Ficheros de configuracin bsica que son copiados al
directorio del usuario cuando se crea uno nuevo.
/bin. Es la abreviatura de binaries (ejecutables). Es donde residen .L
mayora de los programas esenciales del sistema.
/lib. Contiene las imgenes de las libreras compartidas. Estos ficheros
contienen cdigo que compartirn muchos programas. En lugar de que
cada programa contenga una copia propia de las rutinas compartidas, estas
son guardadas en un lugar comn, en lib. Esto hace que los programas
ejecutables sean menores y se reduce el espacio usado en disco.
/proc. Contiene ficheros especiales que reciben o envan informacin al
kernel del sistema. Es un sistema de ficheros virtual. Los ficheros que
contiene realmente residen en memoria, no en disco. Hacen referencia a
varios procesos que corren en el sistema y le permiten obtener informacin
acerca de qu programas y procesos estn corriendo en un momento dado.
/var. Este directorio contiene informacin temporal de los programas.
o /var/adrn. Contiene varios ficheros de inters para el administrador
del sistema, especficamente histricos del sistema, los cuales
recogen errores o problemas con el sistema. Otros ficheros guardan
las sesiones de presentacin en el sistema, as como los intentos
fallidos.
o /var/spool. Contiene ficheros que van a ser pasados a otro
programa. Por ejemplo, si la mquina est conectada a una red, el
correo de llegada ser almacenado en /var/spool/mail hasta que se
lea o se borre. Artculos nuevos de las news tanto salientes como
entrantes pueden encontrarse en /var/spool/news, etc.
/horne. Contiene los directorios home de los usuarios. Por ejemplo,
/home/Alex es el directorio del usuario Alex. En un sistema recin instalado,
no habr ningn usuario en este directorio.
/sbin. Contiene programas que son nicamente accesibles al superusuario.

Sistemas Operativos 306

/usr. Este es uno de los directorios ms importantes del sistema puesto que
contiene los programas de uso comn para todos los usuarios. Su
estructura suele ser similar a la siguiente.
o
o
o
o

/usr/XIIR6. Contiene los programas para ejecutar X Windows


/usr/bin. Programas de uso general, como el compilador de C/C++.
/usr/doc. Documentacin general del sistema.
/usr/etc. Contiene los diferentes ficheros de configuracin y
programas del sistema. En general, los ficheros que se encuentran
en /usr/etc/ no son esenciales para el sistema, a diferencia de los
que se encuentran en /etc, que s lo son.

/usr/include. Contiene los ficheros de cabecera para el compilador de C.


Estos ficheros (la mayora de los cuales tienen la extensin .h, de header)
declaran estructuras de datos, subrutinas y constantes usadas en la
escritura de programas en C. Los ficheros que se encuentran en
/usr/incluye/sys son, generalmente, utilizados en la programacin en UNIX
a nivel de sistema.
/usr/info. Ficheros de informacin de GNU.
/usr/lib. Contiene las libreras equivalentes stub y static a los ficheros
encontrados en /lib. Al compilar un programa, este es enlazado con las
libreras que se encuentran en /usr/lib, las cuales dirigen al programa a
buscar en /lib cuando necesita el cdigo de la librera. Adems, varios
programas guardan ficheros de configuracin en /usr/lib.
/usr/man. Manuales accesibles con el comando man.
/usr/sbin. Programas de administracin del sistema.
/usr/src. Cdigo fuente de programas. En /usr/src/Linux, est el cdigo
fuente del ncleo de Linux.
/usr/IocaI. Es muy parecido a /usr, contiene programas y ficheros no
esenciales para el sistema. En general, los programas que se encuentran
en /usr/local son especficos de su sistema (esto quiere decir que el
directorio /usr/local difiere bastante entre sistemas UNIX).
Existen adems de los anteriores otros directorios que se suelen localiza: en el
directorio /usr, como por ejemplo las carpetas de los programas qu.e se instalen
en el sistema.
/tmp. Muchos programas tienen la necesidad de generar cierta informacin

Sistemas Operativos 307

temporal y guardarla en un fichero temporal. El lugar habitual para esos


ficheros es en /tmp.
2.7 Variables de entorno
Hay ocasiones en las que es til almacenar ciertos valores cuando se trabaja en
una sesin de Shell para que los puedan utilizar diferentes programas. Para
realizar esta tarea, se usan las variables de entorno que son unas variables que
existen en la sesin de shell abierta y que, por tanto, se perdern al cerrarla.
El mtodo para asignar un valor a una variable es teclear en el prompt del shell su
nombre seguido del signo igual y del valor que se quiere asignar.
$ nombre

= valor

Para hacer referencia al valor de la variable se utiliza el smbolo $ y el nombre de


la variable. Una forma de comprobar su valor es mediante el comando echo:
$ echo
valor

$nombre

Ejemplo
$
pi=3.14159
$ echo
$pi
3.14159

Para asignar a una variable una cadena que contenga espacios o caracteres
especiales del sistema, hay que encerrarla entre comillas simples.
Ejemplo
$ direccin =Calle San Agust \\ i [] n n\\ u []mero 1
$ echo $direccin
Calle San Agustn nmero 1

A las variables de entorno creadas por el usuario o por los programas para su uso
propio, hay que aadir las variables intrnsecas del shell y que son necesarias
para su buen funcionamiento. Una de las ms utilizadas el la variable P A TH que

Sistemas Operativos 308

contiene la ruta por defecto en la que se buscarn los comandos tecleados por el
usuario. Las ms usuales se pueden ver en la siguiente tabla:
Variable
$#
$*
$$?
$$
$HOME
$IFS
$MAIL
$PSl
$PS2
$PATH

Contenido
Nmero de argumentos recibidos
Todos los argumentos
Opciones dadas
Valor devuelto por el ltimo comando ejecutado
Identificador del proceso actual
Directorio del usuario
Lista de caracteres Que se utilizan como separadores en los
argumentos
Archivo donde se almacena el correo electrnico del usuario
Prompt del usuario
Prompt de continuacin de lnea
Lista de directorios de bsqueda para los comandos
Tabla. Variables de entorno ms comunes

Ejemplo
$ echo $PATH
:/bin:/usr/bin:/home/alex/bin

El conocimiento y manejo de estas variables es fundamental en el trabajo desde


el prompt de comandos del shell y, especialmente, al hacerlo con archivos de
proceso por lotes.
2.8 Administracin del sistema
Una vez instalado el sistema operativo, queda la labor que requiere una mayor
dedicacin: la correcta administracin del mismo. En UNIX la persona encargada
de administrar es el usuario root. Este usuario privilegiado utiliza una cuenta
especial, la cuenta de root, que otorga todos los permisos posibles a quien la
utiliza; desde esta cuenta es desde donde se han de realizar todas las funciones
de administracin de la mquina (creacin de usuarios y grupos, instalacin de
perifricos, montado de sistemas de ficheros, etc.), ya que estas tareas requieren
de permisos especiales.
Debido a sus caractersticas especiales esta cuenta slo se ha de utilizar cuando
sea estrictamente necesario, ya que cualquier error cometido puede dejar el sistema inutilizable. As pues, el administrador debe tener otra cuenta con
permisos estndar para el uso habitual del sistema y la cuenta de root
nicamente para tareas administrativas.

Sistemas Operativos 309

2.8.1 Gestin de usuarios y grupos


Al ser UNIX un sistema multiusuario, debe proteger los ficheros de los usuarios
particulares de la manipulacin por parte de otros usuarios. Para esta labor, UNIX
proporciona un mecanismo conocido como permisos de ficheros.
Por otra parte, todos los usuarios de UNIX deben tener una cuenta de usuario en
el sistema que establezca los privilegios del mismo. A su vez, UNIX organiza a
los usuarios en grupos, de forma que se puedan establecer privilegios a un
determinado grupo de trabajo para el acceso a determinados archivos o servicios
del sistema.
Ser labor del administrador del sistema el disear las polticas oportunas para
gestionar a los usuarios y definir los grupos a los que pueden pertenecer,
asignndoles los privilegios y restricciones adecuados a la poltica del sistema.
El sistema mantiene cierta informacin acerca de cada usuario. Dicha informacin
se resume a continuacin:
Nombre de usuario. El nombre de usuario es el identificador nico dado a
cada usuario del sistema. Ejemplos de nombres de usuario son alex, pepe
y amacc. Se pueden utilizar letras y dgitos junto a los caracteres -
(subrayado) y . (punto). Los nombres de usuario se limitan normalmente
a 8 caracteres de longitud.
user ID. El user ID (o UID) es un nmero nico dado a cada usuario del
sistema. El sistema identifica al propietario de los procesos por UID, no por
nombre de usuario.
group ID. El group ID (o GID) es la identificacin del grupo del usuario por
defecto. Cada usuario pertenece a uno o ms grupos definidos por el
administrador del sistema.
Clave. El sistema tambin almacena la clave encriptada del usuario.
Nombre completo. El nombre real del usuario se almacena junto con el
nombre de usuario.
Directorio inicial. El directorio inicial es el directorio en el que se coloca
inicialmente al usuario en tiempo de conexin. Cada usuario debe tener su
propio directorio inicial, normalmente situado bajo /home y cuyo valor se
almacena en la variable de entorno $HOME.
Intrprete de inicio. El intrprete de inicio del usuario es el intrprete de

Sistemas Operativos 310

comandos que es ejecutado para el usuario en tiempo de conexin.


El fichero /etclpasswd es el fichero en el que se almacena la informacin anterior
acerca de los usuarios. Cada lnea del fichero contiene informacin acerca de un
nico usuario; el formato de cada lnea es:
nombre:clave encriptada: UID:GID: nombre eompleto:dir. inicio: intrprete
Un ejemplo puede ser:
jcalvo:E45Q981 g71 oAds: 106:100:Juan Calvo:/home/jcalvo:/bin/bash
El primer campo (jcalvo) es el nombre de usuario.
El segundo campo (E45Q981g71oAds) es la clave encriptada. Las claves no se
almacenan en el sistema en ningn formato legible. Las claves se encriptan
utilizndose a s mismas como clave secreta. En otras palabras, slo si se conoce
la clave, sta puede ser desencriptada. Esta forma de encriptacin se denomina
encriptacin no reversible y es bastante segura. Algunos sistemas utilizan claves
en sombra en la que la informacin de las claves se relega al fichero /etclshadow.
Puesto que /etclpasswd es legible por todo el mundo, /etclshadow suministra un
grado extra de seguridad, puesto que este fichero no lo es. Las claves en sombra
suministran algunas otras funciones como puede ser la expiracin de claves.
El tercer campo (106) es el VID. Este debe ser nico para cada usuario.
El cuarto campo (100) es el GlD. Este usuario pertenece al grupo numerado 100.
La informacin de grupos, como la informacin de usuarios, se almacena en el
fichero /etc/group.
El quinto campo es el nombre completo del usuario (Juan Calvo). Los dos ltimos
campos son el directorio inicial del usuario (/home/jcalvo) y el intrprete de
conexin (/bin/bash), respectivamente. No es necesario que el directorio inicial de
un usuario tenga el mismo nombre que el del nombre de usuario. Sin embargo,
ayuda a identificar el directorio.
Para aadir un usuario al sistema hay que seguir varios pasos. Primero, se debe
crear una entrada en /etc/passwd, con un nombre de usuario y UID nicos. Se
debe especificar el GID, nombre completo y resto de informacin. Se debe crear
el directorio inicial y poner los permisos en el directorio para que el usuario sea el
dueo. Se deben suministrar los ficheros de comandos de inicializacin en el
nuevo directorio y se debe hacer alguna otra configuracin del sistema (por
ejemplo, preparar un buzn para el correo electrnico entrante para el nuevo
usuario).

Sistemas Operativos 311

Aunque no es difcil aadir usuarios a mano, cuando se est ejecutando un


sistema con muchos usuarios, es fcil olvidarse de algo. La manera ms simple
de aadir usuarios es utilizar un programa interactivo que vaya preguntando por
la informacin necesaria y actualice todos los ficheros del sistema
automticamente. El nombre de este programa es useradd o adduser
dependiendo del software que est instalado. Las pginas man (ayuda) para
estos comandos son suficientemente autoexplicatorias. Tambin existen
asistentes grficos en cada sistema de ventanas que facilitan enormemente la
labor.
De forma anloga, borrar usuarios puede hacerse con los comandos userdel o
deluser dependiendo del software que hubiera instalado en el sistema.
Una accin que se ha de realizar en varias ocasiones es la de cancelar
momentneamente una cuenta. Si se desea deshabilitar temporalmente a un
usuario para evitar que se conecte al sistema (sin necesidad de borrar su cuenta
del usuario), se puede prefijar con un asterisco (*) el campo de la clave en
/etc/passwd, de tal forma que no coincida con la original al realizar el
desencriptado.
Por ejemplo, cambiando la lnea de /etc/passwd correspondiente ajcalvo a:
jcalvo: *E45Q981g71 oAds: 1 06: 100:Juan Calvo:/home/jcalvo:/bin/bash
Cuando se necesite modificar alguno de los datos de usuario se puede realizar
directamente editando el fichero /etc/passwd o mediante alguno de los programas
o comandos antes mencionados exceptuando la contrasea o password que
habr que cambiar usando el comando passwd, ya que se ha de encriptar usando
el algoritmo de encriptacin.
Los usuarios pueden cambiar su propia clave, pero slo el usuario root puede
cambiar la clave de otro usuario.
En algunos sistemas, los comandos chfn y chsh estn disponibles y permiten a
usuarios cambiar sus atributos de nombre completo e intrprete de conexin. Si
no, debern pedir al administrador de sistemas que se los cambie.
Como se ha citado anteriormente, cada usuario pertenece a uno o ms grupos.
La nica importancia real de las relaciones de grupo es la perteneciente a los
permisos de ficheros. Como se ver en la siguiente seccin, cada fichero tiene un
grupo propietario y un conjunto de permisos de grupo que define de qu forma
pueden acceder al fichero los usuarios del grupo.
Hay varios grupos definidos en el sistema, como pueden ser bin, mail y sys. Los
usuarios no deben pertenecer a ninguno de estos grupos; se utilizan nicamente

Sistemas Operativos 312

para permisos de ficheros del sistema. En su lugar, los usuarios deben pertenecer
a un grupo individual, como users.
El fichero /etc/group contiene informacin acerca de los grupos. El formato de
cada lnea es:
nombre de grupo:clave:GID:otros miembros
Algunos ejemplos de grupos son:
root: *:0:
usuarios:*:100:jcalvo, alex
invitados:*:200:
otros:*:250:virtu
El primer grupo (root) es un grupo especial del sistema reservado para la cuenta
root. El siguiente grupo (users) es para usuarios normales. Tiene un GID de 100.
Los usuarios jcalvo y a/ex tienen acceso a este grupo. Recurdese que en
/etc/passwd cada usuario tiene un GID por defecto. Sin embargo, los usuarios
pueden pertenecer a ms de un grupo, aadiendo sus nombres de usuario a
otras lneas de grupo en /etc/group. El comando groups lista a qu grupos
pertenece cada usuario.
El tercer grupo (invitados) es para usuarios invitados y otros es para otros
usuarios. El usuario virtu tiene acceso a este grupo.
Como se puede ver, el campo clave de /etc/group raramente se utiliza. A veces,
se usa para dar una clave para acceder a un grupo. Esto es raras veces
necesario. Para evitar que los usuarios cambien a grupos privilegiados (con el
comando newgroup), se pone el campo de la clave a *.
Se pueden usar los comandos addgroup o groupadd para aadir grupos al
sistema. Normalmente, es ms sencillo aadir lneas a /etc/group directamente,
puesto que no se necesitan ms configuraciones para aadir un grupo. Para
borrar un grupo, slo hay que borrar su entrada de /etc/group.
2.8.2 Permisos
Linux, al igual que todos los sistemas UNIX, mantiene un sistema de permisos de
acceso a los ficheros muy estricto, con el fin de controlar qu es lo que se puede
hacer con ellos y quin lo puede hacer. Estos permisos se identifican con letras y
son:
r

permiso de lectura en el fichero

Sistemas Operativos 313

permiso de escritura en el fichero

permiso de ejecucin del fichero

permiso para cambiar el propietario del fichero

Al contrario que en Windows o MS-DOS, los programas ejecutables de Linox no


estn marcados por una determinada extensin (.exe, o .com) sino por un atributo,
el permiso de ejecucin x. Si se elimina este atributo a un programa, Linux no ser
capaz de ejecutado. A su vez, cada uno de estos permisos se aplica: al dueo de
fichero (u), al grupo de usuarios al que pertenece el dueo (g) o al resto de
usuarios (a). As, un fichero determinado puede tener permiso para ser ledo,
escrito: ejecutado por su dueo, ledo y ejecutado por el grupo al que pertenece y
no tener ningn tipo de acceso para los dems usuarios. Como se puede
entender, este tipo de mecanismo es especialmente til cuando se trabaja en
grupo en un determinado proyecto.
Este mecanismo permite que ficheros y directorios pertenezcan a un usuario en
particular. Por ejemplo, si el usuario Alex cre ficheros en su directorio home, Alex
es el propietario de esos ficheros y tiene acceso a ellos.
UNIX tambin permite que los ficheros sean compartidos entre usuarios y grupos
de usuarios.
Si Alex lo desea, podra restringir el acceso a sus ficheros de forma que ningn
otro usuario tenga acceso. De cualquier modo, en la mayora de los sistemas, por
defecto se permite que otros usuarios puedan leer los ficheros de otros usuario,
pero no modificados o borrarlos.
Como se ha explicado arriba, cada fichero pertenece a un usuario en particular.
Por otra parte, los ficheros tambin pertenecen a un grupo en particular, que es un
conjunto de usuarios definido por el sistema. Cada usuario pertenece al menos a
un grupo cuando es creado. El administrador del sistema puede hacer que un
usuario tenga acceso a ms de un grupo.
Los grupos usualmente son definidos por el tipo de usuarios que acceden a la
mquina. Por ejemplo, en un sistema UNIX de una universidad, los usuarios
pueden ser divididos en los grupos estudiantes, direccin, profesores e invitados.
Hay tambin unos pocos grupos definidos por el sistema (como bin y admin) los
cuales son usados por el propio sistema para controlar el acceso a los recursos.
Muy raramente los usuarios normales pertenecen a estos grupos.
Los permisos estn divididos en tres tipos: lectura, escritura y ejecucin. Estos
permisos pueden ser fijados para tres clases de usuarios: el propietario del
fichero (user o usuario), el grupo al que pertenece el propietario del fichero

Sistemas Operativos 314

(group o grupo) y para todos los usuarios del sistema independientemente del
grupo.
El permiso de lectura permite a un usuario leer el contenido del fichero o, en el
caso de un directorio, listar el contenido del mismo (usando el comando /s). El
permiso de escritura permite a un usuario escribir y modificar el "fichero. Para
directorios, el permiso de escritura permite crear nuevos ficheros o borrar
ficheros ya existentes en dicho directorio. Por ltimo, el permiso de ejecucin
permite a un usuario ejecutar el fichero si es un programa o script (guin) del
intrprete de comandos. Para directorios, el permiso de ejecucin permite al
usuario cambiar al directorio en cuestin (con el comando cd).
Se presenta un ejemplo clarificador del uso de permisos de ficheros.
EJEMPLO
Usando el comando Is con la opcin -1 se mostrar un listado largo de los ficheros, el cual incluye
los permisos de ficheros.
# /s -1 stuff
-rw-r--r-- 1 Alex users 505 Mar 1319:05 stuff
El primer campo impreso en el listado representa los permisos del fichero, el tercer campo indica
quin es el propietario del fichero (Alex), y el cuarto es el grupo al cual pertenece el fichero
(users). Obviamente, el ltimo campo es el nombre del fichero (stuff). Los dems campos no son
relevantes en este momento.
Este fichero pertenece a Alex y al grupo users y la cadena -rw-r--r-- informa, por orden, de los
permisos para el propietario, el grupo del fichero y cualquier otro usuario.
El primer carcter de la cadena de permisos (-) representa el tipo de fichero. Significa que es un
fichero regular; otras opciones para este campo son d que indica que se trata de un directorio, /
que indica que se trata de un archivo de enlace (link en ingls) y s que indica que se trata de un
enlace simblico. Las siguientes tres letras (rw-) representan los permisos para el propietario del
fichero, Alex en este ejemplo. El r para lectura y w para escritura. Luego Alex tiene permisos de
lectura y escritura para el fichero stuff.
Como ya se ha mencionado, aparte de los permisos de lectura y escritura est el permiso de
ejecucin, representado por una x. Como hay un - en lugar del x, significa que Alex no tiene
permiso para ejecutar ese fichero. Esto es correcto, puesto que stuff.
Como ya se mencionado, a parte de los permisos de lectura y escritura, esta el permiso de
ejecucin, representado por una x. Como hay un en lugar del x, significa que Alex no tiene
permiso para ejecutar ese fichero. Esto es correcto, puesto que stuff no es un programa
ejecutable. Por supuesto, como Alex es el propietario del fichero, puede darse permiso de
ejecucin si lo desea.
Los siguientes tres caracteres, (r--) representan los permisos para los miembros del grupo. El
grupo al que pertenece el propietario del fichero y por ende el fichero es users. Como slo
aparece un r cualquier usuario que pertenezca al grupo users puede leer este fichero.
Anlogamente, los ltimos tres caracteres, tambin (r--), representan los permisos para cualquier

Sistemas Operativos 315

otro usuario del sistema (diferentes del propietario o de los pertenecientes al grupo users). De
nuevo, como slo est presente el r, los dems usuarios pueden leer el fichero, pero no escribir
en l o ejecutarlo.

Aqu tenemos otros ejemplos de permisos de grupo:


-rwxr-xr-x
El propietario del fichero puede leer, escribir y ejecutar el
fichero. Los usuarios pertenecientes al grupo del fichero, y todos los dems
usuarios pueden leer y ejecutar el fichero.
-rw-----El propietario del fichero puede leer y escribir. Nadie ms
puede acceder al fichero.
-rwxrwxrwx

Todos los usuarios pueden leer, escribir y ejecutar el fichero

Es importante darse cuenta de que los permisos de un fichero tambin dependen


de los permisos del directorio en el que residen. Por ejemplo, aunque un fichero
tenga los permisos -rwxrwxrwx, otros usuarios no podrn acceder a l a menos
que tambin tengan permiso de lectura y ejecucin para el directorio en el cual se
encuentra el fichero. Si Alex quiere restringir el acceso a todos sus ficheros, podra
simplemente poner los permisos de su directorio home /home/Alex a drwx------. De
esta forma, ningn usuario podr acceder a su directorio ni a ninguno de sus
ficheros o subdirectorios. Esto se conoce con el nombre de dependencia.
En otras palabras, para acceder a un fichero se debe tener permiso de ejecucin
de todos los directorios a lo largo del camino de acceso al fichero, adems de
permiso de lectura (o ejecucin) del fichero en particular.
Habitualmente, los usuarios de un sistema UNIX son muy abiertos con sus
ficheros. Los permisos que se dan a los ficheros usualmente son -rw-r--r-, permite
a todos los dems usuarios leer los ficheros, pero no modificarlos de ninguna
forma. Los directorios usualmente tienen los permisos drwxr-xr-x, lo que permite
que los dems usuarios puedan moverse y ver los directorios, pero sin poder crear
nuevos ficheros en ellos.
Muchos usuarios pueden querer limitar el acceso de otros usuarios a sus ficheros.
Poniendo los permisos de un fichero a rw----- no se permitir a ningn otro
usuario (salvo al usuario root) acceder al fichero. Igualmente, poniendo los
mismos del directorio a drwx----- no se permitir a los dems usuarios acceder al
directorio en cuestin.

Sistemas Operativos 316

2.8.3 Actualizando e instalando nuevo software


Otra tarea del administrador del sistema es la actualizacin e instalacin de nuevo
software.
La comunidad Linux es muy dinmica. Las versiones nuevas del ncleo aparecen
cada pocos meses y otros programas se actualizan casi tan a menudo. Pero no es
imprescindible actualizar slo porque exista una versin ms moderna. Una
actualizacin supone mucho esfuerzo en tiempo y recursos, por lo que slo se ha
de realizar si las mejoras aportadas por la nueva versin son significativas y
necesarias para nuestro sistema.
La mejor forma de actualizar su sistema es hacindolo a mano: actualizando slo
aquellos paquetes de software que haya que actualizar.
El software ms importante para actualizar en el sistema es el ncleo, las libreras
y el compilador gcc. Estas son las tres partes esenciales del sistema y en algunos
casos cada uno depende de las otras para que todo funcione bien. La mayor parte
del resto del software del sistema no necesita ser actualizado a menudo.
Cada paquete de software tiene su propio sistema de instalacin, por lo que es
imposible citar aqu la forma de instalados todos; como norma se debe examinar
cuidadosamente la documentacin incluida al respecto en el nuevo software y
seguir escrupulosamente los pasos all marcados. Tambin, es posible ayudarse
de sistemas de instalacin incluidos en algunas de las distribuciones como los ya
comentados RPM o DEB. No hace falta indicar que para la instalacin de software
crtico se han de tener los permisos de root.
2.8.4 Instalacin de dispositivos
Adems del software, en el sistema se han de instalar diferentes dispositivos
hardware. Como ya se ha explicado anteriormente, UNIX trata todos y cada uno de
los dispositivos conectados al sistema como si de archivos se tratara, lo que hace
que su uso sea igual independientemente del dispositivo. En lo que respeta a la
instalacin, tambin sigue un proceso anlogo y relativamente sencillo que
consiste en editar un fichero determinado, que depende del tipo de hardware a
instalar, sito en el directorio /etc en el que se indican las caractersticas del
dispositivo y el archivo del sistema que referencia al dispositivo, generalmente
ubicado en /dev.
Para ilustrar este mtodo, se expone en detalle la instalacin de dos de los tipos
de dispositivos ms comunes, las impresoras y los sistemas de almacenamiento,
como pueden ser disquetes, discos duros, unidades de CD-ROM, etc.

Sistemas Operativos 317

2.8.5 Acceso a los diferentes sistemas de almacenamiento


Como se ha visto anteriormente, el sistema de archivos de Linux slo tiene una
raz y su estructura es independiente de los dispositivos de almacenamiento
existentes. Esto implica que el procedimiento a emplear para acceder a la
informacin almacenada en los distintos sistemas de almacenamiento de un
ordenador no es tan sencillo como en Windows y requiere de un proceso llamado
montado. Cuando se ha terminado de trabajar con un determinado dispositivo hay
que invertir el proceso y desmontar/o.
Por ejemplo, el proceso para leer un disquete sera el siguiente:
1.
2.
3.
4.
5.

Introducir el disquete en la disquetera.


Montar el sistema de archivos del mismo.
Leer, grabar, o manipular el contenido del disquete.
Desmontar el sistema de archivos del disquete.
Extraer el disquete de la disquetera.

El proceso puede parecer complejo pero es el precio a pagar por la seguridad,


puesto que de esta forma se garantiza que no exista ninguna aplicacin que est
usando el disquete cuando se extraiga.
Slo el administrador o root, por motivos de seguridad, tiene permiso para montar
y desmontar un sistema de archivos.
2.9 Montando sistemas de ficheros
Antes de que un sistema de ficheros sea accesible al sistema, debe ser montado
en algn directorio. Por ejemplo, si se tiene un sistema de ficheros en un disquete,
se debe montar bajo algn directorio, generalmente Imnt, para poder acceder a los
ficheros que contiene. Despus de montar el sistema de ficheros, todos los
ficheros en dicho sistema aparecen en ese directorio. Tras desmontar el sistema
de ficheros, el directorio (en este caso, Imnt) estar vaco.
Lo mismo es vlido para los sistemas de ficheros del disco duro. El sistema
monta automticamente los sistemas de ficheros del disco duro en tiempo de
arranque El as llamado sistema de ficheros raz es montado en el directorio /.
Si se tiene un sistema de ficheros separado para /usr, por ejemplo, se monta en
/usr. Si slo se tiene un sistema de ficheros raz, todos los ficheros (incluyendo
los de /usr) existen en ese sistema de ficheros.
El comando mount se utiliza para montar un sistema de ficheros. El comando
mount -av se ejecuta desde el fichero letclrc (que es el fichero de inicializacin del
sistema, ejecutado en tiempo de arranque). El comando mount -av obtiene
informacin de los sistemas de ficheros y puntos de montaje del fichero letc/fstab.

Sistemas Operativos 318

Este es un ejemplo de fichero fstab:


# dispositivo directorio tipo opciones
/dev/hda2 / ext2 defaults
/dev/hda3 / usr ext2 defaults
/dev/hda4 none swap sw
/proc /proc proc
none
El primer campo es el dispositivo, el nombre de la particin a montar. El segundo
campo es el punto de montaje. El tercero es el tipo de sistema de ficheros como
puede ser ext2 (para ext2ft). La tabla lista algunos de los tipos de sistemas de
ficheros de Linux.
Sistema de ficheros
Second Extended Filesystem
Extended Filesystem

Tino
ext2
ext

Minix Filesystem

mmlX

Xia Filesvstem

XIa

UMSDOS Filesystem

umsdos

MS-DOS Filesystem

msdos

/proc Filesystem

proc

ISO 9660 Filesystem

iso9660

Xenix Filesystem
System V Filesystem
Coherent Filesystem
HPFS Filesystem

xenix
svsv
coherent
hpfs

Comentarios
Sistema de ficheros mas comn en Linux.
Reemplazado por ext2.
Sistema de ficheros Minix original; raras
veces utilizado.
Como ext2, pero raras veces utilizado.
Utilizado para instalar Linux en una
particin MS-DOS.
Utilizado para acceder a ficheros MSDOS.
Suministra infonnacin de proceso para
ps, etc.
F onnato utilizado por muchos CDROMs.
Sistema de ficheros de Xenix.
Variantes del System V para el x86.
Acceso a ficheros de Coherent.
Acceso en lectura a particiones HPFS.

Tipos de sistemas de ficheros Linux


El ltimo campo del fichero fstab contiene las opciones del comando mount
normalmente, est puesto a defaults (por defecto).
Como se puede ver, las particiones de intercambio estn incluidas en letc/fstab
tambin. Tienen un punto de montaje none y tipo swap. El comando swapon -a,
que se ejecuta tambin desde /etc/re, se utiliza para activar el intercambio en
todos los dispositivos de intercambio listados en /etc/fstab.
El fichero fstab contiene una entrada especial para el sistema de ficheros /proc, el
sistema de ficheros /proc se utiliza para almacenar informacin acerca de los
procesos del sistema, memoria disponible y otros datos del mismo tipo. Si /proc
no est montado, no funcionarn comandos como ps (comando que proporciona
informacin de los procesos activos en el sistema).

Sistemas Operativos 319

El comando mount slo puede ser utilizado por root. Esto es as para garantizar la
seguridad del sistema. Aunque y para facilitar la usabilidad de los equipos, existen
varios paquetes que permiten a los usuarios normales montar y desmontar
sistemas de ficheros (disquetes en particular) sin comprometer la seguridad del
sistema.
El comando mount -av realmente monta todos los sistemas de ficheros excepto el
sistema de ficheros raz (en el ejemplo anterior, /dev/hda2). El sistema de ficheros
raz es montado automticamente en tiempo de arranque por el ncleo.
En vez de utilizar el comando mount -av, se puede montar un sistema de ficheros
a mano. El comando # mount -t ext2 /dev/hda3 /usr es equivalente a montar el
sistema de ficheros con la entrada /dev/hda3 del ejemplo de fichero fstab anterior.
Los sistemas de ficheros son desmontados bien manualmente mediante el
comando unmount o automticamente por los comandos shutdown o halt antes
de cerrar el sistema.
Normalmente, es una buena idea el comprobar de vez en cuando los sistemas de
ficheros en busca de ficheros daados o corruptos. Algunos sistemas comprueban
automticamente sus sistemas de ficheros en tiempo de arranque (con los
comandos apropiados en /etc/rc).
Normalmente, es una buena idea el comprobar de vez en cuando los sistemas de
ficheros en busca de ficheros daados o corruptos. Algunos sistemas comprueban
automticamente sus sistemas de ficheros en tiempo de arranque (con los
comandos apropiados en /etc/rc).
# e2fsek -av /dev/hda2
comprobar el sistema de ficheros
automticamente cualquier error.

ext2fs

de

/dev/hda2

corregir

Habitualmente, es una buena idea desmontar un sistema de ficheros antes de comprobarlo. Por ejemplo, el comando:
# umount /dev/hda2
desmontar el sistema de ficheros en /dev/hda2, tras lo cual podr ser
comprobado. La nica excepcin es que no se puede desmontar el sistema de
ficheros raz. Para poder comprobar el sistema de ficheros raz cuando est
desmontado, se debe utilizar un disquete de arranque/raz. Tampoco se puede
desmontar un sistema de ficheros si alguno de sus ficheros est siendo utilizado
por un proceso en ejecucin.
Por ejemplo, no se puede desmontar un sistema de ficheros si el directorio de

Sistemas Operativos 320

trabajo de algn usuario est en ese sistema de ficheros. Se recibir un error


Device busy (dispositivo ocupado) si se intenta desmontar un sistema de ficheros
que est en uso.
Otros tipos de sistemas de ficheros utilizan sus propios comandos, como puede
ser efsck y xfsck. En algunos sistemas, se puede utilizar el comando fsck, que
determina el tipo de sistema de ficheros y ejecuta el comando apropiado.
Es importante reiniciar el sistema inmediatamente despus de comprobar
sistema de ficheros montado, si es que se hizo alguna correccin al sistema
ficheros (aunque, como ya se ha dicho, es preferible comprobar sistemas
ficheros que no estn montados), esto permite al sistema resincronizar
informacin acerca del sistema de ficheros cuando e2fsck lo modifica.

un
de
de
su

El sistema de ficheros /proc no necesita nunca ser comprobado de esta forma, ya


que /proc es un sistema de ficheros en memoria, gestionado directamente por el
ncleo.
2.10 Instalacin de impresoras y gestin de la impresin
Otra de las labores del administrador es la instalacin de las impresoras y la
gestin de la impresin. En UNIX y Linux la gestin de la impresin se realiza a
travs de colas de impresin. En cada sistema existe un proceso ejecutndose
constantemente que es el encargado de gestionar estas colas de impresin del
sistema. Este demonio (daemon en ingls), llamado spooler, se encarga entre
otras cosas de secuenciar las tareas de impresin y de convertir los datos a un
formato o lenguaje de impresin compatible con la impresora.
Entre estos lenguajes de impresin, los ms habituales son:
Texto ASCII. Universal para todas las impresoras.
PostScript. Lenguaje de impresin estndar de UNIX.
Utilizacin de filtros (GhostScript) para convertir PostScript al lenguaje de
impresin. El GhostScript se utiliza para imprimir documentos PostScript
cuando no se dispone de una impresora compatible PostScript, dispone de
una multitud de drivers para soportar amplia variedad de impresoras.
Permite preparar documentos para su visualizacin en pantalla.
PCL5 y PCL6 para impresoras HP.
ESC/P, ESC/P2 y ESC/P Raster para impresoras Epson.

Sistemas Operativos 321

Las colas de impresin se definen en el archivo /etc/printcap. En este archivo se


especifica el archivo de dispositivo asociado a cada impresora y el filtro que se
asocia a la cola de impresin. Tambin se definen otros parmetros como el tipo
de papel que se utiliza o la resolucin de la impresora. Por ltimo, se asigna un
tamao para la cola de cada impresora.
Es posible definir varias colas de impresin, tanto si se dispone de una nica
impresora como de varias. En este ltimo caso es obvio, ya que se debe crear al
menos una cola por impresora, pero es interesante poder crear varias colas por
impresora para as poder definir distintos filtros y atributos para una impresora.
Ejemplo de archivo /etc/printcap:
ascii/lpl/PS_600dpi-a4-ascii-mono-600/PS_600dpi a4 ascii mono 600:
:lp=/dev/lpO:
:sd=/var/spool/lpd/PS 600dpi-a4-ascii-mono-600:
:lf=/var/spool/lpd/PS_600dpi-a4-ascii-mono-600/1og:
:af=/var/spool/lpd/PS_600dpi-a4-ascii-mono-600/acct:
:if=/var/lib/apsfilter/bin/PS 600dpi-a4-ascii-mono-600:
:la@:mx#O:
:tr=:cl:sh:sf:
lp/lp2/PS_600dpi-a4-auto-mono-600/PS_600dpi
a4
auto
mono
:lp=/dev/lpO:
:sd=/var/spool/lpd/PS 600dpi-a4-auto-mono-600:
:lf=/var/spool/lpd/PS_600dpi-a4-auto-mono-600/1og:
:af=/var/spool/lpd/PS_600dpi-a4-auto-mono-600/acct:
:if=/var/lib/apsfilter/bin/PS 600dpi-a4-auto-mono-600:
:la@:mx#O:
:tr=:cl:sh:sf:

raw/lp2/PS_600dpi-a4-auto-mono-600dpi a4 raw
:sd=/var/spool/lpd/PS 600dpi-a4-raw:
:lf=/var/spool/lpd/PS_600dpi-a4-raw/log:

mono 600:

600:

Sistemas Operativos 322

:af=/var/spool/lpd/PS_600dpi-a4-raw/acct:
:if=/var/lib/apsfilter/bin/PS 600dpi-raw:
:la@:mx#O:
:tr=:cl:sh:sf:
Como puede verse en el ejemplo, una impresora est configurada usando 3
tipos diferentes de filtros:
ascii, para ser usada con el filtro ASCII.
lp, para ser usada con el filtro ms adecuado a la impresora (el filtro se
elige automticamente).
raw, para ser usada sin conversin de los datos (llamado en castellano
modo crudo).
Tambin se indica que la resolucin de impresin es de 600 puntos por pulgada
(600 dpi) Y el tamao de papel ser A4.
La conexin fsica de las impresoras se puede realizar mediante diferentes
puertos:
Puerto Paralelo. El dispositivo se vincula a un archivo en el directorio
/dev con el nombre Ip0, lp 1, Ip
Si la conexin est bien realizada, se debe poder imprimir mediante este
comando:
Echo -en "Hola> dev/lp0
Puerto serie. Se vincula a un archivo en /dev con el nombre ser0, ser1,
ser2
Puerto USB. Se vincula a un archivo en /dev con el nombre usblpO,
usblpl, usblp2...
La prueba de impresin se realiza con el comando:
Echo -en "Hola> dev/usblp0.
Tambin se puede gestionar una impresora conectada remotamente a travs de
los protocolos TCPIIP, para ello se ha de definir en el cliente (mquina local) una
cola para gestionar la impresora. Esto se realiza tambin en el fichero
/etclprintcap. Ejemplo:
nombre-Imp!remote printer on maquinaremota.dominio:
:sd=/var/spool/lpd/nombre-Imp:
:rm=maquinaremota.dominio:

Sistemas Operativos 323

:rp=remoto:
:bk:sh:mk#0:
En el servidor de impresin hay que habilitar explcitamente a las mquinas que
tienen permiso para imprimir dando de alta sus IPs en el archivo /etc/hosts.lpd.
Para completar el proceso de impresin, el sistema dispone de otro demonio
llamado lpd (line printer daemon) que se activa durante el arranque y que se est
ejecutando constantemente en segundo plano. Este proceso inspecciona el
archivo /etc/printcap, es decir las colas de impresin definidas en el sistema y
realiza las siguientes tareas:

Organizacin de las colas locales (filtros y puertos de impresin).


Ordenacin de los trabajos en la cola de impresin.
Supervisin del estado de las colas.
Traspaso de solicitudes de colas remotas al lpd remoto.
Recogida de solicitudes de mquinas remotas y dirigidas a colas locales.

El usuario, por su parte, dispone de ciertas utilidades para interactuar con el


sistema de impresin.
Para lanzar los trabajos de impresin, dispone del comando lpr.
Ejemplo:
$ lpr -Pcola archivo
1. lpr almacena los datos a imprimir en la cola de impresin.
2. El spooler pasa de la cola al filtro de impresin.
3. Se envan los datos una vez convertidos a la impresora.
4. Al finalizar, se elimina el trabajo de la cola de impresin.

Para listar los trabajos existentes en una cola de impresin se puede usar
el comando /pq

$ /pq Pcola

Para eliminar un trabajo de una cola de impresin se puede usar el


comando /prm

$ /prm -Pco/a 234

Sistemas Operativos 324

donde -Pco/a es el nombre de la cola y 234 es el nmero del trabajo en la


cola.
Aunque en este captulo se ha explicado siempre el mtodo manual para
instalar dispositivos, ya que es, adems del ms estndar, el ms didctico en
cuanto permite hacerse una idea ms aproximada de cmo funciona el sistema,
actualmente existen mltiples aplicaciones grficas que asisten en esta tarea
insertando ellas mismas las lneas necesarias en los archivos de configuracin y
que permiten tanto un uso como una gestin grfica y ms intuitiva de los
dispositivos.
2.11 Resumen de rdenes bsicas
Esta seccin introduce algunas de las rdenes bsicas ms tiles de un sistema
UNIX.
Ntese que las opciones usualmente comienzan con "-" y, en la mayora de los
casos, se pueden aadir mltiples opciones de una letra con un nico "-". Por
ejemplo, en lugar de usar ls -l -F es posible usar /s -/F.
En lugar de listar todas las opciones disponibles para cada uno de los comandos
slo se hablar de aquellas ms tiles o importantes. De hecho, la mayora de
las rdenes tienen un gran nmero de opciones aunque slo se usan un puado
de ellas. Se puede usar man para ver las pginas de manual de cada orden,
donde se mostrar la lista completa de opciones disponibles.
Ntese tambin que la mayora de las rdenes toman una lista de ficheros o
directorios como argumentos, indicados como "<fichero]> . . <.fichero N>". Por
ejemplo, la orden cp toma como argumentos la lista de ficheros a copiar,
seguidos del fichero o directorio destino. Cuando se copia ms de un fichero, el
destino debe de ser un directorio.

cd. Cambia el directorio de trabajo actual


Sintaxis: cd <directorio>
<directorio> es el directorio al que cambiamos (se refiere al directorio
actual y al directorio padre).
Ejemplo: cd ../casa pone ../casa como directorio actual.

Is. Muestra informacin sobre los ficheros o directorios indicados.


Sintaxis: ls <fichero]> <fichero2> . . . <ficheroN>

Sistemas Operativos 325

Donde <fichero]> a <ficheroN> son los ficheros o directorios a listar.


Opciones: hay multitud de ellas.
Las ms usadas comnmente son: -F (usada para mostrar informacin
sobre el tipo de fichero), y -1 (da un listado largo incluyendo tamao,
propietario, permisos, etc.).
Ejemplo: ls -IF Ihome!jcalvo mostrar el contenido del directorio
Ihome!jcalvo.

cp. Copia fichero(s) en otro fichero o directorio.


Sintaxis: cp <fichero]> <fichero2> . . . <ficheroN> <destino>
Donde <fichero]> a <ficheroN> son los ficheros a copiar, y <destina es el
fichero o directorio destino.
Ejemplo: cp ../docs javi copia el fichero ../docs al fichero o directorio javi.

mv. Mueve fichero(s) a otro fichero o directorio. Es equivalente a una


copia seguida del borrado del original. Puede ser usado para renombrar
ficheros, como el comando MS-DOS RENAME
Sintaxis: mv <fichero]> <fichero2> . . . <ficheroN> <destino>
Donde <fichero1> a <ficheroN> son los ficheros a mover y <destino> es el
fichero o directorio destino.
Ejemplo: mv ../docs javi mueve el fichero ../docs al fichero o directorio javi.

rm. Borra ficheros. Ntese que cuando los ficheros son borrados en UNIX,
son irrecuperables (a diferencia de MS-DOS, donde usualmente se puede
recuperar un fichero borrado).
Sintaxis: rm <fichero]> <fichero2> . . . <ficheroN>.
Donde <fichero1> a <ficheroN> son los nombres de los ficheros a borrar.
Opciones: -i pedir confirmacin antes de borrar un fichero.
Ejemplo: rm -i Ihome/jcalvo/javi /home/jcalvo/docs borra los ficheros javi y
docs en /home/jcalvo.

Sistemas Operativos 326

mkdir. Crea directorios nuevos.


Sintaxis: mkdir <dir1> <dir2>. . . <dirN>
Donde <dir1]> a <dirN> son los directorios a crear.
Ejemplo: mkdir /home/jcalvo/test crea el directorio test colgando de
/home/jcalvo.

rmdir. Esta orden borra directorios vacos. Al utilizar rmdir, el directorio de


trabajo actual no debe de estar dentro del directorio a borrar.
Sintaxis: rmdir <dir1 > <dir 2> . . . <dirN>
Donde <dir1> a <dirN> son los directorios a borrar.
Ejemplo: rmdir Ihomeljcalvolpapers borra el directorio Ihomeljcalvol papers
si est vaco.

man. Muestra la pgina de manual del comando o recurso (cualquier


utilidad del sistema que no es un comando, como funciones de librera)
dado:
Sintaxis: man <commando>
Donde <commando> es el nombre del comando o recurso sobre el que
queremos obtener la ayuda.
Ejemplo: man ls muestra ayuda sobre la orden ls.

more. Muestra el contenido de los ficheros indicados, una pantalla cada


vez.
Sintaxis: more <fichero1> <fichero2> . . . <ficheroN>
Donde <fichero1> a <ficheroN> son los ficheros a mostrar.
Ejemplo: more docs/notas muestra por el terminal el contenido del fichero
docs/notas.

cat. Oficialmente usado para concatenar ficheros, cat tambin es utilizado


para mostrar el contenido completo de un fichero de una vez

Sistemas Operativos 327

Sintaxis: cat <fichero}> <fichero2> . . . <ficheroN>


Donde <fichero}> a <ficheroN> son los ficheros a mostrar.
Ejemplo: cat docs/notas muestra por el terminal el contenido del fichero
docs/notas.

echo. Enva al terminal los argumentos pasados.


Sintaxis: echo <arg1> <arg2> . . . <argN>.
Donde <arg1> a <argN> son los argumentos a mostrar.
Ejemplo: echo <<.Hola mundo muestra la cadena Hola mundo.

grep. Muestra todas las lneas de un fichero dado que coinciden con un
cierto patrn.
Sintaxis: grep <patrn> <fichero1> <fichero2> . . . <ficheroN>
Donde <patrn> es una expresin regular y <fichero1> a <ficheroN'> son
los ficheros donde buscar.
Ejemplo: grep users /etc/passwd mostrar todas las lneas en el fichero
/etc/passwd que contienen la cadena users.

Sistemas Operativos 328

CAPTULO 3. OTROS SISTEMAS OPERATIVOS


Actividad a realizar:
En este captulo vamos a desarrollar un breve manual con la estructura bsica
de cada uno de los sistemas operativos relacionados. Sus ventajas,
desventajas y caractersticas tcnicas para la instalacin. Si es posible
realizamos la instalacin de uno de ellos. Tambin elaboramos el respectivo
manual de instalacin. Probarlo en la sesin prctica.

Aunque los sistemas operativos ms comerciales y frecuentemente utilizados son


Windows y Linux, es importante revisar la arquitectura de otros sistemas, que
aunque menos populares son de gran utilidad en soluciones de red robustas y
escalables.
Dentro de estos se revisaran los aspectos generales de sistemas operativos como
Novell Netware, OS2 y VMS.
3.1 NOVELL NETWARE
3.1.1 Introduccin al sistema operativo de red Novell
Novell NetWare est en el mercado desde 1983, el mismo ao en que IBM
introdujo la computadora personal IBM XT y el DOS 2.0 para IBM PC. Novell
desarroll originalmente NetWare para ejecutarse en un servidor basado en el
microprocesador Motorola MC68000 usando configuracin de red Novell S-Net. La
presentacin del XT de IBM y la versin 2 del DOS hizo ver a muchas empresas,
entre ellas Novell, la oportunidad de desarrollo del producto. Como el cdigo de
NetWare estaba escrito en C, que es un lenguaje de los denominados "portables",
Novell pudo trasladar parte del cdigo del NetWare existente al nuevo equipo.
Como es sabido, el entorno DOS/Intel 8088 no es el mejor para ejecutar
aplicaciones multiusuario, especialmente un sistema operativo multiusuario como
NetWare. El BIOS (sistema bsico de entradas/salidas), desarrollado para el PC
original (y necesario con el DOS), est diseado para ambientes monousuario.
Novell tom la importante decisin de dejar de lado completamente este sistema
de E/S y crear un sistema operativo que funcionase de forma ms efectiva en
modo multiusuario. Debido a esto, NetWare se escribi especficamente para el
hardware de los sistemas basados en el 8088, sin tener en cuenta el DOS y su
sistema de E/S. Las dificultades de Novell estribaron en la necesidad de escribir y
actualizar constantemente los controladores para ofrecer compatibilidad con el
DOS a los usarios. Estos problemas fueron solventados rpidamente usando un
shell para DOS en las estaciones de trabajo. El shell es un interfaz software que
permite a los usuarios de las estaciones trabajar con el DOS de forma normal,
ejecutando tambin rdenes NetWare. El shell intercepta las rdenes de la red y

Sistemas Operativos 329

las dirige al servidor. Casi todas las aplicaciones del DOS se pueden ejecutar en el
sistema operativo NetWare, gracias a su shell para DOS.
Mientras tanto, Novell sigui mejorando NetWare al ritmo de los avances
tecnolgicos. NetWare 286 funciona en modo protegido del procesador 80286, el
ms eficiente. En 1989, Novell present NetWare 386, el primer sistema operativo
que aprovechaba al mximo las ventajas del microprocesador Intel 80386.
Qu es una red?
Una red es un grupo de computadoras que pueden comunicarse entre s,
compartir recursos (discos duros, impresoras, ...) y acceder a otros equipos u otras
redes.
Los componentes bsicos del hardware de una red son:
Uno o ms servidores
Estaciones de trabajo
Dispositivos perifricos
Tarjetas de red
Medios de transmisin
Qu es NetWare?
NetWare es un sistema operativo de red de computadores desarrollado por la
empresa Novell. Es un conjunto de aplicaciones diseadas para conectar,
gestionar y mantener una red y sus servicios.
Una red NetWare utiliza el software NetWare para habilitar la comunicacin entre
dispositivos y el compartimiento de recursos.
NetWare es un conjunto de componentes software. Algunos de estos
componentes slo se pueden ejecutar desde el servidor de NetWare. Otros slo
se pueden ejecutar desde las estaciones de trabajo.
Soporte de estaciones de trabajo
A una red NetWare podemos conectar los siguientes tipos de estaciones de
trabajo:
DOS
Windows
OS/2
Macintosh
UNIX
3.1.2 Caractersticas de las distintas versiones

Sistemas Operativos 330

NetWare, Versin 2.2


La adaptabilidad de las caractersticas de NetWare 2.2 a las necesidades al
mercado de hoy no son suficientes cuando se comienza a mencionar los asuntos
de conectividad a que se enfrentan las compaas de hoy, administracin y apoyo
para mltiples protocolos, conexiones de rea amplia, flexibilidad y facilidad de
uso al administrador del NOS bajo escenarios de conectividad que cambian
constantemente.
El NetWare 2.2 no pudo mantener el ritmo de los dems en las pruebas de
ejecucin que representaban tareas de redes mayores. Esto se puede comprender
si se tiene en cuenta que NetWare 2.2 de 16 bits todava se puede ejecutar en una
mquina de clase AT.
NetWare 386 inicialmente slo estaba disponible como una versin de hasta 250
usuarios. No tiene la capacidad de procesar mltiples hilos de NetWare 3.11 y 4.0,
aunque puede ejecutar aplicaciones basadas en el servidor de llamadas a
procesos (VAPs). Pero los VAPs se consideran como difciles de escribir y hay
pocos disponibles.
Requerimientos:
PC basada en una 286 o superior.
500K de RAM (2.5 Mb recomendados.)
NetWare, Versin 3.11
NetWare 3.11 sigue siendo utilizado bastante, es fuerte y flexible dentro de los
sistemas operativos de red para las compaas pequeas. Su nica desventaja
para los que necesitan una solucin a nivel de empresa es que carece de un
servicio global de directorios. Pero esto se puede corregir en parte con el NetWare
Naming Service (NNS) que ofrece parte de los servicios distribuidos a los LANs de
NetWare.
Ofrece la habilidad de compartir archivos e impresoras, velocidad, seguridad,
apoyo para la mayora de los sistemas operativos, y una gran cantidad de
Hardware. Aunque tiene algunas dificultades con la administracin de memoria,
todava vale la pena, pues tiene algunas otras caractersticas que lo hacen
importante.
La principal atraccin de un NOS de 32 bits como el que introdujo Novell, fue su
diseo modular.
Los NLMs se pueden actualizar sin tener que reconstruir el NOS completo, y se
pueden cargar sobre la marcha. Adems, solamente los mdulos necesarios se
cargan en el NOS, reservando la memoria para otras funciones como el cach de
discos. Una desventaja de este diseo es el uso de memoria. Los NLMs se cargan

Sistemas Operativos 331

en el hilo 0 y pueden trabar el servidor si el NLM no est escrito correctamente o si


entran en conflicto con el NLM de otro fabricante. Por otra parte algunos de los
mdulos no desocupan la memoria cuando se descargan (Estos problemas de
administr acin de memoria se resolvieron luego en NetWare 4.x).
NetWare 3.11 est diseado en su mayora para redes desde pequeas a
medianas que consisten en servidores individuales, principalmente porque sus
servicios de directorios no integran a la red en su totalidad. Cada uno de los
servidores mantiene una base de datos centralizada de verificacin individual
llamada el Bindery. El Bindery del servidor mantiene la informacin como los
nombres de conexin, las contraseas, los derechos de acceso y la informacin
de impresin. Si los usuarios necesitan conectarse a ms de un servidor para
compartir recursos, deben hacerlo manualmente con cada servidor.
Requerimientos:
PC basada en una 386 o superior.
4Mb de RAM.
50Mb de espacio en Disco Duro.
NetWare, Versin 4.0
NetWare 4.0 ofrece la conexin simplificada de mltiples servidores, la capacidad
de compartir recursos en la red y la administracin centralizada en un mismo
producto. La arquitectura de NetWare 4.0, es similar a la de la versin 3.11, como
se mostr en la Figura 1.5, pero se han corregido y aumentado sus capacidades.
NetWare 4.0 no es para todo el mundo. Determinar si en realidad se necesita un
NOS tan potente depende del tamao, la configuracin y la complejidad de la LAN
que se quiera formar. Algunas de las caractersticas nuevas ms atractivas son el
NetWare Directory Services (NDS), la compresin de a rchivos, la subasignacin
de bloques, la distribucin de archivos y la administracin basada en Microsoft
Windows.
Netware, versiones superiores
Hoy la estrategia de computacin en red de Novell es una arquitectura llamada
Sistemas abiertos netware. Esta arquitectura tiene los siguientes objetivos:

Permitir disponer de los servicios ofrecidos por NetWare en plataformas

ampliables.
Hacer que NetWare sea independiente del protocolo soportando los
estndares importantes de la industria, como TCP/IP y los niveles de
protocolo OSI.
Ofrecer encaminamiento (rounting) y redes de rea amplia.

Sistemas Operativos 332

Mantener abierta la arquitectura y ofrecer herramientas de desarrollo para

crear aplicaciones que operen en un entorno distribuido de computacin en


red.

Novell planea implementar esta estrategia ofreciendo o soportando plataformas de


servidores, arquitectura abierta, una tecnologa de protocolos abierta y servicios
NetWare.
3.1.3 Administracin de memoria
Se agreg el apoyo de Memoria virtual (VM) al kernel NetWare 5. En las versiones
anteriores de NetWare, si se tena un servidor con 64MB de RAM, esa era toda la
memoria que el servidor poda usar para cargar aplicaciones y NLMs as como la
memoria de los pedidos de impresin, creacin de datos de usuario, manipulacin,
y acceso de la aplicacin. Con la Memoria Virtual, las aplicaciones del servidor y
programas de NLM pueden hacer swap hacia y desde memoria y guardarse en el
disco duro.
Por defecto, VM asigna un archivo de 2MB para swap que se ubica en la raz del
volumen del SYSTEM. De all, el archivo de swap crecer o achicar, mientras
dependiendo del nmero de NLMs y aplicaciones del servidor que el sistema tiene
en funcionamiento, y cunta memoria principal necesita el sistema para mantener
las otras aplicaciones del servidor y usuarios. Usted tambin puede seleccionar un
volumen diferente para poner el archivo del swap. Tambin se puede tener
archivos de swap mltiples. Usa el comando de consola SWAP para cambiar el
archivo del swap a un volumen diferente o agregar otro archivo de swap.
3.1.4 Administracin del procesador
NetWare 6 es un sistema operativo de red de segunda generacin del
Multiprocessing de Novell. Novell introdujo esta funcionalidad con NetWare 4.x.
Esta primera tentativa fue algo limitada. Toda la funcionalidad del SO tuvo que ser
concentrada en el procesador 0, el procesador por defecto en que los threads
estn ejecutndose cuando el proceso no es Multiprocessing.
Esta versin de NetWare permiti los usos que fueron escritos al estndar del
Multiprocessing en varios procesadores con excepcin del procesador 0. Pero en
cualquier momento se necesit utilizar la funcionalidad del SO (acceso al disco,
transmitir en el hilo, etctera) la peticin tuvo que ser ejecutada de nuevo al
procesador 0. Por lo tanto, no era una solucin completa. Con el advenimiento de
NetWare 5, la funcionalidad del Multiprocessing fue reescrita e integrada
totalmente en el ncleo del OS de NetWare. Esto hizo extensa la funcionalidad del
SO Multiprocessing. Sin embargo, todava haba algunos servicios esenciales
que tuvieron que funcionar en el procesador 0. La funcionalidad tal como

Sistemas Operativos 333

conductores del LAN y conductores del disco todava necesit Multiprocessing


permitido. En NetWare 6, todos los componentes son Multiprocessing
obedientes. La cadena de acontecimientos entera, del hilo de la red a los
dispositivos de almacenaje en disco duro, son Multiprocessing -permitidos. As
NetWare 6 provee una solucin completa de servidor Multiprocessing.
3.1.5 Los servicios del ndice de Novell (Novell Directory Services)
La visin de Novell respecto a la futura gestin de una empresa pasa por la
construccin de una red global inteligente que conecte Internet, grupos de trabajo
y redes corporativas en un nico sistema de informacin orientado a las empresas,
los clientes y los usuarios. Los tres elementos que hacen realidad esta red global
son:
Servicios de red que trabajan de forma inteligente para los usuarios. Estos
servicios identifican a los usuarios cuando se conectan, determinan dnde
estn, qu necesitan y cmo trabajar de la mejor forma posible para ellos.
Acceso universal, es decir, en cualquier momento y desde cualquier lugar
se puede acceder a la red.
Integracin heterognea que consolida los productos y dispositivos de
distintos fabricantes en una nica red. Asignacin dinmica entre un objeto
y el recurso fsico al cual se refiere.
NDS est formado por una serie de objetos colocados en una estructura jerrquica
con forma de rbol invertido. Una empresa puede organizar los objetos en el
ndice segn la forma en que los usuarios acceden a los recursos y los utilizan. De
esta manera acceder a un recurso es una tarea sencilla y que permite que este
servicio se utilice para establecer una administracin basada en reglas. La
administracin basada en normas permite a los administradores gestionar una
rama entera del ndice con una simple modificacin. De esta forma se pueden
conceder seguridad de acceso a toda la empresa sencilla y rpidamente,
minimizando la necesidad de administrar mltiples grupos.
Lo ms importante de este servicio es la transparencia en la jerarqua y la
herencia a lo largo de todo el ndice sin importar el nmero de servidores. Por
ejemplo, al conceder un permiso a una rama del rbol dicho permiso lo heredan de
manera automtica todos los usuarios que se encuentren por debajo, ya sean diez
o varios miles.
3.1.6 ADMINISTRACIN DE DISPOSITIVOS
Arquitectura ODI
ODI (Open Datalink Interface o Interfaz de Enlace de Datos Abierto) es una
especificacin definida por Novell Corporation y Apple Computer Corporation para
simplificar el desarrollo de controladores de red y proporcionar soporte para

Sistemas Operativos 334

mltiples protocolos sobre un slo adaptador de red o incluso para hacer convivir
varios adaptadores de red sobre el mismo sistema operativo.
ODI proporciona a los protocolos una API (Interfaz de Programacin de
Aplicaciones) que permite comunicar con el adaptador de red y la convivencia de
distintos protocolos simultneamente.
La configuracin de Netware con ODI est compuesta de los siguientes mdulos
de software entre otros:
MLID (Multiple Link Interface Driver). Es el programa que controla al
adaptador de red, especialmente preparado para la utilizacin de la
tecnologa ODI. Cada tarjeta tiene un mdulo MLID distinto, que
normalmente recibe el nombre del adaptador y tiene extensin COM. As, la
tarjeta NE2000 tiene un mdulo MLID denominado NE2000.COM.
LSL.COM (Link Support Layer o Legislador de Soporte de Enlace). Provee
la capacidad para la convivencia mltiple de protocolos en una o ms
tarjetas de red. Sobre este mdulo se asientan otras capas de software
para habilitar la gestin de red de distintas tecnologas: IPX, TCP/IP, etc.
Por encima de estos mdulos se pueden instalar otros de software, como en el
caso de la configuracin monoltica.
3.1.7 Servicios WEB
Con Netware 5 se incluye el servidor Web FastTrack versin 3.5 desarrollado por
la empresa Novonyx, que fue fundada por Novell y Netscape con el propsito de
incorporar toda la lnea de productos de Netscape sobre la plataforma Netware.
FastTrack es el mismo servidor Web que se puede encontrar en otros sistemas
operativos.
A principios de 1998 Novell y Netscape anunciaron que su subsidiaria Novonyx se
encargara de proporcionar los servidores de Netscape SuiteSpot sobre la
plataforma Netware. Todas las funciones administrativas, de ventas y soporte
sern coordinadas por Novell a partir de dicha fecha.
El producto cuyo nombre oficial es "Netscape FastTrack Server for Netware 5" es
un servidor WEB de alto rendimiento basado en estndares abiertos. Con l se
entrega informacin una nuestra intranet o Internet empleando el protocolo HTTP.
UNICON. El programa con el que se realiza toda la administracin de los servicios
FTP, LPD, LPR y NIS se llama UNICON.NLM. Se debe ejecutar en el servidor
Netware y no est integrada con el Administrador normal de Windows.

Sistemas Operativos 335

3.1.8 Recursos y servicios de red


Uno de los objetivos de una red es el de proporcionar acceso a los servicios y
recursos de red. Un recurso es algo que se utiliza, como una impresora de la red o
un volumen en una unidad de disco. Un servicio de red es el sistema empleado
para proporcionar un recurso. La mayor parte de los recursos y servicios los
proporcionan los servidores de NetWare y pueden ser compartidos
simultneamente por mltiples clientes que se encuentren en cualquier punto de la
red.
Un servidor NetWare puede proporcionar una amplia gama de servicios de red,
todos los cuales podran considerarse como responsabilidad del administrador de
la red:

Servicios del Directorio Netware


Seguridad
Sistema de archivos
Impresin en red
Servicios de gestin del almacenamiento
Servicio del sistema de gestin de mensajes

Servicios del Directorio Netware. Los Servicios del Directorio NetWare (o NDS)
mantienen una base de datos con informacin acerca de todos los recursos de
una red NetWare organizada en una estructura de rbol jerrquica llamada rbol
del directorio. Los NDS procesan las peticiones de recursos de red que hacen los
clientes: localizan el recurso en la red, verifican el cliente y lo conectan al recurso.
Seguridad. El sistema de seguridad de NetWare no es un sistema unitario, sino
que est distribuido entre los muchos servicios de la red. El papel de cada sistema
de seguridad es el de regular el acceso a los recursos de red. El componente
fundamental de la seguridad de la red es su cuenta de usuario, que le identifica e
indica qu es lo que est autorizado a hacer en la red.
Sistema de archivos. Sistema que utiliza el servidor de NetWare para organizar
datos en los discos duros. Cada archivo recibe un nombre de archivo y se
almacena en un punto determinado en un sistema jerrquico de archivo para que
los archivos se puedan localizar rpidamente.
El sistema de archivos NetWare permite que los clientes compartan unidades de
discoconectadas a los servidores de NetWare. Se puede utilizar para almacenar,
compartir y utilizar aplicaciones y archivos de datos.
Impresin en red. NetWare permite a todas las estaciones de trabajo imprimir por
las mismas impresoras. Se pueden conectar estas impresoras a los servidores de
NetWare, a las estaciones de trabajo o directamente al cable de la red. Gracias al

Sistemas Operativos 336

servicio de impresin de NetWare podremos, desde nuestro puesto de trabajo,


imprimir por cualquier impresora que est conectada a la red.
Servicios de gestin del almacenamiento. Los servicios de gestin del
almacenamiento (SMS) controlan el respaldo y la recuperacin de los datos de los
servidores y estaciones de trabajo. Un respaldo es una copia, un duplicado de los
datos del sistema de archivos que se copia en un dispositivo de almacenamiento
(generalmente, una cinta de cartucho). Se pueden recuperar y restaurar el
respaldo en caso de que se degrade o destruya el original.
Servicio de sistema de gestin de mensajes (MWS). El Servicio de sistema de
gestin de mensajes de NetWare (MHS) es un servicio de gestin de mensajes
que permite intercambiar correo electrnico, compartir calendarios, programar los
recursos y realizar otras muchas tareas.
3.2 Sistema operativo OS/2
3.2.1 Introduccin al sistema operativo OS/2
ste es un sistema operativo del que casi todo el mundo ha odo hablar, pero casi
nadie ha probado.
Los objetivos principales de los diseadores de OS/2 fueron crear un sistema
operativo ideal para la automatizacion de oficinas, proporcionar manejadores
graficos independientes de los disposistivos, lograr que las aplicaciones tuvieran
acceso directo a perifericos con gran ancho de banda, ofrece capacidad
multitarea, proporcionar un ambiente adaptado para cada programa y para
sudescendientes, y ofrecer un ambiente protegido para garantizar la estabilidad
del sistema.
OS/2 fue desarrollado originalmente entre IBM y Microsoft como un sucesor
multiproceso del DOS para CPUs 286 y mejor, pero la versin 1.x nunca fue
aceptada excepto para algunas aplicaciones especificas. Con la versin 2.0,
Microsoft dej la sociedad OS/2, e IBM promovi el OS/2 como un sistema
operativo de 32-bit que requera un CPU 386 o mejor.
OS/2 fue originalmente diseado por Microsoft con la ayuda de IBM. Desde el
punto de vista de estas compaas OS/2 iba a reemplazar a MS-DOS. Esto nunca
sucedi OS/2 se entreg tarde e incompleto. Aunque tena unas ventajas obvias
sobre MS-DOS, como el uso real de memoria, la ejecucin en modo protegido y el
soporte de multiprogramacin en forma elegante, los usuarios no se interesaron
en l.

Sistemas Operativos 337

3.2.2 Compendio de Versiones de OS/2


OS/2 1.0 (1987) fue originalmente diseado por Microsoft con la ayuda de IBM.
Cuando el procesador 286 era el ltimo y mas grande chip. Desde entonces
Microsoft se percat que DOS se estaba quedando atrs.
Ellos introdujeron OS/2 1.0 en 1987, el cual corre en modo texto programas que
eran extremadamente poderosos.
Desde entonces sobrepasan ms de los lmites de DOS, usando aun comandos
estilo DOS en la lnea de prompt.
OS/2 1.1(1988) - 1.3 (1991) incluy el administrador de presentacin, el cual se
vea como Windows 3.X.( Windows 3.X tardara para ser mas avanzado que el
Presentation Manager). El apoyo a DOS fue adicionado con algunas otras
caractersticas como alta o excelente ejecucin del sistema de archivos, el cual en
verdad permita nombre de archivos largos, y esto es tpicamente mucho ms
rpido que (V) FAT y permita volumenes de tamao mas largo son aquellos
torpes o en cmodos programas administradores de discos.
OS/2 2.0 (1992) vio el amanecer de la siguiente generacin en una interface de
usuarios grfica PCs IBM. En vez de ir a un procesador de palabras para imprimir
un documento, simplemente se arrastra el icono del objeto documento al icono de
impresin. OS/2 2.0 tambin luci uno nuevo, 32 bits, 386 basado en KERNEL
alej limitaciones como nunca antes. Tambin OS/2, corre aplicaciones de
Windows 3.0 en modo real, extendi el encanto de OS/2 como una Plataforma
Integrada sobre la cual podr correr todas sus aplicaciones.
OS/2 2.1 (1993) introdujo un sistema grfico de 32 bits con algunas mejoras aqu
y all en velocidad, y muchos ms manejadores. Tambin introdujo el Multimedia
Presentation Manager (MMPM/2) una lista standar de aplicaciones y utilitarios de
Os/2. El soporte del programa Windows 3.1 (modo extendido) fue agregado a
esta versin.
Fue probablemente uno de los logros mas importantes que ha tenido IBM, este
usaba la copia existente de Windows en el disco duro para correr las aplicaciones
de Windows, ms que eso era equivalente al OS/2 2.1 de DOS.
OS/2 Warp 3.0 (1994). Marc un hito para OS/2, despus de un amplio ciclo de
prueba BETA sobrevino y sali un producto altamente refinado y pulido que luci
un KERNEL mucho ms rpido y nuevas rutinas de intercambio las cuales
incrementaron la velocidad. Se aadi el soporte para Windows de 32 bits, junto
con un alto conjunto de versiones, gratis programas incluidos en el bonus pack.
OS/2 luci el frenes de internet de 1995 con su Internet Acces Kit. La
instalacin se hizo mucho ms sencilla y amigable, y un utilitario de desintalacin
aunque rudimentario sali a escena. Una herramienta de recuperacin de
desastres fue incluida dentro del sistema lo que marc el estndar el cual es

Sistemas Operativos 338

imitado por otros sistemas operativos de hoy da. Dos versiones fueron hechas
OS/2 para Windows sacada en 1994 y entonces OS/2 Warp con el OS/2 versin
nativa de Windows 3.1 a principios de 1995. OS/2 Warp tambin soporta
Windows para trabajo en grupo donde OS/2 2.1 nunca lo soport
Os/2 Warp Connect (1995), puso a OS/2 en el rango de punto a punto y
estaciones de trabajo cliente OS/2 por diseo tiene incluido en el sistema
operativo la gestin de redes. Slo libera al animal enjaulado. Connect es
tambin conocido como un sistema confiable para clientes de redes o para
pequeos servidores.
OS/2 Warp Server (1997), efectivamente integr el LAN Server de IBM en OS/2
Warp. Os/2 Warp Server ha sido aclamado como el mejor sistema operativo de
redes, es muy eficiente y requiere menos hardware, que sus equivalentes
funcionales de NT y UNIX para dar el mismo rendimiento.
Tiene muchos usos y caractersticas de administracin los cuales han hecho de l
ya el favorito para muchos de los administradores de redes
OS/2 Warp 4 Merlin (1998), existen infinidad de rumores a cerca de Merlin.
Merlin es el nombre del proyecto dado para la siguiente revisin de OS/2 Warp.
Ms nunca existir una versin OS/2 sola; siempre ser un servicio de cliente y
redes de punto en todas las futuras versiones de OS/2. Merlin posee mejoras en
(Work place Shell), incluye mejora en los multimedios, y otras mejoras
principalmente apuntaron a hacer a OS/2 mucho ms amigable para usar
3.2.3 Manejo de archivos en OS/2
Debido al objetivo inicial de mantener compatibilidad con DOS, las versin 1.0 de
OS/2 era muy similar a la de ste sistema operativo. Posteriormente en las
versiones 2.x mejor el sistema de archivos con otras facilidades, como ofrecer
dos modos de trabajo: el sncrono y el asncrono. El modo sncrono se realiza a
travs del llamado a las rutinas 'DosRead' y 'DosWrite', mientras que el asncrono
se realiza por medio de 'DosReadAsync' y 'DosWriteAsync'. En el caso de que se
estn ejecutando varios 'threads' de un proceso, la sincronizacin de las
operaciones sobre archivos se puede realizar a travs de semforos con la
llamada a la rutina 'DosMuxSemWait'.
Respecto a los discos duros, OS/2 permite crear varias particiones en un solo
disco y mantener sistemas de archivos en cada particin con su propio File
Allocation Table (FAT) en cada particin. A este tipo de particiones se les llama
'particiones ampliadas'. OS/2 continua usando nombres de archivos de ocho
caracteres y extensiones de tres con un punto que los separa. A continuacin se
muestran algunas llamadas para la manipulacin de archivos.

Sistemas Operativos 339

Llamada

Descripcin

DosBufReset
DosClose
DosDelete
DosDevIOCtl
DosMkDir
DosNewSize
DosFileInfo
DosSetFileInfo
DosOpen
DosSetFileMode
DosRmDir
DosSelectDisk

Graba al disco los buffers del archivo


Cierra el archivo
Borra el archivo
Establece parmetros de trabajo
Crea un directorio
Cambia el tamao de archivo
Obtiene informacin sobre el archivo
Establece informacin del archivo
Abre un archivo
Establece el modo de operacin
Borra un directorio vaco
Selecciona un disco para trabajar

Como en UNIX y algunos otros sistemas operativos, OS/2 permite ser instalado en
una particin de disco duro y dejar otras intactas para instalar otros sistemas
operativos, dando as la facilidad de poder usar una misma computadora con
diferentes sistemas operativos. OS/2 ofrece una interfaz grfica para que el
usuario trabaje, en particular ofrece un cono para representar los archivos y una
barra de mens para realizar operaciones sobre ellos como abrirlos, cerralos,
copiarlos, etc. Si el usuario est acostumbrado a teclear comandos, entonces
puede pedir una sesin de DOS para usar los comandos habituales de ese
sistema operativo. En particular, en el ambiente de ventanas se tiene un cono
denominado Sistema OS/2 que contiene otro cono llamado Unidades y ah
existen conos que representan el disco duro, unidades de disco flexible, etc. Para
realizar copias de archivos, borrados, etc; basta con arrastrar los conos
correspondientes de/hacia el origen/destino deseado. La versin inicial de OS/2
tena includo el sistema Windows, pero debido a las regalas que deba pagar a
Microsoft, ste fue eliminado y el usuario debe adquirirlo por separado, y
configurarlo al momento de instalacin.
3.2.4 Manejo de procesos en OS/2
OS/2 utiliza un esquema de planificacin apropiativa, es decir, los procesos
pueden ser suspendidos para darle su turno de ejecucin a otro diferente. Los
procesos pueden estar dividos en 'threads' que cuentan con sus propios registros,
pila y contador de programa y todos los 'threads' de un mismo proceso comparten
la memoria. Esto facilita la comunicacin entre ellos y la sincronizacin. Tambin
es posible que un proceso genere un proceso hijo, en tal caso el hijo hereda todos
los atributos del padre como son los descriptores de archivos abiertos, los valores
en memoria, etc; prcticamente igual que el sistema operativo UNIX.
Otra facilidad de OS/2 es la facilidad de crear 'conductos' lo cual tambin es una
funcin heredada de UNIX.

Sistemas Operativos 340

La calendarizacin de procesos o 'threads' se hace por prioridad y dndoles una


intervalo de ejecucin a cada proceso o 'thread'. Se manejan tres niveles de
prioridades: procesos preferentes, procesos preferentes interactivos y procesos
normales. OS/2 eleva a la categora de prefentes a aquellos procesos que hacen
mucha E/S.
Otra facilidad notable de OS/2 es la carga dinmica de libreras, que consiste en la
generacin de aplicaciones cuyas libreras no forman parte del cdigo compilado,
sino que son cargadas cuando el programa es ejecutado. Esto sirve bastante
sobre todo cuando las libreras son de uso comn. Como se ve, esta facilidad es
parecida a las del sistema operativo UNIX SunOS.
3.2.5 Manejo de memoria en OS/2
La versin inicial de OS/2 usaba segmentacin pura debido sobre todos a las
restricciones de los procesadores. Pero ya que el 80386 soportaba segmentacin
y paginacin, IBM prometi un manejo de memoria virtual ms sofisticado. El
algoritmo de sustitucin de segmentos era el Menos Recientemente Usado. Con
el 80386 se rompi la barrera de segmentos de 64 kilobytes para ofrecer los
llamados segmentos gigantes que podian estar formados de varios segmentos
de 64k. Debido a que OS/2 debe hacer uso del modo protegido, no se permiten
algunos manejadores de extensin de memoria que violan este modo de trabajo.
En particular, la versin 2.0 soporta aplicaciones que usan el modo protegido de
DOS DOS Protect-Mode Interface, el Expanded Memory Specification (EMS), o
el Extended Memory Specification (XMS). Los programas que usan
WINMEM32.DLL no eran soportados, ni los que accesan directamente los
sectores fisicos del disco duro. Las nuevas versiones manejan memoria con
paginacin.
3.2.6 Manejo de entrada/salida en OS/2
En OS/2 se tuvo un gran problema de diseo en este aspecto, ya que se deseaba
dar compatibilidad a los programas existentes para DOS. En este aspecto, existen
gran cantidad de programas de DOS que accesaban directamente algunos
perifricos, incluso interceptando los vectores de interrupciones para realizar un
manejo propio en la entrada/salida. Todos esos programas no son soportados en
forma nativa en OS/2, sino que deben ser recreados usando una facilidad llamada
supervisor de dispositivos.
OS/2 sigue soportando la idea de device drivers en una forma parecida que en
DOS. De hecho, algunos estudiosos de los sistemas operativos afirman que DOS
se puede considerar como un sistema microkernel por esta caracterstica.

Sistemas Operativos 341

Para que un proceso sea candidato a manejar un dispositivo, debe informarlo a


travs de una llamada a 'DosMonOpen' y 'DosMonReg'. El supervisor de
dispositivos usar un modelo de productor-consumidor para enviar y recibir datos
con el proceso candidato. Tambin es factible que para un mismo dispositivo el
supervisor enve los datos a varios procesos interesados en leer de l. Los
dispositivos en OS/2 se clasifican en aquellos orientados a bloques y aquellos
orientados a caracteres. Los dispositivos orientados a caracteres se manejan de
manera sncrona.
Los procesos tambin pueden indicar los permisos de los archivos y dispositivos
para indicar quines pueden accesarlos al mismo tiempo. De este modo se
consigue que los datos estn ntegros.
Tambin existe el servicio de reloj, lo cual permite sincronizar algunos eventos, por
medio del reloj del sistema que oscila 32 veces por segundo y otro que oscila
millones de veces. Dependiendo de la precisin deseada se usa el reloj adecuado.
Las llamadas para el reloj de mayor precisin se hacen en un rea llamada
segmento de informacin global por medio de la rutina DosGetInfoSeg.
3.3 El sistema operativo VMS (Virtual Memory System)
3.3.1 Introduccin al sistema operativo VMS
Es uno de los ms robustos en el mercado, aunque es propietario de la compaia
Digital Equipment Corporation. Actualmente con su versin OpenVMS 5.x existe
para los procesadores de las mquinas VAX (CISC) y con el Alpha-chip (RISC).
Ofrece un amplio conjunto de comandos a travs de su intrprete Digital
Command Language (DCL), utilidades de red (DECnet), formacin de clusters de
computadoras para compartir recursos, correo electrnico y otras facilidades. Es
un sistema operativo multiusuario/multitarea monoltico.
3.3.2 El manejo de archivos en VMS
El sistema de archivos de VMS es jerrquico aunque la descripcin de sus
senderos tiene una sintaxis propia.

Sistemas Operativos 342

Grfica 100. Sistema de archivos de VMS

Los archivos en VMS se referencan con la sintaxis nombre.tipo;versin, donde


nombre es una cadena de caracteres alfanumricos, tipo es la extensin del
archivo y se usa generalmente para describir a qu aplicacin pertenece
(pas=pascal, for fortran, etc.) y versin es un nmero entero que el sistema se
encarga de asignar de acuerdo al nmero de veces que el archivo ha sido
modificado. Por ejemplo, si se ha editado tres veces el archivo lee.pas, seguro
que existirn las versiones lee.pas;1, lee.pas;2 y lee.pas;3. De esta forma el
usuario obtiene automticamente una historia de sus archivos.
La proteccin de los archivos se realiza mediante listas de control de acceso
(Access Control Lists). Se pueden establecer protecciones hacia el dueo del
archivo, hacia los usuarios privilegiados (system), hacia los usuarios que
pertenecen al mismo grupo de trabajo que el dueo y hacia el resto del mundo.
Para cada uno de los anteriores usuarios se manejan cuatro permisos: lectura,
escritura, ejecucin y borrado.
Por ejemplo, el siguiente comando:
$ set protection=(S:rwed,O:rwed,G:d:W:e) lee.pas establece que el archivo
lee.pas dar todos los permisos al sistema (S:rwed) y al dueo (O:rwed),
mientras que a los miembros del grupo de trabajo le da permiso de borrar (G:d) y
al resto del mundo permiso de ejecucin (W:e).
En VMS, a travs de su Record Management System (RMS) se obtienen las
facilidades para la manipulacin de archivos tanto locales como en red. En el
RMS, se proveen facilidades tales como: mltiples modos de acceso a archivos
para lograr accesarlos en forma concurrente y permitiendo su consistencia e
integridad, establecimiento de candados automticos al momento de apertura para
evitar actualizaciones errneas y optimizacin interna en las operaciones de
entrada/salida al accesar los archivos. En el caso de que los archivos no son

Sistemas Operativos 343

locales, sino remotos, se utiliza internamente el protocolo llamado Data Access


Protocol (DAP).
3.3.3 Manejo de procesos en VMS
Soporta muchos ambientes de usuario tales como: tiempo crtico, desarrollo de
programas interactivos, batch, ya sea de manera concurrente, independiente o
combinado.
El calendarizador VAX/VMS realiza calendarizacin de procesos normales y de
tiempo real, basados en la prioridad de los procesos ejecutables en el Balance
Set. Un proceso normal es referido a como un proceso de tiempo compartido o
proceso background mientras que los procesos en tiempo real se refieren a los de
tiempo crtico.
En VMS los procesos se manejan por prioridades y de manera apropiativa. Los
procesos se clasifican de la prioridad 1 a la 31, siendo las primeras quince
prioridades para procesos normales y trabajos en lote, y de la 16 a la 31 para
procesos privilegiados y del sistema. Las prioridades no permanecen fijas todo el
tiempo sino que se varan de acuerdo a algunos eventos del sistema. Las
prioridades de los procesos normales pueden sufrir variaciones de hasta 6 puntos,
por ejemplo, cuando un proceso est esperando un dispositivo y ste fue liberado.
Un proceso no suelta la unidad central de procesamiento hasta que exista un
proceso con mayor prioridad.
El proceso residente de mayor prioridad al ser ejecutado siempre se selecciona
para su ejecucin. Los procesos en tiempo crtico son establecidos por el usuario y
no pueden ser alterados por el sistema. La prioridad de los procesos normales
puede ser alterada por el sistema para optimizar overlap de computacin y otras
actividades I/O.
Un aspecto importante del planificador de procesos en VMS es la existencia de
proceso monitor o supervisor, el cual se ejecuta peridicamente para actualizar
algunas variables de desempeo y para re-calendarizar los procesos en ejecucin.
Existen versiones de VMS que corren en varios procesadores, y se ofrecen
libreras para crear programas con mltiples threads. En especfico se proveen
las interfaces cma, pthread y pthread-exception-returning. Todas estas
libreras se conocen como DECthreads e incluyen libreras tales como semforos
y colas atmicas para la comunicacin y sincronizacin entre threads. El uso de
threads sirve para enviar porciones de un programa a ejecutar en diferentes
procesadores aprovechando as el multiproceso.

Sistemas Operativos 344

Servicios del Sistema para el Control de Procesos


Crear un proceso. El servicio de creado de sistema permite a un proceso
crear otro. El proceso creado puede ser un subproceso o un proceso
completamente independiente (Se necesitan privilegios para hacer esto).
Suspender un proceso. Esto es que le permite a un proceso suspenderse
a s mismo o a otro (tambin necesita tener privilegios).
Reanudar un proceso. Permite a un proceso reanudar a otro si es que
este tiene privilegios para hacerlo.
Borrar un proceso. Permite que se borre el proceso mismo o a otro si es
que es un subproceso, o si no tiene que tener privilegios de borrado.
Dar prioridad. Permite que el proceso mismo se ponga prioridad o a otros,
para el calendarizador.
Dar el modo de espera. Permite que el proceso escoja de dos modos: el
modo por default es cuando un proceso requiere un recurso y est ocupado
y espera a que est desocupado, y el otro modo es cuando est ocupado el
recurso, el proceso no espera y notifica al usuario que el recurso no se
encuentra disponible en ese momento en lugar de esperar.
Hibernar. Es cuando un proceso se hace inactivo pero est presente en el
sistema. Para que el proceso continue necesita de un evento para
despertar.
Wake. Esto activa a los procesos que estan hibernando.
Exit. Es cuando se aborta un proceso.
Dar nombre al proceso. Este puede dar un nombre al proceso mismo o
cambiarlo (el PCB contiene el nombre).
3.3.4 Manejo de memoria en VMS
El sistema operativo VMS utiliza un esquema de manejo de memoria virtual
combinado de segmentacin paginada. Lo novedoso en VMS es que usa un doble
esquema de paginacin cuando las pginas se van a intercambiar de memoria
RAM hacia disco duro. En primer lugar, cuando una pgina necesita cargarse a
RAM sta se carga junto con varias pginas que estn adyacentes, justificando
esto por medio de la teora del conjunto de trabajo que especifica que es muy
probable que las referencias a memoria en el futuro inmediato caern
precisamente en esas pginas. De este modo, se tiene un doble algoritmo: al
hecho de cargarse las pginas cuando se necesitan se le llama paginacin por
demanda y al hecho de traerse las otras pginas del conjunto de trabajo por
anticipado se le llama paginacin anticipada.
3.3.5 El manejo de entrada/salida en VMS
En VMS, se usan nombres lgicos para describir a los dispositivos existentes en
el sistema. Un concepto importante tanto en archivos como en dispositivos es el
User Identification Code (UIC) que permite establecer protecciones adicionales a

Sistemas Operativos 345

los ACL. En los dispositivos se manejan cinco tipos de permisos: leer, escribir,
ejecutar, borrar y controlar. No todos los permisos se aplican a todos los
dispositivos. El permiso de control no se maneja explcitamente sino que se
otorga por omisin al dueo y al sistema. Los permisos de los discos, unidades de
cinta y otros dispositivos son establecidos por el administrador del sistema.
Los dispositivos reciben nombres lgicos, por ejemplo, para una unidad de cinta
el nombre puede ser MTA0.
Maneja System Interface (SCSI) que son ampliamente usados en diversas
plataformas. El intercambio de datos entre la unidad central de proceso y los
perifricos se lleva a cabo a travs de los buses normalizados UNIBUS y
MASSBUS.

Sistemas Operativos 346

CAPTULO 4. ARQUITECTURA DE LAS COMUNICACIONES

Actividad inicial:
En este punto, vamos a establecer un comparativo entre las arquitecturas aqu
mencionadas. A nivel de capas, costos, servicios, equipos, sistemas
operativos que pueden manejar, etc.
Es importante resaltar ventajas y desventajas de cada una, y al final proponer
cul sera la arquitectura ideal para un sistema de red estndar.

La arquitectura de las comunicaciones es una estructura organizada


jerrquicamente con el fin de permitir el intercambio de datos entre niveles lgicos
semejantes en distintas mquinas o terminales de la misma o distinta red.
Es hora de conocer y/ recordar los diferentes modelos arquitectnicos propuestos
para la implementacin de una red. Recordemos que esto es importante a la hora
de seleccionar y configurar las caractersticas de un sistema operativo cualquiera
para una red de computadores.
4.1 El modelo arquitectnico de capas de red
En una arquitectura de red basada en capas, existen varios niveles de capas con
interfaces entre ellas. Las interfaces proporcionan los puntos de acceso a los
diferentes servicios que cada capa provee; la primera capa no tiene otra por
debajo a quien solicitar servicios, sta se encarga de operar con los medios de
transmisin.
Una ventaja de esta arquitectura es que es poco sensible a los cambios
tecnolgicos que se producen por evolucin en las funciones y en los servicios de
las redes lo que las hace enormemente flexibles.
El proceso de comunicacin se produce entre capas equivalentes de dos host
distintos. La informacin va descendiendo por la estructura de capas del host
emisor hasta llegar al nivel ms bajo, de donde pasa al host receptor y aqu se
inicia el viaje ascendente hasta llegar a la capa equivalente en el host de destino.
La capa N de un host emisor se comunica con la capa N de un receptor a travs
de un protocolo que enmascara el proceso desencadenado en las capas de nivel
inferior hacindolo transparente. La capa 1 opera con transmisiones en el nivel
fsico, es decir con seales; el resto de las capas opera con comunicaciones.

Sistemas Operativos 347

4.2 El modelo de referencia OSI


OSI es el nombre de una arquitectura de capas para redes de ordenadores y
sistemas distribuidos propuesto por la ISO como estndar de interconexin de
sistemas abiertos.
4.2.1 La estructura de capas en OSI
El modelo OSI propone siete capas o niveles diseadas teniendo en cuenta los
siguientes factores:
Una capa se identifica con un nivel de abstraccin.
Cada capa debe tener una funcin perfectamente definida.
La funcin de cada capa debe elegirse de modo que sea posible la
definicin posterior de protocolos.
Se disminuir al mximo el flujo de informacin entre las capas a travs de
los interfaces.
Las capas sern tan numerosas como sea necesario para que dos
funciones muy distintas no tengan que convivir en la misma capa.
4.2.2 La comunicacin entre las capas
La comunicacin se realiza a travs del interface, y se da por un sistema de
llamadas y respuestas denominado primitivas. Cada servicio es el conjunto de
primitivas que cada capa ofrece a travs de su interface a la capa superior y est
nominado por un SAP que lo identifica unvocamente dentro de cada interface.
OSI define cuatro primitivas:
Primitiva
Solicitud

Nombre OSI
.request

Indicacin

.indication

Respuesta

.response

Confirmacin

.confirm

Significado
Una entidad solicita que un servicio realice un
trabajo para ella.
Una entidad es informada de que ha ocurrido un
evento.
Una entidad responde con una primitiva a un
evento producido anteriormente
Una entidad es informada acerca de una solicitud
efectuada anteriormente

La primitiva de un servicio se construye escribiendo el nombre del servicio(en


maysculas) seguido por un punto y la primitiva fundamental. Ejemplo
CONNECT.request para hacer una peticin.

Sistemas Operativos 348

4.2.3 Tipos de servicios definidos en OSI: Existen dos tipos de servicios:


Servicios orientados a la conexin. Requieren el establecimiento inicial de una
conexin y la ruptura o liberacin final de la misma, en donde se produce el
intercambio de datos del usuario. Los bloques de datos se reciben en el mismo
orden en que fueron emitidos y todos los paquetes siguen la ruta conseguida en la
conexin, por ejemplo el servicio telefnico.
Estos tienen dos variantes:
Secuencia de mensajes: Se establecen fronteras que definen y
determinan cada mensaje.
Secuencia de bytes: no hay contorno entre los mensajes. Cada mensaje
es una secuencia de caracteres dejando al receptor la responsabilidad de
su interpretacin.
Servicios sin conexin. Ofrecen la capacidad de comunicacin sin realizar una
conexin con el destinatario. Se envan paquete de datos con la direccin de
destino, confiando en que la red conduzca los datos por la ruta adecuada. En
algunos casos, el receptor debe enviar acuse de recibo al emisor, por ejemplo el
sistema postal.
Existen varios tipos de servicio sin conexin:
Servicio de datagrama sin confirmacin: no necesita confirmacin por
parte del receptor, ejemplo protocolo IP
Servicio de datagrama con confirmacin: se enva confirmacin al
emisor, ejemplo correo electrnico con acuse de recibo.
Servicio de peticin y respuesta: se basa en que a cada peticin le sigue
una respuesta. Ejemplo, en una base de datos.
4.2.4 Los niveles OSI orientados a la red
NIVEL
Aplicacin o Aplicacin
usuario

Presentacin

FUNCIN

Modo de
Transporte
Se definen los protocolos que utilizarn las APDU
aplicaciones y procesos de los usuarios. La
ISO referencia 5 grupos de protocolos:
Grupo 1. Protocolos de gestin del sistema.
Grupo 2. Protocolos de gestin de la
aplicacin.
Grupo 3. Protocolos de sistema
Grupo 4 y 5. Protocolos especficos para
aplicaciones
Se ocupa de la sintaxis y de la semntica de la PPDU
informacin, es decir, investiga en el contenido
informativo de los datos; comprime los datos
para que las comunicaciones sean menos
costosas y encriptacin de la informacin

Sistemas Operativos 349


NIVEL
Sesin

Transporte

Red
(Subred)

Red

Enlace

Fsico

FUNCIN
Permite el dialogo entre el emisor y el
receptor, estableciendo una sesin en la cual
se puede dar un transporte de datos ordinario.
Se realiza en dos etapas:
Establecimiento de sesin y creacin
de un buzn.
Intercambio de datos entre los
buzones
Determina
si
la
comunicacin
ser
bidireccional o simultanea
Acepta los datos de la capa de sesin, los
fracciones para que sean aceptados por la
subred y se asegura que de que llegar al
nivel de trasporte del destinatario
Se ocupa de la subred, su funcin es la del
encadenamiento, o sea, elegir la ruta mas
adecuada para que el paquete llegue a su
destino el cual esta identificado por una
direccin, adems trata la congestin y la
resolucin de problemas generados por redes
heterogneas.
Establece una lnea de comunicacin libre de
errores que se produzcan en la recepcin de
tramas, eliminar tramas errneas, solicitar
retransmisiones, adecuar el flujo de datos, etc.
Define
las
caractersticas
mecnicas,
elctricas, funcionales y de procedimiento
para establecer y destruir conexiones entre
dos equipos. Garantiza la compatibilidad de
los conectores

Modo de
Transporte
SPDU

TPDU

PAQUETE

TRAMA

BIT

Un ordenador puede soportar mltiples aplicaciones simultneas que solicitan


servicios de comunicacin a la capa de transporte. A su vez, la capa de transporte
debe solicitar servicios a la subred con el fin de elegir la que sea ms necesaria, la
ruta ms conveniente y el fraccionamiento de datos ms adecuado. Muchas
comunicaciones de alto nivel pueden ser ejecutadas por mltiples transmisiones
de bajo nivel. Sin embargo el nivel de la capa de transporte tiene que ser comn.
4.3 Otras arquitecturas y redes
Siendo el modelo de referencia OSI terico, no hay ninguna red 100% OSI, y
existen otras arquitecturas que han evolucionado, siendo compatibles con OSI.
Dentro de ellas tenemos: SNA de IBM, DNA de DEC y ARPANET

Sistemas Operativos 350

4.3.1 La arquitectura SNA de IBM


SNA (system network architecture). Red propia de IBM. El modelo OSI se
configur a partir de SNA, de donde toma el nmero de funciones aproximadas de
sus capas.
La primera versin comenz en 1974 para gestionar redes en forma de rbol con
un solo host al que se conectaban sus terminales. La segunda versin en 1976, en
ella se permitan varios host con sus respectivos rboles pudiendo establecer
comunicacin entre ellos. En 1985 se incluyeron el resto de las topologas y
relaciones de rea local.
SNA est constituido por un conjunto de mquinas conectadas a la red y llamadas
nodos, que se pueden denominar como terminales, controladores, procesadores
frontales y los hosts.
Cada uno de estos nodos tienen una NAU(network address unit) unidad de
direccionamiento de red, que es el software por el que un proceso puede llegar a
utilizar la red. Hay varios tipos de NAU. EL conjunto de hardware y software
controlado por una NAU de tipo SSCP es lo que se llama dominio en SNA.
El nmero de capas es igual al de OSI, pero no hay correspondencia exacta entre
ellas.
Arquitectura SNA
La idea que se persegua al disear esta arquitectura de red era lograr unificar los
muy diversos protocolos y paquetes de comunicaciones que posea la empresa,
con intencin de ofrecer una imagen de marca ms coherente a sus clientes,
aunque manteniendo compatibilidad con los productos instalados.
En una red SNA una UCP (Unidad Central de Proceso) se conecta a la red
mediante una UCT (Unidad Central de Transmisin), que puede estar integrada en
la UCP. Una UCT puede soportar desde unidades a millares de circuitos, por su
estructura modular.
Los usuarios de un Sistema de Comunicacin SNA se denominan Usarios Finales
(UF). Un usuario final puede ser tanto una persona que opera en una estacin de
trabajo como el programa de aplicacin que esta utilizando. Estos usuarios finales
se encontraran situados en los puntos de Entrada y Salida de la red. Las nicas
entidades que utilizan la red son los usuarios finales.
Adems se pueden discernir a los siguientes componentes:

Sistemas Operativos 351

Nodos. Conjunto de componentes hardware y software que ejecutan las


funciones de los niveles de la arquitectura SNA.
Enlaces. Que conectan los nodos adyacentes y que pueden, a titulo de
ejemplo, ser canales, lneas o enlaces microondad.
Unidades Direccionales de la Red. Conocidos por las siglas NAU.
NAUs
Los usuarios finales (UF) ven la red a travs de unas entidades llamadas NAU
(Network Adressable Unit), que permite que los usuarios finales enviar datos a
travs de la red e interaccionar con los operadores de la red para desarrollar las
funciones de control y gestin de la misma. El primer nivel de abstraccin
proporciona un puerto de entrada a la red.
Las NAUs pueden comunicarse a travs de la red y se identifican por su:
Direccin exclusiva en la red.
Nombre simblico exclusivo.
Las NAUs son recursos controlados por el sistema de comunicaciones y
proporcionan funciones para:
Sincronizar las comunicaciones entre usuarios finales.
Gestionar los recursos de cada nodo.
Controlar y gestionar la red.
Una conexin en SNA recibe el nombre de una sesin. Una sesin es una
asociacin lgica entre los usuarios finales a travs de las NAUs. SNA define los
siguientes tipos de NAU:
Unidades Lgicas (LU)
Unidades Fsicas(PU)
Puntos de Control de los servicios del Sistema (SSCP)
1. LU
Es la NAU la que proporciona las puertas (y direcciones) a los usuarios finales. Un
usuario final puede estar representado por una o ms LU, y tambin una LU puede
estar representada a uno a ms usuarios finales. Una LU se reconoce por su
nombre simblico en la red y su direccin. Las LU gestionan el intercambio de
datos entre usuarios finales, actuando de intermediarios entre el usuario final y la
red.
Dentro de una sesin LU-LU, las capacidades de ambas no son las mismas,
pudindose distinguir entre LU primaria y LU secundaria:

Sistemas Operativos 352

LU Primaria (PLU)
Establece la Sesin
Gestiona la Sesin
Finaliza la Sesin
LU Secundaria (SLU)
Aceptar o rechazar la peticin de establecimiento de sesin
En ocasiones puede negociar los protocolos de la sesin.
Dichos roles se establecen en el momento de la comunicacin. Algunas LU como
las de los terminales nicamente pueden ser secundarias, mientras que otras LU
como las de los programas de aplicacin pueden ser tanto primarias como
secundarias.
Se han definido varios tipos de LU como son LU0, que es la bsica, LU para
terminales remotas tipo 3270 y LU 6.2 para comunicaciones entre programas
transaccionales distribuidos.
2. PU
Cada nodo contiene una PU para gestionar los enlaces que conectan el nodo a los
adyacentes y sus propios recursos. La implantacin se suele realizar tanto en
hardware como en software, dependiendo de las funciones.
Existen los siguientes tipos de PU dependiendo de las funciones que desempean
en la arquitectura SNA:
PU tipo 5. Nodo de UCP. Contiene servicios de unidad fsica del nodo host y el
SSCP. Soporta direcciones SNA completa, grupos de transmisiones, rutas
explicitas y rutas virtuales. Contiene un SSCP, una PU y un numero variable de
LU, generalmente asociados a programas de aplicacin. Proporciona servicios de
sesin y ruta.
PU tipo 4. Nodo controlador de Comunicaciones (UTC). Soporta las mismas
funciones que las PU T5 con la excepcin de que no contienen SSCP.
PU tipo 2. Nodo perifrico. Soporta una direccin SNA limitada y ninguna de las
funciones de la PU y T4. Nodos de este tipo son los controladores de terminales.
PU tipo 2.1. Nodo perifrico. Es un nodo que reside en los nodos de los sistemas
distribuidos, estos no necesitan ser controlados por un SSCP.
PU tipo 1. Nodo Perifrico. Soporta un controlador no inteligente. Los servicios de
esta unidad se implantan en el nodo controlador de comunicaciones.

Sistemas Operativos 353

Cada nodo de la red posee al menos una unidad fsica. Reside la PU en dicho
nodo y le representan en el entorno de la red. Los servicios de la unidad fsica del
nodo gestionan los aspectos fsicos del mismo. Se comunican con el SSCP para
enviar informacin de aspectos como Error/Trafico.
3. SSCP(System Services Control Point)
Las funciones del SSCP son las siguientes:
Controlar los recursos del sistema de comunicaciones. El SSCP es el
encargado de supervisar el dominio del sistema de comunicaciones al que
pertenece.
Gestionar es establecimiento de las sesiones. Controla el acceso de los
usuarios finales a la red permitiendo un control de la gestin de la red
Interrelaciona la LU para ejecutar funciones como conexin y desconexin
de aplicaciones.
Recibe mandatos del operador
Enva mensajes al operador
El SSCP reside en una UCP. Un SSCP gestiona un dominio de la red. Si la red
cuenta ms de un SSCP se tiene una red de mltiples dominios. Los dominios
deben ser disjuntos. Todos los nodos y enlaces han formado parte de un nico
dominio. Un dominio es el conjunto de nodos controlados por un SSCP (nodo de
tipo 5).
Nodo SNA
Es un elemento de la red en el que se implantan la funcin PU. Todo nodo tiene su
PU y solo una. En un nodo, sin embargo, pueden conectar ms de una LU.
Existen dos principales tipos de nodos en SNA:
1. Nodo subarea. Constituye los nodos tipo 4 o5. el nombre lo reciben debido a
que las direcciones de la red que lo identifican utilizando una parte de la direccin
que es la direccin de la subarea. Un nodo controlador de comunicaciones
controla los enlaces y estaciones de trabajo que estn conectadas a el. Existen
dos clases de nodos subarea:
De clase pocesador. Contiene un mtodo de acceso de
telecomunicaciones y proporciona las funciones de control y gestin de red.

Sistemas Operativos 354

De clase de controlador: que contiene los programas de control de la red.


Proporcionan los servicios de: encaminamiento, control de flujo y control de
enlace de datos en la red.
2. Nodo Perifrico. Todos los dems tipos de nodo. Un nodo perifrico es la
fuente o destino de datos.
Subarea
Una subarea es un concepto topolgico. Todos los elementos de la red asociados
con una UCP con una UCT constituyen una subarea . el conjunto de Pus y LU que
estn conectados fsicamente a una PU tipo 4 o 5. Cada subarea tiene un numero
nico en la red SNA, el cual junto con la direccin nica del elemento dentro de
dicha subarea formaran la direccin completa en la red SNA.
Los nodos perifricos no necesitan la direccin completa SNA debido a que
nicamente pueden formar parte de la subarea. Los servicios de la PU en el nodo
subarea realizan la conversin de direcciones, de manera que solo enva una
direccin de elemento al nodo perifrico. Esta funcin recibe el nombre de
conversin de funcin frontera.
Niveles SNA
No existe una correspondencia precisa entre los niveles SNA y los niveles OSI.
Adems del usuario final (que corresponde al nivel de aplicacin) se define otros
seis niveles que pueden agruparse en niveles de NAU y niveles de Red.
Niveles de NAU
Servicios de NAU, que han experimentado notables transformaciones
desde la definicin de SNA, para adaptarse a las nuevas demandas de
servicios. Comprenden los servicios de presentacin, as como de servicios
especficos como los servicios de transaccin que define un marco para
transacciones distribuidas o distribucin de documentos.
Nivel de control de flujo de datos para regular el flujo de
Transmisiones/Recepcin de usuario y el flujo de Peticiones/Respuestas.
Nivel de control de transmisin para coordinar la transmisin de la sesin
incluyendo la secuencia de numeracin.
Niveles de Red
Nivel de control de caminos (o de trayectos) que encaminan los mensajes a
sus destinos.

Sistemas Operativos 355

Nivel de enlace de datos que controlan el flujo de Datos en el Enlace.


Nivel fsico traduce los datos para adecuar al medio electrnico de
transmisin.
Procesos dristribuidos en SNA
La descripcin realizada de los conceptos fundamentales de SNA corresponde a
una concepcin jerrquica de las redes de ordenadores, tal como era
normalmente a finales de los aos setenta, cuando se definieron los elementos
arquitectnicos de SNA. La aparicin de los ordenadores personales aceler el
despliegue del proceso distribuido a partir de mediados de los aos ochenta. Con
la distribucin de capacidad de proceso en diversos nodos de la red, no es eficaz.
4.3.2 La arquitectura DNA de DEC
DNA (digital network architecture) es la arquitectura de red compuesta por DEC
(digital equipment corporation). Consta de siete capas semejantes a las de OSI.
Relacin de las capas entre las arquitecturas OSI, SNA y DNA
SNA DE IBM
Servicio de transaccin
Administracin de funciones
Control de flujo
Control de transmisin
Control de rutas
Enlace
Fsico

OSI
Aplicacin
Presentacin
Sesin
Transporte
Red
Enlace
Fsico

DNA DE DEC
Usuario
Gestin de red
Sesin y control de red
Extremos de comunicaciones
Encaminamiento
Enlace
Fsico

4.3.3 La arquitectura de ARPANET


Arpanet no sigue el modelo OSI. Tiene protocolos equivalentes a lo que en OSI
seran la capa de red y de transporte. Los ms conocidos son:
IP (Internet protocol). Protocolo entre redes. Protocolo sin conexin diseado
para la interconexin de redes WAN y LAN.
TCP (Transmission control protocol) protocolo de control de transmisin.
Protocolo orientado a la conexin equivalente en OSI a la capa de transporte en
cuento a su funcin, aunque difiere de su formato.
Entre las capas de presentacin y sesin, ARPANET no tiene protocolos, pero en
la de aplicacin si hay varios. Los ms conocidos son:
FTP (files trasnfer protocol). Protocolo de transferencia de ficheros de un
ordenador a otro.

Sistemas Operativos 356

SMPT (simple Mail Protocol Transfer). Protocolo de simple de transferencia de


correo electrnico a travs se la red.
TELNET. Protocolo de conexin remota utilizado para conexiones remotas
gestionadas como terminales virtuales.
ARPANET se ha convertido un estndar de hecho, multiplicando su utilizacin
debido al Internet.

Sistemas Operativos 357

BIBLIOGRAFA
ALCALDE, Eduardo. MORERA, Juan. PEREZ-CAMPANERO, Juan A. (1994).
Introduccin a los Sistemas Operativos. Serie Informtica de Gestin. Mxico:
Editorial Mc Graw Hill.
BARRETO ROA, Julio Humberto. (2001). Sistemas Operativos. Gua de estudio.
Bogot: Editorial UNAD.
CALDERA (2003). Kit de recursos. Unifying Unix Whit Linux For Business.
CAAS, Javier. Documento pdf: Sistemas Operativos. Catorce captulos (1999).
CARRETERO PEREZ, Jess, GARCIA CABALLEIRA, Flix, ANASAGASTI, Pedro
de Miguel, PEREZ COSTOYA, Fernando (2001). Sistemas Operativos. Una visin
aplicada. Madrid: Mc Graw Hill.
FLYNN, Ida M, MCHOES, Ann McIver.(2001) Sistemas operativos. Tercera
Edicin. Mxico: Editorial Thomson Learning.
GUARQUIN, Margarita y QUIROGA, Edgar (2005). Mdulo ensamble y
mantenimiento de computadores. Bogot: UNAD.
RAYA, Laura, ALVAREZ, Raquel, RODRIGO, Vctor. (2005). Sistema Operativos
en entornos Monousuario y Multiusuario. Mxico: Alfaomega, Ra-Ma.
RUEDA, Francisco. (1989). Sistemas Operativos. Santaf de Bogot: Mc Graw
Hill.
SILBERSCHATZ, Avi, GALVIN, Peter, GAGNE,
Operativos. Mxico: Editorial Limusa Wiley.

Greg.

(2002).

Sistemas

STALLING, William. (2001). Sistemas operativos. Cuarta edicin, Mxico: Prentice


Hall.
TACKETT, J. (2003). Edicin especial Linux. Mxico: Prentice Hall
TANENBAUM, S. Andrew, WOODHULL, Albert S. (1997). Sistemas Operativos.
Diseo e implementacin. Mxico: Prentice Hall.

Sistemas Operativos 358

DIRECCIONES WEB
http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/
http://www.itver.edu.mx/so1/
http://www.itver.edu.mx/so2/
http://os.matiu.com.ar/
http://os-matiu.dreamhost.com/classes/clase1.html
http://www.iespana.es/canalhanoi/so/
http://server2.southlink.com.ar/vap/sistemas_operativos.htm
http://www.inei.gob.pe/web/metodologias/attach/lib616/INDEX.HTM
http://www.itq.edu.mx/vidatec/maestros/sis/mnogues/Unidad1.htm
http://www.cs.virginia.edu/~knabe/iic2332/notes01.html
http://www.mundotutoriales.com/tutoriales_sistemas_operativos-mdtema56.htmm
http://www.microsoft.com/spain/technet/recursos/articulos/domcntrl.mspx
http://www.microsoft.com/spain/technet/implantacion/default.mspx
http://www.microsoft.com/latam/technet/productos/windows/windowsserver2003/
http://comala.escom.ipn.mx/proyecto/temarios/tercero/sistope.html
http://lara.pue.udlap.mx/sist_oper/index.html
Linux:
www.caldera.com
www.conectiva.com.co
www.debian.com
www.gnu.org

Sistemas Operativos 359

www.linux.org
www.lucars.org
www.mandrake.com
www.redhat.com
www.suse.com
http://linux.ciberaula.com/articulo/introduccion_practica_linux/#paquetes_linux
Descargas Linux en espaol:
http://www.ibiblio.org/pub/Linux/
http://www.ibiblio.org/pub/Linux/docs/LuCaS/
http://www.ibiblio.org/pub/Linux/docs/LuCaS/htmls/manuales.html
http://www.ibiblio.org/pub/Linux/docs/LDP/install-guide/translations/es/
ftp.cdrom.com

También podría gustarte