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

Microsoft solution framework (msf)
Microsoft solution framework (msf)Microsoft solution framework (msf)
Microsoft solution framework (msf)
kalencl
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
Kernel TLV
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
nenyta08
 
Microsoft solution framework_(msf)_expo
Microsoft solution framework_(msf)_expoMicrosoft solution framework_(msf)_expo
Microsoft solution framework_(msf)_expo
urumisama
 

La actualidad más candente (20)

Microsoft solution framework (msf)
Microsoft solution framework (msf)Microsoft solution framework (msf)
Microsoft solution framework (msf)
 
Deadlock
DeadlockDeadlock
Deadlock
 
Chipset en el mercado
Chipset en el mercadoChipset en el mercado
Chipset en el mercado
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de InstruccionesArquitectura de Computadores Cap VI:Repertorio de Instrucciones
Arquitectura de Computadores Cap VI:Repertorio de Instrucciones
 
5 Process Scheduling
5 Process Scheduling5 Process Scheduling
5 Process Scheduling
 
Clase 1- Fundamentos de programacion en Phyton.pptx
Clase 1- Fundamentos de programacion en Phyton.pptxClase 1- Fundamentos de programacion en Phyton.pptx
Clase 1- Fundamentos de programacion en Phyton.pptx
 
Direccionamiento
DireccionamientoDireccionamiento
Direccionamiento
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Diagrama de 7 estados
Diagrama de 7 estadosDiagrama de 7 estados
Diagrama de 7 estados
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPU
 
Microsoft solution framework_(msf)_expo
Microsoft solution framework_(msf)_expoMicrosoft solution framework_(msf)_expo
Microsoft solution framework_(msf)_expo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
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
 

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)
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Windows
WindowsWindows
Windows
 
Traduccion
TraduccionTraduccion
Traduccion
 
Sistema computacional (arquitecturas y memorias)
Sistema computacional (arquitecturas y memorias)Sistema computacional (arquitecturas y memorias)
Sistema computacional (arquitecturas y memorias)
 

Último

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
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
 

Último (20)

Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
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
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
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
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
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.
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
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
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
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
 
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
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 

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