Sistemas Operativos

Conjunto de órdenes y programas que controlan los procesos básicos de una computadora y permiten el funcionamiento de otros programas (punto de vista usuario/computador), gestiona los recursos del hardware y provee servicios a los programas de aplicaciones (punto de vista del gestor de recursos). De esta forma, el SO resulta la intermediación entre el usuario y la computadora, siendo el software básico que provee la interfaz entre todo el resto de los programas.

Funciones

El SO cumple varias funciones, la primera es inicializar el hardware, luego suministrar rutinas básicas para controlar dispositivos; reorganizar e interactuar las tareas entre si y sobre todo mantener la seguridad del sistema, tanto las amenazas (virus) como las herramientas de prevención (antivirus).

Clasificación

  • De acuerdo al modo de administración de tareas:

Monotarea: Solo 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 pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
Multitarea: Permite al usuario estar realizando varias labores al mismo tiempo. Ej: puede estar editando el código fuente de un programa durante su depurando mientras compila otro programa, a la vez recibe un correo electrónico en un proceso de segundo plano.

  •  De acuerdo a la administración del usuario:

Monousuario: Sólo permite ejecutar los programas de un usuario al mismo tiempo, sin importar el número de procesadores que tenga la computadora.
Multiusuario: Permite que varios usuarios ejecuten simultáneamente sus programas. No importa el número de procesadores en la máquina, ni el número de procesos que cada usuario puede ejecutar simultáneamente.

  •  De acuerdo a los procesadores:

Uniproceso: Aquel que es capaz de manejar solamente un procesador de la computadora. Ej: DOS y MacOS.
Multiproceso: Aquel que tiene más de un procesador de sistema y el sistema es capaz de usarlos a todos para distribuir su carga de trabajo. Estos sistemas trabajan de dos formas: Asimétrica, el sistema toma a uno de los procesadores como principal y éste servirá para distribuir la carga a los demás procesadores; Simétrica, los procesos o partes de ellos son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.


Evolución


Procesamiento en serie: El programador interactuaba directamente con el hardware. El SO no existía. Estas máquinas eran utilizadas desde la consola, tenían luces, interruptores y dispositivos de entrada y salida (impresoras).
Los programas estaban en código de máquina (instrucciones basadas en ceros y unos, código binario), se cargaban a través de un lector de tarjetas. Si había un error las luces indicaban la condición del mismo y se paraba el programa.
El programador podía examinar los registros del procesador y la memoria principal para ver donde estaba el error. Si el programa terminaba de forma normal la salida era por la impresora.
Problemáticas:
1-Los usuarios acceden al computador en serie. Proceso largo y tedioso. 
2- Planificación: se rellenaba un formulario de reserva en el que se indicaba el tiempo que el programador estimaba para realizar su trabajo. 
3-Mayor tiempo de configuración del programa que se iba a ejecutar.

Sistemas en lotes: Con el objetivo de facilitar la interacción entre la persona y el computador, los sistemas hacen una aparición discreta.
Monitor residente: Su función era bastante simple, se limitaba a cargar los programas a la memoria, leyéndolos de una cinta o tarjetas perforadas y ejecutarlos. El problema era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje siguiente.
Procesamiento en lotes: Como solución para optimizar el tiempo de montaje surgió la idea de agrupar los trabajos en lotes, en una cinta magnética, de forma que se ejecutaran uno a continuación de otro sin perder tiempo en la transición. El SO residía en la memoria y tenía un programa de control que interpretaba las tarjetas de control, las cuales representaban un lenguaje de control de tareas. La salida de la cinta magnética era en la impresora o cinta perforada.
Problemáticas
1 Con esta forma de trabajo el programador entregaba sus tarjetas a un operador y esperaba horas hasta que el programa proporcionara su salida. 
2 Un error sintáctico, provocaba la pérdida de estas horas de espera. 
3 La cinta magnética es un medio de almacenamiento serie, no había opción alguna de orden de ejecución de las tareas que no fuese el orden en que éstas se habían presentado al ordenador.

Sistema de multiprogramación: Se refiere a que en la memoria principal de un computador se albergan varios 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.
Se hizo necesario crear un mecanismo para garantizar los procesos comunes entre los programas como comenzar los trabajos de usuario, operaciones simultáneas de periféricos en línea, entrada y salida para los procesos, entre otros.

Sistemas de tiempo compartido: Surge con la necesidad de que el usuario se sintiera más cerca de la máquina y poder tener una interacción real con ella. Múltiples usuarios acceden simultáneamente al sistema a través de terminales que se conectan al equipo y cada terminal tiene asociado uno o más procesos en él. El SO entonces era el encargado de la comunicación entre los procesos favoreciendo la interacción con el usuario. Si los cambios en los procesos se producen con la suficiente rapidez, el usuario podía tener una comunicación fluida con la máquina y se relacionara con ella de manera directa.