Modo móvil activado

Introducción al Curso

Objetivos del Curso

Este curso de Plataformas Tecnológicas tiene como objetivo proporcionar a los estudiantes los conocimientos fundamentales sobre los sistemas operativos y la gestión de recursos computacionales. A lo largo del semestre, exploraremos los conceptos esenciales que permiten el funcionamiento eficiente de las plataformas tecnológicas modernas.

El contenido está diseñado para que los estudiantes comprendan la arquitectura de los sistemas operativos, los mecanismos de gestión de procesos, memoria y almacenamiento, así como las tendencias actuales en el desarrollo de plataformas tecnológicas.

Docente del Curso:

Ing. Eduardo Rueda Fajardo - Universidad de Pamplona, Programa de Ingeniería de Sistemas

Introducción a los Sistemas Operativos

¿Qué es un Sistema Operativo?

Un sistema operativo (SO) es un software que actúa como intermediario entre el usuario y el hardware de una computadora. Su propósito principal es proporcionar un entorno en el que el usuario pueda ejecutar programas de manera conveniente y eficiente.

El sistema operativo gestiona los recursos del hardware y proporciona servicios comunes para los programas de aplicación.

Funciones Principales

  • Gestión de procesos: Controla la ejecución de programas y asigna recursos del sistema.
  • Gestión de memoria: Administra la memoria principal y el almacenamiento temporal.
  • Sistema de archivos: Organiza y controla el acceso a los datos almacenados.
  • Gestión de dispositivos: Controla todos los dispositivos de entrada/salida.
  • Seguridad y protección: Controla el acceso a los recursos del sistema.
  • Interfaz de usuario: Permite la interacción entre el usuario y el sistema.

Tipos de Sistemas Operativos

  • Sistemas por lotes: Ejecutan trabajos sin interacción del usuario.
  • Sistemas interactivos: Permiten la interacción directa del usuario.
  • Sistemas de tiempo compartido: Permiten múltiples usuarios simultáneamente.
  • Sistemas en tiempo real: Responden a eventos en tiempo específico.
  • Sistemas distribuidos: Gestionan un grupo de computadoras independientes.
  • Sistemas embebidos: Diseñados para dispositivos específicos.

Gestión de Procesos

Concepto de Proceso

Un proceso es un programa en ejecución. Incluye el código del programa, los datos y la información de estado (registros, contador de programa, puntero de pila, etc.).

El sistema operativo es responsable de la creación, planificación, ejecución y terminación de procesos, así como de la sincronización y comunicación entre ellos.

Estados de un Proceso

  • Nuevo: El proceso se está creando.
  • Listo: El proceso está listo para ejecutarse y espera la CPU.
  • En ejecución: Las instrucciones se están ejecutando.
  • Espera: El proceso espera por algún evento.
  • Terminado: El proceso ha terminado su ejecución.

El cambio entre estos estados se conoce como planificación de procesos.

Planificación de Procesos

La planificación de procesos determina qué proceso se ejecuta en un momento dado. Existen diferentes algoritmos de planificación:

  • FCFS (First-Come, First-Served): El primero en llegar es el primero en ser atendido.
  • SJF (Shortest Job First): Se ejecuta primero el proceso más corto.
  • Round Robin: Asigna un quantum de tiempo a cada proceso.
  • Por prioridades: Los procesos con mayor prioridad se ejecutan primero.

Gestión de Memoria

Jerarquía de Memoria

Los sistemas computacionales utilizan una jerarquía de memoria para equilibrar velocidad, capacidad y costo:

  • Registros: Más rápidos, menor capacidad.
  • Caché: Memoria rápida cercana al procesador.
  • Memoria principal (RAM): Memoria de trabajo del sistema.
  • Memoria secundaria (disco duro): Gran capacidad, más lenta.

Técnicas de Gestión

  • Asignación contigua: Asigna espacios continuos de memoria.
  • Paginación: Divide la memoria en páginas de tamaño fijo.
  • Segmentación: Divide la memoria en segmentos de tamaño variable.
  • Memoria virtual: Extiende la memoria usando almacenamiento secundario.

La memoria virtual permite ejecutar programas más grandes que la memoria física disponible.

Algoritmos de Reemplazo

Cuando la memoria está llena, es necesario reemplazar páginas. Algoritmos comunes:

  • FIFO (First-In, First-Out): Reemplaza la página más antigua.
  • LRU (Least Recently Used): Reemplaza la página no usada por más tiempo.
  • Óptimo: Reemplaza la página que no se usará por más tiempo (teórico).
  • Reloj: Implementación eficiente similar a LRU.

Gestión de Almacenamiento

Sistemas de Archivos

Un sistema de archivos organiza y controla cómo se almacenan y recuperan los datos en un dispositivo de almacenamiento. Proporciona:

  • Organización jerárquica: Directorios y subdirectorios.
  • Gestión de espacio libre: Control del espacio disponible.
  • Protección y seguridad: Control de acceso a los archivos.
  • Confiabilidad: Mecanismos de recuperación ante fallos.

Tipos de Sistemas de Archivos

  • FAT (File Allocation Table): Sistema antiguo, simple.
  • NTFS (New Technology File System): Sistema de Windows con características avanzadas.
  • ext4 (Fourth Extended File System): Sistema común en Linux.
  • APFS (Apple File System): Sistema moderno de Apple.
  • ZFS (Zettabyte File System): Sistema con funciones avanzadas de integridad.

RAID y Tolerancia a Fallos

RAID (Redundant Array of Independent Disks) combina múltiples discos para mejorar el rendimiento y/o la confiabilidad:

  • RAID 0: Striping, mejora rendimiento pero sin redundancia.
  • RAID 1: Mirroring, duplica datos para tolerancia a fallos.
  • RAID 5: Striping con paridad distribuida, balance entre rendimiento y redundancia.
  • RAID 10: Combinación de mirroring y striping.

Referencias y Recursos

Bibliografía Recomendada

  • Silberschatz, A., Galvin, P. B., & Gagne, G. (2018). Operating System Concepts. Wiley.
  • Tanenbaum, A. S., & Bos, H. (2015). Modern Operating Systems. Pearson.
  • Stallings, W. (2018). Operating Systems: Internals and Design Principles. Pearson.

Enlaces de Interés