Este documento describe brevemente la evolución de los sistemas operativos desde la década de 1940 hasta la actualidad. Comienza explicando que los primeros sistemas electrónicos digitales no tenían sistemas operativos y los programas se introducían manualmente. Luego describe los primeros sistemas operativos de las décadas de 1950 y 1960, y la introducción de técnicas como la multiprogramación y los sistemas de tiempo compartido. Finalmente, resume los principales sistemas operativos que surgieron entre las décadas de 1980 y 1990 para computadoras
1. REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACION
INSTITUTO UNIVERSITARIO POLITECNICO
“SANTIAGO MARIÑO”
Sistema de Aprendizaje Interactivo a Distancia (SAIA)
SISTEMAS OPERATIVOS
Estudiante: Liliana Timaure
C.I. No.: 14.590.342
Materia: Informática
Profesora: Ing. Claudia Zamarelli
Junio 2014
2. Introducción.
Al inicio las computadoras eran sistemas tan complejas que solo podían ser operados
por experto, se requería de mucho tiempo para introducir un programa y resultaba poco
provechosa la utilización de computadoras para resolución de problemas prácticos. Es
entonces cuando surge la idea de crear un medio para que el usuario pueda operar la
computadora con un entorno, lenguaje y operación bien definido para hacer un
verdadero uso y explotación de esta, de esta forma surgen los sistemas operativos.
En este sentido se desarrollara a lo largo de este trabajo una breve reseña histórica y
evolutiva de lo que han sido los sistemas operativos en el manejo de las computadoras
hasta los sistemas actuales con poderosos microprocesadores, teléfonos, televisores y
equipos multimedias inteligentes entre otras muchas cosas que nos aporta la tecnología
hoy en día.
3. SISTEMA OPERATIVO (SO)
Definición
Un Sistema Operativo (SO) es el software básico de una computadora que provee una
interfaz entre el resto de programas del computador, controlando y administrando
todos los recursos de hardware y proporciona la base sobre la cual pueden escribirse los
programas de aplicación y todos los programas ofimáticos, encargándose de brindar de
forma ordenada, sencilla y segura la administración, operación, interpretación,
codificación y emisión de las órdenes a la computadora (procesador central) para que
esta realice las tareas necesarias y específicas para completar una orden, proceso o
tarea específica1
Funciones de los Sistemas Operativos
En un sistema operativo desempeña seis funciones básicas en la operación de un
sistema informático
1. Interpreta los comandos que permiten al usuario comunicarse con el ordenador,
permitiendo la comunicación de tal manera que se puedan cargar programas,
acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces:
las que se basan en comandos, las que utilizan menús y las interfaces gráficas2
2. Coordina y manipula el hardware de la computadora, memoria, impresoras,
unidades de disco, teclado, mouse; administrando de igual forma los recursos
del hardware y de redes de un sistema informativo, como el CPU, memoria,
dispositivos de almacenamiento secundario y periféricos3
3. Organiza los archivos en diversos dispositivos de almacenamiento, como discos
flexibles, discos duros, discos compactos o cintas magnéticas. El sistema de
1
http://solvasquez.wordpress.com/2011/01/24/definicion-de-sistema-operativo/
2
http://blog.pucp.edu.pe/
3
http://canal-ayuda.org
4. información contiene programas de administración de archivos que controlan la
reacción, borrado y acceso de archivos de datos y de programas. También implica
mantener el registro de la ubicación física de los archivos en los discos
magnéticos y en otros dispositivos de almacenamiento4
4. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las
funciones de administración de tareas pueden distribuir una parte específica del
tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier
momento para sustituirla con una tarea de mayor prioridad. Servir de base para
la creación del software logrando que equipos de marcas distintas funcionen de
manera análoga, salvando las diferencias existentes entre ambos. De igual
manera Los programas de administración de tareas de un sistema operativo
administran la realización de las tareas informáticas de los usuarios finales5
.
5. Los servicios de soporte de cada sistema operativo dependerán de la
implementación (programas orientados a diferentes tareas, como editores de
texto, administradores de archivos, navegadores, etc.) particular de éste con la
que estemos trabajando. Estos servicios de soporte suelen consistir en la
configuración del entorno para el uso del software y los periféricos;
dependiendo del tipo de máquina que se emplea, debe establecerse en
forma lógica la disposición y características del equipo, una microcomputadora
tiene físicamente unidades de disco, puede simular el uso de otras unidades de
disco, pueden ser virtuales utilizando parte de la memoria principal para tal fin.
En caso de estar conectado a una red, el sistema operativo se convierte en la
plataforma de trabajo de los usuarios y es este quien controla los elementos o
recursos que comparten. De igual forma, provee de protección a la información
que almacena6
4
http://www.audienciaelectronica.net/
5
http://www.magomez.net/SSOO/document/Funciones.htm
6
http://www.magomez.net/SSOO/document/Funciones.htm
5. Evolución de los Sistemas Operativos
En la década de 1940, los primeros sistemas electrónicos digitales no tenían sistemas
operativos. Los ordenadores de esta época eran tan primitivos comparados con los de
hoy en día que los programas se introdujeron a el ordenador un poco a la vez en las filas
de los interruptores mecánicos. Eventualmente, los lenguajes de máquina (que
consisten encadenas de 0 y 1) se introdujeron lo que aceleró el proceso
de programación.
Los sistemas de la década de 1950 en general funcionaban solamente con un proceso a
la vez. Y se permitía una sola persona a la vez para utilizar la máquina. Todos los
recursos de la máquina estaban a disposición del usuario. La facturación por el uso de la
computadora era simple porque el usuario tenía toda la máquina. De hecho, los
mecanismos habituales de tiempo se basaban en un “reloj” en la pared. A un usuario se
le daba permiso de usar la máquina por algún intervalo de tiempo y se pagaba una tarifa
plana. Originalmente, cada usuario escribía todo el código necesario para implementar
una aplicación concreta, incluidas las muy detalladas de la máquina de nivel de entrada /
salida de instrucciones. Muy rápidamente, la codificación de entrada / salida necesarias
para implementar funciones básicas se consolidó en un sistema de control de entrada /
salida (IOCS).
El primer sistema como tal, considerado por muchos como el primer sistema operativo,
fue diseñado por el Laboratorio de Investigación de General Motors, para
su arquitectura IBM 701 a principios de 1956.Su éxito ayudó a establecer la computación
por lotes separados por tarjetas de control que instruyó a los equipos acerca de las
características de cada trabajo. El lenguaje
de programación que utilizan las tarjetas de control se llama lenguaje de control
de trabajos (JCL). Estas tarjetas creadas por el trabajo indicaban a la computadora si las
siguientes tarjetas contenían datos o programas, qué lenguaje de programación se
utilizaba, el tiempo de ejecución aproximado. Cuando terminaba el trabajo actual, el
lector leía automáticamente la tarjeta para el siguiente trabajo y realizaba las tareas de
limpieza adecuadas para facilitar la transición7
.
7
http://www.aeromental.com/2006/08/16/evolucion-de-los-sistemas-operativos/
6. La época entre los años 60's y 80's fue una temporada repleta de cambios en el ámbito
informático y el inicio de la computación como se la conoce. Aparecieron técnicas como
la multiprogramación y los sistemas de tiempo compartido, las cuales en su noción
básica se conservan hasta la actualidad. Obviamente la implementación de estas nuevas
técnicas supuso un cambio a los sistemas operativos previos (IOCS, Sistema por lotes)
A. Multiprogramación
Una de las dificultades del sistema por lotes simple es que el equipo tiene que leer
las tarjetas antes de poder a comenzar a ejecutar el trabajo. Al ser esta operación
muy lenta, hacía que el computador estuviera prácticamente inactivo
durante bastante tiempo. Esto llevó, dado que es muchísimo más rápido leer
desde una cinta magnética que de toda la pila de tarjetas, a que los centros de
computación empezaran a tener uno o varios computadores menos potentes,
además de la máquina principal para ejecutar esta tarea. Las tarjetas eran
leídas por los de más computadores y almacenaban los datos y programas en una
cinta magnética que luego era llevada a la máquina principal, donde se procesaba
y emitía los resultados en otra cinta, que de nuevo se llevaba a los pequeños
computadores que la imprimían. La gran ventaja es que en una sola cinta
se podían poner varios trabajos de sistemas por lotes.
En general, la multiprogramación se refiere a que en la memoria principal de un
computador se albergara programas y se trabaja en todos por períodos de tiempo
específicos en cada uno de ellos, por ejemplo mientras un programa realiza
procesos de entrada y salida. Todo esto no hubiera sido posible si no se hubiera
empezado a construir memorias con mucha más capacidad de almacenamiento.
Esto hizo necesario crear un mecanismo para garantizar los procesos comunes
entre los programas:
Comenzar los trabajos de usuario.
Operación simultánea de periféricos en línea.
Entrada y salida para los procesos.
Cambio entre tareas de usuario
Garantizar una protección adecuada mientras se realiza lo anterior.
7. De hecho, la multiprogramación es una técnica que permanece vigente en todos
los sistemas actuales.
B. Sistemas de Tiempo Compartido
Los sistemas de tiempo compartido surgen de la necesidad de que el usuario se
sintiera más cerca de la máquina y poder tener una interacción real con ella. Por
esto, en los centros de cómputo se fue adoptando este sistema que extiende el
concepto de la multiprogramación. Un sistema de tiempo compartido consiste en
que varias terminales se conectan al equipo y cada terminal tiene asociado uno o
más procesos en él. El sistema operativo entonces, era el encargado de la
conmutación entre los procesos favoreciendo la interacción con el usuario. Si los
cambios de contexto en los proceso se producían con la suficiente rapidez y en los
momentos adecuados, el usuario podría tener la percepción de una comunicación
fluida con la máquina y que se relacionaba con ella de manera directa. Así, a los
procesos interactivos se les da una prioridad más alta de modo que cuando se
solicita entrada o salida, el proceso asociado se comienza a ejecutar rápidamente
de modo que la entrada o salida pueda sea procesada por la unidad central
de procesamiento8
.
La década de los 80’s se caracteriza por el uso de los microprocesadores, los
computadores dejan de ser un lujo que solo poseían empresas y universidades
importantes para pasar al servicio de personas del común, ya que los avances en la
integración a gran escala, permitió reducir el tamaño de los equipos apareciendo los
computadores personales que como iban dirigidos a un público poco conocedor de la
informática, debían poseer sistemas operativos intuitivos, simples y amigables para el
usuario lo que ocasiona el surgimiento de menús e interfaces gráficas, utilizando
principalmente utilizaron leguajes de programación como: C, C++, Haskell, Miranda,
Eiffel y Smaltalk. A mediados de los 80`s se desarrollan redes de computadoras
personales con sistemas operativos en red y distribuidos, siendo MS-DOS y Unix los más
usados.
8
http://es.wikipedia.org/wiki/Historia_de_los_sistemas_operativos
8. Mac OS: Desarrollado por Apple para su Macintosh en 1984, siendo su interfaz
gráfica de usuario (“GNU”) su principal atractivo, además de efectuar
multitareas y la novedad del mouse, que permitía una mayor interacción entre el
usuario y la interfaz de este sistema operativo.
MS-DOS: Sistema operativo creado por Microsoft tras modificar el sistema
operativo QDOS, que compro en1981.
Microsoft Windows: No se le considera un sistema operativo como tal y más bien
una interfaz gráfica para el MS-DOS con el uso de diskettes para correr
los programas.
En la década de los 90’s con la aparición del Internet y el gran uso de redes, hacen que
los sistemas operativos por obligación permitan el manejo en estos dos servicios sin
perder la amabilidad con que tiene acostumbrado a los usuarios. También las
aplicaciones multimedia empiezan a ser parte esencial de los sistemas operativos
demandando más potencia, flexibilidad y compatibilidad, siendo esto último algo muy
importante debido a la gran variedad de productos de hardware con los que el
computador puede interactuar (ejemplo: Cámaras fotográficas y de video, micrófonos,
parlantes y una de las más importantes la USB)
Una de las mayores “estrellas” de los 90’s fue Linux presentando su primer núcleo en
septiembre de 1991 siendo un sistema operativo completamente libre basado en la
plataforma UNIX desarrollado por un sinfín de colaboradores
dirigidos por Linus Tolvalds que después se unirían con el proyecto GNU para pasar
a llamarse GNU/Linux.
Microsoft durante esta década mejora su sistema operativo Windows a través de varias
versiones (Windows 3.0, Windows 3.1, Windows 95 y Windows 98) en las que se mejora
notablemente el aspecto gráfico, que atrae a muchos usuarios llegando a tener hasta el
90% del mercado de los sistemas operativos y en 1993 Microsoft lanza la primera
versión de la familia NT (MS Windows NT 3.1) que estarían diseñadas para ofrecer una
mejor fiabilidad a las empresas.
9. Aparece también el ReactOS (React Operating System), que al igual que Linux es de
código abierto, pero cambiaron el núcleo que era compatible con MS-DOS para obtener
compatibilidad con las diferentes herramientas diseñadas para Windows NT. Con la
aparición de diferentes dispositivos móviles surge una gran variedad de sistemas
operativos debido a que muchos de los fabricantes hacían que sus dispositivos móviles
funcionaran con sistema diseñado solo para ellos. Estos sistemas operativos fueron
siempre diseñados para ofrecerle al usuario final las características de simple, práctico y
fácil de usar, sin olvidar por supuesto la portabilidad y el uso de las interfaces gráficas
que en varios dispositivos se usaban pantallas táctiles. Otro gran factor en el uso de los
sistemas operativos móviles es la comunicación, por lo que muchos de ellos permitían la
conexión a la red, a través de servicios como el email. Algunos de estos sistemas
operativos móviles durante los 90’s fueron:
Palm OS o Garnet OS: Desarrollado por Palm, Inc en 1996 para PDA’S
(“Computadoras de mano”), basando su diseño en la simplicidad y el uso de
touchscreen.
Nokia S40: Desarrollado por Nokia en 1999 para su celular Nokia 7110.
Windows CE: Desarrollado por Microsoft en 1996.
Symbian: Es el resultado de una alianza entre empresas como: Nokia, Sony
Ericsson, Siemenes, Motorola. Que en 1997 se unieron para combatir a otras
empresas.
El nuevo milenio produjo grandes cambios en el mercado de los sistemas operativos
aumentando en gran medida la competencia entre los diferentes desarrolladores siendo
Windows, Unix y Mac OS los más competitivos, siempre buscando la facilidad y
mejoramiento de recursos para el usuario. Un gran cambio se da en los
microprocesadores, no solo por el paso de 32 bits a 64 bits, también por el uso de más
de un núcleo tanto virtual como físico; lo que conlleva a que los nuevos sistemas
operativos puedan dividir tareas en busca de una mayor velocidad y mejor manejo de
datos, todo esto con la disminución de los precios en hardware ayuda a crear sistemas
10. operativos impensables antes del 2000, pero claro mucho más robustos. Uno de los
sistemas operativos que ha venido cogiendo más fuerza es Linux, por razones como:
Ya no está dirigido solo a programadores de alto nivel, ahora está también siendo usado
por usuarios comunes debido a los grandes avances en su interfaz gráfica y la mayor
cantidad de ayudas que ofrece al momento de algún error, problema o durante la
instalación.
Posee gran estabilidad, adaptabilidad y seguridad al momento de trabajar con
servidores.
Tiene una mayor adaptabilidad para Notebooks y computadores portátiles.
Las tareas del sistema se ejecutan con mayor rapidez y menor inestabilidad.
También le ha ayudado el aumento del pensamiento de software libren entre
la población.
Linux en 2011 presenta a MeeGo su sistema operativo para dispositivos móviles en
cooperación con Nokia e Intel, inicialmente para el celular smartphone Nokia N9, ahora
también usado en Netbooks, Tablets, Handset y televisores Smart TV, y apoyados por
muchas otras compañías. Microsoft sigue a la delantera, aunque ha sufrido varios
tropiezos que acercan a sus competidores. Durante estos años ha sacado al público los
siguientes sistemas operativos: Windows 2000, Windows ME, Windows XP, Windows
Vista, Windows 7 y el más reciente Windows 8. Cada uno con diferentes versiones
dirigidas a algún público en particular ya sea para oficina, empresas medianas y grandes,
servidores de varias índoles y para el hogar y el estudio. Además también poseen
actualizaciones a través de Windows Update ya sea para corregir fallos, mejorar
diferentes procesos y mantener la seguridad.
Microsoft también posee un sistema operativo móvil llamado Windows Phone para
teléfonos inteligentes que busca competir con iOS de Apple y Android de Google. Al
primero de estos solo se le permite ser usado en dispositivos Apple y el segundo fue
desarrollado por la empresa Android, Inc, comprada por Google y basada en Linux para
ser usado principalmente en dispositivos de pantalla táctil como: Smartphone y tabletas.
Otros sistemas operativos para dispositivos móviles son: Java ME, Symbian, Blackberry
y Firefox OS. El futuro apunta a sistemas operativos en la nube, llamados Web OS que
actualmente están en desarrollo y donde no se requiere instalar software, solo tenemos
11. que escoger el programa adecuado para realizar lo que queramos hacer, mediante
conexión a internet y un navegador recibiendo la información o las solicitudes que
nosotros queramos ya que el procesamiento estaría del otro lado, es decir del lado del
servidor. Ejemplos de estos sistemas son EyeOs, Icloud y Woos. Otra de las innovaciones
que se espera es la forma como el usuario interactúa con el sistema operativo dejando
atrás periféricos como el teclado y el mouse, para dar paso a lo táctil, reconocimiento
de voz y movimiento (Cuerpo, manos, ojos)9
.
Tipos de Sistemas Operativos
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 y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios
(visión externa).
1. Sistemas Operativos por su Estructura
Se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los
cuales son:
Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y
adecuado al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento,
forma de operación, restricciones de uso, eficiencia, tolerancia frente a los
errores y flexibilidad.
A continuación se describen las distintas estructuras que presentan los actuales sistemas
operativos para satisfacer las necesidades que de ellos se quieren obtener.
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.
Las características fundamentales de este tipo de estructura son:
9
http://es.wikipedia.org/wiki/Historia_de_los_sistemas_operativos
12. 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: 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. Se puede pensar también en estos
sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría.
13. 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.
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
14. 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 usuario10
.
2. 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.
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ípicamente se han clasificado en este
renglón.
10
http://es.wikibooks.org/wiki/Sistemas_operativos/Por_su_estructura
15. Multiusuarios. Son los 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. 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.
Multiproceso. Un sistema operativo multiproceso se refiere al 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
16. 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. 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 específicos, la
pila y otros valores de contexto11
.
3. Sistemas Operativos por la Forma de Ofrecer sus Servicios
Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la
del usuario, el cómo accede a los servicios. Bajo esta clasificación se pueden detectar
dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos.
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 acceder. Por ejemplo, si un usuario en la
computadora moreno necesita el archivo matriz.pas que se localiza en el directorio
/software/codigo en la computadora villegas bajo el sistema operativo UNIX, dicho
usuario podría copiarlo a través de la red con los comandos siguientes: moreno%
moreno% rcp villegas:/software/codigo/matriz.pas .moreno% En este caso, el comando
rcp que significa (remote copy) trae el archivo indicado de la computadora villegas y lo
coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es
hacer ver que el usuario puede acceder y compartir muchos recursos.
Sistemas Operativos Distribuidos Los sistemas operativos distribuidos 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 accede en forma transparente. Es decir, ahora el usuario ya no necesita saber la
11
http://es.wikibooks.org/wiki/Sistemas_operativos/Por_servicios
17. 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 distribuido, 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 distribuidos y consolidar la protección y seguridad entre los diferentes
componentes del sistema y los usuarios. Los avances tecnológicos en las redes de área
local y la creación de microprocesadores de 32 y 64 bits lograron que computadoras más
o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en cierto
grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo
la oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y
distribuirlas en los varios microprocesadores para luego reunir los sub-resultados,
creando así una máquina virtual en la red que exceda en poder a un mainframe. El
sistema integrador de los microprocesadores que hacer ver a las varias memorias,
procesadores, y todos los demás recursos como una sola entidad en forma transparente
se le llama sistema operativo distribuido. Las razones para crear o adoptar sistemas
distribuidos se dan por dos razones principales: por necesidad (debido a que los
problemas a resolver son inherentemente distribuidos) o porque se desea tener más
fiabilidad 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 fiabilidad y disponibilidad. 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 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 transparente12
.
12
http://es.wikibooks.org/wiki/Sistemas_operativos/Por_la_forma_de_servicio