Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porArturo Coronel Cuenca Modificado hace 8 años
1
Subsistema de Planificación de Procesos en GNU/Linux
2
Agenda Planificación. Políticas. Algoritmo de Planificación.
3
Planificación Recursos del Sistema: Son finitos. Recurso a utilizar: Tiempo de Procesamiento. Objetivo – Dividir el tiempo de procesamiento entre los procesos que se encuentran en ejecución. – Aplicar la política del mejor uso para asignar el acceso a este recurso.
4
Planificación Función: Determinar que proceso deberá correr próximamente (runquee). El óptimo uso del planificador hace ver a GNU/Linux como un sistema Multitarea.
5
Planificación Un Sistema Multitarea es aquel que es capaz de simultáneamente intercambiar el tiempo de ejecución entre más de un proceso. – Máquinas Monoprocesador. Da la ilusión de múltiples procesos corriendo concurrentemente. – Máquinas Multiprocesador. Permite a los procesos ejecutarse concurrentemente (paralelo), entre los distintos procesadores.
6
Planificación Sistema Operativos Multitarea Multitarea Cooperativa. Los procesos voluntariamente deciden detener su ejecución. Este acto es llamado “yielding”. El planificador no puede realizar decisiones globales. Los procesos pueden monopolizar el acceso al procesador.
7
Planificación Sistema Operativos Multitarea Multitarea Interrumpible (Preemptive). El planificador decide cuando un proceso deja de ejecutarse y uno nuevo acceso al recurso. Los procesos involutariamente suspenden su ejecución. Este acto es llamado “preemption”. Cada proceso tiene un tiempo de ejecución asociado, “timeslice”. El planificador puede realizar decisiones globales. Los procesos no monopolizan el acceso al procesador.
8
Políticas Ayudan al planificador a optimizar la utilización del tiempo de procesamiento. Clasificación de procesos. – Process-bound. – I/O-bound.
9
Políticas Processor-bound. Intenso en procesamiento. Pasan mucho tiempo ejecutando código. Larga duración. Se ejecutan hasta que son interrumpidos. High throughput. I/O-bound. Intenso en I/O. Pasan sometidos a la espera de peticiones I/0. Corta duración. Low latency.
10
Políticas Prioridad de Procesos Los algoritmos de planificación son basados en prioridad (priority-based). Idea: Rankear los procesos de acuerdo a su valor y las necesidades de tiempo de procesador. GNU/Linux posee un planificador dinámico basado en prioridad (dynamic priority-based).
11
Políticas Dynamic Priority-Based Base inicial de prioridad. Planificador incrementa o decremanta el valor inicial dinámicamente. Rangos de prioridad. Prioridad nice value. – Valor por defecto es 0. – [-20, 19] Prioridad real-time. – Valor por defecto es – [0,99]
12
Políticas Timeslice (quantum) Valor numérico que representa el tiempo de procesamiento asociado a un proceso.
13
Políticas Timeslice (quantum) Un proceso no tiene que usar por obligación su timeslice de una sola vez. Una vez que termina su timeslice el proceso se considerado expirado.
14
Políticas Interrupción de Procesos Un proceso X ingresa al estado TASK_RUNNING. Proceso X pasa a runquee. Kernel chequea la prioridad de X. Compara la prioridad de X con la prioridad del actual proceso Y en ejecución. Si X >Y, Kernel invoca la interrupción de Y. Proceso Y pasa a runquee. Kernel ejecuta el proceso X.
15
Algoritmo de planificación Características Definido en kernel/sched.c Reescrito en la serie de desarrollo 2.5 Código enteramente nuevo. Totalmente distinto al planificador de los kernels anteriores.
16
Algoritmo de planificación Objetivos Implementado totalmente bajo 0(1). Implementa escalabilidad perfecta SMP. Implementación mejorada de SMP. Provee excelente rendimiento interactivo. Provee equidad de procesos.
17
Algoritmo de planificación Runqueues Estructura de datos básica que utiliza el planificador. Definido en kernel/sched.c, como struct runqueue. Existe un runqueue por procesador. Cada proceso en estado de ejecución se encuentra en un solo runqueue. Contiene información de planificación.
18
Algoritmo de planificación Macros Runqueues Obtienen información de la asociación entre el runqueue-procesador & runqueue-proceso. – cpu_rq(processor) – this_rq() – task_rq(task) – task_rq_lock() – task_rq_unlock()
19
Algoritmo de planificación Arreglos de prioridad Cada runqueue posee dos arreglos. – Activo. – Expirado. Definidos en kernel/sched.c, como struct prio_array. Poseen una cola de los procesos en ejecución por orden de prioridad.
20
Algoritmo de planificación Recalculo de Timeslice
21
Algoritmo de planificación Calculando la prioridad y timeslice Se calcula cuando el timeslice alcanza el valor 0.
22
Algoritmo de planificación Bloqueando y despertando procesos
23
Algoritmo de planificación Balanceo de Carga
24
Preguntas y Respuestas
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.