Sistemas operativos

El sistema operativo maniobra desde que se enciende el computador. Es un conjunto de programas adoptados con el fin de permitir la fácil comunicación usuario- computador y el manejo de sus recursos en forma eficaz.

Un sistema operativo se puede encontrar, también, en aparatos electrónicos que utilicen microprocesadores para funcionar. El nos permite entender el artefacto y que cumpla con sus funciones (teléfonos celulares, DVD, equipos de sonido y computadoras)

Características:

Administración de tareas:

Monotarea: Si solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización o interrupción.

Multitarea: Si es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios:

Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo. Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos:

Centralizado: Si permite utilizar los recursos de una sola computadora. Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de una computadora al mismo tiempo.

HISTORIA

La era de la computación moderna se desarrolló antes y durante la II Guerra Mundial como circuitos electrónicos, relees, condensadores y tubos de vacío que reemplazaron los equivalentes mecánicos y los cálculos digitales sustituyeron cálculos analógicos. A finales de los años 40, con la aparición de la I Generación de Computadores, se realizaba lo que se llama el proceso en serie. No existían los sistemas operativos y los programadores debían interactuar con el hardware del computador sin ayuda externa. Lo que hacía que fuera excesivo el tiempo de preparación para realizar una tarea y que la utilización de la computadora se hiciera por turnos. Las computadoras eran máquinas muy costosas lo que hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se hacia en lenguaje de máquina.

A principios de los años 50 con el objeto de facilitar la interacción entre persona y computador, que los sistemas operativos hacen una aparición discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal.

Monitor residente: Un funcionamiento simple que se limita a cargar los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas y ejecutarlos. Busca optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente.

Procesamiento por lotes: Busca optimizar el tiempo de montaje surgió la idea de agrupar los trabajos en lotes, en una misma cinta o conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición.

Almacenamiento temporal: Busca disminuir el tiempo de carga de los programas, simultaneando la carga del programa o la salida de datos con la ejecución de la siguiente tarea.

En los años 60 se produjeron cambios notorios en varios campos de la informática, la mayoría orientados a seguir incrementando el potencial de los computadores. Para ello se utilizaban técnicas de lo más diversas:

Multiprogramación: La memoria principal alberga a más de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de E/S, se pasa a ejecutar otro programa. Si éste realiza, a su vez, otra operación de E/S, se mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera óptima los recursos disponibles.

Tiempo compartido: En este punto tenemos un sistema que hace buen uso de la electrónica disponible, pero adolece de falta de interactividad, para conseguirla debe convertirse en un sistema multiusuario, en el cual existen varios usuarios con un terminal en línea, utilizando el modo de operación de tiempo compartido. En estos sistemas los programas de los distintos usuarios residen en memoria. Al realizar una operación de E/S los programas ceden la CPU a otro programa, al igual que en la multi-programacion. Pero, a diferencia de ésta, cuando un programa lleva cierto tiempo ejecutándose el sistema operativo lo detiene para que se ejecute otro aplicación. Con esto se consigue repartir la CPU por igual entre los programas de los distintos usuarios, haciendo que los programas de los usuarios no se sienten demasiado lentos por el hecho de compartir los recursos y aparentemente se ejecutan de manera concurrente..

Tiempo real: Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy breves un gran número de sucesos, en su mayoría externos al ordenador. Si el sistema no respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o hecho planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa el archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones.

Multiprocesador: permite trabajar con máquinas que poseen más de un microprocesador En un multiprocesador los procesadores comparten memoria y reloj.

Sistemas operativos desarrollados: Además del Atlas Supervisor y el OS/360 utilizados en máquinas concretas, lo más destacable de la década es el nacimiento de Unix, que hoy en día es una de las plataformas más extendidas en el mundo de la informática.

Durante los años 70, debido al avance de la electrónica, pudieron empezar a crearse circuitos con miles de transistores en un centímetro cuadrado de silicio, lo que llevaría, pocos años después, a producirse los primeros sistemas integrados. Ésta década se podría definir como la de los sistemas de propósito general y en ella se desarrollan tecnologías que se siguen utilizando en la actualidad.

