Agorasystem

Plataformas tecnológicas

Banner_inicio

Introducción

Es el software principal que gestiona el hardware y permite que otros programas funcionen correctamente.

Procesos

Supervisa los programas en ejecución, asignando recursos como el CPU de forma ordenada.

Memoria

Controla y distribuye la memoria disponible para que los procesos se ejecuten sin interferencias.

Almacenamiento

Administra cómo se guardan, organizan y acceden los datos en discos y otros dispositivos.

Esta página web fue desarrollada como parte del proyecto final de la asignatura Plataformas Tecnológicas. En ella se integran y explican de manera estructurada los temas vistos a lo largo del semestre, incluyendo la introducción a los sistemas operativos, la gestión de procesos, la memoria, el almacenamiento, así como su clasificación y funciones principales. Su objetivo es presentar de forma clara, visual y accesible los conocimientos adquiridos, aplicando también principios básicos de diseño web.

Introducción a los sistemas operativos

El sitema operativo tambien conocido como núcleos o kernels es aquel que coordina y dirige todos los servicios y aplicaciones que utiliza el usuario en una computadora. Se trata de programas que se ejecutan de manera privilegiada y regulan aspectos básicos del sistema. Los sistemas operativos consisten en interfaces gráficas, entornos de escritorio o gestores de ventanas que brindan al usuario una representación gráfica de los procesos en marcha.

Funciones

Gestión de procesos

Supervisa y controla la ejecución de programas, asignando la CPU de forma ordenada.

Gestión de memoria

Administra el uso de la memoria RAM y la memoria virtual, asignando espacio a los procesos y protegiendo sus áreas de memoria.

Gestión de almacenamiento

Organiza y administra archivos y carpetas en discos duros, SSD y otros dispositivos de almacenamiento.

Gestión de dispositivos

Controla la comunicación entre el hardware (teclado, ratón, impresora) y el software, utilizando drivers para interactuar con los periféricos.

Interfaz de usuario

Permite al usuario interactuar con el sistema a través de interfaces gráficas (GUI) o de línea de comandos (CLI).

Clasificación

  • Monousuario

    Monousuario

    Solo un usuario puede acceder al sistema a la vez.

  • Multiusuario

    Multiusuario

    Permite que varios usuarios accedan al sistema simultáneamente.

  • Monotarea

    Monotarea

    Solo permite ejecutar un programa a la vez.

  • Multitarea

    Multitarea

    Permite la ejecución de múltiples programas simultáneamente.

  • Sistema en tiempo real

    Sistema en tiempo real

    Diseñados para aplicaciones críticas que requieren tiempos de respuesta garantizados.

  • Sistemas embebidos

    Sistemas embebidos

    Diseñados para dispositivos con funciones específicas.

  • Sistemas operativos móviles

    Sistemas operativos móviles

    Optimizados para dispositivos portátiles con batería y pantallas táctiles.

Sistema de cómputo

Hardware

Parte física del computador, comprende todos los dispositivos periféricos físicos o materiales que componen el computador.

  1. Periféricos de entrada
  2. Periféricos de salida
  3. Dispositivos de almacenamiento
  4. Tarjeta madre
  5. Procesador

Software

Parte lógica del computador, compuesta por el conjunto de instrucciones o código programado.

  • Software de sistema
  • Software de aplicación
  • Software de programación
Sistema de cómputo

Gestión de procesos

Proceso:

Es un programa en ejecución, que requiere recursos del sistema como CPU, memoria, dispositivos de entrada/salida, entre otros.

Programa:

Conjunto de instrucciones que realizan una tarea específica cuando se ejecutan en un sistema operativo.

Diagrama de estados

Estados de un proceso

  • Nuevo

    Cuando se crea un proceso.

  • Listo

    Proceso cargado en memoria y esperando ser asignado a la CPU.

  • Ejecutando

    Proceso que está siendo ejecutado por la CPU.

  • Esperando

    Proceso en espera de un evento externo.

  • Terminado

    Proceso que ha finalizado su ejecución.

Componentes del PCB

Componentes del PCB

Algoritmos de Planificación

FCFS (First-Come, First-Served)

Los procesos se atienden en el orden en que llegan. No se interrumpe hasta que el proceso actual termine.

SJF (Shortest Job First)

El proceso con el menor tiempo de ejecución estimado se atiende primero. Es eficiente pero puede provocar inanición.

Round Robin (RR)

Cada proceso recibe un intervalo de tiempo ("quantum"). Si no termina, regresa al final de la cola.

Planificación por Prioridad

Los procesos con mayor prioridad se ejecutan primero. Puede ser preventiva o no preventiva.

Tipos de procesos

Tipo Definición Ejemplo
Independientes No dependen de otros procesos ni comparten recursos. Un usuario edita un documento en un procesador de texto sin conexión.
Interdependientes Comparten información o recursos y pueden comunicarse entre sí. Un navegador web que interactúa con un gestor de descargas.
Procesos de Usuario Son creados por las aplicaciones que inicia el usuario. Word, Excel, Spotify.
Procesos del Sistema Gestionados por el sistema operativo para su funcionamiento. winlogon.exe en Windows, init en Linux.
Primer Plano (Foreground) Requieren interacción directa del usuario. Una ventana de Word abierta en pantalla.
Segundo Plano (Background) Se ejecutan sin necesidad de intervención del usuario. Un antivirus ejecutando un análisis programado.

