Source: http://eavr.u-strasbg.fr/~christophe/cours/fip2/slides_shmem.pdf