SlideShare una empresa de Scribd logo
1 de 37
PROCESOS E HILOS
  Juan Rafael Álvarez Correa
    jalvarez@debian.org




                               1
CAPITULOS

■   0 – Arquitectura del computador
■   1 – Introducción a los sistemas operativos
■   2 – Procesos e hilos
■   3 – Comunicación, concurrencia y bloqueos
■   4 – Gestión de memoria
■   5 – Entrada y salida
■   6 – Gestión de archivos y directorios
■   7 – Seguridad y protección
■   8 – Sistemas distribuidos
                                                 2
PROCESO
■   Programa en ejecución
       Espacio de direcciones (Direcciones contiguas)
         ➔   Acceso uniforme a recurso y control de acceso
       Instrucciones (programa)
         ➔   Define el comportamiento del programa
       Datos
         ➔   Variables estaticas y automaticas
       Recursos
         ➔   Se le asignan recursos CPU y memoria y se pueden
             solicitar explicitamente (archivos)
       Hilos
         ➔   Flujos de ejecución del programa                   3
HILO

■   Si el proceso solo tiene un hilo
       Es llamado un proceso clasico y su hilo es
        llamado hilo base
■   Si el proceso puede tener multiples hilos
       Es llamado un proceso moderno
       A cada hilo de un proceso moderno se le llama
        un proceso liviano
       Por cada hilo existe una pila diferente, pues
        cada hilo puede ejecutarse a su propio ritmo
       La unidad de planificación es el hilo o el proceso
        liviano y no el proceso moderno que lo contiene
                                                         4
MAQUINA ABSTRACTA

■   Simulación de una maquina real, mediante
    la multiplexación de memoria y CPU
       Procesos clasicos
         ➔   Una motor de ejecución para cada proceso clasico
       Procesos modernos
         ➔   Una motor de ejecución para cada proceso liviano
■   Interfaz de maquina abstracta
       Instrucciones de la CPU de usuario
       Llamadas al sistema


                                                                5
GESTION DE PROCESOS
■   Creación y terminación de hilos y procesos
■   Sincronización entre procesos/hilos
■   Reserva de recursos (solo CPU)
■   Cooperación con:
       Gestor de memoria
         ➔   Implementar espacio de direcciones
       Gestor de I/O
         ➔   Dispositivos con correlación a memoria
         ➔   Gestion de interrupciones
              -   Reloj para expropiar
              -   Dispositivos para cambios de estado en los procesos
                                                                        6
PROCESO HARDWARE Y TRAZA
■   Es el flujo simple de ejecución que realiza
    directamente la CPU
       BIOS
       Cargador (Etapa1 y Etapa2)
       Nucleo
         ➔   Gestor de procesos
         ➔   Gestor de memoria
         ➔   Gestor de dispositivos
         ➔   Gestor de archivos
       Proceso inicial (init -generalmente PID=0-)
         ➔   SYSV y BSD
                                                      7
CAMBIO DE CONTEXTO

■   Para multiplexar la CPU (proporcionar
    varias maquinas abstractas)
       Se debe conmutar entre procesos
        periodicamente
       La conmutación implica almacenar el estado del
        procesador, correspondiente al proceso ...
        actual (contexto) y ubicar el estado de otro
        proceso ... en el procesador
       ¿Como se logra esto?
         ➔   El reloj emite una interrupción a intervalos regulares
             para propiciar la invocación en el gestor de procesos
             del planificador: Componente responsable de
             seleccionar un nuevo proceso para ejecutar
                                                                      8
DESCRIPTOR DE PROCESO
■   Cuando el sistema operativo crea un
    proceso:
       Se crea un espacio de direcciones para el
        proceso
       Estructuras de datos del sistema operativo para
        representar el proceso ...
         ➔   Descriptor de proceso ...
■   Cuando se termina un proceso estas
    estructuras se eliminan
■   Anti-Ing de Software: El gestor de
    dispositivos accede directamente la
    estructura                                            9
DESCRIPTOR DE PROCESO
■   Identificador del proceso
■   Relaciones (padre, hijos)
■   Propietario
       Usuario dueño del proceso
■   Espacio de direcciones
       Comun a todos los hilos
■   Recursos
       Archivos abiertos
■   Referencias a los hilo(s)

                                      10
DESCRIPTOR DE HILO

■   Identificador del hilo
■   Relaciones
■   Estado
       El estado es diferente para cada hilo
■   Estadisticas de ejecución
■   Punteros de pila
       Cada hilo tiene una pila separada
■   Recursos especificos
■   Contexto
                                                11
CONTEXTO

■   Contexto
       Estado de la CPU
■   Cambio de contexto
       Almacenar y restaurar el contexto
■   Tipos
       Cambio de contexto en interrupciones
         ➔   Por hardware y llamadas al sistema
         ➔   Cambio entre modo usuario y modo nucleo
       Cambio de contexto entre procesos
         ➔   Cuando un nuevo proceso es planificado
                                                       12
MULTIHILO

■   ¿Cuando una aplicación debe estar
    programada con multiples hilos?
       ¿Existen en una misma aplicación operaciones
        que no dependan de otras operaciones?
         ➔   Imprimir un documento, procesar click de mouse
       ¿Existen pocos recursos que deban ser
        compartidos por los hilos?
       ¿Esta preparado para los problemas de
        concurrencia?
       ¿La aplicación puede ser dividida en varias
        responsabilidades?
                                                              13
HILOS A NIVEL DE USUARIO

■   Caracteristicas
       La abstracción de hilo la realiza la aplicación
       El nucleo desconoce la existencia de hilos
       El cambio de contexto se hace en la aplicación
       La planificación la realiza la aplicación
■   Desventajas
       Un hilo puede monopolizar el procesador
       La aplicación no usa la potencia de SMP
       El bloqueo de un hilo, bloquea todos los hilos

                                                          14
GESTORES DE RECURSOS
■   Recurso
       Componentes de la maquina abstracta que son
        necesarios para un proceso
       Cualquier cosa que potencialmente detiene un
        proceso de ejecución
■   Comportamiento comun de los diferentes
    componentes del sistema operativo
       Gestor de dispositivos (recurso = dispositivo)
       Gestor de memoria (recurso = memoria)
       Gestor de procesos (recurso = procesador)
       Gestor de archivos (recurso = archivo)
                                                         15
GESTORES DE RECURSO
■   Mecanismo
       Forma en la que se accede al gestor de recursos
        para la reserva o liberación de los mismos
         ➔   Funciones envolventes
         ➔   ABI para la invocación de trap
         ➔   Interrupción de reloj + ISR
■   Politica
       Comportamiento especifico del gestor de
        recurso
         ➔   Implementación especifica en la reserva o liberación
         ➔   A quien se asigna? Cuando se asigna?
                                                                    16
GESTORES DE RECURSOS
■   Reserva de recursos
       El proceso liviano/proceso clasico (parte activa
        del proceso) es responsible de reservar
        explicitamente los recursos
         ➔   Recurso = no disponible, el proceso ... = “espera”
         ➔   Recurso = disponible, el proceso ... = continua
■   Tipos
       Recursos reutilizables
         ➔   Se pueden reservar y devolver (CPU, memoria)
       Recursos consumibles
         ➔   Una vez reservados no se devuelven (datos de
             entrada)                                             17
ESTADOS

■   Diagrama de estados
       Representa los diferentes estados en los que un
        hilo puede estar
       Las transiciones posibles de un estado a otro en
        el sistema operativo




                                                       18
MODELO DE 3 ESTADOS


                    Solicitud



    Hecho     En ejecución



        Solicitud              Ceder
                        Planifica


Bloqueado                              Listo   Inicio




                                                        19
MODELO DE 5 ESTADOS
■   Modelo que permite el control de un hilo
    por parte de otro hilo (controlador)
■   Se introducen los estados *suspendidos
    para reflejar la no autorización por parte del
    controlador




                                                 20
PLANIFICADOR
■   Parte del gestor de procesos que se
    encarga de multiplexar la CPU en el tiempo
■   Cuando puede ser invocado
       Un hilo completa su función
         ➔   exit
       Solicitud de un recurso no disponible
         ➔   read (de un socket al cual no llegan datos aun)
       Abandono voluntario de la CPU
         ➔   pthread_yield o sched_yield
       Desalojo involuntario de la CPU
         ➔   ISR de la interrupción de reloj (PIT)
                                                               21
PARTES DEL PLANIFICADOR
■   Encolador
       Ubica en la lista de listos un hilo que ha sido
        desalojado del procesador.
■   Conmutador de contexto
       Almacena el contexto del hilo a ser desalojado
        en el descriptor del hilo
■   Despachador o distribuidor
       Selecciona un hilo de la lista de listos para ser
        ejecutado
       Restaura en el procesador el contexto
        almacenado en el descriptor del hilo
        seleccionado                                        22
CAMBIO DE CONTEXTO

■   Si el procesador no soporta conjuntos de
    registros, hay cambios de contexto ...
       Cuando ocurre una interrupción
       Cuando el procesador conmuta de un proceso a
        otro
■   Si el procesador soporta conjuntos de
    registros, se asignan conjuntos diferentes a
    modo 0 y 1, y hay cambios de contexto ...
       Cuando el procesador conmuta de un proceso a
        otro

                                                   23
CAMBIO DE CONTEXTO
■   Costo de cambio de contexto (sin cache)
       rg registros generales
       re registros de estado
       i operaciones de almacenamiento por registro
       t ciclos de reloj para almacenar en memoria
       (rg + re) i * c
■   Ejemplo
       (32 + 8) 1 * 100c = 4000c * 2 = 8000c



                                                       24
CONCEPTOS DE PLANIFICACIÓN

■   Prioridad
       Orden segun el cual un hilo puede ser puesto en
        ejecución estando en estado de listo
■   Franja de tiempo (cuanto de tiempo)
       Cantidad de tiempo entre interrupciones del
        temporizador
■   Inaniciación
       Situación en la que un hilo puede no planificarse
        debido a caracteristicas de la politica


                                                        25
MODELO DE PLANIFICACIÓN
■   S(Hi)={ejecución, listo, bloqueado}
■   Tiempo de servicio: Ts(Hi)
       Tiempo transcurrido total de un hilo en estado
        de ejecución
       Cantidad de tiempo que el hilo ha consumido de
        la CPU para completar su tarea
■   Tiempo de espera: Te(Hi)
       Tiempo transcurrido entre la primera entrada al
        estado listo hasta antes de estar por primera
        vez en ejecución
       Tiempo que se demora un proceso en recibir su
        primera unidad de servicio del procesador
                                                         26
MODELO DE PLANIFICACIÓN
■   Tiempo de vuelta: Tv(Hi)
       Tiempo transcurrido entre la primera entrada al
        estado listo hasta la salida definitiva del estado
        ejecución
       Tiempo total en completar la ejecución del hilo
        una vez esta listo para ejecutarse
■   Variables a optimizar
       En sistemas de procesamiento por lotes se debe
        optimizar el tiempo medio de vuelta
       En sistemas de tiempo compartido se debe
        optimizar el “tiempo de espera” medio,
        interperpretado como el tiempo en estado listo.
                                                          27
MECANISMOS Y POLITICAS
■   Politica de planificación
       Cuando es el momento de desalojar el hilo del
        procesador
       Cual es el hilo elegible para ocupar el
        procesador
■   Mecanismo de planificación
       Como se determina el momento de multiplexar
        el procesador
         ➔   Entrega voluntaria (ceder) e involuntaria
             (interrupción periodica) del procesador
       Como se desalojara y asignara un hilo del
        procesador
         ➔   Detalles de la conmutación de contexto (SAVE_ALL)   28
MECANISMOS Y POLITICAS

■   Politicas
       No expropiativa
         ➔   Basado en la entrega voluntaria
       Expropiativa
         ➔   Basado en la entrega involuntaria
■   Mecanismos
       Entrega voluntaria de la CPU
         ➔   Instrucción ceder (sched_yield, pthread_yield)
       Entrega involuntaria de la CPU
         ➔   Interrupción periodica (Interrupción periodica)
                                                               29
POLITICAS DE PLANIFICACIÓN
■   Criterios utilizados para identificar los hilos
    a ser ejecutados
■   No expropiativas
       FCFS: First Come First Served (aka FIFO)
       SJB:    Shortest Job Next
       Planificación por prioridades
       Planificación por tiempo limite
■   Expropiativas
       RR:     Round Robin
       MFQ:    Multilevel Freedback Queue
       SRT:    Shortest Remaining Time               30
