Administración de procesos

Documentos relacionados
SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Procesos Definición y Estados

Sistemas Operativos. Procesos

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Tema 2: Gestión de la CPU

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Hilos Secciones Stallings:

Convivencia Gestión de Procesos

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Conceptos de Planificación

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

Taller de Sistemas Operativos. Procesos 2012

Preguntas de autoevaluación tema 3

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad

Planificación de Monoprocesadores.

Tarea 2. Descripción y Control de Procesos

Introducción a los Sistemas Operativos

Hilos (threads) Realizado por M. Curiel

IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR GESTIÓN DE PROCESOS

Tema 1: Programación Multiproceso. Curso

El modelo de Procesos

1. Sistema Operativo Unix

Objetivos de la Planificación. Planificación Monoprocesador. Tipos de Planificación. Tiempo de respuesta Productividad Eficiencia del procesador

Administración del Procesador

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos. Comprender la tarea y la elección de un planificador.

Cuestionario 1-Parte 1

Hilos. Hilos. Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos de Sistemas Operativos Hilos en Linux

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos Comprender la tarea y la elección de un planificador.

Tema 1: Introducción a los Sistemas Operativos

Tema 12: El sistema operativo y los procesos

Concurrencia y paralelismo

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Planificación en Servidores de Información

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador (extracto de las transparencias del libro)

Planificación multiprocesador. Niveles de granularidad. Niveles de granularidad. Niveles de granularidad. Planificación multiprocesador - SSOO I

Gestión de Procesos. Concepto. Concepto y criterios de planificación. Utilización del procesador:

Programación Concurrente Recopilación de teoría referente a la materia

Manipulación de procesos

Introducción a los Sistemas Operativos S.O.

Sistemas Operativos. Práctica 2: Scheduling

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos

Sistemas operativos 2ª edición. Capítulo 4 Planificación del procesador 1ª parte: planificación en monoprocesador

hebras La abstracción proceso Hebras y procesos ligeros Operaciones sobre procesos Planificación

MULTIPROGRAMACIÓN. Introducción a al Multitarea

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Threads, SMP y Microkernels. Proceso

SISTEMAS OPERATIVOS: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. Introducción y conceptos básicos

Unidad 2: Gestión de Procesos

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Estructura de los sistemas de cómputo

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Sistemas informáticos industriales. Sistemas Operativos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

Arquitecturas cliente/servidor

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Sistemas Operativos (Parte 2)

Fundamentos de Sistemas Operativos

Planificador de Linux (Scheduler)

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

1. Sistema Operativo Unix

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

T5-multithreading. Indice

Sistemas Operativos Procesos Descripción y Control

Introducción a los Sistemas Operativos

Sistemas Operativos. Introducción. Tema 6

Gestión de la Memoria y Memoria Virtual

Procesos. Planificación del Procesador.

Threads. Hilos - Lightweight process - Procesos ligeros

HP - UX. Qué es HP UX?

Capítulo 2 Introducción a los sistemas operativos

Transcripción:

Administración de procesos Contenido: Concepto de proceso Operaciones sobre procesos Planificación de procesos Hilos (Threads) Planificación del procesador

Concepto de proceso Programas y procesos: Programas Colección de instrucciones que el procesador interpreta y ejecuta Se almacena en sistemas no volátiles necesitando, para poder ser ejecutados, ser cargados en memoria principal Se considera un ente estático

Concepto de proceso Programas y Procesos: Procesos Programa en ejecución El sistema operativo les asigna recursos Se considera un ente dinámico Componentes: código, datos, pila, registros, PC, recursos del sistema

Concepto de proceso Programas y Procesos: Concepto de proceso: Primeros sistemas solo permitían la ejecución de un programa a la vez Hoy, los sistemas operativos permiten cargar varios programas en memoria y ejecutarlos concurrentemente Nuevo concepto Programa en ejecución Unidad de trabajo de un SO Surge con MULTICS para solucionar el problema de la gestión del reparto de la CPU

