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

Slides:



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

Definición Objetivos Funciones de un S.O.
Sistemas Operativos Administración del procesador.
Planificación de Monoprocesadores
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Administración de procesos y del procesador.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
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.
Modelo de procesos de dos estados
Windows XP sp3.
SISTEMAS OPERATIVOS UNIDAD 1..
Administración de procesos y del procesador.
Elemento Lógico (Software)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Concurrencia: interbloqueo e inanición
Tema 10: Gestión de Memoria
Sistemas Operativos Procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
PROGRAMACION CONCURRENTE
Profesor: Rodrigo Sanhueza Figueroa
Capítulo 6: Planificación del CPU – Parte a
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
SISTEMA OPERATIVO Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar.
Asignación de Espacio No Contiguo
Planificación del Procesador
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,
EL SISTEMA OPERATIVO.
Hilos En La Computación. (THREADS).
Características de un sistema operativo
Planificación de Procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Introducción a los Sistemas Operativos
Capítulo 7 Gestión de memoria.
FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN
Gestión de procesos Sistemas Operativos Edwin Morales
Sincronización de Procesos
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Introducción a los Sistemas Operativos
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
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Sistemas Operativos Unidad III Procesos.
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
LSI. Freddy Veloz Sistemas Operativos
UTFSM - Sistemas Operativos
INTERRUPCIONES – ABRAZO MORTAL
TEMA: PROCESOS y PLANIFICACIÓN
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.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
Historia de los sistemas operativos. Los Sistemas Operativos han sufrido una serie de cambios revolucionarios llamados generaciones. Hay cuatro generaciones:
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.
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
Conociendo el modelo Cliente-Servidor
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Estructura del sistema operativo
Transcripción de la presentación:

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

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

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

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

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)

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)

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.

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

Estados de los procesos

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.

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.

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.

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

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.

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.

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

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.

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.

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

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.

HILOS

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

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.

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.

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.

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.

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.

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

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

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

PIPES

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.

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.

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

Semáforos – Dormir , Despertar

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

Objetos de memoria compartida Permiten crear un segmento de memoria compartido entre procesos de la misma máquina. Declaración independiente de variables mperez@fi.upm.es

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 mperez@fi.upm.es

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

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