Concepto de Sistema Operativo. Objetivos.
Un sistema operativo es el software que hace de interfaz tanto entre los usuarios y la máquina, como entre esta última y los programas. Dicho de otra forma, el sistema Operativo es el software que proporciona un entorno que permite a los usuarios ejecutar Programas.
De esta forma, los objetivos fundamentales de un sistema operativo son:
1. Hacer que la máquina sea fácil de utilizar, tanto por los usuarios finales de ésta, Como por los desarrolladores y administradores del sistema.
2. Hacer que el funcionamiento de la máquina sea lo más eficiente posible.
Tipos de Sistemas Operativos
Realizar una clasificación de los distintos tipos de sistemas operativos no es fácil,pues esta clasificación se puede realizar atendiendo a diversos criterios. En nuestra opinión, la clasificación propuesta en [Tanembaum03] refleja satisfactoriamente la realidad actual. Según este texto, los sistemas operativos se pueden clasificar en las siguientes categorías no excluyentes entre sí:
· Sistemas operativos de mainframe
· Sistemas operativos de servidor
· Sistemas operativos multiprocesador
· Sistemas operativos de ordenador personal
· Sistemas operativos en tiempo real
· Sistemas operativos integrados
· Sistemas operativos de tarjeta inteligente
A continuación se detallan cada una de ellas.
Sistemas operativos de mainframe
En el extremo superior de la clasificación están los sistemas operativos para losmainframes. Estas máquinas se caracterizan por su capacidad de E/S, sin resultar raro sistemas con 1000 discos y miles de gigabytes. Los mainframes también están renaciendo un poco como servidores Web avanzados, servidores para sitios de comercio electrónico a gran escala y servidores para transacciones de negocio a negocio.
Los sistemas operativos para mainframe están claramente orientados al procesamiento de varios trabajos a la vez, casi todos los cuales necesitan cantidades enormes de E/S. Los servicios que ofrecen suelen ser de tres tipos:
· Por lotes: Un sistema por lotes procesa trabajos rutinarios sin que haya un usuario interactivo presente. Por ejemplo, el procesamiento de reclamaciones en una compañía de seguros o los informes de ventas de una cadena de tiendas por lo regular se hace por lotes.
· Procesamiento de transacciones: Los sistemas procesadores de transacciones manejan numerosas solicitudes pequeñas, como procesamiento de cheques en un banco o reservaciones de pasajes aéreos. Cada unidad de trabajo es pequeña, pero el sistema debe manejar cientos o miles de ellas por segundo.
· Tiempo compartido: Los sistemas de tiempo compartido permiten a múltiples usuarios remotos ejecutar trabajos en la computadora de forma simultánea, como las consultas de una base de datos grande.
Estas funciones están íntimamente relacionadas, por lo que muchos sistemas operativos para mainframe las realizan todas. Un ejemplo de sistema operativo para mainframe son z/OS y OS/390 de IBM.
Sistemas operativos de servidor
Un nivel por debajo en la clasificación están los sistemas operativos de servidor.
Éstos se ejecutan en servidores, que son computadoras personales muy grandes, estaciones de trabajo o incluso mainframes, y dan servicio a múltiples usuarios a través de una red, permitiéndoles compartir recursos de hardware y software. Los servidores pueden prestar servicios de impresión, de archivo o de Web. Los proveedores de Internet operan muchas máquinas servidoras para atender a sus clientes, y los sitios
Web emplean servidores para almacenar las páginas Web y manejar las solicitudes que llegan. Entre los sistemas operativos de servidor típicos están UNIX y Windows 2000 y
2003 en sus versiones server y advanced server. Linux también está ganando terreno en los servidores.
Sistemas operativos multiprocesador
Una forma cada vez más común de obtener potencia de computación a gran escala es dotar de varias CPU a los sistemas. Se necesitan sistemas operativos especiales, pero con frecuencia éstos son variaciones de los sistemas operativos de servidor, con funciones especiales para comunicación y conectividad.
Sistemas operativos de computadora personal
La siguiente categoría es el sistema operativo de computadora personal. Su misión consiste en presentar una buena interfaz a un solo usuario. Se les usa en forma amplia para procesamiento de texto, hojas de cálculo y acceso a Internet. Ejemplos comunes son las distintas versiones personales de Windows, el sistema operativo Macintosh y Linux.
Sistemas operativos de tiempo real
Otro tipo de sistema operativo es el sistema de tiempo real. Se caracteriza porque debe garantizar unos tiempos de respuesta suficiente exactos ante estímulos externos. Por ejemplo, en los sistemas de control de procesos industriales, computadoras de tiempo real tienen que capturar datos acerca del proceso de producción y utilizarlos para controlar las máquinas de la fábrica. Con frecuencia deben cumplirse plazos estrictos. Por ejemplo, si un automóvil avanza en una línea de ensamble, deben efectuarse ciertas acciones en ciertos instantes. Si un robot soldador suelda demasiado pronto o demasiado tarde, el automóvil quedará arruinado. VxWorks y QNX Neutrino son sistemas operativos de tiempo real muy conocidos.
Sistemas operativos integrados
Pasando a sistemas cada vez más pequeños, llegamos a las computadoras de bolsillo (palm-top) y sistemas integrados (también conocidos como empotrados). Una computadora de bolsillo o Asistente Personal Digital (PDA= Personal Digital Assistant) es una computadora pequeña que cabe en el bolsillo de la camisa y realiza unas cuantas funciones como libreta de direcciones electrónica y bloc de notas. Los sistemas integrados operan en las computadoras que controlan dispositivos que por lo generalno se consideran computadoras, como televisores, hornos de microondas y teléfonos móviles. Estos sistemas suelen tener algunas características de los sistemas de tiempo real pero también tienen limitaciones de tamaño, memoria y sobre todo consumo de electricidad que los hacen especiales. Algunos ejemplos de tales sistemas operativos son PalmOS y Windows CE (Consumer Electronics).
Sistemas operativos de tarjeta inteligente
Los sistemas operativos más pequeños se ejecutan en tarjetas inteligentes, que son dispositivos del tamaño de una tarjeta de crédito que contienen un chip de CPU. Sus limitaciones en cuanto a potencia de procesamiento y memoria son muy severas. Algunos de ellos sólo pueden desempeñar una función, digamos pagos electrónicos, pero otros pueden realizar varias funciones en la misma tarjeta. Muchos de éstos son sistemas patentados.
Algunas tarjetas inteligentes están orientadas hacia Java. Esto implica que la ROM de la tarjeta inteligente contiene un intérprete de la Máquina Virtual de Java. Los applets (pequeños programas) de Java se descargan a la tarjeta y el intérprete de la misma los procesa. Algunas de estas tarjetas pueden manejar varios applets al mismo tiempo, lo que da pie a multiprogramación y a la necesidad de planificación. La administración y protección de recursos también adquieren importancia cuando dos o más applets están presentes al mismo tiempo. El sistema operativo (por lo regular muy elemental) de la tarjeta debe resolver estas cuestiones.