Desarrollo de Páginas Web, Aplicaciones Informáticas a medida, Posicionamiento Web en Internet (SEO), Accesibilidad web, Usabilidad

Imagen de la cabecera de www.webprogramacion.com
Inicio     Qué es webprogramacion.com     Mi currículum     Contacta conmigo    

Servicios

  • ¿Quieres aumentar el número de visitas de tu página web?
  • ¿Necesitas formación sobre algún tema tratado en webprogramacion.com?
  • ¿Quieres que imparta algún curso sobre algún tema tratado en la web?
  • ¿Quieres que revise la accesibilidad web de tu página?
  • ¿Buscas una aplicación a medida para tu empresa?
  • ¿Necesitas colaboración en tu proyecto?
  • Pide presupuesto sin compromiso
Escríbeme a través de la siguiente página y me pondré en contacto contigo.
webprogramacion.com > Informática > Sistemas Operativos > Concurrencia de procesos

Concurrencia de procesos (Sistemas Operativos)


1. Definición de concurrencia

  • Dos o más procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cuando son procesados almismo 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, porejemplo, 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 delas 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 tenemos que tener en cuenta que mientras un proceso está escribiendo unvalor en una variable determinada, puede darse el caso que otro proceso que es concurrente al primero vaya aleer o escribir en esa misma variable, entonces habráque estudiar el caso en el que un proceso haga unaoperación sobre una variable (o recurso en general) yotro proceso concurrente a él realice otra operación detal forma que no se realice correctamente. Para estudiaresto, y determinar el tipo de operaciones que se puedenrealizar sobre recursos compartidos utilizaremos lascondiciones de Bernstein.
2. Condiciones de Bernstein.
  • Condiciones que nos determinan si dos procesos sepueden ejecutar de forma paralela.

  •    R(S1) es el conjunto de variables cuyo valor es accedidodurante la ejecución de la instrucción.
       W(S1) es el conjunto de variables cuyo valor cambiadurante la ejecución de la instrucción.
  • Condiciones de Bernstein: Dos procesos se puedenejecutar de forma concurrente si se verifican lassiguientes condiciones:

  •       R(S2) Intersección W(S1) = {conjunto vacío}
          R(S1) Intersección W(S2) = {conjunto vacío}
          W(S1) Intersección W(S2) = {conjunto vacío}

3. Grafos de precedencia.


Es un grafo acíclico y orientado cuyos nodos corresponden a sentencias individuales. Un arco desde un nodo si a un nodo sj significa que la sentencia sj puede ejecutarse sólo después de que si haya terminado su ejecución.

4. Instrucciones para crear procesos.
  • fork / join

  •    fork: Genera dos ejecuciones concurrentes en un programa.
       join: Hace lo contrario, recombinando dos ejecuciones concurrentes en una sola.
       
    • fork etiqueta: La etiqueta nos indica el punto donde está el código de una de esas ejecuciones concurrentes. El código de la otra ejecución lo escribiremos justo debajo de fork etiqueta.
    •    join variable: La variable especifica el número de instrucciones concurrentes que vamos a unir en una sola.

  • parbegin / parend

  •    Encerraremos entre Parbegin / Parend las instrucciones que queramos ejecutar concurrentemente.
       Ejemplo:
       
    Parbegin
       A;
       B;
       C;
    Parend

       Conseguiremos ejecutar A, B, C de forma simultánea.

Autor del artículo

Dámaso Velázquez

Etiquetas

concurrencia

Compartir

  • www.webprogramacion.com
  • informatica[at]webprogramacion.com
  • Formación
  • Accesibilidad
  • Aplicaciones a medida
  • Presencia en Internet
  • Salamanca

Valid XHTML 1.0 Transitional  ¡CSS Válido!  TAW.Test de accesibilidad web