Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Procesos y procesadores en sistemas distribuidos




Enviado por Pablo Turmero



    Monografias.com

    Agenda
    3.1 Procesos y procesadores conceptos básicos.

    3.2 Hilos y multihilos.
    3.3 Modelos de procesadores.
    3.4 Asignación de procesadores.
    3.5 Coplanificación.
    3.6 Tolerancia a fallos.
    3.7 Sistemas distribuidos de tiempo real.

    Monografias.com

    Procesos
    Un proceso es un programa en ejecución.

    Todos los procesos tienen asociados un espacio de direcciones en memoria, registros y el contador de programas.

    Un programa para poderse ejecutar necesita estar en memoria principal.

    Los procesos son dependientes del sistema operativo.

    Monografias.com

    Procesos
    El espacio de direcciones se compone además de direcciones para almacenar datos, código, la pila y el heap (montículo).

    Toda la información de los procesos en los SOs se guardan el PCB (Process Control Block) que es un arreglo o lista ligada que indica la descripción de cada uno de los procesos.

    Monografias.com

    Procesos
    Los procesos tienen asignados un identificador de procesos (PID), el cual es la forma en que el SO trabaja con los procesos.

    La finalidad del administrador de procesos es realizar una buena administración (planificación) del tiempo de CPU.

    Los procesos presentan tres estados básicos: Ejecución, Listo y Bloqueado.

    Monografias.com

    Ejecución de un Proceso

    Monografias.com

    Lista de Procesos

    Monografias.com

    Procesos
    Un proceso está en ejecución cuando tiene acceso real al tiempo de CPU.

    Un proceso está listo cuando se puede ejecutar, es decir, por algún motivo se suspendió para dejar ejecutar otro proceso

    Un proceso está bloqueado cuando está en espera de algún recurso (E/S) o de que ocurra un evento.

    Monografias.com

    Procesos

    Monografias.com

    Procesos
    Estos procesos pueden trabajar de manera cooperativa para la resolución de un problema muy particular. Para ello necesitan comunicarse entre sí y a lo que a nivel de SO se llama IPC (Inter Process Communication).

    La parte más importante de la comunicación entre procesos es sin duda la transferencia de mensajes entre los diversos procesos.

    Monografias.com

    IPC
    La transferencia de mensajes puede llevarse acabo en base a dos primitivas, enviar y recibir, que se pueden aplicar a casi cualquier recurso como a los archivos (leer y escribir).

    La comunicación entre procesos IPC se debe dar a través del kernel del Sistema Operativo.

    Monografias.com

    Procesador
    Un procesador o mejor conocido como microprocesador es la unidad de hardware que se encarga de procesar los datos que están almacenados en una computadora para producir cualquier tipo de información de interés para los usuarios.

    Un microprocesador se compone de una Unidad Lógica-Aritmética (ALU) que se encarga de las operaciones básicas dadas a través de microprogramación.

    Monografias.com

    Procesador
    También se compone de una unidad de control encargada de la sincronización de todas las operaciones y de áreas de almacenamiento principal llamadas registros y memoria caché.

    La problemática principal es que existe una confusión muy amplia entre lo que es un sistema distribuido, un sistema multiprocesamiento, un sistema paralelo, etc.

    Monografias.com

    Clasificación de SD
    Una de las clasificaciones más aceptadas es la de Flynn, la cual se basa en dos características esenciales: el número de flujos de instrucciones y el número de flujo de datos. La clasificación es la siguiente:

    Una computadora con un sólo flujo de instrucciones y un flujo de datos (SISD, Single Instruction Single Data). Computadoras con monoprocesador.

    Monografias.com

    Clasificación de SD
    Computadoras con un flujo de instrucciones y varios flujos de datos (SIMD, Single Instruction Multiple Data). Procesadores vectoriales.

    Computadoras con múltiples flujos de instrucciones y varios flujos de datos (MIMD, Multiple Instruction Multiple Data). Concepto de SD (no implementada como tal)

    Monografias.com

    Clasificación SD
    Los sistemas MIMD se subdividen en dos grupos:

    Máquinas multiprocesadores. Existe un espacio de direcciones virtuales, compartido por todos los CPU del sistema.

    Sistemas multicomputadoras. Cada máquina tiene su propia memoria en particular.

    Monografias.com

    Clasificación SD
    Las categorías anteriores puede clasificarse de acuerdo a la red de comunicación con la que se interconectan los CPU, en las siguientes categorías:

    Tecnología de bus
    La tecnología de conmutador

    Monografias.com

    Otras clasificaciones de SD
    En todos los sistemas de equipo de cómputo, algunas máquinas están fuertemente acopladas, mientras que otras están débilmente acopladas.

    A continuación se muestran cuatro categorías de sistemas de cómputo, en base al acoplamiento y tipo de conexión.

    Monografias.com

    Otras clasificaciones de SD
    Multiprocesadores con base en buses.

    Multiprocesadores con conmutador.

    Multicomputadoras con base en buses.

    Multicomputadoras con conmutador.

    Monografias.com

    Otras clasificaciones de SD
    En base al acoplamiento del software con el hardware los SD se dividen en:
    Software débilmente acoplado en hardware débilmente acoplado. LAN
    Software fuertemente acoplado en hardware débilmente acoplado (multicomputadoras). SD
    Software fuertemente acoplado en hardware fuertemente acoplado. Sistemas Tiempo Compartido y Servidores Dedicados.

    Monografias.com

    Cómputo Distribuido
    La distribución del cómputo puede realizarse de diversas formas de acuerdo a su grado de acoplamiento en:
    Fuertemente acopladas: Multiprocesadores (memoria compartida). UMA (Uniform Memory Acces)
    Débilmente acopladas: Multicomputadoras (memoria privada). NUMA (Non Uniform Memory Access)

    Monografias.com

    Sistemas multiprocesadores
    Son sistemas que tienen dos o más procesadores (CPU), comparten las misma memoria (espacio de direcciones).

    Los sistemas multinúcleos es la nueva tendencia en el desarrollo de sistemas multiprocesadores. En un solo chip se tienen varios procesadores (no es nada nuevo bajo el sol).

    Monografias.com

    Tarjeta madre

    Tarjeta madre
    Sistemas multiprocesadores
    CPU 1
    CPU n
    CPU 2
    Memoria
    Modelo de n procesadores

    CPU
    N1
    Nn
    Memoria
    Modelo de n núcleos

    Monografias.com

    Sistemas multicomputadoras
    Son sistemas donde cada unidad de proceso es autónoma e independiente de las demás pero trabajan de manera conjunta.

    La interconexión de unidades de proceso se hace a través de redes de computadora de preferencia de altas velocidades.

    Este es el concepto más estandarizado de un SD.

    Monografias.com

    Agenda
    3.1 Procesos y procesadores conceptos básicos.

    3.2 Hilos y multihilos.

    3.3 Modelos de procesadores.
    3.4 Asignación de procesadores.
    3.5 Coplanificación.
    3.6 Tolerancia a fallos.
    3.7 Sistemas distribuidos de tiempo real.

    Monografias.com

    Concurrencia
    El término concurrencia indica que se tienen dos o más procesos al mismo tiempo en el mismo lugar; esto no implica que se estén ejecutando al mismo tiempo (paralelismo).

    El término concurrencia se ha utilizado para indicar que se ejecutan dos o más actividades quasi-paralelamente. En sistemas monoprocesadores esto se logra a través de esquemas de multitarea real y cooperativa.

    Monografias.com

    “Granularidad” del paralelismo
    Cuando queremos explotar el paralelismo, podemos hacerlo en niveles de detalle distintos:
    Instrucciones de máquina
    Sentencias de un lenguaje de programación
    Módulos dentro de un programa
    Programas ejecutables completos

    Grano fino ? grano grueso

    Monografias.com

    27
    “Granularidad” del paralelismo
    El programador debe saber con qué “grano” debe trabajar ante cada problema y no trabajar en niveles de detalle inferior.

    Ej. si trabajamos con Ada o Java, estamos en el nivel de “módulos”:
    Concurrencia basada en hilos (threads)
    no deberíamos perder el tiempo buscando sentencias simples que se pueden ejecutar en paralelo ? crear un hilo nuevo para ejecutar una única instrucción no hace ganar tiempo, incluso puede tardar más.

    Monografias.com

    28
    ¿Dónde se encuentra la concurrencia?

    En el hardware (la herramienta para construir sistemas informáticos):
    ejecución paralela de instrucciones
    funcionamiento paralelo de los periféricos
    procesadores múltiples
    sistemas distribuidos

    En la Naturaleza (los sistemas que modelamos cuando hacemos ingeniería de software)
    ¿ejemplos?

    Monografias.com

    29
    Concurrencia inherente o potencial

    Concurrencia inherente:
    Hay sistemas que en los que forzosamente se dan actividades simultáneas.
    p.ej. GUI; red de cajeros automáticos; etc.

    Concurrencia potencial:
    Hay sistemas o problemas que se pueden resolver de forma secuencial, pero en los que se puede aprovechar la concurrencia p.ej. para aumentar el rendimiento.
    P.ej. multiplicar dos matrices, ordenar un vector…

    Monografias.com

    Concurrencia Unix
    Los subprocesos se crean con fork()

    #include
    pid_t pid;
    pid = fork()

    Se pueden copiar procesos con la familia de funciones exec.

    Monografias.com

    fork()
    if (pid == -1)
    perror(“Error al crear proceso”);
    else
    {
    if (pid == 0)
    /*Proceso hijo*/
    else
    /*Proceso padre*/
    }

    Monografias.com

    Procesos Padre e Hijos

    Monografias.com

    Terminación de procesos
    Cuando un proceso termina devuelve un valor de retorno al proceso padre.

    Todos los procesos tienen un proceso padre. Este código de retorno puede ser consultado a través de la variable de entorno $?

    La forma más fácil de salir es devolver un código de retorno (e.g., return 0).

    Monografias.com

    Terminación de procesos
    Otra forma de salir es a través de exit(), realiza aparentemente el mismo comportamiento, ayuda a desbloquear procesos en espera.

    La función atexit() permite definir una función que se ejecutará al finalizar un programa.

    Monografias.com

    Terminación de procesos
    A el código de estado de un proceso formalmente se llama señal.

    Un proceso huérfano es aquel que se ha quedado sin padre.

    Un proceso zombi es aquel que se ha quedado ocupando una posición de la tabla de descriptor de procesos.

    Monografias.com

    wait()
    En algunas ocasiones un proceso padre necesita esperar a que sus hijos termine. Para ello necesita sincronizarse los procesos.

    La función que nos permite parar un proceso hasta que termine otro es wait

    pid = wait(&estado);

    Monografias.com

    wait()
    Algunas macros que nos ayudan en este proceso son:

    WIFEXITED
    WEXITSTATUS
    WIFSIGNALED
    WTERMSIG
    WCOREDUMP

    Monografias.com

    Más sobre procesos
    Un ejemplo de clonación de procesos es la ejecución de la función system() que nos permite ejecutar una llamada al sistema, generalmente un comando de la shell.

    hijo = getpid();
    Padre = getppid();
    Grupo = getpgrp();

    Monografias.com

    Identificadores de usuario y de grupo

    En muchas ocasiones no sólo es necesario conocer los identificadores de procesos sino conocer los usuarios y los grupos.

    uid_t getuid(); /*usuario real*/
    uid_t geteuid(); /*usuario extendido*/
    gid_t getgid();
    gid_t getegid();

    Monografias.com

    ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN LA VERSIÓN DE DESCARGA

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter