Fundamentos de Sistemas Operativos: Gestión de Procesos y Algoritmos de Planificación

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

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

Bloque de Control de Proceso (BCP)

Para cada proceso, el **Sistema Operativo (S.O.)** debe guardar su estado y cualquier otra información que debe mantenerse mientras no esté en ejecución.

  • Estado actual (preparado, en espera).
  • Registros de la CPU (contador de programa, otros registros).
  • Información del planificador (ID, prioridad).
  • Apuntadores a las zonas de memoria del proceso.
  • Información de contabilidad (tiempo consumido, etc.).
  • Información de E/S (dispositivos por los que espera, lista de archivos abiertos, etc.).
  • Etcétera.

Estados de un Proceso

Nuevo
Recién creado por la CPU.
En Ejecución
Ejecutando instrucciones en la CPU.
Bloqueado
Esperando a que ocurra algún evento (ejemplo: operación de E/S).
Preparado
Esperando a que le asignen un procesador.
Terminado
No ejecutará más instrucciones y le serán removidos los recursos que consume.

Cambio de Contexto

Es la operación que consiste en desalojar a un proceso de la **CPU** y reanudar otro.

Hay que guardar el estado del proceso que sale en su **BCP**, y recuperar los registros del proceso que entra. Cada contexto se encuentra en cada BCP.

El cambio de contexto es **tiempo perdido**, así que debe ser lo más rápido posible.

Planificación de Procesos

Objetivo de la Multiprogramación

  • Maximizar el aprovechamiento de la **CPU**.

Objetivos del Tiempo Compartido

  • Conmutar la CPU entre procesos con tal frecuencia que los usuarios puedan interactuar con cada programa durante su ejecución.
  • Sistemas con un solo procesador.

Los procesos esperan por la CPU y por dispositivos de E/S.

Turno Rotatorio (Round Robin)

Es un algoritmo adecuado para implementar el **tiempo compartido**.

  • Se comporta como el FCFS (First-Come, First-Served), pero cada proceso dispone de un **cuanto de tiempo máximo** (quantum).
  • Si cuando expira el cuanto de tiempo el proceso sigue en la CPU, el planificador lo desaloja y lo ingresa al final de la cola de preparados.
  • La cola de preparados se gestiona como una **FIFO** (First-In, First-Out).
  • Si el cuanto de tiempo es $Q$ y hay $N$ procesos en cola, el tiempo de respuesta es como mucho $Q imes (N-1)$.

Influencia del Cuanto de Tiempo ($Q$)

Si $Q$ es muy grande, los procesos terminarán sus ráfagas de CPU antes de que termine el cuanto: se comporta como un **FCFS**.

  • Si $Q$ tiende a ser grande, se tiende a un sistema en el que cada proceso dispone de un procesador a $1/N$ de la velocidad del proceso real (**procesador compartido**).
  • Si $Q$ es muy pequeño, ocurren más **cambios de contexto** y baja el rendimiento.

¿Qué es un Sistema Operativo (S.O.)?

Es un programa que sirve de intermediario entre los usuarios y el **hardware**. Pertenece al software de sistema.

Objetivos del S.O.

  • Ejecutar las aplicaciones de los usuarios.
  • Facilitar la interacción con el computador (amigabilidad, comodidad).
  • Administrar eficientemente los recursos de la máquina (**eficiencia**).

El S.O. no realiza trabajo productivo directamente.

Tipos de Sistemas Operativos

  • Primeros sistemas.
  • Sistemas por lotes.
  • Mejoras de la gestión de la E/S.
  • Sistemas por lotes multiprogramados.
  • Sistemas de tiempo compartido.
  • Ordenadores personales.
  • Sistemas paralelos (**multiprocesadores**).
  • Sistemas distribuidos.
  • Sistemas en tiempo real.

Sistemas Monitor Residente

Programa fijo en memoria con rutinas **imprescindibles** para que el sistema funcione:

  • Intérprete del cargador de programas.
  • Rutinas de E/S.

Automatiza tareas del antiguo operador. Es considerado el **primer S.O. auténtico**.

Sistema por Lotes Multiprogramado

Objetivo: Mejorar el rendimiento de la CPU.

Motivación: Consecuencia de la planificación de tareas.

Procedimiento: Combinación del uso de la CPU. Cuando una tarea debe esperar, los recursos del sistema son asignados a otra tarea preparada para la ejecución.

Sistemas de Tiempo Compartido

Mejora la **interactividad** con el usuario. Son sistemas multiprogramados e interactivos.

Asignación de la CPU en rodajas de tiempo a todos los usuarios, consiguiendo:

  • Tiempos de respuesta cortos.
  • Impresión de usuario único.

Sistemas Compartidos (Multiprocesador)

También conocidos como sistemas multiprocesador o **sistemas fuertemente acoplados**.

  • Poseen más de un procesador.
  • Comparten bus, reloj, periféricos, etc.
  • Ofrecen mejor rendimiento y permiten compartir recursos.

Sistemas Distribuidos

También conocidos como sistemas multicomputador o **sistemas débilmente acoplados**.

  • Distribuyen el cómputo entre varios procesadores.
  • Los procesadores no comparten ni memoria ni reloj.
  • Se comunican entre sí a través de líneas de comunicación.
  • Ventajas: recursos compartidos, computación más rápida, confiabilidad, comunicación.

Sistemas de Tiempo Real

Los requisitos de tiempo de la operación del procesador o del flujo de datos son **estrictos**.

  • Tiempo real duro.
  • Tiempo real blando.

Entradas relacionadas: