Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DOCENTE:
INTEGRANTES:
1.
2.
3.
CURSO:
MAZAMARI – 2020
1
DEDICATORIA
2
INTRODUCCION
3
INDICE
Caratula I
Dedicatoria II
Introducción III
Índice IV
CAPÍTULO I
Marco teórico
1.1 definición 05
1.2 multitarea, multiprogramación, multiprocesos 05
1.3 multitareas 06
1.4 multitarea nula 06
1.5 multitarea cooperativa 07
1.6 multitarea referente 07
1.7 multitarea real 08
CAPITULO II
PROGRAMACIÓN
2.1 definición 09
2.2 principios de concurrencia 09
2.3 varias aplicaciones 10
2.4 aplicaciones estructuradas 10
2.5 estructura del sistema operativo 11
2.6 labores del sistema operativo 11
2.7 comunicación y sincronización de procesos 12
2.8 cooperación entre procesos 12
2.9 posibilidad de interacción de procesos 12
2.10 comunicación y sincronización de proceso 13
2.11 necesidad de sincronización de los procesos 13
2.12 gestión de procesos 13
2.13 exclusión mutua 14
2.14 soluciones software para la exclusión mutua 14
2.15 algoritmo de dekker 14
CAPITULO III
COMPONENTES
3.1 programación estructurada 17
3.2 concurrencia y paralelismo 18
Conclusión 21
Bibliografía 22
Anexo 23
4
CAPÍTULO I
MARCO TEÓRICO
1.1 DEFINICIÓN
La programación concurrente 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 un sola UCP multiprogramación, en varios
procesadores o en una red de computadores distribuidos. La programación
concurrente está relacionada con la programación paralela, pero enfatiza
más la interacción entre tareas. Así, la correcta secuencia de interacciones
o comunicaciones entre los procesos y los nodos los procesos coordinados
de recursos que se comparten por tareas son las claves de esta disciplina.
5
1.3 MULTITAREAS
Es la capacidad de un sistema operativo para ejecutar varios procesos al
mismo tiempo corriendo sobre un procesador. Con los sistemas operativos
DOS esto era incapaz de realizarse.
Existen varios tipos de multitareas y son:
Multitarea Nula
Multitarea Cooperativa
Multitarea Preferente
Multitarea Real
6
1.5 MULTITAREA COOPERATIVA
Tipo de multitarea en donde los procesos de usuario son quienes ceden la
CPU al sistema operativo a intervalos regulares.
Es sumamente problemático porque si por algún motivo el proceso de
usuario es interrumpido, no cede la CPU al sistema operativo que lo ejecuta
y, por lo tanto, quedará trabado bloqueado.
Los sistemas operativos Windows antes de la versión 1995 implementaban
este tipo de multitarea.
7
1.7 MULTITAREA REAL
Multitarea en donde el SO ejecuta los procesos realmente al mismo tiempo
haciendo uso de múltiples procesadores más de dos.
La ejecución realmente se realiza en distintos procesadores para cada
proceso o tarea. Obviamente en el caso de que los procesos o tareas sean
más que la cantidad de procesadores, éstos comienzan a ejecutarse en
procesadores en uso en la forma de multitareas preferente. Todos los
sistemas operativos modernos soportan esta capacidad.
8
CAPÍTULO II
MULTIPROGRAMACIÓN
2.1 DEFINICIÓN
Es la técnica que permite que dos o más programas ocupen la misma
unidad de memoria principal y que sean ejecutados al mismo tiempo.
9
La concurrencia es el punto clave en los conceptos de multitarea,
multiprogramación y multiproceso, la concurrencia comprende un gran
número de cuestiones de diseño incluyendo la comunicación entre
procesos, la compartición y competencia por los recursos, la sincronización
de la ejecución de varios procesos y la asignación del procesador a los
procesos, la concurrencia puede presentarse en tres contextos diferentes:
Varias aplicaciones:
Aplicaciones estructuradas:
Estructura del sistema operativo:
10
2.5 ESTRUCTURA DEL SISTEMA OPERATIVO
Como resultado de las aplicaciones estructurada que se aplica en el diseño
del propio SO, de forma que este se implemente como un conjunto de
procesos.
- Tiempo de procesador
- Memoria
- Archivos
- Dispositivos de E/S
11
2.7 COMUNICACIÓN Y SINCRONIZACIÓN DE PROCESOS
Puede verse la concurrencia de procesos como una ejecución simultánea
de varios procesos. Si tenemos un multiprocesador la concurrencia parece
clara, en un momento dado cada procesador ejecuta un proceso. Se puede
ampliar el concepto de concurrencia si entendemos por procesado
concurrente del sistema en conjunto, varios procesos se vean en un estado
intermedio entre su estado inicial y final. Esta última definición incluye los
sistemas multiprogramados de un único procesador que estudiamos en los
temas anteriores.
12
2.10 COMUNICACIÓN Y SINCRONIZACIÓN DE PROCESO
Necesidad de exclusión mutua. Es decir, los procesos deberán acceder de
forma exclusiva a ciertos recursos o zonas de memoria considerados como
críticos.
13
2.13 EXCLUSIÓN MUTUA
La exclusión mutua la podríamos definir como una operación de control que
permite la coordinación de procesos concurrentes (Comunicación requerida
entre dos o más procesos, y que tiene la capacidad de prohibir a los demás
procesos realizar una acción cuando un proceso haya obtenido el permiso.
Algoritmo de Dekker
Algoritmo de Peterson
Semáforos
Monitores
Paso de Mensajes
Soluciones Hardware para la exclusión mutua
14
Existen cinco versiones del algoritmo Dekker, teniendo ciertos fallos los
primeros cuatro. La versión 5 es la que trabaja más eficientemente,
siendo una combinación de la 1 y la 4.
Versión 1: Alternancia estricta. Garantiza la exclusión mutua, pero su
desventaja es que acopla los procesos fuertemente, esto significa que
los procesos lentos atrasan a los procesos rápidos.
15
2.14.2 ALGORITMO DE PETERSON
Peterson desarrolló el primer algoritmo 1981 para dos procesos que fue
una simplificación del algoritmo de Dekker para dos procesos.
Posteriormente este algoritmo fue generalizado para que funcione para
N procesos. En el algoritmo para N procesos las variables c[i] además
de valer "verdadero" y "falso", pueden valer "en sección critica" y turno
desde 1 hasta N.
16
CAPÍTULO III
COMPONENTES
En este ejemplo podemos decir que tenemos cuatro tareas, una por cada
línea de código. El orden de ejecución es descendente. El programa no
17
puede imprimir en consola el nombre del usuario sin antes haberlo pedido.
De igual forma, el programa no puede despedirse sin antes haber dado la
bienvenida. Podemos concluir que este programa es secuencial, ya que
cada tarea se ejecuta una tras otra, en un orden.
18
En este caso nuestro programa realiza tres tareas al mismo tiempo. A cada
tarea le tomó un máximo de dos segundos ser completada, como se
ejecutan de forma concurrente al mismo tiempo al programa le toma dos
segundos finalizar su ejecución. Por otro lado, si ejecutamos el mismo
código, pero ahora de forma secuencial, al programa le tomaría seis
segundos finalizar. El tiempo es sin duda considerable.
19
Técnicamente hablando, para llevar a cabo un verdadero paralelismo es
necesario que nuestra computadora posea múltiples procesadores, con
esto, cada tarea será ejecutada en un procesador diferente, de forma
simultánea, de forma paralela.
20
si ejecutamos tareas en paralelo, las tareas se realizarán de forma simultánea,
comenzarán y finalizarán sin interrupciones.
CONCLUSIÓN
21
BIBLIOGRAFÍA
22
ANEXOS
23