Introducción a los Sistemas Operativos
Evolución de los Sistemas Operativos
Para comprender los requisitos básicos de un sistema operativo y las características de un sistema operativo moderno, es útil analizar su evolución a lo largo del tiempo.
Proceso en Serie
En los primeros computadores, desde finales de la década de 1940 hasta mediados de la de 1950, el programador interactuaba directamente con el hardware. No existía un sistema operativo. La operación se realizaba desde una consola con indicadores luminosos, conmutadores, un dispositivo de entrada y una impresora. Estos sistemas presentaban dos problemas principales:
- Planificación: La mayoría de las instalaciones empleaban un sistema de reserva de tiempo de máquina. Un usuario podía reservar bloques de tiempo, pero si no terminaba en el tiempo asignado, se veía obligado a detenerse sin haber solucionado el problema.
- Tiempo de preparación: Cada programa requería un proceso de preparación que implicaba cargar un compilador, un programa en lenguaje de alto nivel, guardar el programa compilado y luego cargar y montar el programa objeto. Este proceso era lento y tedioso, especialmente si se producía un error.
Sistemas Sencillos de Proceso por Lotes
La idea central del proceso por lotes es el uso de un elemento de software llamado monitor. Con este sistema operativo, los usuarios ya no tenían acceso directo a la máquina. En su lugar, entregaban los trabajos en tarjetas o cinta al operador del computador, quien los agrupaba en lotes y los ubicaba en un dispositivo de entrada para su procesamiento por el monitor.
El monitor controla la secuencia de sucesos. Una parte del monitor, llamada monitor residente, debe estar siempre en la memoria principal y disponible para su ejecución. El procesador ejecuta las instrucciones del monitor, que a su vez leen el siguiente trabajo en otra zona de la memoria principal.
Sistemas por Lotes con Multiprogramación
La multiprogramación permite que varios trabajos estén en la memoria principal al mismo tiempo. El procesador puede cambiar de un trabajo a otro, ejecutando partes de cada uno de ellos. Esto mejora la utilización del procesador, ya que se reduce el tiempo de inactividad mientras se espera que un trabajo termine de leer o escribir datos.
Funciones y Objetivos de los Sistemas Operativos
Un sistema operativo es un programa que controla la ejecución de los programas de aplicación y actúa como interfaz entre las aplicaciones del usuario y el hardware de un computador. Tiene tres objetivos principales:
- Comodidad: Facilita el uso del computador.
- Eficiencia: Permite aprovechar los recursos del sistema de forma eficiente.
- Capacidad de evolución: Permite el desarrollo, la verificación y la introducción de nuevas funciones sin interferir con los servicios existentes.
Un sistema operativo ofrece servicios en las siguientes áreas:
- Creación de programas: Proporciona herramientas como editores y depuradores para ayudar al programador.
- Ejecución de programas: Administra las tareas necesarias para ejecutar un programa, como cargar instrucciones y datos en la memoria principal, iniciar archivos y dispositivos de E/S, y preparar otros recursos.
- Acceso a los dispositivos de E/S: Proporciona una interfaz uniforme para acceder a los dispositivos de E/S, ocultando los detalles específicos de cada dispositivo.
- Acceso controlado a los archivos: Controla el acceso a los archivos, incluyendo la estructura de los datos y el medio de almacenamiento. En sistemas multiusuario, proporciona mecanismos de protección para controlar el acceso a los archivos.
- Acceso al sistema: Controla el acceso al sistema como un todo y a los recursos específicos del sistema, proporcionando protección contra usuarios no autorizados y resolviendo conflictos de propiedad de los recursos.
- Detección y respuesta a errores: Detecta y responde a errores de hardware y software, minimizando el impacto en las aplicaciones en ejecución.
- Contabilidad: Recopila estadísticas de utilización de los recursos y supervisa parámetros de rendimiento, como el tiempo de respuesta. Esta información es útil para mejorar el rendimiento del sistema y para la carga en cuotas en sistemas multiusuario.
El Sistema Operativo como Administrador de Recursos
Un computador es un conjunto de recursos para el movimiento, almacenamiento y proceso de datos. El sistema operativo es el responsable de la gestión de estos recursos. El sistema operativo es un programa o una serie de programas ejecutados por el procesador, pero con frecuencia abandona el control y debe depender del procesador para recuperarlo.
Los recursos principales que son administrados por el sistema operativo son:
- Procesador: El sistema operativo decide qué programa se ejecuta en cada momento.
- Memoria: El sistema operativo decide qué programas y datos se almacenan en la memoria principal.
- Dispositivos de E/S: El sistema operativo controla el acceso a los dispositivos de E/S, como discos, impresoras y pantallas.
- Archivos: El sistema operativo controla el acceso a los archivos, incluyendo la creación, eliminación, lectura y escritura de archivos.
Una parte del sistema operativo, llamada núcleo o kernel, está siempre en la memoria principal. El núcleo incluye las funciones más utilizadas del sistema operativo. El resto de la memoria principal contiene datos y otros programas de usuario.
Facilidad de Evolución de un Sistema Operativo
Un sistema operativo importante evolucionará en el tiempo por varias razones:
- Actualizaciones del hardware y nuevos tipos de hardware: Las nuevas versiones de los sistemas operativos se adaptan a las nuevas capacidades del hardware.
- Nuevos servicios: El sistema operativo se amplía para ofrecer nuevos servicios a los usuarios y administradores del sistema.
- Correcciones: Se corrigen los fallos que se descubren con el tiempo.
Evolución de los Sistemas Operativos
Para comprender la evolución de los sistemas operativos, se pueden distinguir las siguientes etapas:
Proceso en Serie
En los primeros computadores, el programador interactuaba directamente con el hardware. No existía un sistema operativo. La operación se realizaba desde una consola con indicadores luminosos, conmutadores, un dispositivo de entrada y una impresora. Estos sistemas presentaban dos problemas principales:
- Planificación: La mayoría de las instalaciones empleaban un sistema de reserva de tiempo de máquina. Un usuario podía reservar bloques de tiempo, pero si no terminaba en el tiempo asignado, se veía obligado a detenerse sin haber solucionado el problema.
- Tiempo de preparación: Cada programa requería un proceso de preparación que implicaba cargar un compilador, un programa en lenguaje de alto nivel, guardar el programa compilado y luego cargar y montar el programa objeto. Este proceso era lento y tedioso, especialmente si se producía un error.
Sistemas Sencillos de Proceso por Lotes
La idea central del proceso por lotes es el uso de un elemento de software llamado monitor. Con este sistema operativo, los usuarios ya no tenían acceso directo a la máquina. En su lugar, entregaban los trabajos en tarjetas o cinta al operador del computador, quien los agrupaba en lotes y los ubicaba en un dispositivo de entrada para su procesamiento por el monitor.
El monitor controla la secuencia de sucesos. Una parte del monitor, llamada monitor residente, debe estar siempre en la memoria principal y disponible para su ejecución. El procesador ejecuta las instrucciones del monitor, que a su vez leen el siguiente trabajo en otra zona de la memoria principal.