1. Sistemas Operativos Unidad 1
1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
1.1 CONCEPTO Y FUNCIONES DEL SISTEMA OPERATIVO
Sin el software una computadora es en esencia una masa metálica sin utilidad. Con el software, una
computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía e
intervenir en muchas otras valiosas actividades para ganar el sustento.
El software para computadoras puede clasificarse en general, en 2 clases: los programas de sistema, que
controlan la operación de la computadora en sí y los programas de aplicación, los cuales resuelven
problemas para sus usuarios.
El progr ama fundamental de todos los programas de sistema, es el Sistema Operativo, que controla todos
los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de
aplicación.
¡Qué es un Sistema Operativo?
Una de las definiciones más comúnmente aceptadas expresa: “Un Sistema Operativo es un grupo de
programas de proceso con las rutinas de control necesarias para mantener continuamente operativos
dichos programas”.
Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de un
computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El
objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computación se use de
manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera
eficiente. En base en lo anterior, el objetivo primario de un Sistema Operativo es:
• Optimizar todos los recursos del sistema para soportar los requerimientos.
El Sistema Operativo es el programa fundamental de todos los programas de sistema. El protege y libera
a los programadores de la complejidad del hardware, colocándose un nivel de software por sobre el
hardware para:
• Controlar todas las partes del sistema.
• Presentar al usuario una interfaz o máquina virtual.
Una de las principales funciones del Sistema Operativo es ocultar toda esta complejidad y brindar al
programador un conjunto más conveniente de instrucciones para trabajar. El Sistema Operativo se
encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código 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 aplicación y software variado.
En los años sesenta, un sistema operativo se podría haber definido como el software que controla al
hardware. Sin embargo, actualmente existe una tendencia significativa a la transferencia de las funciones
del software al firmware, es decir, microcódigo. Dicha tendencia se ha pronunciado tanto que es probable
que en algunos sistemas las funciones codificadas en firmware sobrepasen pronto a aquéllas codificadas
en software.
Es evidente que se necesita una nueva definición de sistema operativo. Se puede imaginar un sistema
operativo como los programas, instalados en el software o el firmware, que hacen utilizable el hardware.
Universidad Autónoma de Nayarit 1
2. Sistemas Operativos Unidad 1
Un sistema operativo es un conjunto de programas que administran eficientemente los recursos de un
sistema de cómputo, controlando la ejecución de programas de aplicación y actuando como una interfaz
entre el usuario y la computadora (el hardware).
Puede considerarse que un sistema operativo lleva a cabo tres funciones principales:
• Comodidad: Un sistema operativo hace que una computadora sea más fácil de utilizar.
• Eficiencia: Un sistema operativo permite que los recursos de un sistema informático se
aprovechen de una manera más eficiente.
• Capacidad de evolución: Un sistema operativo deberá construirse de modo que permita el
desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y a la vez,
no interferir en los servicios que brinda.
Las principales características de los S. O. son:
• Definir la “Interfaz del Usuario”.
• Compartir el hardware entre usuarios.
• Permitir a los usuarios compartir los datos entre ellos.
• Planificar recursos entre usuarios.
• Facilitar la entrada / salida.
• Recuperarse de los errores.
Los principales recursos administrados por los S. O. son:
• Procesadores.
• Almacenamiento.
• Dispositivos de e / s.
• Datos.
Los sistemas operativos son ante todo administradores de recursos; el principal recurso que administran
es el hardware de la computadora: el procesador, los medios de almacenamiento, los dispositivos de E/S,
los dispositivos de comunicación y los datos.
Los sistemas operativos realizan muchas funciones, como proporcionar la interfaz con el usuario,
permitir que los usuarios compartan entre sí el hardware y los datos, evitar que los usuarios se interfieran
recíprocamente, planificar la distribución de los recursos entre los usuarios, facilitar la entrada y salida,
recuperarse de los errores, contabilizar el uso de los recursos, facilitar las operaciones en paralelo,
organizar los datos para lograr un acceso rápido y seguro, y manejar las comunicaciones en red.
Fig 1.1: Hardware, Sistema Operativo y Aplicaciones
Como sea que se decida definir los sistemas operativos, lo importante es no olvidar que constituyen una
parte integral del ambiente de cómputo y, por tanto, necesitan ser comprendidos en alguna medida por
todos los usuarios de computadoras.
Universidad Autónoma de Nayarit 2
3. Sistemas Operativos Unidad 1
1.2 ESTRUCTURA DE UN SISTEMA OPERATIVO
El esquema que suele usarse para el estudio de los
sistemas operativos recibe el nombre de “modelo
de cebolla”, debido a que esta formado por capas
concéntricas al rededor del núcleo (ver figura 1.2).
La parte interna del conjunto jerárquico de
programas que forman un sistema operativo
recibe el nombre de núcleo o kernel. Las otras
capas se encargan del manejo de la memoria, el
procesador, los dispositivos de E/S y los archivos.
¿Cómo está conforma do un sistema operativo?
Un sistema operativo está conformado básicamente por cuatro módulos:
• Núcleo o Kernel.
• Administrador de memoria.
• Sistema de entrada/salida.
• Administrador de archivos.
A veces se considera un quinto módulo: el intérprete de comandos o intérprete de instrucciones, también
llamado “shell”, el cual se encarga de "traducir" las órdenes que el usuario ingresa mediante el teclado u
otros dispositivos a un "lenguaje" que la máquina pueda entender.
Núcleo o Kernel
Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de
la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la
asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos
programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su
ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar
tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un
sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se
asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de
multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a
cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este
intervalo de tiempo, vuelve a la cola de programas.
Administrador de memoria
Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes
programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se
mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la
memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más
común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria
de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es.
Universidad Autónoma de Nayarit 3
4. Sistemas Operativos Unidad 1
Sistema de entrada/salida (E/S)
Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es
decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la
misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de
ellos (como su velocidad de operación).
Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se
almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool),
hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa
quede retenido porque el periférico no esté disponible.
Administrador de archivos
Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios
(que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo.
El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos,
manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera
con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria
principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria
principal y los medios de almacenamiento masivo para mantener la estructura de la misma.
1.3 CLASIFICACION DE LOS SISTEMAS OPERATIVOS
En esta sección se describirán las características que clasifican a los sistemas operativos, básicamente se
cubrirán tres clasificaciones:
• sistemas operativos por su estructura (visión interna),
• sistemas operativos por los servicios que ofrecen,
• sistemas operativos por la forma en que ofrecen sus servicios (visión externa).
Sistemas Operativos por su Estructura
Estructura monolítica.
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 (Ver Fig. 2).
Universidad Autónoma de Nayarit 4
5. Sistemas Operativos Unidad 1
Las características fundamentales de este tipo de estructura son:
• Construcción del programa final a base de módulos compilados separadamente que se unen a
través del ligador.
• Buena definición de parámetros 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 están hechos a medida, por lo que son eficientes y rápidos en su ejecución y
gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o
tipos de aplicaciones.
Estructura jerárquica o por capas.
A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organización
del software, del sistema operativo, donde una parte del sistema
contenía subpartes y esto organizado en forma de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que
cada una de ellas estuviera perfectamente definida y con un claro
interface con el resto de elementos.
Se constituyó una estructura jerárquica o de niveles en los sistemas
operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de
Dijkstra, que se utilizó con fines didácticos (Ver Fig. 3). Se puede pensar también en estos sistemas como
si fueran `multicapa'. Multics y Unix caen en esa categoría.
En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra
forma de ver este tipo de sistema es la denominada de anillos concéntricos o "rings" (Ver Fig. 4).
Universidad Autónoma de Nayarit 5
6. Sistemas Operativos Unidad 1
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde
pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas más internas del sistema
operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más
externas. Las capas más internas serán, por tanto, más privilegiadas que las externas.
Máquina Virtual.
Se trata de un tipo de sistemas operativos
que presentan una interface a cada proceso,
mostrando una máquina que parece
idéntica a la máquina real subyacente.
Estos sistemas operativos separan dos
conceptos que suelen estar unidos en el
resto de sistemas: la multiprogramación y
la máquina extendida. El objetivo de los
sistemas operativos de máquina virtual es
el de integrar distintos sistemas operativos
dando la sensación de ser varias máquinas
diferentes.
El núcleo de estos sistemas operativos se
denomina monitor virtual y tiene como
misión llevar a cabo la multiprogramación,
presentando a los niveles superiores tantas
máquinas virtuales como se soliciten.
Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que
en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina
extendida al usuario (Ver Fig. 5).
Cliente-servidor ( Microkernel)
El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado
en la mayoría de las computadoras, ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las
mismas actividades que los sistemas operativos convencionales.
Se separa el sistema operativo en módulos: Sistema de Archivos, Memoria, Procesos, etc. El kernel sólo
se dedica a pasar mensajes entre los módulos. La mayoría de los módulos en user-mode.
El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos
pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente
que llama al servidor correspondiente para acceder a un archivo o realizar una operación de
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 núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y
procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar.
Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el
núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla
en su diseño este paradigma.
Universidad Autónoma de Nayarit 6
7. Sistemas Operativos Unidad 1
Sistemas Operativos por Servicios
Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. Esta
clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra en la Fig. 6.
Monousuarios
Los sistemas operativos
monousuarios son aquéllos que
soportan a un usuario a la vez, sin
importar el número de procesadores
que tenga la computadora o el
número de procesos o tareas que el
usuario pueda ejecutar en un mismo
instante de tiempo. Las
computadoras personales
típicame nte se han clasificado en este
renglón.
Multiusuarios
Los sistemas operativos
multiusuarios son capaces de dar
servicio a más 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 número de procesadores en la
máquina ni el número de procesos
que cada usuario puede ejecutar
simultáneamente.
Monotareas
Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el
caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero
cada uno de ellos puede estar haciendo solo una tarea a la vez.
Multitareas
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al
mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración
mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en
background.
Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un
rápido intercambio entre las tareas para el usuario, mejorando su productividad.
Uniproceso
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la
computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico
de este tipo de sistemas es el DOS y MacOS.
Universidad Autónoma de Nayarit 7
8. Sistemas Operativos Unidad 1
Multiproceso
Un sistema operativo multiproceso se refiere a l número de procesadores del sistema, que es más de uno y
éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de
dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, 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 demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja
de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de
los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de
trabajo bajo este esquema.
Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar
los varios 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
código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes.
Sistemas Operativos por la Forma de Ofrecer sus Servicios
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino
los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los
procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número
de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como
control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el
ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo
muy rápidamente.
Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
• Control de trenes.
• Telecomunicaciones.
• Sistemas de fabricación integrada.
• Producción y distribución de energía eléctrica.
• Control de edificios.
• Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.
Universidad Autónoma de Nayarit 8
9. Sistemas Operativos Unidad 1
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para
realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento
en serie. Estos sistemas son de los más 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 ejecución muy alto, porque el
procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad
de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está
orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a
procesamiento académico.
Figura. Trabajos más comunes que realiza el Sis tema Operativo por lotes.
Sistemas Operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una
petición a la computadora, esta la procesa tan pronto como le es posib le, 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 ilusión de que tiene el sistema dedicado
para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo,
principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Universidad Autónoma de Nayarit 9
10. Sistemas Operativos Unidad 1
Sistemas Operativos de Red
Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con
sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de
intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras
actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de
comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos
que desee accesar.
Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el
directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario
podría copiarlo a través de la red con los comandos siguientes: hidalgo% hidalgo% rcp
morelos:/software/codigo/matriz.pas . hidalgo% En este caso, el comando rcp que significa "remote
copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecutó el
mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos
recursos.
Figura. Se muestra un Sistema Operativo en red.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000,
pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN
Manager, Windows NT Server, UNIX, LANtastic.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan
por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también 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 haría normalmente),
regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los
sistemas RS/6000 de IBM.
Universidad Autónoma de Nayarit 10
11. Sistemas Operativos Unidad 1
Sistemas Operativos Distribuídos
Los sistemas operativos distribuídos abarcan los servicios de los de red, logrando integrar recursos
(impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola
máquina virtual que el usuario acceda en forma transparente. Es decir, ahora el usuario ya no necesita
saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos
ellos fuesen locales a su lugar de trabajo habitual.
Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuído, pero
en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los
procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de
concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuídos y consolidar la
protección y seguridad entre los diferentes componentes del sistema y los usuarios.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone
otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite,
Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
El sistema integrador de los microprocesadores que hace ver a las varias memorias, procesadores, y todos
los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuído.
Las razones para crear o adoptar sistemas distribuídos se dan por dos razones principales: por necesidad
(debido a que los problemas a resolver son inherentemente distribuídos) o porque se desea tener más
confiabilidad y disponibilidad de recursos.
En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la
república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de
cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo
caso, supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar
grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad.
Universidad Autónoma de Nayarit 11
12. Sistemas Operativos Unidad 1
La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores
diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos
cuantos y, más aún, se podría tener un sistema con discos en espejo ( mirror ) a través de la red, de manera
que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas
fallas, es decir, obtiene acceso a recursos en forma transparente.
Ventajas de los Sistemas Distribuídos
En general, los sistemas distribuídos (no solamente los sistemas operativos) exhiben algunas ventajas
sobre los sistemas centralizados que se describen enseguida.
• Economía: El cociente precio/desempeño de la suma del poder de los procesadores separados
contra el poder de uno solo centralizado es mejor cuando están distribuídos.
• Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior.
• Confiabilidad: Si una sola máquina fa lla, el sistema total sigue funcionando.
• Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños sistemas, lo
cual es mucho más difícil en un sistema centralizado y caro.
Por otro lado, los sistemas distribuídos también exhiben algunas ventajas sobre sistemas aislados. Estas
ventajas son:
• Compartir datos: Un sistema distribuído permite compartir datos más fácilmente que los sistemas
aislados, que tendrían que duplicarlos en cada nodo para lograrlo.
• Compartir dispositivo s: Un sistema distribuído permite accesar dispositivos desde cualquier nodo
en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuído logra
un efecto sinergético.
Desventajas de los Sistemas Distribuídos
Así como los sistemas distribuídos exhiben grandes ventajas, también se pueden identificar algunas
desventajas, algunas de ellas tan serias que han frenado la producción comercial de sistemas operativos
en la actualidad. El problema más importante en la creación de sistemas distribuídos es el software: los
problemas de compartición de datos y recursos es tan complejo que los mecanismos de solución generan
mucha sobrecarga al sistema haciéndolo ineficiente. El checar, por ejemplo, quiénes tienen acceso a
algunos recursos y quiénes no, el aplicar los mecanismos de protección y registro de permisos consume
demasiados recursos. En general, las soluciones presentes para estos problemas están aún en pañales.
Otros problemas de los sistemas operativos distribuídos 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 código `paralelizable' es un trabajo ardúo, pero necesario para
dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr
la distribución. 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
distribuídos es aún má s complejo, y por lo tanto, necesitará de algoritmos más complejos con la inherente
sobrecarga esperada.
Por otro lado, en el tema de sistemas distribuídos existen varios conceptos importantes referentes al
hardware que no se ve remos en este momento: multicomputadoras, multiprocesadores, sistemas
acoplados débil y fuertemente, etc.
Universidad Autónoma de Nayarit 12
13. Sistemas Operativos Unidad 1
1.4 HISTORIA Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Historia de los Sistemas Operativos
Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las principales
características de un Sistema Operativo contemporáneo, es útil considerar como han ido evolucionando
éstos con el tiempo. Existen diferentes enfoques o versiones de como han ido evolucionando los Sistemas
Operativos.
La primera de estas versiones podría ser esta:
• En los 40's, se introducen los programas bit a bit, por medio de interruptores mecánicos y después
se introdujo el lenguaje máquina que trabajaba por tarjetas perforadas.
• Con las primeras computadoras, desde finales de los años 40 hasta la mitad de los años 50, el
programador interactuaba de manera directa con el hardware de la computadora, no existía
realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de
datos y los programas se realizaban a través del lenguaje máquina (bits) o a través de
interruptores.
• Durante los años 50's y 60's.- A principio de los 50's, la compañía 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, diseñadores, capturistas, etc.),
se encarguen de modificar sus programas. Establecían o apartaban tiempo, metían o introducían
sus programas, corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en
serie. Todo esto se traducía en pérdida de tiempo y tiempos de programas excesivos.
• En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los
procesos Ba tch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos
juntos de una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el
cual se considera como el primer tipo de Sistema Operativo.
• En los 80's, inició el auge de la INTERNET en los Estados Unidos de América. A finales de los
años 80's comienza el gran auge y evolución de los Sistemas Operativos. Se descubre el concepto
de multiprogramación que consiste en tener cargados en memoria a varios trabajos al mismo
tiempo, tema principal de los Sistemas Operativos actuales.
• Los 90's y el futuro, entramos a la era de la computación distribuida y del multiprocesamiento a
través de múltiples redes de computadoras, aprovechando el ciclo del procesador.
• Se tendrá una configuración dinámica con un reconocimiento inmediato de dispositivos y
software que se añada o elimine de las redes a través de procesos de registro y localizadores.
• La conectividad se facilita gracias a estándares y protocolos de sistemas abiertos por
organizaciones como la Org. Intern. de normas, fundación de software abierto, todo estará mas
controlado por los protocolos de comunicación OSI y por la red de servicios digital ISDN.
Universidad Autónoma de Nayarit 13
14. Sistemas Operativos Unidad 1
Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o generaciones:
• Primera generación (1945-1955): bulbos y conexiones:
o Carencia de S. O.
o En los años cincuenta comienzan como transición entre trabajos, haciendo la misma más
simple.
o Completo acceso al lenguaje de máquina.
• Segunda generación (1955-1965): transistores y sistemas de procesamiento por lotes (batch):
o En los años sesenta aparecen los S. O. para sistemas compartidos con:
§ Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo
en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a
otro.
§ Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para
incrementar el poder de procesamiento.
o Posteriorme nte aparece la independencia de dispositivo:
§ El programa del usuario especifica las características de los dispositivos que requieren
los archivos.
§ El S. O. asigna los dispositivos correspondientes según los requerimientos y las
disponibilidades.
• Tercera generación (1965-1980): circuitos integrados y multiprogramación:
o Difusión de la multiprogramación:
§ Partición de la memoria en porciones, con trabajos distintos en cada una de ellas.
§ Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para
utilizar la CPU para otros procesos.
o Protección por hardware del contenido de cada partición de memoria.
o Aparición de técnicas de spooling :
§ Simultaneous Peripheral Operation On Line: operación simultánea y en línea de
periféricos.
§ Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios rápidos
(discos), para disminuir el impacto de los periféricos más lentos.
o Son sistemas de modos múltiples, es decir que deben soportar sistemas de propósitos
generales; son grandes y complejos pero muy poderosos.
o Interponen una capa de software entre el usuario y el hardware.
Universidad Autónoma de Nayarit 14
15. Sistemas Operativos Unidad 1
o Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los
recursos requeridos.
o Soportan timesharing (tiempo compartido), variante de la multiprogramación con usuarios
conectados mediante terminales en línea, permitiendo la operación en modo interactivo o
conversacional.
o Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes,
especialmente para usos industriales o militares.
o Se difunden las computadoras de rango medio.
• Cuarta generación (1980-1990): computadoras personales:
o Aparición de software amigable con el usuario, destinado a usuarios no profesionales y con
una interfase gráfica muy desarrollada.
o Se hacen populares el MS-DOS y UNIX.
o Desarrollo de sistemas operativos de red y sistemas operativos distribuidos.
o Sistemas operativos de red:
§ Los usuarios están conscientes de la existencia de varias computadoras conectadas.
§ Cada máquina ejecuta su propio S. O. local.
§ Son similares a los S. O. de un solo procesador pero con el agregado de:
§ Controlador de interfaz de la red y su software de bajo nivel.
§ Software para conexión y acceso a archivos remotos, etc.
o Sistemas operativos distribuidos:
§ Aparece ante los usuarios como un S. O. de un solo procesador, aún cuando de soporte
a varios procesadores.
§ Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se
encuentran sus archivos, ya que lo debe administrar el S. O. automáticamente.
o Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras
personales (PC).
o Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones
de datos.
o El S. O. crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del
funcionamiento interno de la máquina.
o Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación
o Para los 90's el paradigma de la programación orientada a objetos cobra auge, así como el
manejo de objetos desde los sistemas operativos.
Universidad Autónoma de Nayarit 15
16. Sistemas Operativos Unidad 1
1.5 ANÁLISIS DE LOS SISTEMAS OPERATIVOS MÁS COMERCIALES.
Windows 98
http://www.microsoft.com/windows98/ Este es uno de los sistemas operativos de escritorio con mayor
cantidad de usuarios en el mundo, ya que se encuentra a mitad de camino (en términos de tiempo) entre la
aparición de Windows 95 y de Windows 2000, entre sus principales características se encuentra el
soporte real a multitarea (en Win95 era simulado).
Windows 2000
http://www.microsoft.com/windows2000/ Win2000 es la nueva generación del sistema operativo para
redes de esta empresa (Windows NT), constituyéndose en una mejora significativa desde varias
perspectivas, entre las que cabe destacar la estabilidad.
Windows XP
http://www.microsoft.com/windowsxp Este sistema operativo hace uso del nuevo «motor de sistema»
que Microsoft desarrolló para Windows 2000, por lo tanto integra altas prestaciones gráficas junto a
características de trabajo corporativo (en redes) heredadas de Win2000.
Linux
Es un sistema libre desarrollado por miles de personas a través de Internet, y que es el sistema operativo
de mayor crecimiento en la actualidad, y el segundo de mayor uso en el mundo (tomando como uno sólo
a toda la gama de la familia Windows.
Mac OS X
http://www.apple.com/macosx/ Es un sistema operativo desarrollado por Apple Computer Inc., es una
reescritura prácticamente completa de su sistema operativo Macintosh, este nuevo sistema Mac está
basado en el sistema Darwin http://developer.apple.com/darwin/, un proyecto «OpenSource» (aunque
esta es la definición que da Apple, prefiero utilizar el termino «Libre»), el cual utiliza características de
otros sistemas UNIX como Mach, FreeBSD y otros, la idea detrás de Mac OS X y por supuesto de
Darwin es crear un completo sistema operativo con la flexibilidad y robustez de un UNIX y la facilidad
de uso que siempre a caracterisado a los MAC.
FreeBSD
http://www.freebsd.org FreeBSD es un sistema operativo derivado del 386 BSD, es un sistema operativo
libre (y gratuito) creado por cientos de desarrolladores, es altamente usado como servidor de Internet
debido a sus altas prestaciones en comunicaciones,
NetBSD
http://www.netbsd.org NetBSD es tal vez el sistema operativo más portado en el mundo, es otro
descendie nte de 4.4 BSD y 386 BSD, por lo cual también se distribuye bajo los términos de la licencia
BSD4.1 , lo que implica que puede ser libremente distribuido en forma binaria o de código fuente. El
principal objetivo de NetBSD es la portabilidad, obviamente sin descuidar seguridad y estabilidad como
la mayoría de derivados UNIX.
OpenBSD
http://www.openbsd.org Este sistema operativo es derivado de NetBSD, sus principales metas son la
seguridad, la estandarización y la portabilidad, está catalogado como el sistema operativo más seguro del
mundo (aunque en términos de seguridad no se puede hablar de una verdad absoluta).
Universidad Autónoma de Nayarit 16