41
PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS.

PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Embed Size (px)

Citation preview

Page 1: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

PROCESOSPROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒNIng. Alex Tacuri MgS.

Page 2: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

AGENDA

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRÀCTICA

EVALUACION

Page 3: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

INTRODUCCIONEl desconocimiento en el manejo de los recursos y herramientas que brindan los sistemas operativos contemporáneos para una mejor selección, instalación, configuración y administración de los mismos en centros de datos, laboratorios, centros de cómputo de empresas e instituciones demandan gran preparación por parte del profesional para obtener los mejores beneficios de automatización de la información.

Con esta premisa el obtener los conceptos, técnicas y algoritmos sobre los procesos, hilos, comunicación entre procesos y planificación de los mismos, por parte del estudiante coadyuvarán a la formación de un profesional capacitado que será capaz seleccionar, desarrollar e implantar sistemas operativos de forma óptima, que incrementarán al máximo el rendimiento de los equipos de computación dentro de los parámetros de ética y competencia profesional

Page 4: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

OBJETIVO

Lograr que el estudiante adquiera y desarrolle habilidades y aptitudes sobre procesos en sistemas operativos, logrando obtener un profesional capacitado para seleccionar, desarrollar e implantar sistemas operativos

Page 5: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

AGENDA

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRÀCTICA

EVALUACION

Page 6: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

PROCESO - Definición

El principal concepto en cualquier sistema operativo es el de proceso.

Un proceso es un programa en ejecución, incluyendo el valor del program counter, los registros y las variables.

Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto como un CPU virtual.

El recurso procesador es alternado entre los diferentes procesos que existan en el sistema, dando la idea de que ejecutan en paralelo (multiprogramación)

Page 7: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Contador de programa

Cada proceso tiene su program counter, y avanza cuando el proceso tiene asignado el recurso procesador. A su vez, a cada proceso se le asigna un numero que lo identifica entre los demas: identificador de proceso (process id)

Page 8: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Memoria de los procesos

Un proceso en memoria se constituye de varias secciones:

– Código (text): Instrucciones del proceso.

– Datos (data): Variables globales del proceso.

– Memoria dinanica (heap): Memoria dinamica que genera el proceso.

– Pila (stack): Utilizado para preservar el estado en la invocación anidada de procedimientos y funciones.

Page 9: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Estados de los procesos

El estado de un proceso es definido por la actividad corriente en que se encuentra.

Los estados de un proceso son: –  Nuevo (new): Cuando el proceso es creado.

–  Ejecutando (running): El proceso tiene asignado un procesador y esta ejecutando sus instrucciones.

–  Bloqueado (waiting): El proceso esta esperando por un evento (que se complete un pedido de E/S o una senal).

–  Listo (ready): El proceso esta listo para ejecutar, solo necesita del recurso procesador.

–  Finalizado (terminated): El proceso finalizó su ejecución

Page 10: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Estados de los procesos

Page 11: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Transiciones entre estados

Nuevo ⇒Listo– Al crearse un proceso pasa inmediatamente al estado listo.

Listo ⇒Ejecutando – En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar (tener en cuenta que puede existir mas de un procesador en el sistema). Al liberarse un procesador el planificador (scheduler) selecciona el próximo proceso, segun algun criterio definido, a ejecutar.

Page 12: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Transiciones entre estados

Ejecutando ⇒Listo – Ante una interrupción que se genere, el proceso puede perder el recurso procesador y pasar al estado de listo. El planificador sera el encargado de seleccionar el próximo proceso a ejecutar.

Ejecutando ⇒Bloqueado – A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes (ej.: genera un pedido de E/S). Teniendo en cuenta que el pedido puede demorar y, ademas, si esta en un sistema multiprogramado, el proceso es puesto en una cola de espera hasta que se complete su pedido. De esta forma, se logra utilizar en forma mas eficiente el procesador.

Page 13: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Transiciones entre estados

Bloqueado ⇒Listo– Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos.

Ejecutando ⇒Terminado – Cuando el proceso ejecuta sus ultima instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso.

Page 14: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

AGENDA

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRÀCTICA

EVALUACION

Page 15: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

HILOS (Threads)Hay aplicaciones donde es necesario utilizar procesos que compartan recursos en forma concurrente.

IPC brindan una alternativa a nivel de sistema operativo.

Los sistemas operativos modernos estan proporcionando servicios para crear mas de un hilo (thread) de ejecución (control) en un proceso.

Con las nuevas tecnologias multi-core esto se hace algo necesario para poder sacar mayor provecho al recurso de procesamiento.

De esta forma, se tiene mas de un hilo de ejecución en el mismo espacio de direccionamiento.

Page 16: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

HILOS (Threads)Un Thread (Hilo) es una unidad basica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Es tambien conocido como proceso ligero.

Cada thread contendra su propio program counter, un conjunto de registros, un espacio para el stack y su prioridad.

Comparten el código, los datos y los recursos con sus hebras (thread) pares.

