Procesos, Planificación y Gestión de Memoria en Sistemas Operativos: Paginación, Segmentación y Swapping
Transición de estados: se produce cuando el proceso pasa de estar bloqueado a estar preparado, cuando recibe la señal que estaba esperando, y posteriormente, al estado de ejecución.
Planificación: indicación al ordenador de los procesos que deben ejecutarse y las tareas que estos deben optar. Gracias a los algoritmos de planificación podemos decidir qué proceso debe ejecutarse en cada momento y por qué.
Tiempo compartido: consiste en dividir el tiempo de ejecución del procesador en pequeños intervalos de tiempo (quantum) e ir asignando cada uno de esos intervalos de ejecución a cada proceso que esté en ejecución.
Bloque de control de procesos
El BCP almacena la información como:
Estado actual del proceso: ejecución, preparado o bloqueado.
Identificador del proceso: dependiendo del sistema operativo, a cada proceso se le asigna un PID (número que asigna el sistema operativo para identificar el proceso, lanzarlo a ejecución, detenerlo, cancelarlo…).
Prioridad del proceso: la asignación la realiza el planificador.
Ubicación en memoria: dirección de memoria en la que se carga el proceso.
Recursos utilizados: recursos hardware y software para poder ejecutarse.
Algoritmos de planificación
Algoritmo de rueda: también llamado algoritmo round-robin; en él la asignación de tiempos de ejecución a los procesos es la misma y de forma secuencial. La selección entre los procesos se realiza mediante una cola FIFO (First In First Out, el primero en entrar es el primero en salir).
Algoritmo FIFO: al primer proceso que llega se le asignan tiempos o ciclos de UCP hasta que termina completamente, y a continuación se ejecuta completo el siguiente proceso que haya en la cola FIFO.
Paginación, segmentación y swapping
Permiten ejecutar programas de un tamaño superior a la capacidad de la memoria RAM utilizando el disco duro como una extensión de la memoria principal del equipo; el inconveniente es la pérdida de rendimiento.
Paginación: técnica que consiste en dividir la memoria RAM en zonas iguales llamadas marcos, y los programas en partes del mismo tamaño denominadas páginas.
Mediante la tabla de páginas, la UCP asigna las direcciones físicas de los marcos a la página en la que se ha dividido el programa. La asignación de los marcos no tiene que ser necesariamente consecutiva.
La transformación de las direcciones lógicas en físicas la realiza la unidad de administración de memoria.
Segmentación: es una técnica similar a la paginación que permite definir bloques de memoria de tamaño variable. Cada segmento puede variar desde 0 hasta un máximo permitido.
El ordenador puede organizar la memoria en bloques concretos y tener parte de ella destinada a almacenar las estructuras de datos. Para ello se utilizan las pilas de memoria o stacks, que gestionan las estructuras de datos necesarias.
La paginación difiere de la segmentación en que las páginas son de tamaño fijo y los segmentos no.
Swapping: es una técnica similar a la memoria virtual. Cuando varios usuarios están ejecutando procesos en un mismo ordenador, se ve obligado a cargarlos en RAM. Según su estado, la memoria irá liberando su proceso y pasará a la zona de swap mediante la técnica llamada swap-out.