Concepto de proceso Programas y procesos Características: Los servicios superiores del SO se estructuran en base a procesos Permite modularizar y aislar errores de programas durante su ejecución Soporta concurrencia de actividades Los trabajos (jobs) en sistemas por lotes y tareas en sistemas de tiempo compartido.

Concepto de proceso Programas y procesos Ejecución simultanea de varios procesos: Hay varias tareas que se ejecutan de forma concurrente Paralelismo real: operaciones de E/S (dos tareas concurrentes) Pseudoparalelismo: un proceso en ejecución a la vez, pero sensación de paralelismo

Concepto de proceso Programas y procesos Ejecución simultanea de varios procesos:

Concepto de proceso Definición de proceso Un proceso es un programa en ejecución, que se ejecuta secuencialmente El proceso es una abstración creada por el SO, que se compone de: Código de programa: sección texto Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos Sección de datos: variables globales

Concepto de proceso Definición de proceso

Estados de un proceso El estado de un proceso es la disponibilidad para ser ejecutado Un proceso, a lo largo de su ejecución pasa por varios estados El cambio de un estado a otro es provocado por la ocurrencia de un evento A medida que se ejecuta un proceso, cambia su estado

Estados de un proceso Estados: Ejecución: proceso ejecutando instrucciones Listo: el proceso está listo para recibir el procesador para iniciar o continuar su ejecución Bloqueado: el proceso deja de competir por el procesador, esperando un evento externo (p.e terminación de una operación de E/S, etc.)

Estados de un proceso Transiciones entre estados: En ejecución bloqueado: En ejecución listo: Listo en ejecución: Bloqueado listo

Estados de un proceso Procesos suspendidos: Los 3 estados principales (Listo, Ejecución, Bloqueado) puede no ser suficientes Justificación: Procesos bloqueados Memoria no disponible para nuevos procesos Procesador estará desocupado

Estados de un proceso Procesos suspendidos: Solución: Permitir la ejecución de más procesos Ampliar la memoria principal Intercambio de procesos entre memoria y disco Nuevos estados de un proceso: Listo suspendido Bloqueado suspendido

Estados de un proceso Procesos suspendidos: Método (Intercambio o Swapping) El SO puede poner en suspendido un proceso y transferirlo a disco El espacio liberado en la memoria principal es usado para traer otro proceso Qué proceso elegir para cargar en memoria? Uno nuevo Uno previamente suspendido

Estados de un proceso Procesos suspendidos: Nuevas transiciones entre estado En ejecución suspendido listo Listo suspendido listo Bloqueado suspendido bloqueado Suspendido listo listo Suspendido bloqueado bloqueado Suspendido bloqueado suspendido listo

Estados de un proceso Procesos suspendidos: Otras razones: El sistema esta en riesgo de fallo Un proceso sospechoso de mal funcionamiento El planificador puede suspender los procesos de baja prioridad en momento de carga excesiva del sistema

Contexto de un proceso Tabla de procesos y Bloque Control de Proceso (PCB) El SO gestiona los procesos a través de una tabla que contiene para cada proceso existente en el sistema su PCB Cada proceso se representa mediante un PCB Estructura de datos localizada en el núcleo del sistema

Contexto de un proceso Bloque Control de Proceso (PCB) incluye: Información de identificación Estado del procesador Información de control de proceso Información del planificación y estado Descripción de los segmentos de memoria asignados al proceso Recursos asignados Punteros para estructurar los procesos en cola o anillos Comunicación entre procesos

Contexto de un proceso Bloque Control de Proceso (PCB)

Cambios de contexto La acción de conmutar la CPU de un proceso a otro se denomina cambio de contexto.

Cambios de contexto Tipos de cambio de contexto Cambio de contexto voluntario : Proceso realiza llamada al sistema que implica esperar por evento Transición de en ejecución a bloqueado Ejm: leer del terminal, fallo de página Se realiza para dar mayor eficiencia en el uso procesador

Cambios de contexto Tipos de cambio de contexto Cambio de contexto involuntario : SO le quita la CPU al proceso Transición de en ejecución a listo Ejms: fin del tiempo de ejecución El objetivo es el reparto del procesador

LINUX Caso de estudio

Caso de estudio Estados de un proceso en Linux TASK_RUNNING: proceso listo o en ejecución TASK_INTERRUPTIBLE: proceso dormido que puede despertar por alguna señal o interrupción TASK_UNINTERRUPTIBLE: Similar al anterior, pero no puede ser despertado inmediatamente, espera a una interrupción y no puede ser despertado por una señal (el proceso está suspendido) TASK_ZOMBIE: proceso-hijo terminado pero que no ha sido liberado por su proceso padre TASK_STOPPED: proceso detenido, generalmente por una señal (SIGSTOP). Útil para la depuración.

Caso de estudio Descriptor de proceso (process descriptor) Estructura que mantiene el SO con información del proceso (PCB) Se conoce como task_struct implementada en el fichero include/linux/sched.h (lenguaje C) Es una estructura que mantienen, no sólo datos, sino también muchos punteros a otras estructuras

Caso de estudio Lista de procesos del sistema Linux guarda una lista doblemente enlazada con cada proceso (task_struct) Proceso init_task: Es el proceso inicial de linux, siempre está en ejecución y es el encargado de ir creando otros procesos.

Proceso Nulo Proceso que se ejecuta cuando no hay proceso disponible para ejecutarse El procesador debe ejecutar alguna cosa No cuenta como tiempo útil ni como proceso de usuario En general no hace nada Se puede utilizar para realizar tareas poco prioritarias del kernel cuando el procesador está libre

Operaciones sobre procesos Creación de procesos Los pasos a seguir por el S.O Asignarle un PCB Establecer su contexto de memoria Cargar la imagen (ejecutable) en memoria Ajustar su contexto de CPU (registros) Marcar la tarea como ejecutable Saltar al punto de entrada, ó Ponerlo en la cola de procesos preparados

Operaciones sobre procesos Creación de procesos Hay 4 sucesos principales que causan la creación de procesos. Inicialización del sistema Ejecución de una llamada al sistema para crear procesos por parte de un proceso en ejecución Solicitud de un usuario para crear un proceso Inicio de un trabajo por lotes

Operaciones sobre procesos Creación de procesos Dos posibilidades: Formación de jerarquías de procesos (relación padre-hijo) Linux Procesos padres crean procesos hijos, los cuales, a su vez crean otros procesos formando un árbol de procesos En Linux se forma un árbol a partir de procesos INIT (pid 0) mediante la llamada al sistema: fork()

Operaciones sobre procesos Creación de procesos Dos posibilidades: No se mantiene una jerarquía (windows 2000) Todos los procesos son iguales El padre recibe una ficha especial [identificador] para controlar al hijo Esta en libertad de transferir la ficha a otro proceso

Operaciones sobre procesos Creación de procesos Respecto a los recursos Hijos pueden heredar los recursos (compartir), ó Reciben nuevos recursos Respecto a su ejecución, puede suceder: Hijo se ejecuta concurrentemente con el padre Padre espera que el hijo termine (llamada al sistema wait()) La función wait() devuelve el código de finalización del proceso

Operaciones sobre procesos Destrucción de procesos Supone liberar los recursos previamente asignados al proceso. Esta terminación puede ser: Terminación normal: El proceso invoca su propia terminación. Ejemplo en UNIX: exit() Terminación anormal: El proceso termina por iniciativa del sistema operativo al detectar alguna condición de error (violación de límites, errores aritméticos) o por iniciativa de algún otro proceso. Ejemplo en UNIX: kill() y señales

Operaciones sobre procesos Destrucción de procesos Normalmente lo hace un antepasado directo (p.e. el proceso padre) Términación de un proceso puede significar la terminación de toda su descendencia (terminación en cascada) Unix: shutdown o finalización de la shell de un usuario Pasos que sigue el SO Envío de datos del proceso finalizado al creador El SO desasigna los recursos que tiene

