En informática , una cola de entrada es un conjunto de procesos almacenados que esperan ser cargados en memoria para ejecutar un programa. Las colas de entrada se utilizan principalmente en la planificación de sistemas operativos, una técnica para distribuir recursos entre procesos. Estas colas no solo se aplican a los sistemas operativos , sino también a la planificación en dispositivos de red. El objetivo de la planificación es garantizar una distribución equitativa y eficaz de los recursos, lo que mejora el rendimiento del sistema.
En esencia, una cola es una colección donde los datos se agregan al final y se eliminan al principio. Existen muchos tipos de colas, y su funcionamiento puede ser muy diferente. Los sistemas operativos utilizan colas de primero en llegar, primero en ser atendido (FIFO), de menor tiempo restante ( STFT) , de prioridad fija con prioridad preferente , de turno rotatorio (round-robin) y de colas multinivel. Los dispositivos de red utilizan colas de primero en entrar, primero en salir (FIFO), de ponderación justa, de prioridad y personalizadas.
Sistema operativo
En los sistemas operativos, los procesos se cargan en la memoria y esperan su turno para ser ejecutados por la unidad central de procesamiento (CPU). La planificación de la CPU gestiona los estados de los procesos y decide cuándo se ejecutará cada proceso mediante la cola de entrada.
Primero en entrar, primero en salir
Los procesos FIFO (primero en entrar, primero en salir) se extraen de la cola en el orden en que se introducen. Con este método, todos los procesos reciben el mismo trato. Si dos procesos tienen diferente prioridad y el de menor prioridad entra primero en la cola, se ejecutará primero. Este enfoque puede no ser ideal si los procesos tienen diferentes prioridades, especialmente si son de larga duración.
Tiempo restante más corto
El método del tiempo restante más corto intenta predecir el tiempo de procesamiento de los desarrollos y los coloca en la cola desde el menor hasta el mayor tiempo de procesamiento. Este método estima y predice basándose en registros históricos previos. En términos de rendimiento, no es estable, pero mejora el tiempo de espera del proceso en comparación con el método Primero en Llegar, Primero en Ser Atendido (FIFO).
Planificación preventiva de prioridad fija
El método de planificación preventiva de prioridad fija asigna diferentes prioridades a los procesos según su tiempo de procesamiento y los organiza en la cola en orden de prioridad. La CPU atiende los procesos de mayor a menor prioridad, y los procesos con la misma prioridad se atienden según el principio de primero en llegar, primero en ser atendido. La CPU deja de atender temporalmente a los procesos de baja prioridad cuando un proceso de mayor prioridad ingresa a la cola.
Programación por turnos rotativos
El método de planificación round-robin asigna la misma cantidad de tiempo a cada proceso y los ejecuta de forma cíclica. Este método depende en gran medida del tiempo que consume cada proceso. Un tiempo demasiado corto fragmentará los procesos, y un tiempo demasiado largo aumentará el tiempo de espera para que cada proceso se ejecute. Elegir el tiempo adecuado es fundamental para este método.
Planificación de colas multinivel
El método de planificación de colas multinivel emplea varias colas, y cada una puede tener su propio algoritmo de planificación. Si bien la planificación de colas multinivel es más compleja que otros métodos, ofrece flexibilidad al sistema operativo para satisfacer diferentes requisitos de tiempo de respuesta en situaciones complejas.
Redes de contactos
En redes, los paquetes son la base fundamental para la planificación. Diariamente, circulan muchos tipos diferentes de paquetes por el núcleo de la red, y cada uno recibe un tratamiento distinto. Por ejemplo, los paquetes de voz y vídeo tienen mayor prioridad que los paquetes normales. Para gestionar y distribuir los paquetes de forma eficaz, los dispositivos de red también utilizan colas de entrada para determinar qué paquete se transmitirá primero.
Cola de primero en entrar, primero en salir (FIFO)
En este modo, los paquetes se extraen de la cola en el orden en que llegan. Todos los paquetes reciben la misma prioridad. Si un paquete grande (A) llega antes que un paquete pequeño (B), B aún tendrá que esperar hasta que A se haya procesado por completo. Si un sistema trata todos los paquetes por igual, los usuarios pueden experimentar retrasos en la transmisión, por ejemplo, de paquetes de voz.
Cola justa ponderada (WFQ)
La cola de reparto equitativo ponderado utiliza el algoritmo min-max-fair-share para distribuir los paquetes. El min-fair-share implica que el sistema operativo de red distribuirá una cantidad mínima de recursos de forma equitativa para cada tipo de paquete. El max-fair-share implica que el sistema operativo de red proporcionará más recursos para los paquetes que necesiten transferir una gran cantidad de datos en ese momento, pero recuperará los recursos una vez realizada la transferencia. El término "ponderado" significa que el planificador asignará un peso a cada tipo de paquete. En función de este peso, determinará cómo colocar el paquete en la cola y cómo procesarlo. Normalmente, cada paquete se ponderará en función del campo de precedencia IP de la cabecera IP de cada paquete.
- Asignación justa = (capacidad del recurso – recurso ya asignado) / número de paquetes
Cola de prioridad (PQ)
La cola de prioridad se divide en cuatro subcolas con diferentes prioridades. Los datos de cada cola solo se procesan cuando las colas de mayor prioridad están vacías. Si llegan datos a una cola de mayor prioridad vacía mientras el sistema operativo de red está transfiriendo datos de una cola de menor prioridad, el sistema operativo de red retendrá los datos de la cola de menor prioridad y procesará primero los de la cola de mayor prioridad. Al sistema operativo de red no le importa cuánto tiempo tengan que esperar las colas de menor prioridad, ya que siempre procesa cada cola de mayor a menor prioridad antes de pasar a la siguiente. Dentro de cada cola, los paquetes se reenvían según el principio FIFO (primero en entrar, primero en salir).
Cola personalizada (CQ)
La cola personalizada se divide en 17 subcolas diferentes. La primera cola, la cola 0, está reservada para que el sistema operativo de red transmita paquetes del sistema; las otras 16 colas son para paquetes definidos por el usuario. El usuario puede definir varios paquetes importantes y asignarlos a cada cola. Cada cola tiene un tamaño limitado y descartará todos los paquetes entrantes si alcanza dicho límite. El servicio de cada cola se basa en la cantidad de paquetes que se procesan en ella. Si se alcanza el límite, el sistema operativo de red retendrá los paquetes de la cola actual y procesará la siguiente hasta que esta se vacíe o alcance su límite de paquetes. Si una cola está vacía, el sistema operativo de red la omitirá y procesará la siguiente.
Véase también
Referencias
- Stallings, William (2003). CCIE Practical Studies Volumen II . Cisco Press. ISBN 1-58705-072-2.
- Planificación del sistema operativo
- Sistema operativo - Planificación
- Planificación y almacenamiento en búfer del sistema operativo
- Terminología informática
- teoría de colas