Una tarea (o proceso pesado) esta formado ahora por uno o varios threads.

Un thread puede pertenecer a una sola tarea.

Page 17: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

HILOS (Threads)

Todos los recursos, sección de código y datos son compartidos por los distintos threads de un mismo proceso

Page 18: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Ventajas del uso de threads

Compartir recursos: Los threads de un proceso comparten la memoria y los recursos que utilizan.

Economia: Es mas facil un cambio de contexto entre threads ya que no es necesario cambiar el espacio de direccionamiento. A su vez, es mas “liviano” para el sistema operativo crear un thread que crear un proceso nuevo.

Utilización de arquitecturas con multiprocesadores: Disponer de una arquitectura con mas de un procesador permite que los threads de un mismo proceso ejecuten en forma paralela.

Repuesta: Desarrollar una aplicación con varios hilos de control (threads) permite tener un mejor tiempo de respuesta.

Page 19: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Desventaja del uso de threads

Dificulta la programación: Al compartir todo el espacio de direccionamiento un thread mal programado puede romper el funcionamiento del resto de los threads.

Page 20: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

HILOS

Los threads pueden ser implementados tanto a nivel de usuario como a nivel de sistemas operativo: – Hilos a nivel de usuario (user threads): Son implementados en alguna libreria de usuario. La libreria debera proveer soporte para crear, planificar y administrar los threads sin soporte del sistema operativo. El sistema operativo solo reconoce un hilo de ejecución en el proceso.

– Hilos a nivel del nucleo (kernel threads): El sistema es quien provee la creación, planificación y administración de los threads. El sistema reconoce tantos hilos de ejecución como threads se hayan creado

Page 21: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

HILOS

La mayoria de los sistemas proveen threads tanto a nivel de usuario como de sistema operativo.

De esta forma surgen varios modelos: –  Mx1 (Many-To-One): Varios threads de a nivel de usuario a un unico thread a nivel de sistema.

–  1x1 (One-to-One): Cada thread de usuario se corresponde con un thread a nivel del nucleo (kernel thread).

–  MxN (Many-To-Many): Varios threads a nivel de usuario se corresponde con varios threads a nivel del nucleo.

Page 22: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

HILOS

Page 23: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

AGENDA

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRÀCTICA

EVALUACION

Page 24: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

PLANIFICACION DE PROCESOS

Un proceso es un programa en ejecución. Existen 3 estados en los que puede encontrarse un proceso, estos son: "Listo", "Bloqueado" y "En ejecución".

Para el control de los mismos internamente son almacenados en una lista, cada uno de los nodos guarda información de un proceso.

Los sistemas operativos cuentan con un componente llamado planificador, que se encarga de decidir cual de los procesos hara uso del procesador. La toma de esta decisión, asi como el tiempo de ejecución del proceso, estara dada por un algoritmo, denominado Algoritmo de Planificación.

Page 25: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Objetivos de la Planificación de

procesosLa Planificación de procesos tiene como principales objetivos la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento.

• Equidad: Todos los procesos deben ser atendidos.• Eficacia: El procesador debe estar ocupado el 100% del

tiempo.• Tiempo de respuesta: El tiempo empleado en dar

respuesta a las solicitudes del usuario debe ser el menor posible.

• Tiempo de regreso: Reducir al minimo el tiempo de espera de los resultados esperados por los usuarios por lotes.

• Rendimiento: Maximizar el numero de tareas que se procesan por cada hora.

Page 26: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Algoritmos de Planificación

Primero en llegar primero en ser servidoConocido como FCFS (First Come First Served). Este algoritmo emplea una cola de procesos, asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso llega es puesto en su lugar en la cola despues del que llegó antes que el y se pone en estado de listo. Cuando un proceso comienza a ejecutarse no se interrumpe su ejecución hasta que termina de hacerlo.

Prioridad al más cortoSu nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecución cambiara de estado voluntariamente, o sea, no tendra un tiempo de ejecución determinado para el proceso. A cada proceso se le asigna el tiempo que usara cuando vuelva a estar en ejecución, y se ira ejecutando el que tenga un menor tiempo asignado. Si se da el caso de que dos procesos tengan igual valor en ese aspecto emplea el algoritmo FCFS.

Page 27: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Algoritmos de Planificación

Round RobinA cada proceso se le asigna un tiempo determinado para su ejecución, el mismo tiempo para todos. En caso de que un proceso no pueda ser ejecutado completamente en ese tiempo se continuara su ejecución despues de que todos los procesos restantes sean ejecutados durante el tiempo establecido. Este es un algoritmo basado en FCFS que trata la cola de procesos que se encuentran en estado de listos como una cola circular.

Planificación por prioridadEn este tipo de planificación a cada proceso se le asigna una prioridad siguiendo un criterio determinado, y de acuerdo con esa prioridad sera el orden en que se atienda cada proceso.

Page 28: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Algoritmos de Planificación

