Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El presente trabajo esta dedicado a Dios y a nuestros padres quienes son el motivo de nuestra
superación y gracias a su amor que nos brindan cada día con el cual nos han sabido guiar en
nuestra vida por el sendero de la verdad a fin de poder honrar a nuestras respectivas familias,
brindándonos su esfuerzo y sacrificio para ofrecernos un futuro mejor y así culminar nuestra vida
III. DEFINICIÓN..........................................................................................................................6
V. PROCESOS PARALELISMO.....................................................................................................9
VII. HILOS...................................................................................................................................12
IX. REFERENCIAS.....................................................................................................................22
I. INTRODUCCIÓN
La sistematización de este informe consta de cuatro capítulos, de tal manera que en el primer
La concurrencia es la capacidad del CPU para procesar más de un proceso al mismo tiempo. Un
procesador puede procesar al mismo tiempo el mismo número de procesos que el número de
CORES que tiene, de esta forma, si un procesador tiene un CORE, entonces solo podrá ejecutar un
proceso a la vez, por otro parte, si tenemos 8 CORES, entonces podremos ejecutar hasta 8
colaborar entre sí por los recursos del sistema. Por tanto, existen tareas de colaboración y
Se manifiesta en aspectos tales como la comunicación entre procesos, acceso a los recursos,
sincronización de ejecución.
Dos procesos son concurrentes cuando la primera instrucción de uno de ellos se ejecuta
Se ejecutan al mismo tiempo los dos procesos, lo que tendríamos una situación llamada
“programación paralela”. Ejemplo: el navegador web puede dar a más de un proceso; uno que
controla las acciones del usuario con interfaz, otro que hace peticiones al servidor, etc.
2. Pueden existir otros procesos que compiten por recursos del sistema. Esto para obtener
tiempo de procesador.
diferentes resultados cuando se ejecutan rápidamente sobre el mismo conjunto de datos de entrada.
III. DEFINICIÓN
Según (StudentPlace, 2018) La Concurrencia: es una propiedad de los sistemas en la cual los
procesos de un cómputo se hacen simultáneamente, y pueden interactuar entre ellos, es decir son
procesados al mismo tiempo, de manera que, para ejecutar uno de ellos, no hace falta que se haya
ejecutado otro.
Según (Velásquez, 2008)la concurrencia es simplemente la ejecución de varias tareas al
mismo tiempo. Ahora esto de ejecutarse "al mismo tiempo" es relativo de acuerdo a la arquitectura
del ordenador, - ¿espera que? de seguro preguntaras- esto es debido a que, de acuerdo a la
arquitectura básica, el ordenador solo puede ejecutar un programa o tarea a la vez, y no más, si
(Multiprogramación) es debido a que el sistema operativo intercala las tareas que se ejecutan en el
Pongamos un ejemplo: digamos que estoy reproduciendo una canción al mismo tiempo que
estoy escribiendo esta entrada, y a su vez estoy tengo un video abierto en YouTube. Lo que en
Al poner todo junto y al hacerlo a una velocidad ultra rápida (1 nanosegundo) nos da la
ilusión de que todo sucede al mismo instante, pero no es así. En fin, olvidémonos de esto por un
En fin, quedémonos en decir que los procesos son concurrentes si existen simultáneamente.
Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o
pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o
cooperación.
Según (Florido) la concurrencia aparece cuando dos o más procesos son contemporáneos.
Solución a problemas de esta naturaleza. Existen algunos problemas cuya solución es más
actuación (p.ej. sistemas de tiempo real). - Tecnologías web: Servidores web que son
(p.ej.) Navegador web). - Simulación: Programas que modelan sistemas físicos con auto-
Los procesos del sistema pueden ejecutarse concurrentemente, puede haber múltiples tareas en
el CPU con varios procesos. Según (Baeza, 2014) existen varias razones para permitir la ejecución
concurrente:
Compartir recursos físicos: Ya que los recursos del hardware de la computadora son
Compartir recursos lógicos: Puesto que varios usuarios pueden interesarse en el mismo
dividirla en subtareas, cada una de las cuales se ejecutara, en paralelo con las demás.
Comodidad: Un usuario puede tener que ejecutar varias tareas a la vez, por ejemplo,
La ejecución concurrente que requiere la cooperación entre procesos necesita un mecanismo para
V. PROCESOS PARALELISMO
una solución más rápido. El paralelismo que hace es tomar el problema inicial, dividir el problema
todos los procesos concurrentes están intimada mente relacionados a resolver el mismo problema,
de tal forma que el resultado de los demás procesos afecta al resultado final.
Característica:
El paralelismo requiere un soporte físico: varios procesadores
concurrentes.
Ejemplo de concurrencia:
independiente de la otra, por lo que la velocidad y el tiempo que tarde en descargarse cada una no
afectara al resto de canciones. Esto lo podemos ver como un proceso concurrente, ya que cada
Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como
Un proceso independiente es aquel que ejecuta sin requerir la ayuda o cooperación de otros
procesos. Un claro ejemplo de procesos independientes son los diferentes intérpretes de mandatos
Los procesos cooperantes, cuando están diseñados para trabajar conjuntamente en alguna
actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos en el ejemplo del
compilador que se vio anteriormente, los dos procesos que lo conforman son procesos
cooperantes.
Tanto si los procesos son cooperantes como independientes, puede producirse una serie de
Interacción motivada: porque los procesos comparten o compiten por el acceso a recursos
físicos o lógicos. Esta situación aparece en los distintos tipos de procesos anteriormente
comentados. Por ejemplo, dos procesos totalmente independientes pueden competir por el
acceso al disco. En este caso el sistema operativo deberá encargarse de que los dos
Esta situación también aparece cuando varios procesos desean modificar el contenido de un
registro de una base de datos. Aquí es el gestor de la base de datos el que se tendrá que encargar de
Interacción social: porque los procesos se comunican y sincronizan entre sí para alcanzar
anteriormente son dos procesos que deben comunicarse y sincronizarse entre ellos con el
Virtualmente todos los sistemas de tiempo-real son inherentemente concurrentes (los dispositivos
No necesitan comunicarse.
No necesitan sincronizarse.
Un claro ejemplo de procesos independientes son los diferentes intérpretes de mandato que se
físicos y lógicos.
Interacción social: Los procesos independientes pueden competir por el acceso al disco. en
este caso el sistema operativo deberá encargarse de que los 2 procesos accedan
VII. HILOS
dentro de un proceso es más rápido que cambiar de un proceso a otro. Este fenómeno se debe al
hecho de que los subprocesos comparten datos y espacio de direcciones, mientras que los
procesos independientes no solamente nacen.
Las siguientes imágenes nos muestran 3 hilos con que se trabaja en un código escrito en java.
Cre
Fin
almente inicializamos todas las clases heredadas en la clase padre(lo cual vinieran a ser los
hilos).
Ejecutamos y vemos los resultados.
Según (Baeza, 2014)En los sistemas de tiempo compartido (aquellos con varios usuarios,
procesos, tareas, trabajos que reparten el uso de CPU entre estos) se presentan muchos problemas
debido a que los procesos compiten por los recursos del sistema. Imagine que un proceso está
el proceso elegido para ejecutarse comienza a escribir sobre la misma cinta. El resultado es una
cinta cuyo contenido es un desastre de datos mezclados. Así como la cinta, existen una multitud de
recursos cuyo acceso debe der controlado para evitar los problemas de la concurrencia.
semáforos, envío de mensajes, 'pipes', etc. Los semáforos son rutinas de software (que en su nivel
más interno se auxilian del hardware) para lograr exclusión mutua en el uso de recursos. Para
entender este y otros mecanismos es importante entender los problemas generales de concurrencia,
cuando dos o más procesos accedan un recurso compartido sin control, de manera que el
resultado combinado de este acceso depende del orden de llegada. Suponga, por ejemplo,
que dos clientes de un banco realizan cada uno una operación en cajeros diferentes al
mismo tiempo.
consiste en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de
ejecución para terminar su tarea. Por ejemplo, que un proceso ocupe un recurso y lo
marque como 'ocupado' y que termine sin marcarlo como 'desocupado'. Si algún otro
proceso pide ese recurso, lo verá 'ocupado' y esperará indefinidamente a que se 'desocupe'.
Condición de Espera Circular: Esto ocurre cuando dos o más procesos forman una cadena
de espera que los involucra a todos. Por ejemplo, suponga que el proceso A tiene asignado
proceso A se le ocurre pedir el recurso 'disco' y al proceso B el recurso 'cinta'. Ahí se forma
una espera circular entre esos dos procesos que se puede evitar quitándole a la fuerza un
pero juega un papel importante en este ambiente. Esta condición especifica que, si un
proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo,
Condición de Espera Ocupada: Esta condición consiste en que un proceso pide un recurso
Entonces el proceso estará gastando el resto de su time slice checando si el recurso fue
este problema consiste en que el sistema operativo se dé cuenta de esta situación y mande a
una cola de espera al proceso, otorgándole inmediatamente el turno de ejecución a otro
proceso.
Condición de Exclusión Mutua: Cuando un proceso usa un recurso del sistema realiza una
serie de operaciones sobre el recurso y después lo deja de usar. A la sección de código que
usa ese recurso se le llama 'región crítica'. La condición de exclusión mutua establece que
solamente se permite a un proceso estar dentro de la misma región crítica. Esto es, que en
cualquier momento solamente un proceso puede usar un recurso a la vez. Para lograr la
exclusión mutua se ideo también el concepto de 'región crítica'. Para logar la exclusión
mutua generalmente se usan algunas técnicas para lograr entrar a la región crítica:
semáforos, monitores, el algoritmo de Dekker y Peterson, los 'candados'. Para ver una
se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado.
Los problemas descritos son todos importantes para el sistema operativo, ya que debe ser
capaz de prevenir o corregirlos. Tal vez el problema más serio que se puede presentar en un
deadlock es una condición que ningún sistema o conjunto de procesos quisiera exhibir, ya que
ocupar y esperar un recurso. Ante esto, si el deadlock involucra a todos los procesos del sistema, el
sistema ya no podrá hacer algo productivo. Si el deadlock involucra algunos procesos, éstos
https://sites.google.com/site/materiasisoperativo/unidad-2-administrador-del-proceso-y-
del-procesador/2-4-concurrencia-y-secuenciabilidad
https://www2.ulpgc.es/hege/almacen/download/20/20233/tema1.pdf
https://edwardlozadaso.wordpress.com/hilos/
https://studentplace98.blogspot.com/2018/09/concurrencia-y-secuencialidad-sistemas.html
https://conocimientosweb.net/dcmt/ficha19190.html#:~:text=Los%20procesos
%20cooperantes%2C%20cuando%20est%C3%A1n,lo%20conforman%20son
%20procesos%20cooperantes
https://webprogramacion.com/concurrencia-de-procesos/
https://edwardlozadaso.wordpress.com/hilos/