Gestión de memoria

La gestión de memoria es una función del sistema operativo que se encarga de asignar, controlar y liberar el espacio de memoria necesario para que los procesos se ejecuten correctamente. Su objetivo es garantizar un uso eficiente de la memoria principal, evitando conflictos entre procesos, aprovechando al máximo los recursos disponibles y manteniendo el rendimiento general del sistema.

Asignación y Liberación de Memoria

El sistema operativo controla qué proceso accede a qué memoria en cada momento.

Protección de Memoria

Asegura que los procesos no interfieran con los espacios de memoria de otros.

Optimización del Uso de la Memoria

Usa eficientemente la memoria para minimizar la fragmentación y maximizar el rendimiento.

Memoria

La memoria es un recurso esencial del sistema que almacena temporalmente tanto los datos como los programas en ejecución, permitiendo a la CPU acceder de forma rápida y eficiente a la información necesaria para ejecutar instrucciones. Su correcta gestión por parte del sistema operativo es fundamental para asegurar que múltiples procesos puedan coexistir sin interferencias, evitando errores como la sobrescritura de datos o el uso indebido de direcciones de memoria.

Tipos de gestión de memoria

Memoria Contigua:

Cada proceso recibe un bloque continuo de memoria. Es simple y rápida, pero propensa a la fragmentación interna y externa.

Memoria No Contigua:

Los procesos pueden cargarse en bloques de memoria física no consecutivos, lo que ofrece una mejor utilización del espacio pero con una mayor complejidad de gestión.

Memoria Principal (RAM)

La memoria RAM es el componente físico del hardware que almacena temporalmente programas en ejecución y datos utilizados directamente por la CPU. Es una memoria volátil, lo que significa que pierde su contenido al apagar el sistema. Su velocidad permite que la CPU acceda rápidamente a la información necesaria para ejecutar instrucciones de manera eficiente. La capacidad de la RAM determina cuántas aplicaciones pueden funcionar al mismo tiempo sin afectar el rendimiento. Está organizada en celdas de memoria individualmente direccionables, lo que facilita un acceso aleatorio rápido, esencial para el funcionamiento fluido del sistema operativo y los programas.

Concepto Definición Ejemplo
Jerarquía de Memoria
Jerarquía de memoria Organización por niveles de velocidad y tamaño: caché, RAM, almacenamiento secundario y terciario. CPU accede primero a caché, luego RAM, y por último al disco duro.
Tipos de Asignación de Memoria
Asignación dinámica La memoria se asigna y libera durante la ejecución del proceso. Un navegador asigna más memoria al abrir nuevas pestañas.
Swapping Intercambio de procesos entre RAM y disco cuando la memoria principal está llena. Un proceso inactivo es enviado al disco para liberar espacio en RAM.
Métodos de Asignación de Memoria Principal
Particionamiento fijo La memoria se divide en bloques de tamaño fijo, lo cual puede generar desperdicio. Un proceso pequeño usa solo parte de una partición asignada.
Particionamiento dinámico Las particiones se crean en tiempo real según lo soliciten los procesos. Un proceso que necesita 25MB recibe exactamente ese espacio.
Paginación La memoria se divide en páginas de tamaño fijo para asignar bloques no contiguos. Un proceso se almacena en páginas ubicadas en distintos sectores de RAM.

Algoritmos de reemplazo de página

Algoritmos de reemplazos de páginas

Problemas comunes de la memoria principal

Contención de Memoria

Ocurre cuando múltiples procesos compiten por los mismos recursos de memoria, lo que puede generar demoras y cuellos de botella.

Fragmentación Interna

Espacio no utilizado dentro de una partición asignada, debido a que el proceso no requiere toda la memoria asignada.

Fragmentación Externa

Aunque hay suficiente memoria libre en total, esta está dividida en pequeños bloques dispersos que no pueden ser usados eficientemente.

Optimización del Uso de la Memoria Principal:

Swapping

Mueve procesos a la memoria secundaria para liberar RAM y mejorar la eficiencia.

Reemplazo de Páginas

Algoritmos como FIFO y LRU deciden qué páginas sacar de RAM cuando está llena.

Memoria Compartida

Permite que múltiples procesos accedan a la misma región de memoria para comunicarse.

Memoria Virtual

Una técnica que permite a un sistema operativo ejecutar programas más grandes que la memoria física disponible. Combina la RAM y el espacio en disco para almacenar y recuperar datos de forma transparente.

Ventajas

Permite ejecutar programas más grandes y múltiples procesos simultáneos, mejorando la utilización de recursos y simplificando la gestión de la memoria.

Desventajas

Introduce una sobrecarga debido a la gestión del almacenamiento físico y del disco, lo que puede degradar el rendimiento si se usa en exceso, ya que el acceso al disco es más lento.

Organización de la memoria virtual

Impacto en el Rendimiento

Overhead