Planificación garantizadaPara realizar esta planificación el sistema tiene en cuenta el numero de usuarios que deben ser atendidos. Para un numero "n" de usuarios se asignara a cada uno un tiempo de ejecución igual a 1/n.

Planificación de Colas MultiplesEl nombre se deriva de MQS (Multilevel Queue Schedulling). En este algoritmo la cola de procesos que se encuentran en estado de listos es dividida en un numero determinado de colas mas pequenas. Los procesos son clasificados mediante un criterio para determinar en que cola sera colocado cada uno cuando quede en estado de listo. Cada cola puede manejar un algoritmo de planificación diferente a las demas.

Page 29: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

AGENDA

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRÀCTICA

EVALUACION

Page 30: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Comunicación entre procesos

El acceso concurrente a datos compartidos puede llevar a inconsistencias en los datos.

El mantenimiento de la consistencia en los datos requiere mecanismos para asegurar la ejecución ordenada de procesos cooperativos.

Los mecanismos de consistencia deben permitir la aplicación correcta de los algoritmos de planificación sin perjudicar a la predecibilidad.

Condiciones de competencia

Page 31: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Comunicación entre procesos

Es necesario que el sistema operativo brinde unas herramientas especificas para la comunicación y sincronización entre los procesos (Inter Process Communication – IPC).

IPC es una herramienta que permite a los procesos comunicarse y sincronizarse sin compartir el espacio de direccionamiento en memoria.

Hay enfoques fundamentales: PIPES

Sección Critica

Semaforos

Memoria compartidaPasaje de mensajes

Sockets

Page 32: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

PIPES

Proceso

S TD INS TD O U T

pipe(fd)

fork()

Proceso

S TD INS TD O U Tfd[0 ]fd [1 ]

pipe

red irección

P roceso h ijo

S TD INS TD O U Tfd[0 ]fd [1 ]

P roceso

S TD INS TD O U Tfd[0 ]fd [1 ]

pipe

exec

Proceso hijo

S TD IN

S TD O U T

Proceso

S TD IN

S TD O U Tpipe

Proceso hijo

S TD IN

S TD O U T

Proceso

ls wc

S TD IN

S TD O U Tpipe

Page 33: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Sección critica La solución al problema de la región critica debe satisfacer

tres requisitos:

1 Exclusión mutua. Si el proceso Pi esta ejecutando en su región critica, ningun otro proceso puede estar ejecutandose en su región critica.

2 Progreso. Si en un momento dado no existe ningun proceso y se le concede la región a un proceso, la decisión de concederle la región a otro proceso que la solicite no puede posponerse indefinidamente

3 Espera acotada. Debe existir una cota en el numero de veces que otros procesos se les permite entrar en su región critica, despues de que un proceso ha hecho una petición para entrar y antes de que le sea concedida.

Page 34: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Sincronización de HardwareLa mejor forma de realizar sincronización de proceso es a través de mecanismos de hardware.

La gran mayoría de microprocesadores que permiten multitarea tienen esquemas robustos de protección para la concurrencia de procesos.

Se puede contar con registro base y límite para el acceso controlado a los recursos, o bien esquemas de prioridad.

Page 35: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

SemáforosDesafortunadamente tener mecanismos de sincronización en hardware es sumamente costoso. Por este motivo la inmensa mayoría de los métodos de compartición de recursos se hacen a nivel de software.

Cualquier recurso compartido en una computadora está asociado a una localidad de memoria, por este motivo la protección de memoria juega un papel muy importante en la sincronización de procesos

Page 36: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Semáforos – Dormir , Despertar

Consum idor

Productor

Page 37: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

Paso de mensajes

Permite resolver:Exclusión mutuaSincronizar entre un proceso que recibe un mensaje y otro que lo enviaComunicación de datos entre espacios de memoria diferentes (mismo computador, diferentes computadores)

Primitivas basicas:send(destino, mensaje): envia un mensaje al proceso destinoreceive(origen, mensaje): recibe un mensaje del proceso origen

Page 38: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

[email protected]

Objetos de memoria compartida

Permiten crear un segmento de memoria compartido entre procesos de la misma maquina.

Declaración independiente de variablesDatos

Texto

Proceso A Proceso B

P ila

Texto

Datos

P ilaSegm ento de m em oriacom partida

var1

*var1=2

2

var2

Page 39: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

[email protected]

Sockets

Permiten comunicar:Procesos del mismo computador

Procesos conectados a traves de una red

Tipos de direcciones:Direcciones locales: dominio UNIX

Direcciones de red (TCP/IP)Dirección de red (dirección IP)

Puerto

Page 40: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

AGENDA

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRACTICA

EVALUACION

Page 41: PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN Ing. Alex Tacuri MgS

INTRODUCCION Y OBJETIVOS

PROCESO

HILOS

PLANIFICACION DE PROCESOS

COMUNICACIÓN ENTRE PROCESOS

PRÀCTICA

EVALUACION