Se produce el boom de los miniordenadores y la informática se acerca al nivel de usuario. En lo relativo a lenguajes de programación, es de señalar la aparición de Pascal y C, el último de los cuales sería reutilizado para reescribir por completo el código del sistema operativo Unix, convirtiéndolo en el primero implementado en un lenguaje de alto nivel.

Inconvenientes de los sistemas existentes

Se trataba de sistemas grandes y costosos, pues antes no se había construido nada similar y muchos de los proyectos desarrollados terminaron con costos muy por encima del presupuesto y mucho después de lo que se marcaba como fecha de finalización. Además, aunque formaban una capa entre el hardware y el usuario, éste debía conocer un complejo lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el gran consumo de recursos que ocasionaban, debido a los grandes espacios de memoria principal y secundaria ocupados, así como el tiempo de procesador consumido. Es por esto que se intentó hacer hincapié en mejorar las técnicas ya existentes de multiprogramación y tiempo compartido.

Para solventar los problemas antes comentados, se realizó un costosísimo trabajo para interponer una amplia capa de software entre el usuario y la máquina, de forma que el primero no tuviese que conocer ningún detalle de la circuitería.

Características de los nuevos sistemas

MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto cooperativo liderado por Fernando Corbató del MIT, con General Electric y los laboratorios Bell, que comenzó en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear el sistema UNIX. Se desarrolló inicialmente para el mainframe GE-645, un sistema de 36 bits; después fue soportado por la serie de máquinas Honeywell 6180.

Fue uno de los primeros sistemas operativos de tiempo compartido, que implementó un solo nivel de almacenamiento para el acceso a los datos, desechando la clara distinción entre los ficheros y los procesos en memoria, y uno de los primeros sistemas multiprocesador.

MVS (Multiple Virtual Storage): Fue el sistema operativo más usado en los modelos de mainframes -ordenadores grandes, potentes y caros usados principalmente por grandes compañías para el procesamiento de grandes cantidades de datos- System/370 y System/390 de IBM, desarrollado también por IBM y lanzado al mercado por primera vez en 1974. Como características destacables, permitía la ejecución de múltiples tareas, además de que introdujo el concepto de memoria virtual y finalmente añadió la capacidad de que cada programa tuviera su propio espacio de direccionamiento de memoria, de ahí su nombre.

CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para el microprocesador 8080/85 de Intel y el Zilog Z80, salió al mercado en 1976, distribuyéndose en disquetes de ocho pulgadas. Fue el SO más usado en las computadoras personales de esta década. Su éxito se debió a que era portable, permitiendo que diferentes programas interactuasen con el hardware de una manera estandarizada. Estaba compuesto de dos subsistemas:

CCP (Comand Control Processor): Intérprete de comandos que permitía introducir los mandatos con sus parámetros separados por espacios. Además, los traducía a instrucciones de alto nivel destinadas a BDOS.

BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la BIOS

El hecho de que, años después, IBM eligiera para sus PCs a MS-DOS supuso su mayor fracaso, por lo que acabó desapareciendo.

Ya en los años 80, con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores personales. En éstos se dejó un poco de lado el rendimiento y se buscó más que el sistema operativo fuera amigable, surgiendo menús, e interfaces gráficas. Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y simples para los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++ y Eiffel dentro del paradigma de la orientación a objetos, y Haskell y Miranda en el campo de la programación declarativa.

Un avance importante que se estableció a mediados de la década fue el desarrollo de redes de computadoras personales que corrían sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS DOS, escrito por MICROSOFT para IBM PC y otras computadoras que utilizaban la CPU INTEL 8088 y sus sucesores, y UNÍX, que dominaba en los ordenadores personales que hacían uso del MOTOROLA 68000.

Apple Macintosh

El lanzamiento oficial se produjo en enero de 1984, al precio de 2495 dólares. Muchos usuarios, al ver que estaba completamente diseñado para funcionar a través de una GUI (Graphic User Interface), acostumbrados a la LINEA DE COMANDOS, lo tacharon de juguete. A pesar de todo, el Mac se situó a la cabeza en el mundo de la edición a nivel gráfico.

MS-DOS

En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas pocas modificaciones, se convirtió en la primera versión de MS-DOS (MicroSoft Disk Operating System). A partir de aquí se sucedieron una serie de cambios hasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de existir como tal y se convirtió en una parte integrada del sistema operativo Microsoft .