Sistemas Operativos: Conceptos Fundamentales y Evolución

Historia y Evolución de los Sistemas Operativos

1.1. Introducción a los Sistemas Operativos (SO)

Un sistema operativo (SO) es un software que actúa como intermediario entre el hardware y las aplicaciones. Administra recursos y proporciona servicios esenciales.

1.2. Definiciones de SO

  • Abstracción de hardware: Oculta detalles de hardware, permitiendo que las aplicaciones se ejecuten sin conocer los detalles subyacentes.
  • Administración de recursos: Asigna y gestiona recursos como CPU, memoria y dispositivos de manera eficiente.

1.3. Funciones de un SO

  • Gestión de recursos: Controla el acceso a CPU, memoria y periféricos.
  • Administración de archivos: Organiza y facilita el acceso a datos almacenados.
  • Seguridad: Protege el sistema y los datos contra accesos no autorizados.

1.4. Breve Historia de los SO

Desde sistemas uniprogramados hasta sistemas multiprogramados y sistemas distribuidos modernos. Ejemplos incluyen MS-DOS, Windows, Linux y macOS.

1.5. Tipos de SO

  • SO de propósito general como Windows y Linux.
  • SO embebidos en dispositivos como teléfonos móviles y electrodomésticos.
  • SO móviles como Android e iOS
  • SO de servidores para aplicaciones empresariales y web.

1.6. Conocimientos del Desarrollo de los SO

Incluye diseño, implementación, prueba y mantenimiento. Comprender cómo se desarrollan y mejoran los SO es esencial para los profesionales de TI.

1.7. Funciones en Diferentes Tipos de SO

  • SO tipo batch: Procesamiento en lotes de trabajos.
  • SO de tiempo compartido: Multitarea para compartir recursos.
  • SO de cómputo personal: Interacción de usuario y aplicaciones.
  • SO paralelo: Utilizado en supercomputadoras para procesamiento intensivo.
  • SO de tiempo real: Controla sistemas críticos en tiempo real, como aviones o fábricas.

Esquema Básico del SO

2.1. Kernel

El kernel es el corazón del SO. Controla el hardware y proporciona servicios básicos a las aplicaciones. Administra memoria, CPU, dispositivos y maneja interrupciones.

2.2. Shell

La shell es la interfaz de usuario que permite interactuar con el SO. Puede ser de línea de comandos o gráfica, como la interfaz de Windows.

2.3. Utilidades Básicas y Externas

Son programas y herramientas proporcionados por el SO para realizar tareas comunes. Ejemplos incluyen comandos de copia de archivos y utilidades de búsqueda.

2.4. Manejadores

Los manejadores o controladores son módulos de software que gestionan aspectos específicos del hardware, como controladores de impresora, tarjetas gráficas o redes. Permiten la comunicación entre el hardware y el kernel del SO.

Manejo de Procesos

3.1. Procesos

3.1.1. Conceptos

Los procesos son programas en ejecución que tienen su propio espacio de memoria. Cada proceso tiene un programa, datos y un contexto de ejecución independiente.

3.1.2. Planificación de Procesos

La planificación de procesos es la decisión de cuál de los procesos listos se ejecutará a continuación. Se utilizan algoritmos de planificación para tomar esta decisión.

3.1.3. Comunicación entre Procesos

Los procesos pueden comunicarse entre sí a través de mecanismos como la memoria compartida, las colas de mensajes o los sockets de red.

3.1.4. Estados de un Proceso

Los procesos pueden estar en varios estados, como listo, en ejecución, bloqueado o terminado, dependiendo de su actividad y recursos.

3.1.5. Manejo de Interrupciones

Las interrupciones son señales que indican eventos como errores o solicitudes de entrada/salida. El SO debe manejarlas adecuadamente.

3.1.6. Procesos Concurrentes

La concurrencia implica que múltiples procesos se ejecutan simultáneamente. La gestión de recursos compartidos y la sincronización son fundamentales.

3.1.7. Paso de Mensajes

El paso de mensajes es una forma de comunicación entre procesos en la que envían y reciben mensajes, lo que facilita la colaboración y la sincronización.

3.1.8. Interbloqueos (Deadlocks)

Los interbloqueos son situaciones en las que varios procesos quedan atrapados esperando recursos que no se liberarán. Deben prevenirse o resolverse.

3.2. Hilos de Control

3.2.1. Modelos de Multihilo

Los hilos de control permiten la ejecución concurrente dentro de un proceso. Pueden ser de usuario (manejados por la aplicación) o de kernel (manejados por el SO). Los modelos incluyen multihilo de nivel de usuario, nivel de kernel y combinados.

3.3. Planificación del CPU

3.3.1. Criterios de Planificación

La planificación del CPU es la asignación de tiempo de CPU a procesos. Los criterios incluyen:

  • Planificación por prioridad: Asignar recursos en función de la importancia de los procesos.
  • Planificación por tiempo compartido: Asignar tiempo de CPU equitativo a todos los procesos en ejecución.
  • Planificación por lotes: Ejecutar lotes de trabajos de manera secuencial.
  • Planificación en tiempo real: Garantizar que ciertos procesos se ejecuten dentro de plazos estrictos.

Coordinación y Sincronización de Procesos

4.1. Problemas de Sección Crítica

Ocurren cuando varios procesos intentan acceder simultáneamente a recursos compartidos, lo que puede causar inconsistencias o bloqueos. La gestión adecuada es esencial.

4.2. Semáforos

Los semáforos son una técnica de sincronización que permite a los procesos coordinar su acceso a recursos compartidos. Pueden ser utilizados para evitar condiciones de carrera.

4.3. Regiones Críticas

Son secciones de código críticas donde se deben evitar problemas de acceso simultáneo. Los semáforos u otros mecanismos de sincronización se utilizan para garantizar la exclusión mutua.

4.4. Bloqueos

Los bloqueos son situaciones donde los procesos quedan atrapados esperando recursos que no se liberarán. Las causas, prevención, detección y resolución son temas críticos en la gestión de procesos.

4.5. Recuperación de Bloqueos

Métodos para resolver situaciones de bloqueo, como la liberación de recursos o la prevención de interbloqueos mediante la planificación adecuada.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.