Scheduling de multiprocesadores y sistema de tiempo real

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
Escuchamos 1 2 hablas 2 3 L o s R e c u a d r o s E s c o n d i d o s Yo/ tomar Ellas/ estudiar Nosotros/ escuchar Tú/ hablar Los Verbos AR.
Respuestas Jack y la mata de frijoles /60. 1.vivía 2.estaba 3.estaba 4.era 5.llamaba 6.gustaba 7.comía 8.dormía 9.gustaba 10.llamó 11.dijo 12.había 13.quería.
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
Universidad San Martín de Porres
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
Respuestas Los 101 Dálmatas Total= ___/60. 1.vivían 2.tuvo 3.llamó 4.anunció 5.exclamó 6.podía 7.era 8.bailaba 9.se abrió 10.estaba 11.estaba 12.tenía.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Sistemas Operativos Administración del procesador.
Teoría de Sistemas Operativos Memoria
Objetivo: Los estudiantes van a usar vocabulario del desayuno para comprender un cuento. Práctica: 1. ¿Te gusta comer? 2. ¿Te gusta beber Mt. Dew.
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
Planificador de Procesos
ARQUITECTURA DE COMPUTADORES - PERFORMANCE
Answers to – “Repaso para examen”
5 pt 5 pt 5 pt 5 pt 5 pt 10 pt 10 pt 10 pt 10 pt 10 pt 15 pt 15 pt
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281. C ONFIGURACIÓN C UENTAS D E C ORREO ZTE N281 1-Ingrese a menú 2-Ingrese a Mensajes 3-Ingrese a Correo 4-Seleccione.
1. Apoyo exterior sobre ala inferior de viga de acero
Planificación con Prioridades Fijas
Repaso del capítulo Primer Paso
Capítulo 2 El Vocabulario Nuevo.
Parte 3. Descripción del código de una función 1.
Capítulo 4 Vocabulario y Gramática 1
¿Qué hora es? Telling Time en Español Sra Spampinato.
¿Qué te gusta hacer? Unit 3: Vocabulario.
EL OSO APRENDIZ Y SUS AMIGOS
50 principios 1. Los clientes asumen el mando.
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt El vocabulario.
Ecuaciones Cuadráticas
Julio Cadena Gabriel Mollocana
¡Primero mira fijo a la bruja!
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt El vocabularioMe.
Diecisiete Ocho Veintitres Treinta Cinco ¡Hola!
Unidad 2: Comunicación entre Procesos
0 1 ¿Qué hora es? By: Craig Tillmann Revised by: Malinda Seger Coppell High School Coppell, TX.
¿Quién? ¿Qué? ¿Dónde? ¿Cuándo? ¿Cómo? ¿Por qué?
¿Qué hora es?.
MSc. Lucía Osuna Wendehake
Calendario 2009 “Imágenes variadas” Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2009.
On your desk: Documento Today’s notes Flash Cards.
Los Numeros.
2.4 Numbers PARA CONTAR.
Para Empezar 1.El alfabeto 2.Números de 0 a 39. All letters are feminine: la a, la b, and so on.
¿Qué hora es? What time is it?. ¿Qué hora es? It’s 1:00 Es la una (notice we do not say uno for time but una) 1:00 is the ONLY time where we say “Es la…”
Señales y sistemas de tiempo discreto
Administración del Procesador
Estructuras de control
Manual de Procedimientos Procedimiento de ejecución del programa de
Concurrencia: Deadlock e Inhanición
CHAPTER 4 VOCABULARY: PART II
Multiprocessor Scheduling Chapter 10 Nota: Material en Revisión, con notas propias y laminas del Stalling y del Tanenbaum.
Planificación de procesos
Planificación del Procesador
Hebras, SMP, y Microkernels
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Transcripción de la presentación:

Scheduling de multiprocesadores y sistema de tiempo real Capítulo 10

Clasificación de sistemas multiprocesadores Débilmente acoplados, sistemas distribuidos o clusters Cada procesador tiene su propia memoria y canales de I/O Los procesadores no comparten el reloj Procesadores especializados Generalmente esclavos de un procesador maestro Ejemplo: procesadores de I/O Áltamente acoplados Procesadores comparten memoria, un bus y el reloj Cada uno podría tener su propia memoria cache Controlados por El sistema operativo

Granularidad de la sincronización Granularidad de la sincronización se refiere a la frecuencia con que los procesos se sincronizan También, incluye el tipo de tareas que se sincronizan, por ejemplo procesos versus hebras Cinco categorías de granularidad Independiente: Muy grueso (very coarse) Grueso (coarse) Medio Fino

Granularidad de la sincronización Independiente No existe sincronización explícita entre los procesos Cada uno es un trabajo (job) independiente de los otros Ejemplo: sistemas multiusuarios de tiempo compatido. El scheduler no se ve afectado Gruesa o muy gruesa Existe algún tipo sincronización entre los procesos Ejemplo: procesos concurrentes Si los procesos se comunican muy poco, entonces un sistema distribuido sería lo apropiado Si la comunicación aumenta, la penalización de el delay en la red podría afectar el rendimiento. Entonces, mejor usar sistemas multiprocesadores Se requeriría algunas modificaciones al scheduler

Granularidad de la sincronización Media Ej: múltiples hebras de un proceso Ya que las hebras interactúan muy frecuentemente, las decisiones de scheduling sobre una hebra afectará el rendimiento de la aplicación Modificaciones importantes al scheduler Fina Aplicaciones altamente paralelas

Consideraciones de diseño de scheduling Asignación de procesos a los procesadores Uso de multiprogramación en cada procesador Dispatching de los procesos

Asignación de procesos a procesadores Si la arquitectura es homogénea, los procesadores se pueden ver como recursos que se asignan en demanda Asignación estática Asignar permanentmente un procesador a un proceso Conocido como scheduling de grupo o gang scheduling Cada procesador tiene su propia cola de listo y su propio algoritmo de scheduling Simple, bajo overhead Puede producir que un procesador esté inutilizado mientras otro está sobrecargado Asignación dinámica Los procesadores comparten una cola común de procesos Los procesos pueden ejecutarse en cualquier procesador En un sistema altamente acoplado el contexto de los procesos están disponibles a todos los procesadores en la memoria compartida En granularidad media las hebras de un mismo proceso también se mueven de un procesador a otro

Asignación de procesos a procesadores ¿Quién realiza la asignación? Cola global Cualquier procesador puede realizar scheduling Arquitectura Maestro/Esclavo(s) Algunas funciones privilegiadas del kernel siempre corren en el maestro Sólo el procesador maestro realiza funciones privilegiadas de scheduling Los esclavos envían requerimientos al maestro, por ejemplo de I/O Si el maestro falla, todo el sistema falla El maestro puede convertirse en un cuello de botella Arquitectura de pares El SO puede ejecutarse en cualquiera de los procesadores Cada procesador realiza su propio scheduling El SO se torna complejo, por ejemplo hay que garantizar que dos o más CPUs no elijan al mismo proceso

Scheduling de Procesos En la mayoría de los sistemas existe una sola cola de procesos, y los procesos pueden ejecutarse en cualquier procesador Si hay prioridades, se mantienen varias colas de prioridades, también globales a los procesadores

Scheduling de hebras Compartición de carga Gang o Grupo Los procesos no son asignados a un procesador en particular Los procesadores comparten un cola global de hebras Gang o Grupo Un conjunto de hebras relacionadas son planificadas para correr en un conjunto de procesadores al mismo tiempo (uno-a-uno) Asignación dedicada Cada proceso es asignado un número de procesadores igual al número de hebras. Las cuales corren siempre en ese conjunto de procesadores hasta el fin del programa Dinámico El número de hebras puede cambiar durante la ejecución del programa

Compartición de carga La carga se distribuye parejamente (en demanda) en los procesadores No se necesita un scheduler centralizado. Cuando un procesador queda disponible, ejecuta el código de scheduler y selecciona una de las hebras de la cola global Se puede tener cualquier algoritmo de scheduling tradicional en la cola global FCFS: cuando un job llega, sus hebras son puestas al final de la cola de listos La hebra corre hasta que termina o se bloquea Prioridad: número menor de hebras primero La cola se ordena por el número de hebras que tenga un proceso Apropiativo Prioridad: número restante menor de hebras primero Si llega un proceso con un número menor de hebras que la del procso que está corriendo, se saca de la CPU

Desventajas de compartición de carga Se necesita implementar exclusión mútua para la cola global Luego si varios procesador buscan planificar al mismo tiempo, puede producirse demoras Es muy probable que hebras desapropiadas no vuelvan a correr en el mismo procesador, luego memoria cache es menos eficiente Si un proceso requiere alta coordinación entre sus hebras, es probable que ellas no entren al mismo tiempo, afectando el rendimiento

Scheduling Gang o de grupo La hebras de un mismo proceso (o varios procesos) son planificadas simultáneamente Útil para aplicaciones donde el rendimiento se degrada cuando cualquier parte de la aplicación no está corriendo Por ejemplo, cuando la hebras deben sincronizarse continuamente Suponga que tenemos N procesadores y M procesos cada uno con N o menos hebras. Entonces, una posibilidad es asignar a cada aplicación los N procesos durante 1/M del tiempo total. La otra posibilidad es asignar un tiempo proporcional al número de hebras

Scheduling dedicado Se dedica un grupo de procesadores a una aplicación por todo el tiempo que dure Cada hebra queda asignada a un procesador particular Algunos de los procesadores pueden quedar ociosos cuando por ejemplo la hebra que corre ahí se bloquea por algún motivo  no existe multiprogramación de procesadores Útil en multiprocesadores masivos o aplicaciones de uso intensivo de CPU

16 procesadores

Scheduling dinámico Número de hebras en un proceso cambia durante la vida del proceso Un posible método es dejar que tanto el SO como la aplicación tomen desiciones de scheduling El SO se preocupa de la asignación de los procesadores y la aplicación se preocupa del scheduling de sus hebras en los procesadores asignados El SO ajusta la carga para mejorar la utilización Asigna procesos a procesadores ociosos Si no hay procesadores ociosos, asigna un procesador que está siendo usado por un proceso que actualmente corre en más de un procesador Si no, el requerimiento se bloquea hasta que un procesador esté disponible

Real-Time Systems Correctness of the system depends not only on the logical result of the computation but also on the time at which the results are produced Tasks or processes attempt to control or react to events that take place in the outside world These events occur in “real time” and tasks must be able to keep up with them

Real-Time Systems Control of laboratory experiments Process control in industrial plants Robotics Air traffic control Telecommunications Military command and control systems

Characteristics of Real-Time Operating Systems Deterministic Operations are performed at fixed, predetermined times or within predetermined time intervals Concerned with how long the operating system delays before acknowledging an interrupt and there is sufficient capacity to handle all the requests within the required time

Characteristics of Real-Time Operating Systems Responsiveness How long, after acknowledgment, it takes the operating system to service the interrupt Includes amount of time to begin execution of the interrupt Includes the amount of time to perform the interrupt Effect of interrupt nesting

Characteristics of Real-Time Operating Systems User control User specifies priority Specify paging What processes must always reside in main memory Disks algorithms to use Rights of processes

Characteristics of Real-Time Operating Systems Reliability Degradation of performance may have catastrophic consequences Fail-soft operation Ability of a system to fail in such a way as to preserve as much capability and data as possible Stability

Features of Real-Time Operating Systems Fast process or thread switch Small size Ability to respond to external interrupts quickly Multitasking with interprocess communication tools such as semaphores, signals, and events

Features of Real-Time Operating Systems Use of special sequential files that can accumulate data at a fast rate Preemptive scheduling base on priority Minimization of intervals during which interrupts are disabled Delay tasks for fixed amount of time Special alarms and timeouts

Scheduling of a Real-Time Process

Scheduling of a Real-Time Process

Real-Time Scheduling Static table-driven Determines at run time when a task begins execution Static priority-driven preemptive Traditional priority-driven scheduler is used Dynamic planning-based Feasibility determined at run time Dynamic best effort No feasibility analysis is performed

Deadline Scheduling Real-time applications are not concerned with speed but with completing tasks

Deadline Scheduling Information used Ready time Starting deadline Completion deadline Processing time Resource requirements Priority Subtask scheduler

Two Tasks

Rate Monotonic Scheduling Assigns priorities to tasks on the basis of their periods Highest-priority task is the one with the shortest period

Periodic Task Timing Diagram

Priority Inversion Can occur in any priority-based preemptive scheduling scheme Occurs when circumstances within the system force a higher priority task to wait for a lower priority task

Unbounded Priority Inversion Duration of a priority inversion depends on unpredictable actions of other unrelated tasks

Priority Inheritance Lower-priority task inherits the priority of any higher priority task pending on a resource they share

Linux Scheduling Scheduling classes SCHED_FIFO: First-in-first-out real-time threads SCHED_RR: Round-robin real-time threads SCHED_OTHER: Other, non-real-time threads Within each class multiple priorities may be used

Non-Real-Time Scheduling Linux 2.6 uses a new scheduler the O(1) scheduler Time to select the appropriate process and assign it to a processor is constant Regardless of the load on the system or number of processors

UNIX SVR4 Scheduling Highest preference to real-time processes Next-highest to kernel-mode processes Lowest preference to other user-mode processes

UNIX SVR4 Scheduling Preemptable static priority scheduler Introduction of a set of 160 priority levels divided into three priority classes Insertion of preemption points

SVR4 Priority Classes

SVR4 Priority Classes Real time (159 – 100) Kernel (99 – 60) Guaranteed to be selected to run before any kernel or time-sharing process Can preempt kernel and user processes Kernel (99 – 60) Guaranteed to be selected to run before any time-sharing process Time-shared (59-0) Lowest-priority

SVR4 Dispatch Queues

Windows Scheduling Priorities organized into two bands or classes Real time Variable Priority-driven preemptive scheduler