Concurrencia y Secuencialidad

20
SISTEMAS OPERATIVOS

Transcript of Concurrencia y Secuencialidad

Page 1: Concurrencia y Secuencialidad

SISTEMAS

OPERATIVOS

Page 2: Concurrencia y Secuencialidad

INTEGRANTES

Hurtado Durand Génesis Alexandra

Alemán Jiménez José

Damián Ortega Mayra Yadira

Rojas Torres Neyfi

Morales Salgado Guillermo

Page 3: Concurrencia y Secuencialidad

CONCURRENCIA Y

SECUENCIABILIDAD

Page 4: Concurrencia y Secuencialidad

Introducción La concurrencia es la simultaneidad en la ejecución

de múltiples tareas interactivas. Estas tareas pueden

ser un conjunto de procesos o hilos de

ejecución creados por un único programa. Las tareas

se pueden ejecutar en una sola unidad central de

proceso (multiprogramación), en varios

procesadores o en una red de computadores

distribuidos. Así, la correcta secuencia de

interacciones o comunicaciones entre los procesos y

el acceso coordinado de recursos que se comparten

por todos los procesos o tareas son las claves de esta

disciplina.

Page 5: Concurrencia y Secuencialidad

La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, comparación y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos y es fundamental para que existan diseños como Multiprogramación, Multiproceso y Proceso

distribuido.

Los procesos son concurrentes si existen simultáneamente. Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes, es necesario que tengan alguna relación entre ellos.

Page 6: Concurrencia y Secuencialidad

La concurrencia puede presentarse en tres contextos diferentes:

• Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.

• Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.

• Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.

Page 7: Concurrencia y Secuencialidad

Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes:

• Multiprogramación con un único procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecución de los mismos para dar así una apariencia de ejecución simultánea.

• Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no sólo pueden intercalar su ejecución sino también superponerla.

• Multicomputadora. Es una maquina de memoria distribuida, que está formada por una serie de computadoras. En este tipo de arquitecturas también es posible la ejecución simultánea de los procesos sobre los diferentes procesadores.

Page 8: Concurrencia y Secuencialidad

Existen diversas razones que motivan la ejecución de procesos concurrentes en un sistema: • Facilita la programación de aplicaciones al permitir que éstas se estructuren como un conjunto de procesos que cooperan entre sí para alcanzar un objetivo común. • Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los demás. • Posibilita el uso interactivo a múltiples usuarios que trabajan de forma simultánea. • Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros.

Page 9: Concurrencia y Secuencialidad

Así como existen las razones que motivan la ejecución de procesos concurrentes, también existen sus contras:

• Inanición e interrupción de procesos • Ocurrencia de bloqueos • Que dos o mas procesos requieran el mismo recurso (No apropiativo)

Page 10: Concurrencia y Secuencialidad

PROGRAMAS

CONCURRENTES. • Son programas que tienen múltiples líneas de flujo de control.

• • Las sentencias de un programa concurrente se ejecutan de

• acuerdo con un orden no estricto.

• • La secuencialización de un programa concurrente es entre

• hitos o puntos de sincronización.

• • Un programa concurrente se suele concebir como un conjunto

• de procesos que colaboran y compiten entre sí.

• • Para validar un programa concurrente:

• Las operaciones se pueden validar individualmente si las variables no

• son actualizadas concurrentemente.

• El resultado debe ser independiente de los tiempos de ejecución de las

• sentencias.

• El resultado debe ser independiente de la plataforma en que se ejecuta.

Page 11: Concurrencia y Secuencialidad

PROGRAMAS

SECUENCIALES. • Es el estilo de programación que corresponde al modelo

• conceptual de Von Newmann.

• • Un programa secuencial tiene una línea simple de control de

• flujo.

• • Las operaciones de un programa secuencial están ordenadas

• de acuerdo con un orden estricto.

• • El comportamiento de un programa es solo función de las

• sentencias que lo componen y del orden en que se ejecutan.

• • El tiempo que tarda en ejecutarse cada operación no influye

• en el resultado de un programa secuencial.

• • La verificación de un programa secuencial es sencilla:

• Cada sentencia da la respuesta correcta.

• Las sentencias se ejecutan en el orden adecuado.

Page 12: Concurrencia y Secuencialidad

APLICACIONES DE LOS

PROGRAMAS CONCURRENTES • Aplicaciones clásicas:

• Programación de sistemas multicomputadores.

• Sistemas operativos.

• Control y monitorización de sistemas físicos.

• • Aplicaciones actuales:

• Servicios WEB.

• Sistemas multimedia.

• Cálculo numérico.

• Procesamientos entrada/salida.

• Simulación de sistemas dinámicos.

• Interacción operador/máquina (GUIs)

• Tecnologías de componentes.

• Código móvil.

• Sistemas embebidos.

Page 13: Concurrencia y Secuencialidad

TIPOS DE PROCESOS

CONCURRENTES

Page 14: Concurrencia y Secuencialidad

La computación distribuida supone el uso de programación concurrente, que consiste en la ejecución simultanea de procesos.

Hay tres tipos:

• Procesos concurrentes ejecutados en múltiples computadoras.

• Procesos concurrentes ejecutados en una sola computadora.

• Programación concurrente dentro de un proceso.

Page 15: Concurrencia y Secuencialidad

Procesos concurrentes ejecutados en múltiples computadoras

• Son procesos separados ejecutándose concurrentemente en computadoras independientes interconectados a través de una red.

• Interactúan con otros procesos mediante el intercambio de datos sobre la red, pero su ejecución es completamente independiente.

Page 16: Concurrencia y Secuencialidad

Procesos concurrentes ejecutados en una sola computadora.

• La concurrencia puede ser real o virtual.

• La concurrencia multitarea solo es posible si el computador tiene múltiples CPU, de manera que cada CPU pueda ejecutar un proceso.

• Se utiliza tiempo compartido, lo que permite que los procesos puedan ejecutarse por turnos, creando una ilusión que se ejecutan en paralelo.

Page 17: Concurrencia y Secuencialidad

Programación concurrente dentro de un proceso

La programación concurrente dentro de un proceso se lleva a cabo a través de dos tipos de herramientas, proporcionadas por el sistema operativo.

• Procesos padres e hijos

• Threads o hilos

Page 18: Concurrencia y Secuencialidad

Procesos padres e hijos

En tiempo de ejecución, un proceso puede crear procesos subordinados o procesos hijos. A través de la multitarea real o virtual, el proceso original, denominado proceso padre, continua ejecutándose simultáneamente con el proceso hijo. Un proceso hijo es un proceso completo que cosiste en un programa en ejecución, con valores propios, información de estado, que hereda del proceso padre.

Page 19: Concurrencia y Secuencialidad

Threads o hilos

En ves de procesos hijos, también son conocidos como procesos ligeros.

Los hilos poseen una mínima información de estado, comportándose por lo demás de la misma forma que los procesos.

Page 20: Concurrencia y Secuencialidad

CONCLUSIÓN la concurrencia será aparente siempre que el número de procesos sea mayor que el de procesadores disponibles, es decir, cuando haya más de un proceso por procesador. La concurrencia será real cuando haya un proceso por procesador. Aunque puede parecer que la intercalación y la superposición de la ejecución de procesos presentan formas de ejecución distintas, se verá que ambas pueden contemplase como ejemplos de procesos concurrentes