Operaciones sobre procesos Llamadas al sistema (APIs) de POSIX y Win32 Crear Operación POSIX Win32 Fork() exec() CreateProcess() Terminar _exit() ExistProcess() Obtener código finalización waitpid() GetExitCodeProcess Obtener Tiempos times GetProcessTimes Obtener Tiempos times GetProcessTimes Terminar otro proceso kill TerminateProcess

Planificación de procesos Objetivos de la Planificación de Procesos: Multiprogramación: Tener siempre un proceso en ejecución con el propósito mejorar utilización CPU y otros recursos Tiempo Compartido: Cambiar rápidamente la CPU entre procesos para mantener buena interactividad No pueden existir más procesos en ejecución que el número de procesadores Sistemas de multiprocesamiento permiten tener más de un proceso en ejecución

Planificación de procesos Colas de Planificación Cola de trabajos: a medida que los procesos entran en el sistema se le añade a esta cola Aquellos procesos en memoria y esperando ejecutarse se mantienen en una cola llamada cola de procesos listos Implementada como una Lista Elazada: El encabezado contiene punteros al primero y último PCB y cada PCB contiene un puntero al siguiente PCB de la lista de procesos listos

Planificación de procesos Colas de Planificación Existen otras colas en el sistema Para la gestión de dispositivos de E/S se implementa una cola para evitar que varios procesos accedan a la vez a un dispositivo. Se añaden a la cola y el proceso debe esperar a que el dispositivo se le asigne. Estas colas se conocen como Colas de Dispositivo hay una cola por cada dispositivo

Planificación de procesos Colas de Planificación Modelo de colas

Planificación de procesos Colas de Planificación Diagrama de colas (ejecucion de un proceso)

Planificadores Planificación de procesos

Planificadores Planificación de procesos Planificador de largo plazo Actúa con poca frecuencia (normalmente cuando termina un proceso), creando un proceso y cargándolo en la memoria Controla el grado de multiprogramación Determina una buena mezcla de procesos de uso intensivo de CPU y de E/S Algunos sistemas no tienen este planificador (p.e. Sistemas de tiempo compartido)

Planificadores Planificación de procesos Planificador de corto plazo o Planificador de la CPU Decide a qué proceso asignarle la CPU, el cual es seleccionado de la cola listo. Se ejecuta con alta frecuencia, cada vez que ocurre un suceso: Interrupciones de reloj Interrupciones de E/S Llamadas al sistema operativo Señales por salida de un proceso (exit) Asegura la interactividad en un sistema

Planificadores Planificación de procesos Planificador a medio plazo Permite regular la carga reduciendo o aumentando el grado de multiprogramación, usando técnica de swapping Un factor de decisión importante es la demanda por memoria de los procesos Se usa en sistemas de tiempo compartido

Planificadores Planificación de procesos Niveles de planificación

Planificadores Planificación de procesos Planificación de la CPU El SO ha de determinar de alguna forma a que proceso se le asigna la CPU si ésta queda libre La administración de las colas de procesos se lleva a cabo dependiendo de la política de planificación (algoritmos de planificación)

Concepto de Hilo Hilos (Thread) Un hilo es una abstracción de un procesador (Program counter, registros de trabajo y pila de ejecución) y el estado del proceso Un proceso tradicional es una tarea con un solo hilo Proceso 1 Proceso 2 Proceso 3 Proceso Espacio de Usuario Espacio del Kernel Thread Kernel Thread Kernel

Concepto de Hilo Hilos Una tarea (o proceso) permite que los hilos compartan: Código, datos y recursos del sistema operativo

Hilos Vs Procesos Hilos Ventajas de los hilos respecto de los procesos Creación y finalización más rápida Los hilos son más eficientes en el cambio de contexto Conmutación entre hilos del mismo proceso más fácil Mejor comunicación entre hilos de un mismo proceso Varios hilos de un mismo proceso pueden ejecutarse en paralelo (paralelismo real si hay más de un procesador)

