Conceptos Esenciales de Sistemas Operativos: Gestión de Procesos y Memoria

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 8,46 KB

Conceptos Fundamentales de Sistemas Operativos

Gestión de Procesos y Planificación de CPU

Algoritmos de Planificación de CPU

Round-Robin: Asigna un tiempo de ejecución fijo, conocido como quantum, a cada proceso. La selección del siguiente proceso se realiza mediante una cola FIFO (First-In, First-Out). Si un proceso no termina dentro de su quantum, es interrumpido y enviado al final de la cola.

FCFS (First-Come, First-Served): Los ciclos de CPU se asignan en función de una cola FIFO (First-In, First-Out). Cuando la CPU es asignada a un proceso, este la utiliza hasta que finaliza su ejecución o es bloqueado (por ejemplo, por una operación de E/S).

STR (Shortest Time Remaining - Resto de Tiempo Breve): Asigna el quantum de forma prioritaria a procesos muy cortos para ejecutarlos en el menor tiempo posible. Si un proceso se está ejecutando y llega otro con un tiempo restante estimado menor, el nuevo proceso se ejecutará y el anterior esperará. Este es un algoritmo apropiativo.

SRTF (Shortest Remaining Time First - Primero el de Tiempo Restante más Breve): La asignación de ciclos de CPU se realiza en función del proceso al que le queden menos ciclos para terminar. Cuando llega un nuevo proceso, se estiman los ciclos restantes del proceso que se está ejecutando y del recién llegado, ejecutándose aquel al que le queden menos ciclos para su finalización. Es una versión apropiativa de STR.

El Planificador del Sistema Operativo

El Planificador es el encargado de determinar qué proceso pasará al estado activo de los que están en estado preparado. Existen tres tipos principales de planificadores, clasificados por su horizonte temporal:

  • Planificador a largo plazo: Decide qué procesos se cargan en la memoria principal para su ejecución.
  • Planificador a medio plazo: Gestiona el intercambio de procesos entre la memoria principal y el disco (swapping).
  • Planificador a corto plazo: Selecciona el siguiente proceso a ejecutar por la CPU de entre los que están en memoria y listos para correr.

Gestión de Memoria

Memoria Virtual

Esta técnica considera el espacio libre del disco duro como si se tratara de memoria RAM, extendiendo la capacidad de la memoria física. Cuando se ejecuta un programa, solo la parte que se está utilizando activamente permanece en la RAM; el resto se mantiene en el disco duro. Si es necesario ejecutar una parte del programa almacenada en memoria virtual, esta se carga en la RAM (mediante paginación bajo demanda), y una parte de la RAM que no se esté usando activamente puede ser almacenada temporalmente en el disco duro. El tamaño recomendado para el archivo de paginación suele ser de 2 a 2.5 veces el tamaño de la RAM del equipo.

Segmentación de Memoria

La Segmentación permite definir bloques de memoria de tamaño variable. El tamaño de un segmento puede variar desde 0 hasta un máximo permitido. Los segmentos pueden tener distinta longitud y su tamaño puede variar según las necesidades del programa. Utiliza tablas de segmentos para gestionar las estructuras de datos necesarias y mapear las direcciones lógicas a físicas.

Tipos de Procesos en Memoria

  • Procesos Reubicables: Son programas o módulos de código que, una vez cargados en la RAM, pueden cambiar su posición física en memoria sin afectar su ejecución. Esto facilita la gestión de la memoria y la carga de múltiples procesos.
  • Procesos Rentrantes (Reentrantes): Son programas que pueden ser compartidos por múltiples usuarios o procesos simultáneamente. Su característica principal es que su código no se modifica durante la ejecución, permitiendo que múltiples instancias lo utilicen al mismo tiempo.
  • Procesos Residentes: Una vez cargados en memoria, permanecen en ella hasta que el sistema se apague o se liberen explícitamente. Suelen ser partes críticas del sistema operativo o controladores de dispositivos.
  • Procesos Reutilizables: Son programas que pueden ser utilizados por varios usuarios a la vez. Comparten el código, pero cada usuario tiene su propia copia de los datos, garantizando la independencia de las operaciones.

Intercambio de Memoria (Swapping)

El Intercambio de Memoria es una técnica de gestión de memoria que implica el movimiento de procesos completos (o partes de ellos) entre la memoria principal y el almacenamiento secundario (disco). Cuando varios usuarios están ejecutando procesos en un mismo ordenador, el sistema los carga en memoria RAM. Según el estado del proceso de cada usuario, la memoria se irá liberando de su proceso y pasará a una zona de intercambio en disco mediante el intercambio hacia fuera (swap-out). Si el proceso se vuelve a solicitar, se utiliza la técnica de intercambio hacia dentro (swap-in) para cargarlo de nuevo en RAM.

Paginación de Memoria

La Paginación consiste en dividir la RAM en zonas de tamaño fijo llamadas marcos de página (frames) y los programas en partes del mismo tamaño denominadas páginas. Mediante la tabla de páginas, la CPU asigna las direcciones físicas de los marcos a las páginas en las que se ha dividido el programa. La asignación no tiene por qué ser consecutiva, lo que permite una gestión de memoria más flexible y eficiente, evitando la fragmentación externa.

El Administrador de Memoria

El Administrador de Memoria es el componente del sistema operativo encargado de gestionar y coordinar el uso de la memoria principal. Sus funciones incluyen:

  • Registrar las zonas de memoria en uso.
  • Asignar memoria a los procesos nuevos.
  • Liberar la memoria de los procesos finalizados.
  • Gestionar el intercambio de datos entre la RAM y el disco.

Arquitectura y Funcionamiento del Sistema Operativo

Definición de Sistema Operativo (SO)

Un Sistema Operativo (SO) es un conjunto de programas, servicios y funciones que gestionan y coordinan el funcionamiento del hardware (HW) y del software (SW) de un sistema informático. Es el primer software que se carga al encender el equipo, reconociendo el hardware y permitiendo que el sistema comience a funcionar y que los usuarios interactúen con él.

Niveles o Capas de un Sistema Operativo

Los sistemas operativos suelen estructurarse en capas o niveles, cada uno con responsabilidades específicas:

  • Nivel 3: Usuario
    Se encarga de controlar los procesos a nivel de aplicación y usuario, proporcionando la interfaz para la interacción con el sistema.
  • Nivel 2: Supervisor
    Realiza la comunicación entre cada proceso y el sistema, controla y coordina las operaciones de entrada/salida (E/S) de los procesos y los dispositivos de almacenamiento externo.
  • Nivel 1: Ejecutivo
    Administra la memoria, incluyendo el almacenamiento de procesos en páginas tanto en memoria principal como en disco. También gestiona los recursos del sistema.
  • Nivel 0: Núcleo (Kernel)
    Es el corazón del sistema operativo. Controla la CPU, realiza tareas básicas del sistema, gestiona los procesos de la CPU, la interrupción y la comunicación directa con el hardware.

Multiproceso

El Multiproceso se refiere a un sistema informático que cuenta con dos o más procesadores (CPU) para ejecutar tareas simultáneamente, mejorando el rendimiento y la capacidad de respuesta del sistema.

  • Multiproceso Simétrico (SMP): Todos los procesadores son iguales y comparten la misma memoria principal. El sistema operativo distribuye las tareas de manera equitativa entre ellos, buscando un equilibrio de carga y maximizando el uso de los recursos.
  • Multiproceso Asimétrico (ASMP): Los procesadores tienen roles específicos. Un procesador principal (maestro) gestiona el sistema operativo y distribuye las tareas a los otros procesadores (esclavos), que se encargan de ejecutar programas de usuario o tareas específicas.

Entradas relacionadas: