Sistemas operativos modernos

Proceso ©■ (g>- Tiempo ® © Tiempo Tiempo (a) (b) (c) Figura 2-30. Uso de una barrera, a) Procesos que se aproximan a una barrera, b) To­ dos los procesos menos uno están bloqueados en la barrera, c) Cuando el último proceso llega a la barrera, se deja pasar a todos. Partiendo de los valores actuales, se aplica una transformación a la matriz para obtener su se­ gunda versión, por ejemplo, aplicando las leyes de la termodinámica para determinar cuáles serán todas las temperaturas A7 después. A continuación el proceso se repite una y otra vez, dan­ do las temperaturas en los puntos de muestreo en función del tiempo a medida que la lámina se calienta. Así, el algoritmo va produciendo una serie de matrices. Ahora imaginemos que la matriz es muy grande (digamos, de un millón por un millón), por lo que se necesitan procesos paralelos (quizá en un multiprocesador) para acelerar el cálculo. Di­ ferentes procesos trabajan con diferentes partes de la matriz, calculando los nuevos elementos de ésta a partir de los anteriores, con base en las leyes de la física. Sin embargo, ningún proceso puede iniciar la iteración n + 1 antes de que termine la iteración n, es decir, antes de que todos los procesos hayan terminado su trabajo actual. Para lograr este objetivo, se programa cada pro­ ceso de modo que ejecute una operación barrier al terminar su parte de la iteración en curso. Cuando todos los procesos terminan, la nueva matriz (las entradas de la siguiente iteración) es­ tará completa, y todos los procesos se liberarán en forma simultánea para iniciar la siguiente iteración. 2.4 PROBLEMAS CLASICOS DE COMUNICACIÓN ENTRE PROCESOS La literatura de sistemas operativos abunda en problemas interesantes que se han estudiado y analizado en forma amplia utilizando diversos métodos de sincronización. En las siguientes secciones examinaremos tres de los problemas más conocidos.

RkJQdWJsaXNoZXIy MjI4NDcx