Hilos Hilos Vs Procesos Objetivos de los hilos El objetivo de los hilos es facilitar la escritura de aplicaciones concurrentes cooperativas

Hilos - Aplicación Un proceso servidor web Multihilo Proceso de Servidor Web Espacio de Usuario Thread Dispatcher Thread trabajador Caché de la página web Espacio del Kernel Kernel Conexión de red

Hilos Estados y contexto de un hilo Cada thread tiene recursos propios: Una pila, un estado y una copia del contenido de los registros Las colas de listos y bloqueados contienen threads en vez de procesos Un hilo no puede estar suspendido (se suspende el proceso completo con todos sus hilos)

Hilos Estados y contexto de un hilo

Hilos Hilos a nivel de kernel Hilos a nivel del usuario

Hilos a nivel de usuario Espacio de Usuario Espacio del Kernel Kernel pthread_create pthread_join pthread_exit pthread_self pthread_yield Tabla de threads Run-time system Tabla de procesos El manejo de los hilos lo hace una librería de hilos a nivel de usuario

Hilos a nivel de usuario Ejemplos: Hilos POSIX Hilos de Solaris Mach C-threads

Hilos a nivel de usuario Nivel Usuario Proceso de usuario gestiona y planifica los múltiples hilos Nivel Kernel (Sistema Operativo) Planificador del SO Hardware Core Core

Hilos a nivel de usuario Ventajas Se puede tener hilos en sistemas operativos que no los soportan El intercambio de hilos no requiere los privilegios del modo núcleo Cada proceso puede tener su propio algoritmo de planificación hilos

Hilos a nivel de usuario Desventajas El planificador del sistema operativo solo ve un hilo por proceso No ve los hilos a nivel usuario Usa un solo núcleo del procesador en un procesador que tiene más de un núcleo No puede distribuir los hilos a nivel del usuario en los dos núcleo Cuando un hilo realiza una llamada al sistema, se bloquea el mismo y también el resto de los hilos del procesos.

Hilos a nivel del Kernel Proceso Thread Espacio de Usuario Espacio del Kernel Kernel Tabla de procesos Tabla de threads Soportados por el kernel o núcleo del sistema operativo

Hilos a nivel del Kernel Ejemplos: Windows 95/98/NT Solaris Linux Mac OS

Hilos a nivel del kernel (con una CPU con un solo núcleo) Nivel Usuario Nivel Kernel (Sistema Operativo) Planificador del SO Hardware Core CPU

Hilos a nivel del kernel (con una CPU de dos núcleos) Nivel Usuario Nivel Kernel (Sistema Operativo) Planificador del SO Hardware Core Core CPU

Hilos a nivel del kernel Ventajas El bloqueo de un hilo no bloquea todos los hilos del proceso que lo contiene. El kernel puede planificar simultáneamente múltiples hilos del mismo proceso en múltiples procesadores. Las propias funciones del kernel pueden ser multihilo

Hilos a nivel del kernel Desventajas La creación/destrucción de hilos es más cara en el kernel que en espacio de usuario. El cambio de contexto de hilos también es más caro

Modelos Multi-hilo Mapeo de hilos de usuario a kernel: Muchos a uno Uno a uno Muchos a muchos

Muchos a uno Modelos Multi-hilo Muchos hilos de usuario mapeados a un único hilo de kernel Ejemplos: Solaris Green Threads GNU Portable Threads

Uno a uno Modelos Multi-hilo Cada hilo de nivel de usuario se mapea a un hilo de kernel Ejemplos Windows NT/XP/2000 Linux Solaris 9 and later

Muchos a muchos Modelos Multi-hilo Permite mapear muchos hilos de usuario a muchos de kernel Permite al sistema operativo crear un número adecuado de hilos Solaris versión 9 y anteriores W Windows NT/2000 con el paquete ThreadFiber

