Procesos. Procesos. Sistemas Operativos Procesos KMC 2017

Documentos relacionados
Procesos. Módulo 3. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco.

SISTEMAS OPERATIVOS Manejo de procesos

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación

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

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

Tema 4: Gestión de Procesos

Planificación de Procesos

Sistemas Operativos. ( ) Mg. Karina M. Cenci Departamento de Ciencias e Ingeniería de la Computación

Sistemas Operativos. Procesos

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Tema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.

Procesos Definición y Estados

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

Sistemas Operativos 1. Sistemas Operativos. Segundo Cuatrimestre de Práctica y Laboratorio : Miércoles de 17 a 21h, en el laboratorio del DCIC.

SISTEMAS. Ciclo 2014 Plan 2012

Hilos Secciones Stallings:

Sincronización de Procesos

TEMARIO. Créditos teóricos: 3 Créditos prácticos: 3. Lenguajes y Sistemas Informáticos Departamento: Lenguajes y Computación - PROGRAMA DE TEORÍA:

Sistemas Operativos Mg. Karina M. Cenci

Unidad 2: Gestión de Procesos

Planificación n Centralizada y Distribuida. Sistemas Operativos y Distribuidos

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

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

UNIVERSIDAD DE BELGRANO FAC. ING. Y TECNOLOGIA INFORMATICA SISTEMAS OPERATIVOS UNIDAD 2 PROCESOS - CONCEPTOS

Administrador del Procesador Conceptos

Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur. Describir los beneficios del sistema de memoria virtual

Sistemas Operativos. (Procesos)

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Tema 4: Gestión de Procesos

Estructura del Kernel

Obligatoria asignatura Programa elaborado por: Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010

Estructura del Sistema Operativo

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL

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

Manipulación de procesos

FACULTAD DE INGENIERÍA ÁREA DE COMPUTACIÓN E INFORMÁTICA

Administración de Memoria

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

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Memoria Virtual. Operating System Concepts 8th Edition

Programación Concurrente Recopilación de teoría referente a la materia

Sistemas Operativos. Mg. Jorge Raúl Ardenghi Departamento de Informática Facultad de Ingeniería

Departamento Ingeniería en Sistemas de Información

Tarea 2. Descripción y Control de Procesos

PROGRAMA DE CURSO. Horas de Cátedra ,5 5,5. Resultados de Aprendizaje

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos

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

REPRESENTACIÓN INTERNA DE FICHEROS

Sistemas Operativos (Parte 2)

Sistemas Operativos. Estructura de los sistemas operativos

Taller de Sistemas Operativos. Procesos 2012

Sistemas Operativos. Curso Página Web: Asignaturas de programación en el plan de estudios

Necesidad de Protección

Programación de Multitareas utilizando Hilos

Concurrencia y paralelismo

CARRERA: LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN AÑO : 2010

PROGRAMA DE ASIGNATURA DE

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

Tema 6: Gestión de la Entrada/Salida

Sistemas Operativos. Daniel Rúa Madrid

Tema 6: Gestión de la Entrada/Salida

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

Mercedes Fernández Redondo

Departamento Ingeniería en Sistemas de Información

Guía docente. Identificación de la asignatura. Profesores. Contextualización. Requisitos. Esenciales. Recomendables. Asignatura

Lenguajes de Programación

Sistemas Operativos Distribuidos

Administración de procesos

Asignaturas antecedentes y subsecuentes

SISTEMAS OPERATIVOS. Técnico en Informática El futuro está en tus manos ISAE UNIVERSIDAD FACULTAD DE CIENCIAS TECNOLOGICAS TÉCNICO EN INFORMÁTICA

Tema 1: Programación Multiproceso. Curso

UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL TUCUMAN

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1

PROCESAMIENTO DISTRIBUIDO

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Prácticas de Sistemas operativos

Sistemas informáticos industriales. Sistemas Operativos

1.1 Concepto y definición de Sistemas Operativos

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

UNIVERSIDAD NACIONAL AUTONOMA DE MÉXICO INGENIERÍA EN COMPUTACIÓN

Introducción a los Sistemas Operativos S.O.

ISO Tema 8,

Ingeniería en computación Tipos de sistemas operativos

IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR GESTIÓN DE PROCESOS

Concurrencia de Procesos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

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

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

GUÍA DOCENTE Sistemas Operativos

ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

