Source: http://icps.u-strasbg.fr/people/bastoul/public_html/teaching/architecture/docs/enonce_td1.pdf