FCFS: FIRST COME FIRST SERVED
■   + prioridad = + viejo en la lista de listos
■   Implementación 1
         ➔   Encolador: Estampa tiempo de llegada
         ➔   Distribuidor: Selecciona hilo mas viejo
■   Implementación 2 (con estructura FIFO)
         ➔   Encolador: Ubica hilo en final de cola
         ➔   Distribuidor: Retira hilo de cabeza de la cola
■   Ventaja
       Facil de implementar
■   Desventaja
       No considera el Ts de un Hi                           31
SJN: SHORTEST JOB NEXT
■   + prioridad = – tiempo de servicio
■   Ventajas
       Minimiza Te
■   Desventajas
       Hi con Ts grande y muchos Hj con Ts pequeños,
        hay alta probabilidad de inanición de Hi
       ¿Como determinar el tiempo de servicio de
        forma anticipada?




                                                    32
PLANIFICACIÓN POR PRIORIDADES
■   + prioridad = asignada externamente
       Criterios arbitrarios
         ➔   Usuarios con mas privilegios
         ➔   Tareas mas criticas desde la perspectiva del usuario
■   Tipos de prioridad
       Estatica
         ➔   Solo se puede asignar al inicio del hilo
       Dinamica
         ➔   Puede cambiar durante la ejecución del hilo
         ➔   Combinada con SJN soluciona el problema de la
             inanicion, si mas prioridad si mas tiempo sin servicio.
                                                                    33
PLANIFICACIÓN X TIEMPO LIMITE
■   Debe garantizarse Tv < Tl (tiempo limite)
■   El hilo no se acepta en el estado de listo si
    el planificador no puede garantizar este
    tiempo limite
■   Sistemas de hard real time




                                                    34
EXPROPIATIVAS
■   Mas generales que las no expropiativas
       Politica no apropiativa = Politica apropiativa con
        franja de tiempo igual al tiempo de servicio del
        hilo actual
■   REVISAR ESTA TRANSPARENCIA




                                                         35
ROUND ROBIN
■   Distribución equitativa de tiempo entre
    todos los hilos que solicitan el procesador
■   Implementada generalmente con un cola
       Cuando un hilo es expropiado del procesador
        este va al final de la cola
       Cuando un hilo es creado este va al final de la
        cola
       Cuando un hilo debe ser seleccionado, se
        selecciona el que se encuentra al inicio de la
        cola



                                                          36
PRIORIDAD EXT + ROUND ROBIN
■   La prioridad externa se evalua primero
    como primer criterio de selección
■   Si la prioridad es la misma el criterio de
    selección es la posición en la cola




                                                 37

Más contenido relacionado

La actualidad más candente

El ciclo de instruccion
El ciclo de instruccionEl ciclo de instruccion
El ciclo de instruccion
ERICA2c3
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
Juan Anaya
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOS
Mario Martinez
 
Trabajo memoria virtual.
Trabajo memoria virtual.Trabajo memoria virtual.
Trabajo memoria virtual.
velazqes
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
ALASBLANKS
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
Andy Lopez
 

La actualidad más candente (20)

El ciclo de instruccion
El ciclo de instruccionEl ciclo de instruccion
El ciclo de instruccion
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOS
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Trabajo memoria virtual.
Trabajo memoria virtual.Trabajo memoria virtual.
Trabajo memoria virtual.
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
ADMINISTRACION DE MEMORIA
ADMINISTRACION DE MEMORIAADMINISTRACION DE MEMORIA
ADMINISTRACION DE MEMORIA
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Interrupciones bios y irq
Interrupciones bios y irqInterrupciones bios y irq
Interrupciones bios y irq
 
Diagrama de 7 estados
Diagrama de 7 estadosDiagrama de 7 estados
Diagrama de 7 estados
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Procesos
ProcesosProcesos
Procesos
 
Gestion de procesos Android
Gestion de procesos AndroidGestion de procesos Android
Gestion de procesos Android
 

Similar a Curso de Sistemas Operativos - Unidad Procesos e Hilos

Curso Sistemas Operativos - Unidad Introducción a OS
Curso Sistemas Operativos - Unidad Introducción a OSCurso Sistemas Operativos - Unidad Introducción a OS
Curso Sistemas Operativos - Unidad Introducción a OS
Juan Rafael Alvarez Correa
 
Funcionamiento del ordenador
Funcionamiento del ordenadorFuncionamiento del ordenador
Funcionamiento del ordenador
Guillem Esteve
 
Organizacion del computador
Organizacion del computadorOrganizacion del computador
Organizacion del computador
viviana111
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
G Hoyos A
 
Traduccion
TraduccionTraduccion
Traduccion
mela666
 

Similar a Curso de Sistemas Operativos - Unidad Procesos e Hilos (20)

Curso Sistemas Operativos - Unidad Introducción a OS
Curso Sistemas Operativos - Unidad Introducción a OSCurso Sistemas Operativos - Unidad Introducción a OS
Curso Sistemas Operativos - Unidad Introducción a OS
 
Funcionamiento del ordenador
Funcionamiento del ordenadorFuncionamiento del ordenador
Funcionamiento del ordenador
 
Organizacion del computador
Organizacion del computadorOrganizacion del computador
Organizacion del computador
 
Administración y Comando Básicos
Administración y Comando BásicosAdministración y Comando Básicos
Administración y Comando Básicos
 
Presentacion
PresentacionPresentacion
Presentacion
 
so-01-3-Estructura del Sistema Operativo.pptx
so-01-3-Estructura del Sistema Operativo.pptxso-01-3-Estructura del Sistema Operativo.pptx
so-01-3-Estructura del Sistema Operativo.pptx
 
Tema 3. Arquitectura y diseño de seguridad
Tema 3. Arquitectura y diseño de seguridadTema 3. Arquitectura y diseño de seguridad
Tema 3. Arquitectura y diseño de seguridad
 
Sistemas operativos software
Sistemas operativos softwareSistemas operativos software
Sistemas operativos software
 
SEMANA01a-Arquitectura-de-Computadoras.pptx
SEMANA01a-Arquitectura-de-Computadoras.pptxSEMANA01a-Arquitectura-de-Computadoras.pptx
SEMANA01a-Arquitectura-de-Computadoras.pptx
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
 
Conceptos generales (2)
Conceptos generales (2)Conceptos generales (2)
Conceptos generales (2)
 
Windows
WindowsWindows
Windows
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Traduccion
TraduccionTraduccion
Traduccion
 
Sistema computacional (arquitecturas y memorias)
Sistema computacional (arquitecturas y memorias)Sistema computacional (arquitecturas y memorias)
Sistema computacional (arquitecturas y memorias)
 

Último

5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 

Último (20)

PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

Curso de Sistemas Operativos - Unidad Procesos e Hilos

  • 1. PROCESOS E HILOS Juan Rafael Álvarez Correa jalvarez@debian.org 1
  • 2. CAPITULOS ■ 0 – Arquitectura del computador ■ 1 – Introducción a los sistemas operativos ■ 2 – Procesos e hilos ■ 3 – Comunicación, concurrencia y bloqueos ■ 4 – Gestión de memoria ■ 5 – Entrada y salida ■ 6 – Gestión de archivos y directorios ■ 7 – Seguridad y protección ■ 8 – Sistemas distribuidos 2
  • 3. PROCESO ■ Programa en ejecución  Espacio de direcciones (Direcciones contiguas) ➔ Acceso uniforme a recurso y control de acceso  Instrucciones (programa) ➔ Define el comportamiento del programa  Datos ➔ Variables estaticas y automaticas  Recursos ➔ Se le asignan recursos CPU y memoria y se pueden solicitar explicitamente (archivos)  Hilos ➔ Flujos de ejecución del programa 3
  • 4. HILO ■ Si el proceso solo tiene un hilo  Es llamado un proceso clasico y su hilo es llamado hilo base ■ Si el proceso puede tener multiples hilos  Es llamado un proceso moderno  A cada hilo de un proceso moderno se le llama un proceso liviano  Por cada hilo existe una pila diferente, pues cada hilo puede ejecutarse a su propio ritmo  La unidad de planificación es el hilo o el proceso liviano y no el proceso moderno que lo contiene 4
  • 5. MAQUINA ABSTRACTA ■ Simulación de una maquina real, mediante la multiplexación de memoria y CPU  Procesos clasicos ➔ Una motor de ejecución para cada proceso clasico  Procesos modernos ➔ Una motor de ejecución para cada proceso liviano ■ Interfaz de maquina abstracta  Instrucciones de la CPU de usuario  Llamadas al sistema 5
  • 6. GESTION DE PROCESOS ■ Creación y terminación de hilos y procesos ■ Sincronización entre procesos/hilos ■ Reserva de recursos (solo CPU) ■ Cooperación con:  Gestor de memoria ➔ Implementar espacio de direcciones  Gestor de I/O ➔ Dispositivos con correlación a memoria ➔ Gestion de interrupciones - Reloj para expropiar - Dispositivos para cambios de estado en los procesos 6
  • 7. PROCESO HARDWARE Y TRAZA ■ Es el flujo simple de ejecución que realiza directamente la CPU  BIOS  Cargador (Etapa1 y Etapa2)  Nucleo ➔ Gestor de procesos ➔ Gestor de memoria ➔ Gestor de dispositivos ➔ Gestor de archivos  Proceso inicial (init -generalmente PID=0-) ➔ SYSV y BSD 7
  • 8. CAMBIO DE CONTEXTO ■ Para multiplexar la CPU (proporcionar varias maquinas abstractas)  Se debe conmutar entre procesos periodicamente  La conmutación implica almacenar el estado del procesador, correspondiente al proceso ... actual (contexto) y ubicar el estado de otro proceso ... en el procesador  ¿Como se logra esto? ➔ El reloj emite una interrupción a intervalos regulares para propiciar la invocación en el gestor de procesos del planificador: Componente responsable de seleccionar un nuevo proceso para ejecutar 8
  • 9. DESCRIPTOR DE PROCESO ■ Cuando el sistema operativo crea un proceso:  Se crea un espacio de direcciones para el proceso  Estructuras de datos del sistema operativo para representar el proceso ... ➔ Descriptor de proceso ... ■ Cuando se termina un proceso estas estructuras se eliminan ■ Anti-Ing de Software: El gestor de dispositivos accede directamente la estructura 9
  • 10. DESCRIPTOR DE PROCESO ■ Identificador del proceso ■ Relaciones (padre, hijos) ■ Propietario  Usuario dueño del proceso ■ Espacio de direcciones  Comun a todos los hilos ■ Recursos  Archivos abiertos ■ Referencias a los hilo(s) 10
  • 11. DESCRIPTOR DE HILO ■ Identificador del hilo ■ Relaciones ■ Estado  El estado es diferente para cada hilo ■ Estadisticas de ejecución ■ Punteros de pila  Cada hilo tiene una pila separada ■ Recursos especificos ■ Contexto 11
  • 12. CONTEXTO ■ Contexto  Estado de la CPU ■ Cambio de contexto  Almacenar y restaurar el contexto ■ Tipos  Cambio de contexto en interrupciones ➔ Por hardware y llamadas al sistema ➔ Cambio entre modo usuario y modo nucleo  Cambio de contexto entre procesos ➔ Cuando un nuevo proceso es planificado 12
  • 13. MULTIHILO ■ ¿Cuando una aplicación debe estar programada con multiples hilos?  ¿Existen en una misma aplicación operaciones que no dependan de otras operaciones? ➔ Imprimir un documento, procesar click de mouse  ¿Existen pocos recursos que deban ser compartidos por los hilos?  ¿Esta preparado para los problemas de concurrencia?  ¿La aplicación puede ser dividida en varias responsabilidades? 13
  • 14. HILOS A NIVEL DE USUARIO ■ Caracteristicas  La abstracción de hilo la realiza la aplicación  El nucleo desconoce la existencia de hilos  El cambio de contexto se hace en la aplicación  La planificación la realiza la aplicación ■ Desventajas  Un hilo puede monopolizar el procesador  La aplicación no usa la potencia de SMP  El bloqueo de un hilo, bloquea todos los hilos 14
  • 15. GESTORES DE RECURSOS ■ Recurso  Componentes de la maquina abstracta que son necesarios para un proceso  Cualquier cosa que potencialmente detiene un proceso de ejecución ■ Comportamiento comun de los diferentes componentes del sistema operativo  Gestor de dispositivos (recurso = dispositivo)  Gestor de memoria (recurso = memoria)  Gestor de procesos (recurso = procesador)  Gestor de archivos (recurso = archivo) 15
  • 16. GESTORES DE RECURSO ■ Mecanismo  Forma en la que se accede al gestor de recursos para la reserva o liberación de los mismos ➔ Funciones envolventes ➔ ABI para la invocación de trap ➔ Interrupción de reloj + ISR ■ Politica  Comportamiento especifico del gestor de recurso ➔ Implementación especifica en la reserva o liberación ➔ A quien se asigna? Cuando se asigna? 16
  • 17. GESTORES DE RECURSOS ■ Reserva de recursos  El proceso liviano/proceso clasico (parte activa del proceso) es responsible de reservar explicitamente los recursos ➔ Recurso = no disponible, el proceso ... = “espera” ➔ Recurso = disponible, el proceso ... = continua ■ Tipos  Recursos reutilizables ➔ Se pueden reservar y devolver (CPU, memoria)  Recursos consumibles ➔ Una vez reservados no se devuelven (datos de entrada) 17
  • 18. ESTADOS ■ Diagrama de estados  Representa los diferentes estados en los que un hilo puede estar  Las transiciones posibles de un estado a otro en el sistema operativo 18
  • 19. MODELO DE 3 ESTADOS Solicitud Hecho En ejecución Solicitud Ceder Planifica Bloqueado Listo Inicio 19
  • 20. MODELO DE 5 ESTADOS ■ Modelo que permite el control de un hilo por parte de otro hilo (controlador) ■ Se introducen los estados *suspendidos para reflejar la no autorización por parte del controlador 20
  • 21. PLANIFICADOR ■ Parte del gestor de procesos que se encarga de multiplexar la CPU en el tiempo ■ Cuando puede ser invocado  Un hilo completa su función ➔ exit  Solicitud de un recurso no disponible ➔ read (de un socket al cual no llegan datos aun)  Abandono voluntario de la CPU ➔ pthread_yield o sched_yield  Desalojo involuntario de la CPU ➔ ISR de la interrupción de reloj (PIT) 21
  • 22. PARTES DEL PLANIFICADOR ■ Encolador  Ubica en la lista de listos un hilo que ha sido desalojado del procesador. ■ Conmutador de contexto  Almacena el contexto del hilo a ser desalojado en el descriptor del hilo ■ Despachador o distribuidor  Selecciona un hilo de la lista de listos para ser ejecutado  Restaura en el procesador el contexto almacenado en el descriptor del hilo seleccionado 22
  • 23. CAMBIO DE CONTEXTO ■ Si el procesador no soporta conjuntos de registros, hay cambios de contexto ...  Cuando ocurre una interrupción  Cuando el procesador conmuta de un proceso a otro ■ Si el procesador soporta conjuntos de registros, se asignan conjuntos diferentes a modo 0 y 1, y hay cambios de contexto ...  Cuando el procesador conmuta de un proceso a otro 23
  • 24. CAMBIO DE CONTEXTO ■ Costo de cambio de contexto (sin cache)  rg registros generales  re registros de estado  i operaciones de almacenamiento por registro  t ciclos de reloj para almacenar en memoria  (rg + re) i * c ■ Ejemplo  (32 + 8) 1 * 100c = 4000c * 2 = 8000c 24
  • 25. CONCEPTOS DE PLANIFICACIÓN ■ Prioridad  Orden segun el cual un hilo puede ser puesto en ejecución estando en estado de listo ■ Franja de tiempo (cuanto de tiempo)  Cantidad de tiempo entre interrupciones del temporizador ■ Inaniciación  Situación en la que un hilo puede no planificarse debido a caracteristicas de la politica 25
  • 26. MODELO DE PLANIFICACIÓN ■ S(Hi)={ejecución, listo, bloqueado} ■ Tiempo de servicio: Ts(Hi)  Tiempo transcurrido total de un hilo en estado de ejecución  Cantidad de tiempo que el hilo ha consumido de la CPU para completar su tarea ■ Tiempo de espera: Te(Hi)  Tiempo transcurrido entre la primera entrada al estado listo hasta antes de estar por primera vez en ejecución  Tiempo que se demora un proceso en recibir su primera unidad de servicio del procesador 26
  • 27. MODELO DE PLANIFICACIÓN ■ Tiempo de vuelta: Tv(Hi)  Tiempo transcurrido entre la primera entrada al estado listo hasta la salida definitiva del estado ejecución  Tiempo total en completar la ejecución del hilo una vez esta listo para ejecutarse ■ Variables a optimizar  En sistemas de procesamiento por lotes se debe optimizar el tiempo medio de vuelta  En sistemas de tiempo compartido se debe optimizar el “tiempo de espera” medio, interperpretado como el tiempo en estado listo. 27
  • 28. MECANISMOS Y POLITICAS ■ Politica de planificación  Cuando es el momento de desalojar el hilo del procesador  Cual es el hilo elegible para ocupar el procesador ■ Mecanismo de planificación  Como se determina el momento de multiplexar el procesador ➔ Entrega voluntaria (ceder) e involuntaria (interrupción periodica) del procesador  Como se desalojara y asignara un hilo del procesador ➔ Detalles de la conmutación de contexto (SAVE_ALL) 28
  • 29. MECANISMOS Y POLITICAS ■ Politicas  No expropiativa ➔ Basado en la entrega voluntaria  Expropiativa ➔ Basado en la entrega involuntaria ■ Mecanismos  Entrega voluntaria de la CPU ➔ Instrucción ceder (sched_yield, pthread_yield)  Entrega involuntaria de la CPU ➔ Interrupción periodica (Interrupción periodica) 29
  • 30. POLITICAS DE PLANIFICACIÓN ■ Criterios utilizados para identificar los hilos a ser ejecutados ■ No expropiativas  FCFS: First Come First Served (aka FIFO)  SJB: Shortest Job Next  Planificación por prioridades  Planificación por tiempo limite ■ Expropiativas  RR: Round Robin  MFQ: Multilevel Freedback Queue  SRT: Shortest Remaining Time 30
  • 31. FCFS: FIRST COME FIRST SERVED ■ + prioridad = + viejo en la lista de listos ■ Implementación 1 ➔ Encolador: Estampa tiempo de llegada ➔ Distribuidor: Selecciona hilo mas viejo ■ Implementación 2 (con estructura FIFO) ➔ Encolador: Ubica hilo en final de cola ➔ Distribuidor: Retira hilo de cabeza de la cola ■ Ventaja  Facil de implementar ■ Desventaja  No considera el Ts de un Hi 31
  • 32. SJN: SHORTEST JOB NEXT ■ + prioridad = – tiempo de servicio ■ Ventajas  Minimiza Te ■ Desventajas  Hi con Ts grande y muchos Hj con Ts pequeños, hay alta probabilidad de inanición de Hi  ¿Como determinar el tiempo de servicio de forma anticipada? 32
  • 33. PLANIFICACIÓN POR PRIORIDADES ■ + prioridad = asignada externamente  Criterios arbitrarios ➔ Usuarios con mas privilegios ➔ Tareas mas criticas desde la perspectiva del usuario ■ Tipos de prioridad  Estatica ➔ Solo se puede asignar al inicio del hilo  Dinamica ➔ Puede cambiar durante la ejecución del hilo ➔ Combinada con SJN soluciona el problema de la inanicion, si mas prioridad si mas tiempo sin servicio. 33
  • 34. PLANIFICACIÓN X TIEMPO LIMITE ■ Debe garantizarse Tv < Tl (tiempo limite) ■ El hilo no se acepta en el estado de listo si el planificador no puede garantizar este tiempo limite ■ Sistemas de hard real time 34
  • 35. EXPROPIATIVAS ■ Mas generales que las no expropiativas  Politica no apropiativa = Politica apropiativa con franja de tiempo igual al tiempo de servicio del hilo actual ■ REVISAR ESTA TRANSPARENCIA 35
  • 36. ROUND ROBIN ■ Distribución equitativa de tiempo entre todos los hilos que solicitan el procesador ■ Implementada generalmente con un cola  Cuando un hilo es expropiado del procesador este va al final de la cola  Cuando un hilo es creado este va al final de la cola  Cuando un hilo debe ser seleccionado, se selecciona el que se encuentra al inicio de la cola 36
  • 37. PRIORIDAD EXT + ROUND ROBIN ■ La prioridad externa se evalua primero como primer criterio de selección ■ Si la prioridad es la misma el criterio de selección es la posición en la cola 37