El proceso de paginación genera cierta sobrecarga que puede afectar el rendimiento.

Thrashing

Intercambio constante de páginas entre la RAM y el disco debido a la falta de memoria real.

Gestión de almacenamiento

La gestión de almacenamiento se encarga de administrar la memoria principal y los dispositivos de almacenamiento secundarios, como discos duros y unidades de estado sólido. Su objetivo es garantizar el acceso eficiente, seguro y ordenado a los datos, optimizando el uso del espacio disponible y asegurando la integridad de la información almacenada.

Componentes principales

Memoria Principal (RAM)

Volátil, almacena datos e instrucciones para programas en ejecución. El SO se encarga de la asignación y liberación de memoria para los procesos.

Almacenamiento Secundario

Más lento pero no volátil. Usado para almacenamiento a largo plazo. El SO organiza y gestiona el acceso a estos datos.

Almacenamiento Terciario

Aún más lento, se usa para copias de seguridad o grandes volúmenes de datos a largo plazo, como en la nube o cintas.

Arquitectura del almacenamiento

Estructura de Almacenamiento Masivo

Organiza y gestiona grandes volúmenes de datos no volátiles en dispositivos como discos duros, SSDs, CDs, DVDs y cintas. Permite almacenar información de forma permanente, facilitando su acceso, modificación y recuperación cuando sea necesario, incluso después de apagar el sistema.

Factores Clave

  • Jerarquía de Almacenamiento: Relación entre memoria primaria, secundaria y terciaria.
  • Estructuras Lógicas: Particiones, bloques, índices y directorios para organizar datos.
  • Sistemas RAID: Uso de varios discos para mejorar velocidad y tolerancia a fallos.

Interfaz del Sistema de Archivos

La interfaz del sistema de archivos define cómo los usuarios y las aplicaciones interactúan con el almacenamiento para acceder y gestionar archivos. Proporciona abstracciones como directorios, archivos y permisos de usuario, permitiendo que los datos en el almacenamiento físico sean manejados de manera lógica y estructurada. Además, facilita tareas esenciales como la organización jerárquica de la información, la protección de datos mediante permisos, y el acceso eficiente a los recursos del sistema.

Sistemas de Archivos Populares

Incluyen formatos como FAT32, NTFS, ext4 y APFS, que definen cómo se almacenan y organizan los archivos en diferentes sistemas operativos.

Operaciones Básicas

Acciones como crear, leer, escribir, modificar y eliminar archivos y directorios, esenciales para el manejo cotidiano de datos.

Permisos de Acceso

Controlan qué usuarios o procesos pueden leer, escribir o ejecutar archivos, garantizando seguridad y control de acceso.

Sistemas de Entrada/Salida (E/S)

Los sistemas de entrada/salida son responsables de la comunicación entre el procesador y los dispositivos externos, como discos duros, impresoras y teclados. El sistema operativo debe gestionar las solicitudes de entrada/salida para optimizar el rendimiento y la eficiencia del sistema.

Dispositivos de E/S

Se clasifican como dispositivos de bloque (almacenamiento masivo) o de caracteres (como teclado o ratón).

Controladores de Dispositivos

Software que actúa como intermediario entre el sistema operativo y el hardware de entrada/salida.

Buffering

Almacenamiento temporal de datos de E/S para optimizar el flujo entre los dispositivos y el procesador.

DMA (Acceso Directo a Memoria)

Permite a los dispositivos de E/S transferir datos directamente a la memoria sin intervención constante del procesador.

Sistemas RAID (Redundant Array of Independent Disks):

Tecnología que combina múltiples discos duros para mejorar la tolerancia a fallos y/o el rendimiento del sistema de almacenamiento. Importante para la alta disponibilidad de datos y la velocidad de acceso en servidores y estaciones de trabajo.

Tipo RAID Funcionamiento Beneficios Desventajas Uso recomendado
RAID 0 Divide los datos en bloques y los distribuye entre dos o más discos (striping). Alto rendimiento por lectura/escritura paralela. No tiene redundancia; si un disco falla, se pierde toda la información. En sistemas donde el rendimiento es más importante que la seguridad.
RAID 1 Espeja los datos en dos discos, duplicando la información. Redundancia total: si un disco falla, el otro tiene una copia exacta. No mejora rendimiento de escritura; requiere el doble de espacio. En sistemas críticos que requieren alta disponibilidad de datos.
RAID 5 Distribuye datos y paridad entre al menos tres discos. Buen equilibrio entre rendimiento, redundancia y eficiencia de espacio. Escritura más lenta por el cálculo de paridad. En sistemas que necesitan rendimiento con cierta seguridad.
RAID 6 Similar a RAID 5 pero con doble paridad para tolerancia a fallos de dos discos. Alta tolerancia a fallos; puede fallar hasta dos discos sin perder datos. Escritura más lenta por cálculos de doble paridad. En sistemas donde la seguridad frente a múltiples fallos es crítica.
RAID 10 Combina striping (RAID 0) y mirroring (RAID 1). Alto rendimiento con alta redundancia. Costoso por requerir el doble de discos. En bases de datos o sistemas empresariales de alto rendimiento.