Un Sistema Operativo es una parte importante de cualquier sistema de computación. Un sistema de computación puede dividirse en cuatro componentes: el hardware, el Sistema Operativo, los programas de aplicación y los usuarios. El hardware (Unidad Central de Procesamiento(UCP), memoria y dispositivos de entrada/salida (E/S)) proporciona los recursos de computación básicos. Los programas de aplicación (compiladores, sistemas de bases de datos, juegos de vídeo y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computación de los usuarios.
Esto es a grandes rasgos un concepto de sistemas operativos en el contenido que a continuación presentamos existen diversos conceptos, así como también su historia, características y su clasificación, más adelante se consiguen características o información bastante importante sobre un sistema operativo en particular llamado Novell-Netware.
Entre las características de los Sistemas operativos tenemos:
En
general, se puede decir que un Sistema Operativo tiene las siguientes
características:
Conveniencia.
Un Sistema Operativo hace más conveniente el uso de una computadora.
·
Eficiencia.
Un Sistema Operativo permite que los recursos de la computadora se usen de la
manera más eficiente posible.
·
Habilidad
para evolucionar. Un Sistema Operativo deberá construirse de manera que permita
el desarrollo,
prueba o introducción efectiva
de nuevas funciones del sistema sin interferir con el servicio.
·
Encargado
de administrar el hardware. El Sistema Operativo se encarga de manejar de una
mejor manera los recursos de la computadora en cuanto a hardware se refiere,
esto es, asignar a cada proceso una
parte del procesador para poder compartir
los recursos.
·
Relacionar
dispositivos (gestionar a través del kernel). El Sistema Operativo se debe
encargar de comunicar a los dispositivos periféricos , cuando el usuario así lo requiera.
·
Organizar
datos para acceso rápido y seguro.
·
Manejar
las comunicaciones en red. El Sistema Operativo
permite al usuario manejar con alta facilidad todo lo referente a la instalación
y uso de las redes de computadoras.
·
Procesamiento
por bytes de flujo a través del de
datos.
·
Facilitar
las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el
acceso y manejo de los dispositivos de Entrada/Salida de la computadora.
·
Técnicas
de recuperación de errores.
·
Evita que
otros usuarios interfieran. El Sistema Operativo evita que los usuarios se
bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por
otro usuario.
·
Generación
de estadísticas.
·
Permite
que se puedan compartir el hardware y los datos entre los usuarios.
El software de aplicación son programas que se utilizan para diseñar, tal como
el procesador de palabras, lenguajes de programación, hoja de calculo, etc.
El
software de base sirve para interactuar el usuario con la máquina, son un
conjunto de programas que facilitan el ambiente plataforma,
y permite el diseño del
mismo.
El
Software de base está compuesto por :
·
Cargadores.
·
Compiladores.
·
Ensambladores.
·
Macros.
Clasificación de los sistemas operativos.
Con el
paso del tiempo,
los Sistemas Operativos fueron clasificándose de diferentes maneras,
dependiendo del uso o de la aplicación que se les daba. A continuación se
mostrarán diversos tipos de Sistemas Operativos que existen en la actualidad,
con algunas de sus características:
Sistemas
Operativos por lotes.
Los
Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca
o ninguna interacciona 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.
Algunas
otras características 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 interacción usuario/programa en ejecución.
·
Mayor
potencial de utilización de recursos que procesamiento serial simple en
sistemas multiusuarios.
·
No
conveniente para desarrollo de programas por bajo tiempo de retorno y
depuración fuera de línea.
·
Conveniente
para programas de largos tiempos de ejecución (ej, análisis estadísticos, nominas del personal,
etc.)
·
Se
encuentra en muchos computadores personales combinados con procesamiento
serial.
·
Planificación
del procesador sencilla, típicamente procesados en orden de llegada.
·
Planificación
de memoria sencilla, generalmente se divide en dos: parte residente del
S.O. y programas transitorios.
·
No requieren gestión critica de
dispositivos en el tiempo.
·
Suelen
proporcionar gestión sencilla de manejo de archivos:
se requiere poca protección y ningún control de
concurrencia para el acceso.
Trabajos más comunes que realiza el Sistema Operativo por lotes.
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. Los Sistemas Operativos de tiempo real, cuentan con las siguientes
características:
·
Se dan en
entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la
mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos
plazos.
·
Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones
en tiempo real., aplicaciones militares, etc.
·
Objetivo
es proporcionar rápidos tiempos de respuesta.
·
Procesa
ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
·
Proceso
se activa tras ocurrencia de suceso, mediante interrupción.
·
Proceso
de mayor prioridad expropia recursos.
·
Por tanto
generalmente se utiliza planificación expropiativa basada en
prioridades.
·
Gestión
de memoria menos exigente que tiempo compartido, usualmente procesos son
residentes permanentes en memoria.
·
Población
de procesos estática en gran medida.
·
Poco
movimiento de programas entre almacenamiento secundario y memoria.
·
Gestión
de archivos se orienta más a velocidad de acceso que a utilización
eficiente del recurso.
Sistemas
Operativos de multiprogramación (o Sistemas Operativos de multitarea).
Se
distinguen por sus habilidades para poder soportar la ejecución de dos o más
trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como
resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna
tarea que ejecutar, aprovechando al máximo su utilización.
Su
objetivo es tener a varias tareas en la memoria principal, de manera que cada
uno está usando el procesador, o un procesador distinto, es decir, involucra
Maquinas con más de una UCP.
Sistemas
Operativos como UNIX, Windows 95, Windows 98, Windows XP, MAC-OS, OS/2,
soportan la multitarea.
Las
características de un Sistema Operativo de multiprogramación o multitarea son
las siguientes:
·
Mejora
productividad del sistema y utilización de recursos.
·
Multiplexa
recursos entre varios programas.
·
Generalmente
soportan múltiples usuarios (multiusuarios).
·
Proporcionan
facilidades para mantener el entorno de usuarios individuales.
·
Requieren
validación de usuario para seguridad y protección.
·
Proporciona
contabilidad del uso de los recursos por parte de los usuarios.
·
Multitarea
sin soporte multiusuario se encuentra en algunos computadores personales o en
sistemas de tiempo real.
·
Sistemas
multiprocesadores son sistemas multitareas por definición ya que
soportan la ejecución simultánea de múltiples tareas sobre diferentes
procesadores.
·
En
general, los sistemas de multiprogramación se caracterizan por tener múltiples
programas activos compitiendo por los recursos del sistema: procesador,
memoria, dispositivos periféricos.
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 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 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.
Características
de los Sistemas Operativos de tiempo compartido:
·
Populares
representantes de sistemas multiprogramados multiusuario, ej: sistemas de
diseño asistido por computador, procesamiento de texto, etc.
·
Dan la
ilusión de que cada usuario tiene una máquina para sí.
·
Mayoría
utilizan algoritmo de reparto circular.
·
Programas
se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye
después de concedido el servicio.
·
Evitan monopolizar del sistema asignando tiempos de procesador (time slot).
·
Gestión
de memoria proporciona protección a programas residentes.
·
Gestión
de archivo debe proporcionar protección y control de acceso debido a
que pueden existir múltiples usuarios accesando un mismo archivos.
Sistemas
Operativos distribuidos.
Permiten
distribuir trabajos, tareas o procesos, entre un conjunto de procesadores.
Puede ser que este conjunto de procesadores esté en un equipo o en diferentes,
en este caso es trasparente para el usuario. Existen dos esquemas básicos de
éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y
un reloj global, cuyos tiempos de acceso son similares para todos los
procesadores. En un sistema débilmente acoplado los procesadores no comparten
ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los
sistemas distribuidos deben de ser muy confiables, ya que si un componente del
sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los
diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:
Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Caracteristicas
de los Sistemas Operativos distribuidos:
·
Colección
de sistemas autónomos capaces de comunicación y cooperación mediante
interconexiones hardware y software .
·
Gobierna
operación de un S.C. y proporciona abstracción de máquina virtual a los
usuarios.
·
Objetivo
clave es la transparencia.
·
Generalmente
proporcionan medios para la compartición global de recursos.
·
Servicios
añadidos: denominación global, sistemas de archivos distribuidos, facilidades
para distribución de cálculos (a través de comunicación de procesos internodos,
llamadas a procedimientos remotos, etc.).
Sistemas
Operativos de red.
Son
aquellos sistemas que mantienen a dos o más computadoras unidas através de
algún medio de comunicación (fisico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la información del sistema.
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.
Figura.
Se muestra un Sistema Operativo en red
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
Para entender un poco mas sobre los Sistemas Operativos he aqui la historia del mismo:
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 leng. 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 Batch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos juntos de una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el cual se considera como el primer tipo de Sistema Operativo.
En los 80's, inició el auge de la 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.
Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o generaciones:
1a. Etapa (1945-1955) : Bulbos y conexiones.
Después de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construcción de las computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la década de los 40's, Howard Aiken (Harvard), John Von Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams Mauchley (Universidad de Pennsylvania), así como Conrad Zuse (Alemania), entre otros lograron construir máquinas de cálculo mediante bulbos. Estas máquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran mucho más lentas que la computadora casera más económica en nuestros días.
Toda la programación se llevaba a cabo en lenguaje de máquina absoluto y con frecuencia se utilizaban conexiones para controlar las funciones básicas de la máquina. Los lenguajes de programación eran desconocidos (incluso el lenguaje ensamblador). No se oía de los Sistemas Operativos el modo usual de operación consistía en que el programador reservaba cierto período en una hoja de preservación pegada a la pared, iba al cuarto de la máquina, insertaba su conexión a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o más bulbos se quemara durante la ejecución. La inmensa mayoría de los problemas eran cálculos numéricos directos, por ejemplo, el cálculo de valores para tablas de senos y cosenos.
A principio de la década de los 50's la rutina mejoro un poco con la introducción de las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo demás el proceso era el mismo.
2a. Etapa. (1955-1965) : Transistores y Sistemas de Procesamiento por lotes.
La introducción del transistor a mediados de los años 50's modificó en forma radical el panorama. Las computadoras se volvieron confiables de forma que podían fabricarse y venderse a clientes, con la esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma.
Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por demás rápidas vías para reducir el tiempo invertido. La solución que, por lo general se adoptó, fue la del sistema de procesamiento por lotes.
3ra Etapa (1965-1980 ) : Circuitos integrados y multiprogramación.
La 360 de IBM fue la primera línea principal de computadoras que utilizó los circuitos integrados, lo que proporcionó una gran ventaja en el precio y desempeño con respecto a las máquinas de la segunda generación, construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme y extraordinariamente complejo. A pesar de su enorme tamaño y sus problemas el sistema operativo de la línea IBM 360 y los sistemas operativos similares de esta generación producidos por otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayoría de sus clientes. También popularizaron varias técnicas fundamentales, ausentes de los sistemas operativos de la segunda generación, de las cuales la más importante era la de multiprogramación.
Otra característica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto de cómputo. Así, siempre que concluyera un trabajo el sistema operativo podía cargar un nuevo trabajo del disco en la partición que quedara desocupada y ejecutarlo.
4ta Etapa (1980-Actualidad) : Computadoras personales.
Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de los ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y sistemas operativos distribuidos.
En los sistema operativo de red, los usuarios están conscientes de la existencia de varias computadoras y pueden conectarse con máquinas remotas y copiar archivos de una máquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario.
Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema tradicional de un solo procesador, aun cuando esté compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automática y eficaz por el sistema operativo.
Para tener mas claro la evolución de los sistemas operativos aquí tenemos un vídeo clave para entender el mismo: