Administración de procesos: Procesos e hilos

Documentos relacionados
Sistemas Operativos. Procesos

Hilos Secciones Stallings:

Tema 12: El sistema operativo y los procesos

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

Introduccion a Sistemas Operativos. Ej: Linux

ESCUELA DE INGENIERIA Informática Y Sistemas

Procesos Definición y Estados

El kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante.

Tema 2. Administración de procesos

Manipulación de procesos

Introducción a los Sistemas Operativos

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

Procesos y Threads Procesos y Threads. Rendimiento Rendimiento (paralelismo) (paralelismo) Productividad Productividad

Concurrencia de Procesos

MULTIPROGRAMACIÓN. Introducción a al Multitarea

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

Concurrencia y paralelismo

Introducción a los Sistemas Operativos S.O.

Tema 1: Programación Multiproceso. Curso

Hilos. Módulo 4. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de

Programación Concurrente y Paralela. Unidad 1 Introducción

Convivencia Gestión de Procesos

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos

Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada.

Tarea 2. Descripción y Control de Procesos

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Tema 1: Introducción a los Sistemas Operativos

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

Sumario Prólogo Unidad didáctica 1. Introducción a los sistemas operativos Objetivos de la Unidad... 12

Hilos. Hilos. Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos de Sistemas Operativos Hilos en Linux

1.1 Concepto y definición de Sistemas Operativos

Acceso coordinado a recursos compartidos

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

Concurrencia. Primitivas IPC con bloqueo

SISTEMAS OPERATIVOS:

Necesidad de Protección

7. Programación Concurrente

Sistemas Operativos (Parte 2)

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Clases 02 & 03: Revisión de conceptos

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

PROGRAMACIÓN CONCURRENTE

Arquitecturas cliente/servidor

INTRODUCCION A SISTEMAS OPERATIVOS

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010

Sistemas Operativos. Dr. Wenceslao Palma M.

Sistemas Operativos. Introducción. Tema 6

Estructura de los sistemas de cómputo

Planificación multiprocesador. Niveles de granularidad. Niveles de granularidad. Niveles de granularidad. Planificación multiprocesador - SSOO I

Hilos (threads) Realizado por M. Curiel

6. Enumere tres ventajas de los ULT frente a los KLT.

Objetivos de la Planificación. Planificación Monoprocesador. Tipos de Planificación. Tiempo de respuesta Productividad Eficiencia del procesador

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Sistemas Operativos Procesos Descripción y Control

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.

Uso de recursos compartidos

Concurrencia. Concurrencia

Unidad 1: Gestión de Procesos

DISEÑO CURRICULAR ARQUITECTURA DEL COMPUTADOR

Administración del Procesador

Taller de Sistemas Operativos. Procesos 2012

Threads. Hilos - Lightweight process - Procesos ligeros

Sistemas Operativos Distribuidos

Administración de procesos: Ejercicios de sincronización

T E M A 7. Interrupciones

Threads, SMP y Microkernels. Proceso

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Preguntas de autoevaluación tema 1

Cap.2. Kernel Sistemas Operativos - Viña del Mar.

Introducción al Sistema Operativo Unix

Sistemas Operativos. Daniel Rúa Madrid

Pontificia Universidad Católica del Ecuador

Conceptos de Planificación

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Tema 2: Gestión de la CPU

Sistemas informáticos industriales. Sistemas Operativos

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

HP - UX. Qué es HP UX?

Usando el Sistema Operativo

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Fac. de Informática / Escuela Univ. Informática SISTEMAS OPERATIVOS Examen Primer Parcial 5 de mayo de 2007

Sistemas Operativos Ricardo Sanz

Programación Concurrente y distribuida Modelo Concurrente declarativo

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

SISTEMAS OPERATIVOS Arquitectura de computadores

Sistema Operativo. Introducción a los Sistemas Operativos. El Sistema Operatico como Interfaz Usuario/Computador. Objetivos del Sistema Operativo

Unidad de Competencia I Elementos de Competencia Requerimientos de información

Transcripción:

Índice Concepto y estados de un proceso 1 Concepto y estados de un proceso 2 3 4 5

Cuándo es proceso? Cuando es programa? Programa Una lista de instrucciones a seguir, una entidad pasiva Proceso Entidad activa que: Emplea al programa Típicamente opera sobre un conjunto de datos Tiene información de estado que indica, entre otras cosas, en qué punto va la ejecución.

Cuando es proceso? Cuándo es tarea? Tarea Equivalente a un proceso en un sistema por lotes; requiere típicamente menos metainformación. La distinción proceso-tarea no es del todo clara u objetiva. Hay textos que emplean uno u otro término indistintamente Nosotros emplearemos siempre el término proceso.

La ilusión de la concurrencia Un sistema actual nos da la ilusión de ejecución simultánea de muchos procesos La realidad: Casi todos están suspendidos, esperando que los active el planificador En un momento dado sólo puede estarse ejecutando un número de procesos igual o menor al número de CPUs que tenga el sistema. Esa ilusión tiene grandes costos... Especialmente pensando con suficiente velocidad

Índice Concepto y estados de un proceso 1 Concepto y estados de un proceso 2 3 4 5

Estados de un proceso Un proceso, a lo largo de su vida, alterna entre diferentes estados de ejecución. Estos son: Nuevo Se solicitó al sistema la creación de un proceso, y sus recursos y estructuras están siendo creadas Listo Está listo para ser asignado para su ejecución En ejecución está siendo ejecutado Bloqueado En espera de algún evento para poder continuar ejecutándose Terminado terminó de ejecutarse; sus estructuras están a la espera de ser limpiadas por el sistema

Estados de un proceso Figura: Diagrama de transición entre los estados de un proceso

El bloque de control del proceso (PCB) (1) Qué información debe mantener el sistema acerca de cada proceso? O, Cuánto cuesta un cambio de contexto? Estado del proceso El estado actual del proceso Contador de programa Cuál es la siguiente instrucción a ser ejecutada Registros del CPU Información específica del estado del CPU Información de planificación (scheduling) La prioridad del proceso, la cola en que está agendado, y demás información que puede ayudar al sistema operativo a agendar al proceso

El bloque de control del proceso (PCB) (2) Información de administración de memoria Las tablas de mapeo de memoria (páginas o segmentos, dependiendo del sistema operativo). Estado de E/S Listado de dispositivos y archivos asignados que el proceso tiene abiertos en un momento dado. Información de contabilidad Información de la utilización de recursos que ha tenido este proceso Tiempo de usuario y de sistema Uso acumulado de memoria y dispositivos etc.

Índice Concepto y estados de un proceso 1 Concepto y estados de un proceso 2 3 4 5

El problema con los hilos Aunque los hilos parecen ser un pequeño paso partiendo del cómputo secuencial, de hecho, son un paso inmenso. Descartan las propiedades más esenciales y atractivas del cómputo secuencial: Facilidad de comprensión, predictabilidad y determinismo. Los hilos, como un modelo de computación, son salvajemente no-determinísticos, y el trabajo del programador se convierte en podar ese no-determinismo. El problema con los hilos, Edward A. Lee, UC Berkeley, 2006

El peso de los procesos La cantidad de información implicada en un cambio de contexto es muy grande Desperdicio burocrático de recursos Una respuesta: procesos ligeros (Lightweight processes, LWP) Diversos hilos de ejecución dentro de un mismo proceso

Extrapolando Concepto y estados de un proceso Un proceso que no usa hilos es un sólo hilo Un sistema operativo que no ofrece soporte para hilos agendaría a nuestro proceso como a cualquier otro

La diferencia desde dentro Entre diferentes procesos, cada uno tiene ilusión de exclusividad virtual sobre la computadora Espacio de direccionamiento de memoria exclusivo Descriptores de archivos y dispositivos independientes Los hilos son y deben ser conscientes de su coexistencia Comparten memoria, descriptores de archivos y dispositivos Pueden tener variables locales y globales

Qué tanto se aligera el PCB? Estado del proceso Cada hilo se ejecuta de forma aparentemente secuencial Tiene su propio contador de programa Y su propia pila de llamadas (stack) Conjunto de variables locales Puede ser implementado de forma muy sencilla p.ej. con arreglos indexados por ID de hilo Información de planeación interna Pueden llevar información de contabilidad No requerimos: Registros del CPU Estado de E/S

Patrones de trabajo: Jefe / trabajador Un hilo tiene una tarea distinta de todos los demás El hilo jefe genera o recopila tareas Los hilos trabajadores efectúan el trabajo. Modelo común para procesos servidor, GUIs que procesan eventos El jefe puede llevar la contabilidad de los trabajos realizados

Patrones de trabajo: Jefe / trabajador Figura: Patrón de hilos jefe/trabajador

Patrones de trabajo: Equipo de trabajo A partir de hilos idénticos Realizarán las mismas tareas sobre diferentes datos Muy frecuentemente utilizado para cálculos matemáticos (p.ej. criptografía, render). Puede combinarse con jefe/trabajador para generar previsualizaciones (la tarea se realiza progresivamente)

Patrones de trabajo: Equipo de trabajo Figura: Patrón de hilos Equipo de trabajo

Patrones de trabajo: Línea de ensamblado Una tarea larga que puede dividirse en pasos Cada hilo se enfoca en una sóla tarea Pasa los datos a otro hilo conforme va terminando Ayuda a mantener las rutinas simples de comprender Permite continuar procesando datos cuando hay hilos esperando E/S

Patrones de trabajo: Línea de ensamblado Figura: Patrón de hilos Línea de ensamblado

Índice Concepto y estados de un proceso 1 Concepto y estados de un proceso 2 3 4 5

de usuario (o hilos verdes) Los hilos pueden implementarse 100 % con las facilidades del proceso Caso extremo: Programas multihilos en sistemas operativos mínimos (o directo sobre el hardware) Mayor portabilidad A través de alguna biblioteca del lenguaje/entorno de programación Típicamente multitarea interna cooperativa

Pros y contras de los hilos de usuario Ganamos: Espacio de memoria compartido sin intervención del sistema operativo Mayor rapidez para realizar trabajos cooperativos o multiagentes Perdemos: Cualquier llamada al sistema interrumpe a todos los hilos No aprovechan el multiprocesamiento

nativos (o hilos de kernel) A través de bibliotecas de sistema que informan al sistema El núcleo se encarga de la multitarea preventiva entre los hilos puede pedir al sistema un mayor número de procesadores Logrando ejecución verdaderamente paralela El sistema puede priorizar de diferente manera a un proceso multihilo

Índice Concepto y estados de un proceso 1 Concepto y estados de un proceso 2 3 4 5

Referencia bibliográfica Para este tema, recomiendo fuertemente revisen «The little book of semaphores» de Allen Downey (2008) (disponible para su descarga como PDF).

Qué es concurrencia? Quedó ya claro que (para nosotros) concurrencia no significa que dos o más eventos ocurran al mismo tiempo Nos referimos a dos o más eventos cuyo órden no es determinista No podemos predecir el órden relativo en que ocurrirán

Cuándo hablamos de concurrencia? Dos o más hilos del mismo proceso Dos o más procesos en la misma computadora Dos o más procesos en computadoras separadas conectadas por red Dos o más procesos que ocurran sin conexión alguna y posteriormente requieran sincronización

La sincronización implica involucramiento del programador El sistema operativo brinda la ilusión a cada proceso de estar ejecutando en una computadora dedicada, pero... puede depender de datos obtenidos en fuentes externas Puede ser necesario esperar a que otro proceso haya pasado cierto punto en su ejecución... Que tengamos ya los resultados parciales de un cómputo paralelo... O que no más de m o menos de n procesos estén en determinado punto... O notificar a otro proceso de nuestro avance, o...

La sincronización como comunicación entre procesos (IPC) En esta sección veremos ejemplos de primitivas de sincronización Todas ellas son modalidades de comunicación entre procesos (IPC) Nos centraremos principalmente en los semáforos

Problemas clásicos para ir pensando Problema productor-consumidor Problema lectores-escritores La cena de los filósofos Los fumadores compulsivos... Y hay 20 problemas más explicados en The little book of semaphores. Revísenlo!

Problema productor-consumidor Pensemos un entorno multihilo como una línea de ensamblado Algunos hilos producen ciertas estructuras (p.ej. eventos en un GUI) Otros hilos las consumen (procesan los eventos) Los eventos se apilan en un buffer disponible para todos los hilos Cómo podemos asegurar que dos hilos no modifiquen al buffer al mismo tiempo? Cómo podemos evitar que los consumidores hagan espera activa?

Problema lectores-escritores Muchos procesos lectores pueden usar simultáneamente una estrucura Si algún proceso escritor la requiere, debemos evitar que cualquier lector esté activo Requisitos de sincronización: Sin límite en la cantidad de lectores activos Los escritores deben tener acceso exclusivo a la sección crítica Evitar inanición de escritores por exceso de lectores

La cena de los filósofos (Edsger Dijkstra, 1965) Una mesa redonda Tazón de arroz al centro Cinco platos, cinco filósofos, cinco palillos chinos Los filósofos piensan hasta tener hambre. Cuando tienen hambre, buscan comer No hablan entre sí Sólo un filósofo puede sostener un palillo a la vez Qué puede salir mal? Cómo evitarlo con sólo primitivas de sincronización?

Los fumadores compulsivos (Suhas Patil, 1971) Tres fumadores empedernidos Con cantidades ilimitadas de uno de tres ingredientes cada uno: Tabaco, papel, cerillos Un agente que consigue ingredientes independientemente Cómo asegurarse de que los recursos se utilizan siempre, tan pronto como estén disponibles? Sin que el agente sepa quién tiene qué ingrediente