Concepto de proceso Sebastián Sánchez Prieto. Procesos 2  1999-2003 S2P, OGP & IGT Definición de proceso Un proceso es un programa en ejecución Componentes:

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

Creación de procesos Asignar un único identificador al nuevo proceso. Asignar espacio para el proceso. Debe inicializarse el bloque de control del proceso.
Planificación de Monoprocesadores
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
T5-multithreading SO-Grado Q1.
Administración de procesos y del procesador.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Uno de los conceptos mas importantes que gira entorno a un sistema operativo es el de proceso. Un proceso es un programa en ejecución junto con el entorno.
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Sistemas Operativos Unidad II Procesos.
Introducción al software
Modelo de procesos de dos estados
Control y Descripción de Procesos
Detalles del sistema operativo
SISTEMAS OPERATIVOS UNIDAD 1..
Administración de procesos y del procesador.
Mejoras a las Máquinas Von Neumann
Funciones en lenguaje C
Multiprogramación Procesos Cecilia Hernández
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Administración de memoria
Sistemas Operativos Procesos.
Ing Florencia Ferrigno Tecnicas Digitales 3
Sebastián Sánchez Prieto
Unidad III Administración de procesos
Hilos - Lightweight process - Procesos ligeros
Introducción a la Programación. Lenguaje de Máquina.
Software Sistemas Operativos
Introducción al Minikernel
Estructura del sistema operativo
Programación de Memoria Compartida
Profesor: Rodrigo Sanhueza Figueroa
Soporte HW para Administración de Memoria Cecilia Hernández
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
Hilos En La Computación. (THREADS).
Introducción a los Sistemas Operativos
Gestión de procesos Sistemas Operativos Edwin Morales
Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
COMPONENTES DEL SISTEMA OPERATIVO.
Memoria virtual.
Materia: Técnicas Digitales 3
Administrador de procesos
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Sistemas Distribuidos
El núcleo del sistema operativo
Tema 3 Gestión de Procesos Elaborado por: Profa: Katiuska Núñez
Sistemas Operativos Unidad III Procesos.
 Qué opinan de un Sistema Operativo (S.O.)?  Qué esperan de un S.O.?  Cuál es el S.O. de su preferencia?  Qué los decepciona de su S.O?  Cómo y por.
INTRODUCCION A SISTEMAS OPERATIVOS
GESTIÓN DE PROCESOS.
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Por Luis Esteban Monsalve Martínez
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
Programación de Clientes Especialidad en Base de Datos.
Elementos y tipos de sistemas operativos
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
MEMORIA DINÁMICA.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
SOFTWARE DE COMPUTADORAS
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
Estructura del sistema operativo
Concepto de proceso Rina Arauz.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

Concepto de proceso Sebastián Sánchez Prieto

Procesos 2  S2P, OGP & IGT Definición de proceso Un proceso es un programa en ejecución Componentes: Código Datos Pila, etc. Ejemplo: Un compilador C NO es un proceso Un compilador C ejecutándose será un proceso para el sistema operativo Le asigna recursos (procesador, memoria, dispositivos, etc.) Controla su ejecución

Procesos 3  S2P, OGP & IGT Procesos y sistema operativo Los procesos se crean mediante llamadas al sistema: fork() sin parámetros en UNIX CreateProcess() con 10 parámetros y uno de ellos una estructura con 18 campos en WNT ¿Por qué múltiples procesos? Se aprovechan mejor los recursos físicos El rendimiento aumenta Incluso en sistemas monousuario es bueno poder navegar por Internet mientras se edita un documento y se escucha música

