Unidad 1: Generalidades de los sistemas operativos Módulo 1. Introducción a los sistemas operativos Un sistema operativo actúa como un intermediario entre el usuario de una computadora y el hardware de la misma. El propósito de un sistema operativo es proporcionar un entorno en que el usuario pueda ejecutar programas de una manera fácil y eficiente. Tema 1. Conceptos de los sistemas operativos No existe una definición aceptada a nivel internacional como tal sin embargo la más generalizada puede ser la siguiente: “Un sistema operativo es un programa que administra el hardware de la computadora. También proporciona las bases para los programas de aplicación y actúa como el intermediario entre el usuario y el hardware de la computadora”. Qué hace un sistema operativo Antes de explicar qué hace un sistema operativo, se debe hacer hincapié en un sistema informático global. Un sistema de estos se divide a grandes rasgos en Hardware, Sistema operativo, Programas de aplicación y usuarios
El hardware, CPU (central proccessing unit), la memoria y los dispositivos de entrada y salida, proporcionan los recursos básicos de cómputo al sistema. Los programas de aplicación (como procesadores de texto, exploradores web, etc), definen la forma en la que el hardware se emplea para poder funcionar correctamente El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación por parte de los usuarios.
Un sistema operativo proporciona un entorno en el que otros programas pueden llevar a cabo un trabajo útil. Se considera un asignador de recursos.
Tema 2. Evolución de los sistemas operativos Para que un sistema operativo evolucione, no requiere de nuevo hardware, lo puede hacer a partir de un sistema operativo. No obstante, al parecer un nuevo hardware, es muy probable que surjan nuevos sistemas operativos o mejoras de los que existen. Tablero de conexiones: Las primeras computadoras se programaban usando conexiones físicas en un tablero, y se supervisaba observando el comportamiento de unas luces de control.
Consola: Un programador a la vez, usaba la computadora durante un periodo de tiempo asignado con anterioridad. Este sistema era muy ineficiente y costoso, porque se podía perder tiempo en el aparato, si se terminaba antes del tiempo asignado, o quedaba suspendida la labor si no se concluía. Separación operadores / programadores: Para ayudar a solucionar el problema del desperdicio en el sistema de consola, el programador deja de tener acceso directo a la computadora. Esto se logra contratando operarios especializados en el manejo de la misma. El operador organiza (por trabajos similares), procesa en la computadora todos los programas entregados a él y luego entrega los resultados a los programadores. Secuenciador automático de trabajos: Se crea un pequeño programa que transfiriera automáticamente el control de un trabajo a otro, aumentado la eficiencia. Se denominó “Monitor residente” y se podría considerar el primer sistema operativo. Usaba un lenguaje de control de trabajos llamado JCL, que se programaba con instrucciones que se pasaban a la computadora usando tarjetas perforadas. Operaciones fuera de línea (Off- Line): Se dividió el proceso en tres etapas:
La primera consistía en convertir los programas en tarjetas perforadas a cintas magnéticas. Luego la cinta era puesta en una computadora que procesaba la información que contenía y almacenaba los resultados en otra cinta. Se llevaba la cinta de resultados a otra computadora especializada, que se usaba como impresora.
Buffering: Debido a que había que esperar a que la cinta se llenara antes de pasarla a la siguiente etapa, demorando muchas veces el tiempo total de procesamiento, es que se creó esta técnica que consiste en asignar un bloque de memoria predeterminado llamado Buffer, que se llena con datos enviados por dispositivos de entrada o salida. Al mismo tiempo, la computadora lee de este buffer y comienza colocando los resultados en otro buffer. Esta técnica es mejor que las anteriores labores porque estas ahora son automatizadas. Spooling: Esta técnica se creó gracias a la aparición de los discos magnéticos. Básicamente es pensar en un buffer para un disco. Así se descongestionaba la memoria. Multiprogramación: Consiste en conmutar a otro programa, aún si el actual no ha terminado. Esta conmutación puede darse si llega un programa de mayor prioridad, si se termina el tiempo asignado para un programa, entre otras. En estos sistemas pueden presentarse simultáneamente dos técnicas llamadas Batch (procesamiento por lotes) y Time Sharing (Tiempo compartido); la diferencia entre ellas, está en la intervención del usuario, en la primera no existe interactividad, en la segunda si. Tiempo real: Es una modalidad especial de los sistemas de multiprogramación, en la cual el tiempo de respuesta es vital para cualquier petición.
Procesamiento distribuido: Son sistemas en donde varias computadoras cooperan para resolver un problema. Se empleas redes de alta velocidad para interconectarlas. Se conocen como sistemas débilmente acoplados. Multiprocesamiento: Sistemas donde una sola computadora posee varios procesadores (sistemas fuertemente acoplados). Los problemas muy grandes se dividen en problemas más sencillos que son atacados por cada procesador, los resultados parciales conforman la solución al problema inicial. Sistemas Monousuario: Al reducirse el costo de los componentes hardware, aparecen máquinas de uso doméstico diseñadas para un solo usuario, conocidas como computadores personales. Tema 3. Funcionamiento de los Sistemas de Cómputo Una computadora de propósito general, consta de 1 o más procesadores y de una serie de controladores de dispositivos conectadas a través de un bus común que proporciona acceso a la memoria compartida. Para iniciar una computadora requiere un programa de arranque, almacenado en la memoria ROM. Al ejecutarse se inicializan los registros de la CPU, los controladores de dispositivos y los contenidos de memoria. La tarea más importante es cargar en memoria el Kernel o núcleo del sistema operativo. La ocurrencia de un suceso o inicio de proceso se denomina Interrupción. Una interrupción Software se activa ejecutando una Llamada al sistema. Al interrumpirse a la CPU, deja el proceso que está realizando, y trasfiere esta ejecución a una posición de memoria establecida. La rutina de servicio de la interrupción se ejecuta, e inmediatamente se reanuda la operación que estaba haciendo. Tema 4. Clasificación general de los sistemas operativos Según la forma en que se encuentre construido, un sistema operativo se puede clasificar en: Estructura monolítica: Consiste en crear procedimientos separados que podían llamar unos a otros. Solo realizaban una tarea a la vez. Estructura jerárquica: El sistema está dividido en niveles. Cada nivel presta una serie de servicios al nivel superior. En esta estructura se basan los sistemas operativos actuales. Máquinas Virtuales: Hay un sistema operativo central que proporciona a cada uno de los sistemas operativos, la ilusión de que trabajan solos controlando cada uno su propia máquina.
Cliente/Servidor: El núcleo del sistema operativo se encarga únicamente de establecer las comunicaciones entre los distintos clientes y servidores, manejando la multiprogramación. Tanto el cliente como el servidor son aplicaciones que se ejecutan en el sistema. La diferencia radica en que el servidor provee una serie de servicios que son solicitados por los clientes para realizar su labor.
Referencias. Gutiérrez, Julián y Gómez, Carlos. Teoría general de Sistemas Operativos, 1ª Edición, (7-13). Colombia. Silberschatz, Galvin y Prentice Hall - Pearson. Sistemas Operativos – 7ª Capítulos 1, 2 y 3. (3 – 96).
Edición.