Conceptos Fundamentales de Sistemas Operativos y Gestión de Procesos


Conceptos Fundamentales de Sistemas Operativos

Monitor residente: programa que permanece en memoria y transfiere automáticamente el control entre trabajos, incluyendo secuenciador, intérprete de control y manejo básico de E/S.

Gestión de Trabajos y E/S

JCL (Job Control Language): lenguaje utilizado en las tarjetas de control para indicar al monitor residente qué acciones realizar sobre los trabajos. Compuesto por tarjetas de control, que definen: ejecución de programas, datos de entrada y órdenes para el monitor.

Spooling: técnica que almacena temporalmente la salida en un buffer (disco) para enviarla luego a un dispositivo lento, permitiendo que la CPU continúe ejecutando otros trabajos.

Off-line: técnica donde las operaciones de entrada/salida se realizan en paralelo y separadas del procesamiento principal, usando dispositivos intermedios para evitar que la CPU quede ociosa.

On-line: procesamiento donde las operaciones de entrada/salida se realizan directamente con el dispositivo mientras el programa se ejecuta, sin uso de dispositivos intermedios.

Definición de Sistema Operativo

Sistema Operativo: es el soporte lógico que controla el funcionamiento del equipo físico. Administra los recursos ofrecidos por el hardware y facilita su uso, ocultando su complejidad y proporcionando una forma sencilla de acceso. A su vez, genera niveles de privilegio para proteger la información de los usuarios.

  • Intermediario: conecta usuario, aplicaciones y hardware, facilitando su uso.
  • Gestor de recursos: administra CPU, memoria, E/S; asigna recursos de forma controlada.
  • Abstracción: oculta la complejidad del hardware ofreciendo interfaces simples.

Gestión de Procesos y Planificación

Proceso: programa en ejecución junto con su estado y entorno asociado (registros, memoria, variables, etc.).

Programa: conjunto de instrucciones almacenadas (código), que constituye una entidad pasiva.

PCB (Process Control Block): estructura del sistema operativo que almacena toda la información necesaria para gestionar un proceso (estado, PID, registros, memoria, archivos abiertos, prioridad y datos estadísticos).

Hilos: es una unidad de ejecución dentro de un proceso; son mini ejecuciones dentro de un proceso que permiten realizar múltiples tareas concurrentes compartiendo recursos. Son útiles para mejorar el rendimiento, evitar bloqueos y aprovechar múltiples CPUs.

Clasificación y Privilegios

Clasificación de procesos:

  • Según diseño: reutilizables.
  • Según acceso a CPU/recursos: apropiativos y no apropiativos.
  • Según permanencia en memoria: residentes e intercambiables.
  • Según nivel de privilegio: privilegiados y no privilegiados.

Proceso privilegiado: se ejecuta en modo supervisor (kernel) y tiene acceso completo al hardware y a todas las instrucciones.

Proceso no privilegiado: se ejecuta en modo usuario, con acceso restringido y solo puede usar un subconjunto de instrucciones.

Algoritmos de Planificación

Planificador (scheduler): componente del sistema operativo que asigna el tiempo del procesador entre los procesos disponibles, decidiendo cuál se ejecuta y cuándo. Sus objetivos son:

  • Asegurar justicia.
  • Maximizar el rendimiento y usuarios simultáneos.
  • Garantizar predecibilidad.
  • Minimizar la sobrecarga (cambios de contexto).
  • Equilibrar el uso de recursos y respetar prioridades.

FCFS (First Come First Served): algoritmo de planificación que ejecuta los procesos en el orden en que llegan, sin interrupciones.

Round Robin: algoritmo de planificación cíclico que asigna a cada proceso un tiempo fijo (quantum); si no termina, se interrumpe y vuelve al final de la cola de listas.

SJN (Shortest Job Next): selecciona el proceso con menor tiempo de ejecución estimado para ejecutarse primero.

SRT (Shortest Remaining Time): versión apropiativa del SJN; ejecuta el proceso con menor tiempo restante, pudiendo interrumpir al actual.

Despachador apropiativo: es el componente que asigna la CPU a los procesos y puede interrumpirlos, guardando su estado y realizando el cambio de contexto para ejecutar otro.

Cambio de contexto: ocurre cuando el SO interrumpe un proceso y guarda su estado para ejecutar otro, típicamente por fin de quantum, llegada de un proceso más corto o bloqueo por E/S.

Recursos y Sincronización

Condición de carrera: situación donde dos o más procesos acceden a datos compartidos y el resultado depende del orden y momento de ejecución.

RSR (Recurso de Hardware Reutilizable): recurso que puede ser usado múltiples veces, pero solo por un proceso a la vez (ej: impresora).

Daemon: proceso que se ejecuta en segundo plano y realiza tareas del sistema como impresión, correo o servicios de red.

Cron: utilidad del sistema que permite programar la ejecución automática de tareas o scripts en momentos determinados.

Almacenamiento y File System

Sistemas RAID

RAID 1: realiza espejado de datos, es decir, cada dato se copia en otro disco. Tiene alta redundancia, pero la capacidad se reduce a la mitad y no mejora el rendimiento.

RAID 5: distribuye la paridad entre los discos, mejora el rendimiento (especialmente lectura) y tolera la falla de un disco.

RAID 6: distribuye doble paridad entre los discos y tolera la falla de hasta dos discos simultáneamente.

Gestión de Archivos

File System: componente del sistema operativo que administra archivos y el almacenamiento secundario, incluyendo acceso, permisos, dueño, estructura jerárquica e integridad. Sus funciones incluyen:

  • Crear, modificar y eliminar archivos.
  • Controlar acceso y permisos.
  • Organizar en estructura jerárquica.
  • Compartir archivos y transferir información.
  • Soportar respaldo y recuperación.

Organización de archivos: modelos que definen cómo se almacenan y acceden los registros en el almacenamiento secundario:

  • Secuencial: registros en orden físico.
  • Directo: acceso por dirección.
  • Secuencial indexado: acceso mediante índices.
  • Por partición: organización en directorios.

Dejar un Comentario

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