Procesos 4  S2P, OGP & IGT Estructura de un proceso UNIX int debug = 1; char *progname; main (int argc,char *argv[]) { int i; char *ptr,*malloc(); progname = argv[0]; printf("arg = %d\n",argc); for (i=1; i<argc; i++){ ptr = malloc(strlen(argv[i])+1); strcpy(ptr,argv[i]); if (debug) printf("%s\n",ptr); }

Procesos 5  S2P, OGP & IGT Texto (código) Datos iniciados de sólo lectura Datos iniciados de lectura-escritura Datos no iniciados Área dinámica (heap) Pila Contexto de usuarioContexto del núcleo Datos del núcleo Estructura de un proceso UNIX

Procesos 6  S2P, OGP & IGT Bloque de control de procesos Es la manifestación para el sistema operativo de que existe un proceso Almacena: Estado actual del proceso Identificación unívoca del proceso Prioridad del proceso Puntero a la zona de memoria asignada Puntero a los archivos abiertos Punteros a los recursos asociados Área de salvaguarda de registros Un puntero al siguiente PCB En Linux el PCB se conoce como task_struct Más información en: include/linux/sched.h

Procesos 7  S2P, OGP & IGT Hilos (Threads) Objetivo: compartir recursos entre procesos cooperantes de forma cómoda Hilo = proceso ligero = lightweight process = LWP = unidad fundamental de uso de procesador Básicamente se compone de un CP, una serie de registros y un área de pila Cada hilo comparte con con los otros hilos cooperantes código, datos y recursos del SO El código, los datos y los recursos son poseídos por otra entidad conocida como tarea (task) Una tarea sin hilos no tiene capacidad de ejecución, sólo “posee” recursos

Procesos 8  S2P, OGP & IGT Hilos (Threads) Un proceso tradicional (proceso pesado) se compone de una tarea con un hilo de ejecución La conmutación de un hilo a otro en la misma tarea requiere un coste mínimo ya que solo es necesario salvar los registros y conmutar la pila Los threads son muy adecuadas para sistemas distribuidos y sistemas multiprocesador (cada hilo se puede ejecutar en un procesador) Cada hilo sólo puede pertenecer a una tarea Los hilos pueden ser implementados en espacio de usuario o soportados por el núcleo

Procesos 9  S2P, OGP & IGT Hilos vs. procesos Los hilos se crean y se destruyen más rápidamente que los procesos Esto es así porque no es necesario asignarle recursos como la memoria El tiempo de conmutación entre hilos de la misma tarea es más rápida que la conmutación entre procesos Menor sobrecarga de comunicaciones debido a que todos los hilos de una tarea comparten memoria La programación con hilos debe hacerse cuidadosamente porque pueden producirse errores de sincronización

Procesos 10  S2P, OGP & IGT Hilos en espacio de usuario Ventajas: La conmutación entre hilos se puede realizar rápidamente sin ayuda del S.O. La planificación puede hacerla la aplicación Portabilidad entre SO diferentes Inconvenientes: Si el S.O. no sabe de la existencia de hilos en una tarea, el bloqueo de un hilo produce el bloqueo del resto de hilos de la misma tarea Dos hilos de una misma tarea no se pueden ejecutar en procesadores diferentes

Procesos 11  S2P, OGP & IGT Hilos soportados por el S.O. Ventajas: Si el S.O. soporta hilos, el bloqueo de uno de ellos en una tarea no afecta al resto Inconvenientes: La conmutación de un hilo a otro se hace vía interrupciones (mayor sobrecarga) En ambos casos la planificación puede tener resultados desagradables ¿Que pasaría en el caso de tener hilos a nivel de usuario y a nivel de kernel si tenemos dos tareas, una con cuarenta hilos y otra con un único hilo? La mayoría de los SS.OO. modernos soportan threads (OS/2, Mach, W2K, chorus, linux, etc). ¿Cómo programar con hilos?: Bibliotecas estándar “DCE Threads”, POSIX Threads, Sun threads, etc.

Procesos 12  S2P, OGP & IGT Ejemplo de uso de hilos #include void * periodic (void *arg) { int period; period = *((int *)arg); while (1) { printf("En tarea con periodo %d\n", period); sleep (period); } main() { pthread_t th1, th2; pthread_attr_t attr; int period1, period2; period1 = 2; period2 = 3;

Procesos 13  S2P, OGP & IGT Continuación del ejemplo if (pthread_attr_create (&attr) == -1) { perror (""); } if (pthread_create(&th1, attr, periodic, &period1) == -1) { perror(""); } if (pthread_create(&th2, attr, periodic, &period2) == -1) { perror(""); } sleep(30); printf("Salida del hilo principal\n"); exit(0); }

Procesos 14  S2P, OGP & IGT Hilos y procesos en Linux Se crean con la llamada clone() De hecho fork() y pthread_create() derivan de clone() Contextos: No permitidoAplicaciones Interrupciones Tareas de sistema Excepciones Llamadas al sistema Modo usuario Modo supervisor Contexto del núcleoContexto del proceso

Procesos 15  S2P, OGP & IGT Imagen de un proceso en Linux Cabecera 0x Código (Text) Datos (Data) Datos no iniciados (BSS) start_code end_code end_data end_bss Bibliotecas compartidas Cabecera 0x Código (Text) Sistema (1 Gb) Datos no iniciados (BSS) start_code end_code end_data end_bss Programa Información para carga dinámica 0xBFFFFFB Argumentos Variables de entorno Archivo del programa arg_start env_start Puntero a los argumentos y variables de entorno start_stack Datos (Data) 0x x xFFFFFFFF 0x3FFFFFFF Usuario (3 Gb)

Procesos 16  S2P, OGP & IGT Zombie Diagrama de estados Ejecución Listo Espera Desalojar Dormir Despertar Parado Despachar Dormir Despertar Finalizar

Procesos 17  S2P, OGP & IGT Información de la task_struct Estado del proceso En ejecución (Running) Esperando (Waiting) Por recursos o por eventos Puede a su vez estar interrumpible o ininterrumpible Detenido (Stopped) Generalmente por una señal (SIGSTOP) Útil en depuración Zombie No se ha liberado su entrada en la task_struct

Procesos 18  S2P, OGP & IGT Información de la task_struct Información de planificación Identificadores de proceso (pid) del padre (ppid) de usuario (uid) de grupo (gid) Enlaces “familiares” (pstree) Temporizadores periódicos o single-shot (señales)

Procesos 19  S2P, OGP & IGT Información de la task_struct Tiempo: jiffies en modo usuario y sistema (planificación) Sistema de archivos Punteros a cada descriptor de archivo Punteros a los VFS Raíz del proceso (home directory) Directorio actual (pwd) Memoria virtual Contexto específico del proceso

Procesos 20  S2P, OGP & IGT Procesos en W2K En W2K existen dos entidades relacionadas con la ejecución de programas: El proceso Los hilos (threads) El proceso es la unidad poseedora de recursos y su información se almacena en el “process block” El hilo es la entidad con capacidad de ejecución y su información se almacena en el “thread block” Ambas entidades son tratadas como objetos por el núcleo del SO

Procesos 21  S2P, OGP & IGT Proyección en memoria Usuario (2 Gb) Código.EXE Pilas de cada thread Heap Código.DLL Sistema (2 Gb) Ejecutivo, kernel, HAL, drivers, pilas del núcleo para cada hilo Win32K.sys 0x x xFFFFFFFF 0x7FFFFFFF Tabla de páginas Cache del sistema de archivos

Procesos 22  S2P, OGP & IGT Process block Proceso Tipo de objeto Atributos del cuerpo de objeto Servicios Crear proceso Abrir proceso Consultar información del proceso Configurar información del proceso Actualizar proceso... Operaciones con MV ID de proceso Token de acceso Prioridad base... Límites de cuota Contadores de E/S

Procesos 23  S2P, OGP & IGT Thread block Thread Tipo de objeto Atributos del cuerpo de objeto Servicios Crear hilo Abrir hilo Consultar información del hilo Actualizar hilo... Suspender Continuar ID de cliente Contexto del hilo Prioridad dinámica Prioridad base... Tiempo de ejecución

Procesos 24  S2P, OGP & IGT Diagrama de estados (threads) Finalizado Ejecución Listo Espera Desalojar Switch voluntario Switch voluntario Standby Ha perdido la pila Inicio Transición Desalojar Sólo en MP