Conceptos Esenciales de Sistemas Operativos: Procesos, Interbloqueo y Gestión de Recursos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,76 KB

Conceptos Esenciales de Sistemas Operativos

Sincronización de Procesos

Problema: En sistemas multiprogramados, los procesos pueden acceder simultáneamente a recursos compartidos, lo que puede generar condiciones de carrera (resultados impredecibles).

Sección Crítica

Parte del código donde un proceso accede a un recurso compartido. Debe garantizarse que solo un proceso a la vez pueda ejecutarla.

Condiciones para evitar problemas en la sección crítica:

  • Exclusión mutua: Solo un proceso puede acceder a la sección crítica.
  • Progreso: Si la sección crítica está libre, debe decidirse rápidamente qué proceso entra.
  • Espera limitada: Ningún proceso debe esperar indefinidamente.

Soluciones de Sincronización:

  • Software: Algoritmo de Peterson.
  • Hardware: Instrucciones Test-and-Set y Swap.
  • Sistema Operativo: Semáforos (binarios o contadores).
  • Lenguajes de Alto Nivel: Monitores (estructuras que encapsulan acceso a recursos compartidos).

Interbloqueo (Deadlock)

Definición: Ocurre cuando un conjunto de procesos queda bloqueado esperando recursos retenidos por otros procesos del grupo.

Condiciones necesarias para el Interbloqueo:

Para que ocurra un interbloqueo, deben cumplirse simultáneamente las siguientes cuatro condiciones:

  1. Exclusión mutua: Un recurso no puede ser compartido.
  2. Retención y espera: Un proceso mantiene recursos mientras espera otros.
  3. No apropiación: Un recurso no puede ser quitado por la fuerza.
  4. Espera circular: Existe una cadena de procesos donde cada uno espera un recurso retenido por otro.

Estrategias para manejar interbloqueos:

  • Prevención: Evitar que se cumplan las condiciones necesarias.
  • Evitación: Asignar recursos solo si no se genera un estado inseguro (Ej. Algoritmo del Banquero).
  • Detección y recuperación: Identificar el interbloqueo y tomar acciones (matar procesos o liberar recursos).
  • No hacer nada: Reiniciar el sistema si ocurre un interbloqueo.

Gestión de Memoria

Memoria Principal

Función: Almacena código y datos de los procesos en ejecución.

Tipos de direcciones:

  • Simbólica: Nombre de una variable en el código fuente.
  • Lógica: Dirección generada por la CPU.
  • Física: Ubicación real en la RAM.

Técnicas de Gestión de Memoria:

  • Asignación contigua: Memoria dividida en bloques fijos o variables (puede generar fragmentación).
  • Paginación: Divide la memoria lógica en páginas y la RAM en marcos, asignando dinámicamente.
  • Segmentación: Divide la memoria en segmentos que representan estructuras lógicas del programa.

Memoria Virtual

Concepto: Permite que los procesos se ejecuten sin estar completamente cargados en la RAM, usando espacio en disco como respaldo.

Ventajas de la Memoria Virtual:

  • Permite ejecutar procesos grandes sin necesidad de más RAM.
  • Facilita la multiprogramación.

Desventajas de la Memoria Virtual:

  • Si se usa demasiado, puede generar fallos de página y reducir el rendimiento.

Algoritmos de reemplazo de páginas:

  • FIFO (First-In, First-Out): Se elimina la página más antigua.
  • Óptimo: Se elimina la página que menos se usará en el futuro (ideal, pero no implementable).
  • LRU (Least Recently Used): Se elimina la página que no se ha usado en más tiempo.
  • Segunda oportunidad: Variante de FIFO que evita eliminar páginas usadas recientemente.

Problema del Thrashing (Paginación Excesiva):

Ocurre cuando los procesos gastan más tiempo intercambiando páginas entre RAM y disco que ejecutando instrucciones.

Sistemas de Archivos

Definición y Estructura

Definición: Mecanismo que organiza y gestiona archivos en un dispositivo de almacenamiento.

Ejemplos de sistemas de archivos:

  • Windows: FAT, NTFS.
  • Linux: EXT2, EXT3, EXT4.

Operaciones básicas sobre archivos:

  1. Crear: Generar un nuevo archivo en el sistema.
  2. Abrir: Acceder a un archivo existente para lectura o escritura.
  3. Leer: Obtener datos almacenados en un archivo.
  4. Escribir: Guardar o modificar datos en un archivo.
  5. Eliminar: Borrar un archivo del sistema de almacenamiento.
  6. Reposicionar (Seek): Mover el puntero de lectura/escritura dentro del archivo.

Tipos de archivos:

  • Texto: Archivos legibles, delimitados por caracteres especiales.
  • Binarios: Ejecutables o compilados en código máquina.
  • Registros: Contienen estructuras de datos organizadas (como bases de datos).

Métodos de acceso:

  • Secuencial: Se leen los datos en orden.
  • Directo: Se accede a datos específicos sin leer todo el archivo.
  • Indexado (ISAM): Usa un índice para facilitar búsquedas rápidas.

Entradas relacionadas: