Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de Sistemas
Dos o más procesos decimos que son concurrentes, paralelos, o que se ejecutan
concurrentemente, cuando son procesados al mismo tiempo, es decir, que para ejecutar
uno de ellos, no hace falta que se haya ejecutado otro.
En sistemas multiprocesador, esta ejecución simultánea podría conseguirse
completamente, puesto que podremos asignarle, por ejemplo, un proceso A al procesador
A y un proceso B al procesador B y cada procesador realizaran la ejecución de su
proceso.
Cuando tenemos un solo procesador se producirá un intercalado de las instrucciones de
ambos procesos, de tal forma que tendremos la sensación de que hay un paralelismo en el
sistema (concurrencia, ejecución simultánea de más de un proceso).
Ahora bien, está claro que en esto debemos tener en cuenta que mientras un proceso está
escribiendo un valor en una variable determinada, puede darse el caso que otro proceso
que es concurrente al primero vaya a leer o escribir en esa misma variable, entonces
habrá que estudiar el caso en el que un proceso haga una operación sobre una variable (o
recurso en general) y otro proceso concurrente a él realice otra operación de tal forma que
no se realice correctamente. Para estudiar esto, y determinar el tipo de operaciones que se
pueden realizar sobre recursos compartidos utilizaremos las condiciones de Bernstein.
Programación Concurrente
Virtualmente todos los sistemas de tiempo-real son inherentemente concurrente – los
dispositivos operan en paralelo en el mundo real.
Programación concurrente es el nombre dado a las técnicas y natación de programación
para expresar “Paralelismo” potencial y resolver la sincronización y los problemas de
comunicación
En la programación concurrente solo se cuenta con un procesador. El tiempo de CPU se
reparte entre varios procesos.
El paralelismo implica que existen varios procesadores en el sistema. La programación
paralela implica dividir la ejecución de un programa en distintos módulos los cuales se
ejecutarán en distintos procesadores.
Tipos de Concurrencia
• Multiprocesador
– Se combinan paralelismo real y Pseudoparalelismo.
- Normalmente más procesos que CPU’s.
• Sistema distribuido
– Varios computadores conectados por red.
Ventajas de la ejecución concurrente
• Facilita la programación.
– Diversas tareas se pueden estructurar en procesos separados.
– Servidor Web: Un proceso encargado de atender a cada petición.
Fueron introducidos inicialmente por Dijkstra (1968). Son componentes de muy bajo
nivel de abstracción, de fácil comprensión y con una gran capacidad funcional. Por el
contrario, son unos componentes que por su bajo nivel de abstracción resultan muy
peligrosos de manejar y frecuentemente son causa de muchos errores.
• Condiciones:
– Cualquier NÚMERO de lectores pueden leer de la zona de datos
concurrentemente.
– Solamente un escritor puede modificar la información a la vez.
– Durante una escritura ningún lector puede realizar una consulta.
Referencias:
https://webprogramacion.com/43/sistemas-operativos/concurrencia-de-procesos.aspx
http://ocw.uc3m.es/ingenieria-informatica/sistemas-operativos/material-de-clase-
1/mt_t3_l6.pdf