Fundamentos y Evolución de los Sistemas Operativos


Concepto de Sistema Operativo

El sistema operativo es el software básico del ordenador. Este software gestiona todos los recursos del hardware del sistema informático y proporciona la base para la creación y ejecución del software de aplicaciones. El sistema operativo está compuesto por un conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware.

Gracias al sistema operativo, el hardware se identifica, se reconoce y el sistema informático comienza a funcionar. Mediante los programas y aplicaciones del propio sistema operativo, el usuario podrá realizar determinadas funciones y tareas.

Tipos de Usuario

  • SOMO (Single-user, Single-task): En este sistema, los recursos hardware y software están a disposición de un solo usuario y se ejecuta una sola tarea a la vez.
  • SOMU (Single-user, Multi-task): Un solo usuario puede ejecutar varios programas a la vez.
  • MOMU (Multi-user, Multi-task): Varios usuarios pueden utilizar los recursos hardware y software de un mismo ordenador, ejecutando múltiples tareas simultáneamente.

Historia y Generaciones de Ordenadores

La Primera Computadora

La primera computadora (máquina analítica) fue concebida por Charles Babbage, un matemático inglés cuya vida se centró en el tratamiento automático de la información. El concepto fundamental era el ciclo: Entrada – Proceso – Salida.

1ª Generación (Años 40-50)

  • Se utilizan válvulas de vacío para las computadoras.
  • Estas máquinas utilizaban lenguaje máquina (un lenguaje directo con la máquina: 0 y 1).
  • Eran máquinas de gran tamaño.
  • Consumían una gran cantidad de electricidad.
  • Eran máquinas muy lentas; las operaciones que realizaban se reducían a simples operaciones matemáticas.
  • La introducción de los datos se realizaba de forma manual, como una centralita de teléfonos, pinchando tablillas en unos paneles llenos de agujeros.
  • A partir de los años 50, aparecen las tarjetas perforadas, que permitían introducir los datos de forma más rápida. Era un dispositivo no metálico.

2ª Generación (Años 50-60)

  • Aparecen los transistores, que se introducen dentro del ordenador.
  • Son ordenadores más pequeños, más baratos, más rápidos y consumen menos energía.
  • Despiden menos calor.
  • Las personas que intervienen en el tratamiento automático de la información son de 2 tipos: el perforador de tarjetas y el operador de la consola.
  • Aparece lo que se denomina procesamiento por lotes (batch).
  • En esta década aparecen los sistemas operativos multiusuario que permiten ejecutar varios programas a la vez.
  • Aparece lo que hoy en día se conoce como periférico.

3ª Generación (Años 65-80)

  • Se utilizan circuitos integrados.
  • Se reduce el tamaño, el consumo y el calor.
  • En esta década se crea la computadora IBM 360, una máquina capaz de realizar operaciones de tipo matemático y lógico.
  • Cabe destacar el diseño hardware y software básico (sistema operativo) que permite a una máquina o a un sistema informático realizar varios procesos a la vez.

4ª Generación (Desde 1980 hasta hoy)

  • Se crean ordenadores personales.
  • Se utilizan técnicas de integración a gran escala de componentes electrónicos.
  • Aparece el chip (compuesto de silicio).
  • Aparecen los dispositivos de almacenamiento masivo (mayor capacidad y más seguros).
  • Aparecen los dispositivos ópticos (más fáciles de fabricar y más baratos).
  • Estos son potencialmente utilizados por usuarios que no tienen grandes conocimientos de informática.
  • Aparecen sistemas operativos más fáciles de utilizar.
  • Nacen los sistemas operativos con interfaz gráfica.

Los sistemas operativos actuales son de elevada potencia, sobre todo en la gestión del hardware y en la utilización y distribución de programas y datos. Cada vez aparecen versiones con menos errores y más fáciles de utilizar, sobre todo en modo gráfico.

Aparecen las redes de ordenadores: intranet e internet.

Gestión de Procesos: Estado de los Procesos

El estado de un proceso se define como la posición que ocupa en cuanto a la utilización de los recursos hardware del equipo. Un proceso podrá estar en ejecución o bloqueado. Básicamente, los estados posibles de un proceso son:

  • En ejecución: El procesador está ejecutando las instrucciones que componen el programa y tiene el tiempo concedido de uso de la UCP en un instante concreto.
  • Preparado, en espera o activo: Un proceso está preparado para ser ejecutado, es decir, está esperando turno para poder utilizar el intervalo de tiempo y poner en funcionamiento sus instrucciones accediendo a los recursos del sistema.
  • Bloqueado: El proceso está retenido debido a múltiples causas. Una causa común es que dos procesos intenten utilizar los mismos recursos, como un fichero de datos, simultáneamente.

Métricas relacionadas con el tiempo de proceso:

  • Tiempo de servicio = Tiempo de finalización – Tiempo de llegada
  • Tiempo de espera = Tiempo de servicio – Tiempo de ejecución
  • Índice de servicio = Tiempo de ejecución / Tiempo de servicio

Estructura y Servicios del Sistema Operativo

Coordinación de Programas

El sistema operativo coordina los programas en uso.

Jerarquías del Sistema

  • Jerarquía de 2 niveles: Software y Hardware.
  • Jerarquía de 3 niveles: Aplicación, Sistema Operativo y Hardware.

