Optimización de Procesos: Planificación y Gestión de Memoria

Planificación de Procesos

La planificación es la técnica que indica qué procesos deben ejecutarse. Con los algoritmos de planificación se decide qué proceso se ejecuta y por qué. Cuando hacemos doble clic en un proceso para lanzarlo, el sistema operativo lo introduce en planificación y ahí empieza el proceso.

Instrucciones y Procesamiento

¿Cuántas instrucciones puede procesar en un instante de tiempo la UCP?

Una instrucción, a no ser que el ordenador sea multiproceso/multiprocesador o tenga varios núcleos.

Prioridades en Sistemas Multiproceso

¿Quién asigna las prioridades a los procesos en un sistema multiproceso?

El sistema operativo.

¿Qué implica una prioridad alta o baja para un proceso?

Implica que un proceso con prioridad alta entrará más veces en estado de ejecución, accediendo más frecuentemente a la CPU. Un proceso con prioridad baja tendrá más dificultades para entrar en la CPU, ya que otros procesos con mayor prioridad le quitarán tiempo.

Estados de un Proceso

¿Qué significa que un proceso esté bloqueado?

El proceso está detenido por varias causas, como estar esperando una respuesta (del usuario, de la pantalla, de la red, de una impresora…) o haber encontrado un problema (intenta acceder a un recurso como un fichero que está bloqueado por otro proceso).

Algoritmos de Planificación

Nombres de Algoritmos

  • Planificación de plazo fijo
  • FIFO (Primero en entrar, primero en salir)
  • Planificación por turnos (Round Robin)
  • Quantum
  • Por prioridad al más corto (SJF – Short Job First)
  • Por prioridad al tiempo restante más corto
  • Prioridad al de la tasa de respuesta más alta

El intervalo de tiempo asignado a cada proceso para ocupar la CPU se llama quantum. Parte de la planificación es decidir qué quantum ocupa cada proceso.

Bloque de Control de Procesos (BCP)

Toda la información de un proceso se guarda en una estructura de datos llamada BCP (Bloque de Control de Procesos). La información almacenada es:

  1. Estado actual del proceso
  2. Identificador del proceso (PID): es un número que identifica al proceso.
  3. Prioridad: asignada por el planificador.
  4. Ubicación de memoria: dirección en la que se carga el proceso.
  5. Recursos utilizados: Hardware y Software.

En procesos multihilo, se puede almacenar el valor PPID (identificador del proceso padre).

PPID

Cuando hay procesos multihilo, los procesos llevan un número llamado PPID que indica quién es el proceso padre. Si varios procesos son lanzados por el mismo proceso, tienen el mismo PPID.

Algoritmos de Planificación (Examen)

Gracias a los algoritmos se decide a qué procesos se asignan los quantum.

Round Robin (Rueda)

A cada proceso se le asigna un quantum igual y de forma secuencial. Se utiliza el criterio «primero en llegar, primero en salir» para seleccionar el proceso. Es muy utilizado en Windows.

FIFO (FCFS)

El primero que llega es el primero que sale. Al proceso que llega se le asignan ciclos de CPU hasta que termina su trabajo. Se utiliza sobre todo en ciclos de impresión (hasta que no se hayan mandado todos los datos a la impresora, no se cortan las tareas).

Gestión de Memoria

La gestión de memoria es una de las funciones más importantes del sistema operativo. El administrador de memoria reserva espacio para nuevos procesos y libera el espacio de los que terminan. También gestiona el intercambio de datos con el disco cuando los procesos son grandes y no caben de una sola vez en la memoria.

En procesos multihilo, hay variables compartidas y se debe gestionar la memoria para que unos procesos no afecten a otros.

El planificador tiene en cuenta las necesidades de memoria de cada proceso y las particiones disponibles. Esta información se guarda en el BCP.

Fragmentación

Cuando las particiones son fijas, se puede producir fragmentación:

  • Interna: cuando la memoria que se queda libre está dentro de la partición.
  • Externa: cuando la memoria libre es tan pequeña que no cabe ningún proceso.

Si las particiones son variables, se lleva un registro de las posiciones libres y ocupadas. Con el tiempo, puede surgir fragmentación interna. Una solución es la paginación (se utilizan trozos de memoria no contigua).

Segmentación

Se puede ver la memoria como algo secuencial (particiones fijas o variables) o como bloques de memoria desordenados (segmentos no contiguos y no secuenciales). La técnica aquí se llama segmentación.

Ambos enfoques se suelen utilizar de forma combinada.

Paginación, Segmentación y Swapping

Paginación

Divide la memoria en frames y los programas en páginas de igual tamaño.

Si solo hay un trabajo, se le asignan todos los frames que necesita. Si tiene que compartir, se van asignando conforme se necesiten.

La tabla de páginas lleva el control de los frames que ocupa cada página. Los frames asignados no tienen que ser consecutivos. La paginación se parece a la memoria virtual, pero en este caso no interviene el disco duro.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.