La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN

Presentaciones similares


Presentación del tema: "PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN"— Transcripción de la presentación:

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

2 AGENDA INTRODUCCION Y OBJETIVOS PROCESO HILOS
PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRÀCTICA EVALUACION

3 INTRODUCCION El 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

4 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

5 AGENDA INTRODUCCION Y OBJETIVOS PROCESO HILOS
PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRÀCTICA EVALUACION

6 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)

7 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 número que lo identifica entre los demás: identificador de proceso (process id)

8 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 dinánica (heap): Memoria dinámica que genera el proceso. – Pila (stack): Utilizado para preservar el estado en la invocación anidada de procedimientos y funciones.

9 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 está ejecutando sus instrucciones. –  Bloqueado (waiting): El proceso está esperando por un evento (que se complete un pedido de E/S o una señal). –  Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso procesador. –  Finalizado (terminated): El proceso finalizó su ejecución

10 Estados de los procesos

11 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 más de un procesador en el sistema). Al liberarse un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio definido, a ejecutar.

12 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, además, si está 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 más eficiente el procesador.

13 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 última instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso.

14 AGENDA INTRODUCCION Y OBJETIVOS PROCESO HILOS
PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRÀCTICA EVALUACION

15 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 están proporcionando servicios para crear más de un hilo (thread) de ejecución (control) en un proceso. Con las nuevas tecnologías multi-core esto se hace algo necesario para poder sacar mayor provecho al recurso de procesamiento. De esta forma, se tiene más de un hilo de ejecución en el mismo espacio de direccionamiento.

16 HILOS (Threads) Un Thread (Hilo) es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Es también 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) está formado ahora por uno o varios threads. Un thread puede pertenecer a una sola tarea.

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

18 Ventajas del uso de threads
Compartir recursos: Los threads de un proceso comparten la memoria y los recursos que utilizan. Economía: Es más fácil un cambio de contexto entre threads ya que no es necesario cambiar el espacio de direccionamiento. A su vez, es más “liviano” para el sistema operativo crear un thread que crear un proceso nuevo. Utilización de arquitecturas con multiprocesadores: Disponer de una arquitectura con más 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.

19 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.

20 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 librería de usuario. La librería 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 núcleo (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

21 HILOS La mayoría 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 único thread a nivel de sistema. –  1x1 (One-to-One): Cada thread de usuario se corresponde con un thread a nivel del núcleo (kernel thread). –  MxN (Many-To-Many): Varios threads a nivel de usuario se corresponde con varios threads a nivel del núcleo.

22 HILOS

23 AGENDA INTRODUCCION Y OBJETIVOS PROCESO HILOS
PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRÀCTICA EVALUACION

24 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 cuál de los procesos hará uso del procesador. La toma de esta decisión, así como el tiempo de ejecución del proceso, estará dada por un algoritmo, denominado Algoritmo de Planificación.

25 Objetivos de la Planificación de procesos
La 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 mínimo el tiempo de espera de los resultados esperados por los usuarios por lotes. Rendimiento: Maximizar el número de tareas que se procesan por cada hora.

26 Algoritmos de Planificación
Primero en llegar primero en ser servido Conocido 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 después del que llegó antes que él 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 corto Su nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecución cambiará de estado voluntariamente, o sea, no tendrá un tiempo de ejecución determinado para el proceso. A cada proceso se le asigna el tiempo que usará cuando vuelva a estar en ejecución, y se irá 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.

27 Algoritmos de Planificación
Round Robin A 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 continuará su ejecución después 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 prioridad En este tipo de planificación a cada proceso se le asigna una prioridad siguiendo un criterio determinado, y de acuerdo con esa prioridad será el orden en que se atienda cada proceso.

28 Algoritmos de Planificación
Planificación garantizada Para realizar esta planificación el sistema tiene en cuenta el número de usuarios que deben ser atendidos. Para un número "n" de usuarios se asignará a cada uno un tiempo de ejecución igual a 1/n. Planificación de Colas Múltiples El 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 número determinado de colas más pequeñas. Los procesos son clasificados mediante un criterio para determinar en qué cola será colocado cada uno cuando quede en estado de listo. Cada cola puede manejar un algoritmo de planificación diferente a las demás.

29 AGENDA INTRODUCCION Y OBJETIVOS PROCESO HILOS
PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRÀCTICA EVALUACION

30 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

31 Comunicación entre procesos
Es necesario que el sistema operativo brinde unas herramientas específicas 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 compartida Pasaje de mensajes Sockets

32 PIPES

33 Sección critica La solución al problema de la región crítica debe satisfacer tres requisitos: Exclusión mutua. Si el proceso Pi esta ejecutando en su región crítica, ningún otro proceso puede estar ejecutándose en su región crítica. Progreso. Si en un momento dado no existe ningún 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 Espera acotada. Debe existir una cota en el número de veces que otros procesos se les permite entrar en su región crítica, después de que un proceso ha hecho una petición para entrar y antes de que le sea concedida.

34 Sincronización de Hardware
La 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.

35 Semáforos Desafortunadamente 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

36 Semáforos – Dormir , Despertar

37 Paso de mensajes Permite resolver: Exclusión mutua
Sincronizar entre un proceso que recibe un mensaje y otro que lo envía Comunicación de datos entre espacios de memoria diferentes (mismo computador, diferentes computadores) Primitivas básicas: send(destino, mensaje): envía un mensaje al proceso destino receive(origen, mensaje): recibe un mensaje del proceso origen

38 Objetos de memoria compartida
Permiten crear un segmento de memoria compartido entre procesos de la misma máquina. Declaración independiente de variables

39 Sockets Permiten comunicar: Tipos de direcciones:
Procesos del mismo computador Procesos conectados a través de una red Tipos de direcciones: Direcciones locales: dominio UNIX Direcciones de red (TCP/IP) Dirección de red (dirección IP) Puerto

40 AGENDA INTRODUCCION Y OBJETIVOS PROCESO HILOS
PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRACTICA EVALUACION

41 INTRODUCCION Y OBJETIVOS
PROCESO HILOS PLANIFICACION DE PROCESOS COMUNICACIÓN ENTRE PROCESOS PRÀCTICA EVALUACION


Descargar ppt "PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN"

Presentaciones similares


Anuncios Google