Muchos a muchos Modelos Multi-hilo

Planificación del procesador Conceptos básicos Objetivos Criterios Medidas Algoritmos de Planificación

Planificación del procesador Conceptos básicos: Obtener el máximo aprovechamiento de CPU con multiprogramación Ráfagas CPU E/S El proceso de ejecución consiste de un ciclo de ejecución en CPU y espera de E/S Distribución de uso de CPU

Planificación del procesador Conceptos básicos: Ráfaga de CPU larga Ráfaga de CPU corta Esperando a E/S Tiempo

Planificación del procesador

Planificación del procesador Objetivos: Justicia Máxima capacidad de ejecución Máximo número de usuarios interactivos Predecibilidad Minimización de la sobrecarga Equilibrio en el uso de los recursos Seguridad de las prioridades

Planificación del procesador Criterios Tiempo de respuesta Tiempo de servicio Tiempo de ejecución Tiempo de espera Eficiencia Rendimiento

Planificación del procesador Medidas sobre los procesos Tiempo de servicio: T = t f - t i Tiempo de espera: E = T - t Indice de servicio: permite evaluar la política de planificación de los procesos I = t / T es el tanto por uno en tiempo de ejecución con respecto al tiempo de vida del proceso. Si I tiende a la unidad, el proceso está limitado por proceso. Si I tiende a cero, el proceso esta limitado por E/S

Planificación del procesador Algoritmos de planificación (1) Planifican la asignación del procesador desde la cola de listo, que a su vez se alimenta de: Ejecución Abandonar el estado de ejecución sin estar bloqueado. O deja de estar bloqueado Un proceso cuando termina su ejecución, deja de existir para el planificador.

Planificación del procesador Algoritmos de planificación (2) Las políticas de planificación pueden ser: No Apropiativas: una vez que le damos el CPU a un proceso dado, no puede quitárselo hasta que complete su ráfaga de CPU (SO por lotes) Apropiativa: permiten la interrupción en la ejecución de un proceso para, normalmente, dar paso a otro. (SO en tiempo compartido y real)

Planificación del procesador Algoritmos de planificación (3) FCFS Primero llegar primero en salir SJN El de trabajo más corto HRN El de la tasa de respuesta más alta SRT El tiempo restante más corto RR Round Robin Prioridad Colas múltiples Colas múltiples con realimentación

Planificación colas múltiples Los procesos se pueden clasificar en grupos para mayor flexibilidad: Procesos de primer plano (Interactivos) Procesos de segundo plano (en lotes o batch Se divide la cola de listo en varias colas. Los procesos se asignan a una u otra dependiendo de sus necesidades y tipo. Para conocer que cola suministrará el P al procesador se utiliza un algoritmo apropiativo de prioridad fija.

Planificación colas múltiples Ventaja: requiere poco trabajo adicional de planificación Desventaja: no es flexible

Colas múltiples con realimentación Permite que un proceso se mueva entre colas El objetivo es separar procesos con diferentes ráfagas de CPU Favorece a los procesos limitado por E/S y a los procesos interactivos (cortos) Parámetros: No. de colas Algoritmo de planificación por cada cola Método para elevar un P a una cola mayor prioridad Método para descender un P a una cola mayor prioridad Método que determine a que cola entra un P al inicio

Colas múltiples con realimentación Es apropiativa y adaptable (gestión de colas con RR y FCFS)

Planificación de hilos Posible planificación de hilos en espacio de usuario Quantum por proceso de 50-msec Cada threads ejecuta 5 msec/cpu

Planificación de hilos Proceso A Proceso B Espacio de Usuario 1 3 2 Espacio del Kernel 1. El Kernel selecciona un thread Posible: También posible: A1, A2, A3, A1, A2, A3 A1, B1, A2, B2, A3, B3 Posible planificación de hilos en espacio de kernel Quantum por proceso de 50-msec Cada threads ejecuta 5 msec/cpu