UNIVERSIDAD DE BELGRANO FAC. ING. Y TECNOLOGIA INFORMATICA SISTEMAS OPERATIVOS UNIDAD 3 PLANIFICACION DE PROCESOS

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U PLANIFICACION DE PROCESOS

Técnicas de Programac. Concurrente I PLANIFICACIONES Actualización: 2ºC/2018. Planificaciones Técnicas de Programac.

Transcripción:

Procesos Procesos Concepto de Proceso Planificación de Proceso Operaciones sobre Procesos Comunicaciones Interprocesos (IPC) Ejemplos de Sistemas de IPC Comunicación en un Sistema Cliente-Servidor 1

Concepto de Proceso Un SO ejecuta una variedad de programas: Sistema Batch jobs Sistemas de Tiempo Compartido programas de usuario o tareas Proceso un programa en ejecución. Un proceso incluye: contador de programa stack sección de datos datos texto Diagrama de Estados de un Proceso 3 estados nuevo listos evento completado despacho interrup espera corriendo espera por evento exit terminado 2

Diagrama de Estados de un Proceso 5 estados nuevo react susp listos despacho evento comp interrup espera corriendo espera por evento susp exit terminado Susp-listo react evento comp Susp-esp Bloque de Control de Procesos (PCB) Es una estructura de dato que contiene información asociada con cada proceso. estado prox proceso previo Estado de Proceso Contador de Programa Registros de CPU Información de planificación de CPU Información de administración de memoria Información contable Información de estado E/S id proceso contador programa registros de CPU estructura memoria tabla de arch abiertos etc PCB: Process Control Block 3

Conmutación de CPU de Proceso a Proceso ejecución P-0 SO interrupción o llamada al sistema P-1 salva estado en PCB-0. carga estado de PCB-1 ocioso ocioso ejecución interrupción o llamada al sistema salva estado en PCB-1. carga estado de PCB-0 ejecución ocioso Colas de Planificación de Procesos Cola de Job (o tareas) conjunto de todos los procesos en el sistema. Cola de listos conjunto de todos los procesos residentes en memoria principal, listos y esperando para ejecutar. Colas de dispositivos conjunto de procesos esperando por una E/S en un dispositivo de E/S. Migración de procesos entre las colas. 4

Colas de listos y de Dispositivos de E/S cola de listos inicio final reg reg cinta mag unidad 0 inicio final PCB-4 PCB-0 PCB-7 PCB-14 PCB-5 disco unidad 0 inicio final reg reg reg terminal unidad 0 inicio final reg PCB-6 Planificadores de Procesos Planificador de largo término (o planificador de jobs) selecciona que procesos deberían ser puestos en la cola de listos. Planificador de corto término (o planificador de CPU) selecciona que procesos deberían ser proximamente ejecutados y colocados en la CPU. Planificador de mediano término 5

Planificadores de Procesos El planificador de corto término es invocado muy frecuentemente (milisegundos) (debe ser rápido). El planificador de largo término es invocado poco frecuentemente (segundos, minutos) (puede ser muy lento). El planificador de largo término controla el grado de multiprogramación. Los procesos pueden ser descriptos como: Procesos limitados por E/S Procesos limitados por CPU Cambio de contexto Cuando la CPU conmuta a otro proceso, el sistema debe salvar el estado del viejo proceso y cargar el estado para el nuevo proceso vía un cambio de contexto. El contexto de un proceso está representado en el PCB El tiempo que lleva el cambio de contexto es sobrecarga; el sistema no hace trabajo útil mientras está conmutando. El tiempo depende del soporte de hardware. 6

Creación de Procesos Actividades 1. Asignar un identificar de proceso único al proceso. 2. Reservar espacio para proceso. 3. Inicialización del PCB. 4. Establecer los enlaces apropiados. 5. Creación o expansión de otras estructuras de datos. Creación de Procesos Características Espacio de direcciones El hijo duplica el del padre. El hijo tiene un programa cargado en él. Recursos compartidos Padres e hijos comparten todos los recursos. Hijo comparte un subconjunto de los recursos del padre. Padre e hijo no comparten ningún recurso. Ejecución Padres e hijos ejecutan concurrentemente. Padres esperan hasta que los hijos terminan. 7

Creación de Procesos Ejemplos de UNIX La llamada a sistema fork crea un nuevo proceso La llamada a sistema exec es usada después del fork para reemplazar el espacio de memoria del proceso con un nuevo programa. Padre (pid > 0) wait () Se reactiva pid=fork() Hijo (pid =0) exec() exit() Árbol de Procesos en UNIX 8

Terminación de Procesos El proceso ejecuta la última sentencia y espera que el SO haga algo (exit). Los datos de salida del hijo se pasan al padre (vía wait). Los recursos de los procesos son liberados por el SO. El padre puede terminar la ejecución del proceso hijo (abort). El hijo ha excedido los recursos alocados. La tarea asignada al hijo no es mas requerida. El padre está terminando. El SO no permite a los hijos continuar si su padre termina. Terminación en cascada. Procesos Cooperativos Un proceso independiente no puede afectar ni ser afectado por la ejecución de otro proceso. Un proceso cooperativo puede afectar o ser afectado por la ejecución de otro proceso. Ventajas de los procesos cooperativos Información compartida Aceleración de la computación Modularidad Conveniencia 9

Comunicación Interprocesos Los procesos cooperativos necesitan comunicación interprocesos (IPC) Dos modelos de IPC Memoria compartida Pasaje de Mensajes Pasaje de Mensaje Memoria Compartida Problema del Productor-Consumidor Paradigma procesos cooperativos, el proceso productor produce información que es consumida por un proceso consumidor. buffer ilimitado - no tiene límites prácticos en el tamaño del buffer. buffer limitado supone que hay un tamaño fijo de buffer. 10

Modelos de Comunicación Memoria Compartida Ejemplo de procesos cooperativos: Productor-Consumidor Comunicación entre Procesos (IPC) Sistema de mensajes los procesos se comunican uno con otro sin necesidad de variables compartidas. Provee dos operaciones: send(mensaje) receive(mensaje) Si P and Q desean comunicarse, necesitan: Establecer un vínculo de comunicación entre ellos Intercambiar mensajes via send/receive Implementación de un vínculo de comunicación lógico (p.e., propiedades lógicas) físico (p.e., memoria compartida, canal hardware) 11

Comunicación Directa Los procesos deben nombrar al otro explícitamente: send (P, mensaje) envía un mensaje al proceso P receive(q, mensaje) recibe un mensaje del proceso Q Propiedades del vínculo de comunicación Un vínculo está asociado con exactamente un par de procesos que se comunican. Entre cada par de procesos existe exactamente un vínculo. El vínculo puede ser unidireccional, pero es usualmente bidireccional. Comunicación Indirecta Los mensajes son dirigidos y recibidos desde mailboxes (también referidas como ports). Propiedades de un vínculo de comunicación El vínculo se establece solo si los procesos comparten un mailbox común. Un vínculo puede ser asociado con muchos procesos. Cada par de procesos puede compartir varios vínculos de comunicación. Los vínculos pueden ser unidireccionales o bi-direccionales. Operaciones crear un nuevo mailbox enviar y recibir mensajes por medio del mailbox destruir un mailbox Primitives are defined as: send(a, message) send a message to mailbox A receive(a, message) receive a message from mailbox A 12

Sincronización El pasaje de mensajes puede ser bloqueante o no bloqueante. Bloqueante es considerado sincrónico Send bloqueante Receive bloqueante No bloqueante es considerado asincrónico Send no bloqueante Receive no bloqueante Buffering La cola de mensajes asociada al vínculo se puede implementar de tres maneras. 1. Capacidad 0 mensajes El enviador debe esperar por el receptor (rendez-vous). 2. Capacidad limitada longitud finita de n mensajes El enviador debe esperar si el vínculo está lleno. 3. Capacidad ilimitada longitud infinita El enviador nunca espera. 13

Comunicación Cliente-Servidor Sockets Llamadas a Procedimientos Remotos (RPC:Remote Procedure Calls) Invocación a Métodos Remotos (RMI:Remote Method Invocation (Java)) Bibliografía: - Silberschatz, A., Gagne G., y Galvin, P.B.; "Operating System Concepts", 7 ma Edición. 2009, 9 na. Edición 2012. - Stallings, W. "Operating Systems: Internals and Design Principles", Prentice Hall, 4 ta Edición, 2001; 5 ta Edición; 2005. 6 ta Edición, 2009; 7 ma Edición, 2011. - Tanenbaum, A.; "Modern Operating Systems", Addison-Wesley, 3 ra. Edición 2008, 4 ta. Edición 2014. 14