Un sistema
operativo (SO, frecuentemente OS, del inglés Operating System)
es un programa o
conjunto de programas que en un sistema informático gestiona los recursos
de hardware y provee servicios a los programas de
aplicación, ejecutándose en modo privilegiado respecto de los
restantes y anteriores próximos y viceversa.2
Nótese que es un error común muy extendido
denominar al conjunto completo de herramientas sistema operativo, es decir, la
inclusión en el mismo término de programas como el explorador de
ficheros, el navegador web y todo tipo de herramientas
que permiten la interacción con el sistema operativo, también llamado núcleo
o kernel.
Esta identidad entre kernel y sistema operativo es solo cierta
si el núcleo es monolítico.
Otro ejemplo para comprender esta diferencia se encuentra en la
plataforma Amiga, donde
el entorno gráfico
de usuario se distribuía por separado, de modo que, también
podía reemplazarse por otro, como era el caso de directory Opus o incluso manejarlo
arrancando con una línea de comandos y
el sistema gráfico.
De este modo, al arrancar un Amiga, comenzaba a funcionar con el propio sistema operativo que llevaba
incluido en una ROM, por lo que era cuestión del usuario
decidir si necesitaba un entorno gráfico para manejar el sistema operativo o
simplemente otra aplicación. Uno de los más prominentes ejemplos de esta
diferencia, es el núcleo Linux, usado en las llamadas distribuciones Linux,
ya que al estar también basadas en Unix,
proporcionan un sistema de funcionamiento similar. Este error de precisión, se
debe a la modernización de la informática llevada a cabo a finales de los 80,
cuando la filosofía de estructura básica de funcionamiento de los grandes computadores3 se rediseñó a fin de llevarla a
los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo
tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más
sencillo de gestionar.4 (Véase AmigaOS, beOS o MacOS como
los pioneros5 de dicha modernización, cuando
los Amiga fueron bautizados con el sobrenombre de Video Toasters6 por su capacidad para la Edición de vídeo en
entorno multitarea round robin, con gestión de miles de
colores einterfaces intuitivos para diseño en 3D.
Uno de los propósitos del sistema
operativo que gestiona el núcleo intermediario consiste
en gestionar los recursos de localización y protección de acceso del hardware,
hecho que alivia a los programadores de aplicaciones de tener que tratar con
estos detalles. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan
incorporado un sistema operativo (teléfonos móviles, reproductores de DVD,
computadoras, radios, enrutadores, etc.). En cuyo
caso, son manejados mediante una Interfaz Gráfica de Usuario,
un gestor de ventanas o
un entorno de escritorio,
si es un celular, mediante una consola o control remoto si es un DVD y, mediante
una línea de comandos o
navegador web si es un enrutador.
Problemas de explotación y soluciones iniciales
El problema principal de los primeros
sistemas era la baja utilización de los mismos, la primera solución fue poner
un operador profesional que lo manejase, con lo que se eliminaron las hojas de
reserva, se ahorró tiempo y se aumentó la velocidad.
Para ello, los trabajos se agrupaban de
forma manual en lotes mediante lo que se conoce como procesamiento por
lotes (batch) sin automatizar.
Monitores residentes
Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos y un Controlador (drivers) para el manejo de entrada/salida.Según fue avanzando la complejidad de los programas, fue necesario implementar soluciones que automatizaran la organización de tareas sin necesidad de un operador. Debido a ello se crearon los monitores residentes: programas que residían en memoria y que gestionaban la ejecución de una cola de trabajos.
Sistemas con almacenamiento temporal de E/S
Los avances en el hardware crearon el
soporte de interrupciones y
posteriormente se llevó a cabo un intento de solución más avanzado: solapar la
E/S de un trabajo con sus propios cálculos, por lo que se creó el sistema
de búfers con
el siguiente funcionamiento:
·
Un programa escribe su salida en un área de memoria (búfer 1).
·
El monitor residente inicia la salida desde el buffer y el programa de
aplicación calcula depositando la salida en el buffer 2.
·
La salida desde el buffer 1 termina y el nuevo cálculo también.
·
Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida
al buffer 1.
·
El proceso se puede repetir de nuevo.
Los problemas surgen si hay muchas más
operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario
hay muchas más operaciones de E/S que cálculo (limitado por la E/S).
Spoolers
Hace aparición el disco magnético con lo que surgen nuevas
soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas
para el volcado previo de los datos de dispositivos lentos y se sustituyen por
discos (un disco puede simular varias cintas). Debido al solapamiento del cálculo
de un trabajo con la E/S de otro trabajo se crean tablas en el disco para
diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation
On-Line).
Sistemas operativos multiprogramados
Surge un nuevo avance en el hardware: el
hardware con protección de memoria. Lo que ofrece nuevas soluciones a los
problemas de rendimiento:
·
Se solapa el cálculo de unos trabajos con la entrada/salida de otros
trabajos.
·
Se pueden mantener en memoria varios programas.
·
Se asigna el uso de la CPU a los diferentes programas en memoria.
Debido a los cambios anteriores, se
producen cambios en el monitor residente, con lo que éste debe abordar nuevas
tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados,
los cuales cumplen con las siguientes funciones:
·
Administrar la memoria.
·
Gestionar el uso de la CPU (planificación).
·
Administrar el uso de los dispositivos de E/S.
Cuando desempeña esas tareas, el monitor
residente se transforma en un sistema operativo multiprogramado.
Llamadas al sistema operativo
Definición breve: llamadas que ejecutan
los programas de aplicación para pedir algún servicio al SO.
Cada SO implementa un conjunto propio de
llamadas al sistema. Ese conjunto de llamadas es la interfaz del SO frente a
las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para
comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado
para trabajar sobre el anterior, en general el programa no funcionará, a no ser
que el nuevo SO tenga la misma interfaz. Para ello:
·
Las llamadas correspondientes deben tener el mismo formato.
·
Cada llamada al nuevo SO tiene que dar los mismos resultados que la
correspondiente del anterior.
Ejemplos de sistemas operativos para PC
·
Mac OS X
·
Unix
·
Solaris
·
FreeBSD
·
OpenBSD
·
Debian
·
Ubuntu
·
Mandriva
·
Sabayon
·
Fedora
·
Haiku (BeOS)
Ejemplos de sistemas operativos para dispositivos móviles
·
Android
·
iOS
·
Bada
·
HP webOS
No hay comentarios:
Publicar un comentario