Funciones y Operaciones de los Sistemas Operativos: Una Mirada Detallada

Clasificado en Informática

Escrito el en español con un tamaño de 9,08 KB

Funciones Principales de un Sistema Operativo

Un sistema operativo (SO) tiene como principal objetivo facilitar la interacción entre el usuario y el hardware de la computadora, administrando eficientemente los recursos del sistema. Entre sus funciones principales se encuentran:

  • Gestión de Procesos: El SO se encarga de la creación, eliminación, suspensión y reanudación de procesos. También maneja la sincronización entre ellos, evitando conflictos y asegurando una correcta ejecución.
  • Gestión de Memoria: El SO administra la memoria principal (RAM), asignando y liberando espacio dinámicamente según las necesidades de los procesos. Determina qué partes de la memoria están en uso y por qué procesos.
  • Gestión de Archivos: El SO gestiona la creación, eliminación y organización de archivos y directorios. Establece la correspondencia entre la estructura lógica (archivos y carpetas) y la estructura física (sectores en el disco).
  • Gestión de Dispositivos de E/S: El SO proporciona una interfaz uniforme para acceder a los dispositivos de entrada/salida (E/S). Se comunica con los controladores (drivers) de cada dispositivo para su correcto funcionamiento.

Diferencias entre Programa, Proceso, Proceso Padre/Hijo y Proceso/Hilo

  • Programa vs. Proceso:
    • Un programa es una entidad pasiva, un conjunto de instrucciones almacenadas en un archivo o en la memoria RAM.
    • Un proceso es una entidad activa, un programa en ejecución. Al ejecutarse un programa, se crea un proceso al que el SO asigna espacio en la RAM.
  • Proceso Padre/Hijo:
    • La ejecución de un comando desde la terminal crea un proceso, llamado proceso padre.
    • El programa ejecutado puede crear otro proceso sobre el mismo programa, llamado proceso hijo (mediante la llamada al sistema fork).
    • Ejemplo: El proceso padre es el comando de ejecución del programa, y el proceso hijo es el programa en C en ejecución.
  • Proceso vs. Hilo:
    • Un proceso puede tener un solo flujo de ejecución. Si se requieren varios flujos, se utilizan hilos.
    • Los hilos son llamados "procesos ligeros". Tienen parte de la información principal y otra compartida con otros hilos dentro de un proceso principal.
    • Cada proceso tiene su propia información en la tabla de procesos, mientras que los hilos comparten parte de la información.

Modelo de 7 Estados de un Proceso

El modelo de 7 estados describe las diferentes etapas por las que puede pasar un proceso durante su ciclo de vida:

  • Nuevo: El proceso se acaba de crear, pero aún no ha sido admitido para su ejecución.
  • Listo: El proceso está preparado para ejecutarse en cuanto el CPU esté disponible.
  • Ejecución: El proceso se está ejecutando en el CPU.
  • Terminado: El proceso ha finalizado su ejecución y ha sido excluido del SO, liberando todos los recursos que utilizaba.
  • Bloqueado: El proceso no puede ejecutarse hasta que ocurra un evento externo (por ejemplo, la finalización de una operación de E/S).
  • Bloqueado Suspendido: El proceso está bloqueado y ha sido expulsado al disco para liberar memoria RAM.
  • Listo Suspendido: El proceso está en el disco, pero está listo para ejecutarse en cuanto sea cargado en la memoria RAM.

Scripts: Definición y Utilidad

Un script es un archivo de texto que contiene una serie de comandos que se ejecutan línea por línea. También se puede considerar como un intérprete de órdenes. Se utilizan para automatizar tareas, configurar sistemas y realizar diversas operaciones de forma secuencial.

Funciones para Crear Procesos Padre/Hijo

Existen varias funciones en los sistemas operativos tipo Unix para crear y gestionar procesos:

  • fork: Crea un proceso hijo que es una copia exacta del proceso padre. El proceso hijo se crea justo en el momento de la llamada a fork. La diferencia entre el padre y el hijo radica en el valor retornado por fork (el PID del hijo en el padre, y 0 en el hijo).
  • system: Permite ejecutar un comando de Linux dentro de un programa en C.
  • execv: Reemplaza la imagen del proceso que efectuó la llamada con un nuevo proceso. El PID no varía.
  • wait: Permite que el proceso padre espere a que el proceso hijo finalice su ejecución.