Servicios del Sistema Operativo

Un servicio es una aplicación en segundo plano. Los servicios proporcionan a los usuarios aplicaciones que incorporan diversas formas de poder utilizar los recursos del sistema operativo, en determinados casos multiusuario.

Algunos de los servicios lanzados por los sistemas operativos son aplicaciones de tipo cliente-servidor, servidores Web, servidores de base de datos y otras aplicaciones basadas en servidores, tanto de modo local como a través de una red.

Estos servicios pueden utilizarse para:

  • Crear programas (editores, compiladores, depuradores).
  • Ejecutar esos programas, proporcionando al sistema los recursos hardware y software necesarios.
  • Acceder de forma controlada y segura a los archivos.
  • Acceder de forma controlada a los dispositivos de E/S.
  • Acceder de forma controlada y segura a la información.
  • Controlar y solucionar errores provocados por el hardware o el software.
  • Suministrar información estadística, de seguridad y registro de lo que se hace en el sistema.

Los servicios son esenciales para el funcionamiento de muchas de las aplicaciones y del propio sistema operativo. Si estos programas o servicios no estuvieran ejecutándose, muchas aplicaciones no funcionarían o algo tan común como el acceso a Internet sería imposible.

Estructura por Capas de los Sistemas Operativos Actuales

Los sistemas operativos actuales se definen a menudo por capas:

  • 3 – Capa de Usuario:

    Se encarga de controlar los procesos a nivel usuario, es decir, muestra al usuario el proceso que se está ejecutando o que se quiere ejecutar.

  • 2 – Capa de Supervisor:

    Se encarga de realizar la comunicación de cada proceso entre el sistema y el usuario. Controla y coordina la gestión de entrada/salida de los diferentes procesos hacia los periféricos y los dispositivos de almacenamiento externo.

  • 1 – Capa Ejecutiva:

    Sobre este nivel se realiza la administración y la gestión de la memoria. Se encarga de almacenar los procesos en páginas (segmentación, paginación, etc.), tanto en memoria principal como en disco.

  • 0 – Capa del Núcleo (Kernel):

    Es el que se encarga de controlar la UCP. Gestiona qué procesos llegan al ordenador para ser ejecutados. Son sistemas operativos multiusuario. Este nivel se encarga de realizar tareas básicas del sistema, comunicación con hardware, planificación de procesos, etc.

Funciones Clave de un Sistema Operativo

Un sistema operativo es capaz de desarrollar las siguientes funciones:

  • Control y ejecución de programas.
  • Control, gestión y administración de periféricos.
  • Control, gestión y administración de usuarios.
  • Control de procesos.
  • Control de errores de sistema y de aplicaciones.
  • Control y gestión de seguridad ante intrusos o virus.

Gestión de Memoria

La parte del sistema que administra la memoria es el administrador de memoria. Su función es clara: llevar un registro de las partes de la memoria que se están utilizando y las que no. De esta forma, reservará espacio de memoria para los nuevos procesos y liberará el espacio de los procesos que han finalizado.

Interfaces de Usuario

Interfaz Tipo Texto

Si el sistema operativo es de tipo texto, todas las órdenes que el usuario introduzca y las respuestas que el sistema operativo dé se introducirán o visualizarán mediante cadenas de caracteres.

Ejemplo de sistemas operativos tipo texto: DOS, UNIX. Todas las órdenes se introducen por teclado y se visualizarán por pantalla.

Interfaz Tipo Gráfico

Actualmente, la mayoría de los sistemas operativos utilizan medios de comunicación entre la máquina y el ordenador de tipo gráfico.

En este tipo de interfaces, el usuario utiliza el ratón. La información en la pantalla se muestra en bloques o en pantallas independientes. A estos bloques se les denomina ventanas, y en ellas aparecen una serie de componentes y objetos que sirven para enviar y/o recibir información sin necesidad de teclear nada.

Bloque de Control de Proceso (BCP)

A la estructura de datos que contiene la información sobre un proceso se le denomina bloque de control de proceso (BCP). Contendrá para cada proceso la siguiente información:

  • Estado actual del proceso:

    Un proceso puede estar en ejecución, preparado o bloqueado.

  • Identificador del proceso (PID):

    A cada proceso se le asigna un código de proceso (PID). Este código normalmente es el número que el propio sistema operativo asigna según sus prioridades y sus parámetros de diseño establecidos, teniendo en cuenta el uso y nivel de cada proceso.

  • Prioridad del proceso:

    Esta prioridad viene determinada de forma automática por el S.O. en función de los parámetros con los que se ha diseñado. Puede ser modificada por el administrador del sistema.

  • Ubicación en memoria:

    Teniendo en cuenta la técnica utilizada para ubicar los programas en memoria y dependiendo del tipo de programa del que se trate, el SO tendrá que ubicar cada proceso en una zona independiente de memoria o, en el peor de los casos, en zonas de memoria compartida con otros procesos.

  • Recursos utilizados:

    Cada proceso ha de tener a su disposición determinados recursos hardware y algunos recursos software para poder ejecutarse. Estos recursos se pondrán a disposición del proceso en el mismo momento en el que este empieza a ejecutarse. La gestión de estos recursos la realizará el SO.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *