PLANIFICACIÓN DE PROCESOS



Documentos relacionados
Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Procesos. Planificación del Procesador.

Sistemas Operativos Tema 6. Planificación de procesos José Miguel Santos Alexis Quesada Francisco Santana

Sistema de proceso por lotes: esquema operativo

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Tema 2. Procesos. 1. Concepto de proceso

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Sistemas Operativos. Curso 2016 Procesos

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Scheduling. Ricardo Corin

TEMA 3: EL NÚCLEO DE UN SISTEMA OPERATIVO

Unidad 2: Gestión de Procesos

Taller de sistemas operativos PLANIFICADOR

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

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

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

Tema 11. Soporte del Sistema Operativo REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS MULTIPROGRAMACIÓN.

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

Unidad II: Administración de Procesos y del procesador

Guía de uso del Cloud Datacenter de acens

Gestión de procesos DEFINICIONES DE PROCESOS

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Sistemas Operativos. Oscar Bedoya

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

Procesos. Bibliografía. Threads y procesos. Definiciones

CÓMO TRABAJA TU SISTEMA OPERATIVO?

Tema 4. Gestión de entrada/salida

Concurrencia. Primitivas IPC con bloqueo


Copyright bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es)

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Planificación de procesos: Algoritmos de planificación

Capítulo 5: Despacho de CPU

TEMA 7. GESTIÓN DE PROCESOS

Novedades en Q-flow 3.02

Práctico de Procesos, Hilos y Deadlock

Examen de Arquitectura de Computadores

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

1 HILOS (THREADS) EN JAVA

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

! " " & '( ) ( (( * (+,-.!(/0"" ) 8-*9:!#;9"<!""#

1. Sistema Operativo Unix

SOLUCION EXAMEN junio 2006

Capitulo V Administración de memoria

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

Capítulo 1 Introducción a la Computación

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

5.- Despacho de CPU. Utilización máxima de CPU con multiprogramación. Ciclo CPU I/O Ejecución de un proceso = ciclo de CPU (ejecución) y espera de I/O

3 Planificación de procesos y procesadores

TEMA 1: VISIÓN GENERAL DE LOS SISTEMAS OPERATIVOS

Quién quiere ganar Taller?

Fundamentos básicos de los Sistemas Operativos

Tema 2: Implementación del núcleo de un Sistema Operativo

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

La Pirámide de Solución de TriActive TRICENTER

Tarea 4.2 Memoria Virtual

Unidad 2: Gestión de Memoria

Tema 6. Gestión de la memoria

Introducción a los Sistemas Operativos

Unidad 1: Conceptos generales de Sistemas Operativos.

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

Requerimientos principales de un sistema operativo

Almacenamiento virtual de sitios web HOSTS VIRTUALES

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

El Planificador de Procesos a través de un Simulador

Asignación de Procesadores

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Gestión de la Configuración

INFORMÁTICA. Matemáticas aplicadas a la Informática

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

SEGURIDAD Y PROTECCION DE FICHEROS

Gestión de proyectos en tiempos de crisis

Sistemas Operativos. Curso 2013 Virtualización

Framework de Simulación de Planificación de Procesos. por Emmanuel Luján

1.2 SISTEMAS DE PRODUCCIÓN

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

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.

Unidad 2: Gestión de Procesos

GESTION OPERATIVA. Niveles de gestión

ADMIRAL MARKETS AS. Normas de Ejecución Óptima. medida en que ha actuado de acuerdo con las correspondientes instrucciones del cliente.

Sistemas Operativos I

4. Programación Paralela

Capítulo IV. INTERBLOQUEO E INANICIÓN

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

Introducción. Sistemas Operativos. Pedro Chávez Lugo 23 de marzo de 2010

Capítulo 12: Indexación y asociación

<Generador de exámenes> Visión preliminar

Adelacu Ltda. Fono Graballo+ Agosto de Graballo+ - Descripción funcional - 1 -

Transcripción:

PLANIFICACIÓN DE PROCESOS (Scheduling) 1

Introducción: Scheduling Estados de un proceso Creado Memoria Principal Ejecución Terminado Espera E/S Listo Fin espera E/S Bloqueado Memoria Virtual Listo y suspendido Reactivación / Suspensión Bloqueado y suspendido suspendido = swapeado 2

Introducción: Scheduling Conjunto de políticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de ejecutar los procesos Es el concepto central para los sistemas operativos multitarea En español: planificación El módulo del sistema operativo que lleva a cabo la planificación se denomina scheduler o planificador Permitir la ejecución simultánea de muchos más procesos que recursos de cómputo disponibles Consiste en la definición de cual proceso se ejecuta en cada momento y durante cuanto tiempo Seleccionar uno o más procesos de estado LISTO y ejecutarlos Un scheduling óptimo debería dar - máxima respuesta a los procesos interactivos - máximo throughput para procesos batch 3

Objetivos Diferentes formas de scheduling persiguen distintos objetivos: - Utilización de la CPU mantener la(s) CPU(s) en su máximo nivel de uso - Máximo Throughput número de procesos finalizados por unidad de tiempo - Mínimo Turnaround tiempo total en que un proceso se presenta y finaliza - Mínimo Tiempo de Espera tiempo total en que un proceso espera en LISTO - Máximo Tiempo de Respuesta tiempo en que una solicitud de ejecución del proceso se presenta y la primer respuesta producida (procesos interactivos) - Equidad: Repartir las CPUs iguales cantidades de tiempo para cada proceso - Cumplimiento con deadlines - Prevenir postergación indefinida Es fundamental el contexto: batch processing, interactive, real time 4

Tipos de planificación Preemptive (apropiativo) - Puede quitarse el procesador al proceso actual - Importante (necesaria) para procesos interactivos - Si un proceso se ejecuta por más de un tiempo predefinido, es suspendido - Requiere un clock interrupt para marcar los intervalos de tiempo con el fin de que el scheduler recupere el control de la CPU Non-Preemptive (no apropiativo, cooperativo) - Los procesos se ejecutan hasta su finalización o hasta que voluntariamente (por bloqueo esperando E/S) entrega el control de la CPU - Problema: Procesos poco importantes pueden bloquear a los importantes 5

El reloj de interrupciones Para que se ejecuten las actividades de planificación el sistema operativo debe apoderarse de la CPU periódicamente El sistema operativo gestiona un reloj de interrupciones que genera interrupciones cada cierto lapso de tiempo El reloj de interrupciones asegura que ningún proceso de usuario monopolice la CPU No es el reloj de la máquina o reloj hardware El reloj de interrupciones opera a una frecuencia mucho menor 6

Niveles de planificación Planificación a corto plazo o de la CPU Dispatcher programa que asigna la CPU a uno de los procesos de LISTO siguiendo un algoritmo determinado El dispatcher conmuta el procesador entre dos procesos mediante un cambio de contexto El dispatcher se activa cuando: - el proceso ejecutándose termina o no puede continuar haciéndolo - el proceso en ejecución agota su quantum de tiempo asignado El dispatcher es un proceso de sistema, que para su ejecución obviamente emplea la CPU Se asignan prioridades a los procesos 7

Niveles de planificación Planificación a medio plazo (Middle Term Scheduler) También conocido como planificador de swapping Sólo un número finito puede estar en memoria en cada momento Puede ocurrir que todos o un gran número de procesos se encuentren bloqueados Los procesos con posibilidad de ejecutarse deberían estar en memoria, mientras que los otros en memoria secundaria (swap space, generalmente el disco) El planificador o scheduler a medio plazo es el que transiciona los procesos de memoria principal a memoria secundaria Transiciona procesos de memoria a swap space (swap-out) a los procesos bloqueados y ubicando en memoria (swap-in) aquellos que se encuentran bloqueados sólo por no disponer de memoria El swapping genera sobrecarga en el sistema y generalmente se realiza cuando existe faltante de recursos (RAM) 8

Niveles de planificación Planificación a largo plazo (Long Term Scheduler) Conocido como scheduler de admisión Actúa cuando se crean los procesos Decide que procesos serán admitidos en la cola de procesos LISTO Controla el grado de multiprogramación en los sistemas multitasking regulando la cantidad máxima de procesos ejecutándose concurrentemente en cada momento Se encarga de ingresar y finalizar a los procesos 9

Algoritmos de planificación Simplificando, un proceso puede considerarse como una serie de ciclos de ejecución en CPU y tiempos de espera por E/S Los procesos alternan entre estos dos estadíos Proceso (ráfagas variables): Ráfaga de CPU Ráfaga E/S Ráfaga de CPU Ráfaga E/S Ráfaga de CPU... Para estudiar los algoritmos haremos algunas suposiciones en aras de la simplicidad de los procesos - No hay cambios de contexto - La CPU empleada por el S.O. es despreciable - Los procesos sólo consisten en ráfagas de CPU - Métrica: Tiempo de Espera promedio 5, 4, 6, 5 Promedio=5, Varianza=0,5 1, 8, 7, 4 Promedio=5, Varianza=7,5 10

First-Come First-Serve (FCFS) Servicio por orden de llegada Se implementa con una cola FIFO El tiempo de espera promedio suele ser largo Proceso Tiempo (ms) P1 24 P2 3 P3 6 Orden de llegada T. Espera Promedio P1, P2, P3 27 ms 0 24 P1 P2 P2, P3, P1 4 ms 0 3 9 P2 P3 P1 Pros & cons - Simple. Fácil de entender y programar - Inútil para ambientes interactivos 27 33 P3 33 11

Shortest Job First (SJF) También es non-preemptive Se ejecutan los procesos en orden ascendente según el tiempo de ejecución de cada uno Se asigna la CPU al proceso más corto, en caso de empate se usa FCFS Es óptimo con respecto al tiempo de espera promedio mínimo para un conjunto de procesos Apropiado para procesos batch donde los tiempos de ejecución se conocen de antemano Ofrece un límite teórico (para el tiempo de espera promedio) frente al cual pueden compararse otros algoritmos 12

Round Robin Algoritmo Preemptive, apto para procesos interactivos Algoritmo simple, justo y ampliamente usado A cada proceso se le asigna un intervalo de tiempo llamado quantum Si un proceso continúa su ejecución superando su quantum, es preempted y la CPU es dada a otro proceso Si un proceso se bloquea o finaliza ante de que expire el quantum, la CPU se re-asigna en ese momento Cuando un proceso usa todo su quantum se lo coloca al final de la lista de procesos listos suposición: todos los procesos tienen la misma importancia 13

Round Robin quantum = X ms, X? El cambio de contexto consume tiempo, supongamos 5 ms (1000ms = 1 segundo) Si quantum = 20 ms 25% de CPU para el sistema Si quantum = 500 ms 1% de CPU para el sistema 1er usuario espera 500 ms 2do usuario espera 1000 ms 3er usuario espera 1500 ms... 9no usuario espera 4500 ms 10mo usuario espera 5000 ms 5 segundos!!! Un valor aceptado es 100 ms En muchos sistemas operativos es variable 14

Algoritmo basado en prioridades A cada proceso en el sistema se le asigna un entero basándose en algún criterio Generalmente, un valor numérico bajo indica alta prioridad Se favorece a los procesos de alta prioridad al momento de asignar la CPU No apunta a reducir el tiempo de espera promedio general Los procesos importantes serán atendidos sin caer en retardos innecesarios Las prioridades pueden ser estáticas o dinámicas 15

Prioridades estáticas vs dinámicas Prioridades estáticas - La prioridad asignada a un proceso no cambia mientras existe - Simple de implementar (similar a asignar un PID) - No sobrecarga al sistema - Problema: Starvation, un proceso de baja prioridad se puede ver perjudicado http://en.wikipedia.org/wiki/resource_starvation Prioridades dinámicas - La prioridad cambia durante la ejecución del proceso - Priority aging: aumentar la prioridad de los procesos que esperan mucho tiempo http://en.wikipedia.org/wiki/aging_%28scheduling%29 16

Caso Solaris 10 Kernel thread model kernel threads Es lo que es planificado/ejecutado en un procesador user threads Hilo de ejecución de un proceso de usuario process El objeto que representa el entorno de ejecución de un programa lightweight process (lwp) Contexto de ejecución para un thread de usuario. Asocia un user thread con un kernel thread. 17

Caso Solaris 10 18

Caso Solaris 10 El kernel de Solaris es fully preemptible. Todos los threads (incluyendo los que soportan las actividades del kernel) pueden ser interrumpidos para dar lugar a un thread de mayor prioridad Todo proceso de usuario es controlado por una clase de scheduling Cada clase de scheduling asigna una prioridad a los procesos que administra Las clases conforman un rango global de prioridades y determinan el orden de ejeución de los procesos Process Scheduling Class Solaris 10 reconoce 170 prioridades diferentes (0-169) Estas prioridades de distribuyen en intervalos que corresponden a las distintas clases de scheduling. 19

Clases de Scheduling TS (Timeshare) - Clase por defecto para los procesos de usuario y sus kernel threads asociados - Ajusta las prioridades en el tiempo - Los procesos aquí usan time-slicing - Rango de prioridades: 0-59 IA (Interactive) - Similar a TS que prioriza a los procesos activos en ambiente gráfico. - Rango: 0-59 SYS (System) - Empleada para planificar los kernel threads - No se emplea time-slicing, los procesos inician y se terminan o bloquean - Prioridades fijas - sched, pageout, fsflush - Rango de prioridades: 60-99 RT (Real Time) - Los procesos de esta clase tienen la máxima prioridad, excepto las threads de interrupciones - Time-slicing - Quantum fijo - Rango: 100-159 FX (Fixed Priority) - Los procesos de esta clase tienen prioridades fijas - Rango: 0-59 20

Caso Solaris 10- Comandos La clase RT no se carga por defecto 169 160 159 Interrupt Thread Priorities 9 0 59 109 100 99 60 59 Interrupt Thread Priorities SYS 9 0 39 0 59 100 99 60 59 RT SYS 0 39 0 59 TS / IA TS / IA 0 0 0 0 Sin clase RT habilitada Con clase RT habilitada 21

Caso Solaris 10- Comandos dispadmin - Permite inspeccionar y cambiar los parámetros de planificación para las clases TS, FX, FSS (Fair Share Scheduler) y RT. - Mostar los parámetros configurados de una clase de scheduling - Mostrar y cambiar la clase de scheduling por defecto # dispadmin l # dispadmin d # dispadmin d TS # dispadmin d # cat /etc/dispadmin.conf 22

Tabla de planificación Comando # dispadmin c TS g r 1000 (quantums en ms) Cabeceras de la tabla ts_quantum: quantum asignado por defecto al proceso según su prioridad ts_tqexp: prioridad asignada al proceso cuando consume todo su quantum ts_slpret: prioridad asignada a un proceso que se bloquea antes de consumir su quantum ts_maxwait: si el proceso no recibe CPU luego de un intervalo de tiempo ts_maxwait, su prioridad es elevada a ts_lwait PRIORITY LEVEL: indica el nivel de prioridad de estos parámetros. 23

Caso Solaris 10- Comandos priocntl - Administra los parámetros de scheduling para los procesos. - Lista las clases de scheduling cargadas - Muestra los parámetros de scheduling de un proceso - Asigna una clase de scheduling a un nuevo proceso 24