Tablas de Control del Sistema Operativo

Para controlar los procesos y administrar los recursos, el SO utiliza varias tablas:

  • Tabla de Memoria: Permite llevar un registro de la memoria principal, indicando la cantidad de memoria física disponible y su asignación a los procesos.
  • Tabla de Dispositivos de E/S: Contiene información sobre los dispositivos conectados al sistema y su estado actual.
  • Tabla de Archivos: Permite relacionar los nombres de los archivos con los programas cargados en memoria.
  • Tabla de Procesos: Almacena todos los atributos necesarios para administrar cada proceso, como su ID, estado, prioridad, etc.

Información Almacenada en el Bloque de Control de Proceso (BCP)

El Bloque de Control de Proceso (BCP) contiene información esencial sobre cada proceso:

  • ID del Proceso: Un número que identifica de forma única al proceso.
  • ID del Usuario: El usuario que creó el proceso.
  • Prioridad del Proceso: Un número que indica la prioridad del proceso para su ejecución.
  • Estado del Proceso: Indica en qué instrucción del programa se quedó la ejecución del proceso.

Proceso de Inicio de la Computadora y Carga del Sistema Operativo

El proceso de inicio de una computadora y la carga del SO se lleva a cabo en los siguientes pasos:

  1. Al arrancar la computadora, se carga el programa de arranque almacenado en la ROM (Read-Only Memory).
  2. Cuando se enciende la computadora, se genera una señal eléctrica que carga en los registros del CPU ciertos valores predeterminados.
  3. El programa iniciador de la ROM verifica el hardware del sistema.
  4. Lee y almacena en la RAM el cargador de arranque (bootloader).
  5. El cargador de arranque carga en memoria los componentes principales del SO.

Semáforos y Regiones Críticas

Los semáforos se utilizan para implementar regiones críticas, que son secciones de código susceptibles a problemas de concurrencia cuando se comparten recursos. Los semáforos ayudan a controlar el acceso a estos recursos compartidos, evitando condiciones de carrera y otros problemas de sincronización.

Características para Evaluar la Eficiencia de los Algoritmos de Planificación de CPU

Para evaluar la eficiencia de los algoritmos de planificación de CPU, se pueden considerar las siguientes características:

  • Utilización del CPU: El porcentaje de tiempo que el CPU está ocupado ejecutando procesos. Se busca una alta utilización (40-60% para PC, 80-90% para servidores).
  • Rendimiento: El número de procesos que un procesador ejecuta en una unidad de tiempo.
  • Tiempo de Espera: La suma de los tiempos que un proceso pasa en la cola de listos esperando a ser ejecutado.
  • Tiempo de Retorno: La suma de los tiempos que tarda un proceso desde que se crea hasta que termina.
  • Tiempo de Respuesta: El tiempo que transcurre desde que se lanza una solicitud hasta que el sistema comienza a responder.

Funcionamiento de Algoritmos de Planificación de CPU

  • FCFS (First-Come, First-Served): Ejecuta los procesos en el orden de llegada. Es no expropiativo. Desventaja: efecto convoy, donde el CPU puede estar ocioso periódicamente.
  • SJF (Shortest Job First): Ejecuta primero los procesos con ráfagas de CPU más cortas. Garantiza el mínimo tiempo de espera promedio. Dificultad: no se puede estimar con precisión la duración de la siguiente ráfaga.
  • Prioridad: Ejecuta primero los procesos con mayor prioridad. Desventaja: bloqueo indefinido de procesos con baja prioridad. Solución: envejecimiento (aumentar la prioridad de los procesos que llevan mucho tiempo esperando).
  • RR (Round Robin): Asigna a cada proceso un tiempo de ejecución fijo (cuanto). Los procesos con ráfagas cortas pueden esperar más que en otros algoritmos.

Entradas relacionadas: