Cette page reste à étoffer; elle contiendra éventuellement plus que de simples liens explicatifs.
Le modèle mémoire d'une machine ou d'un langage détermine entre autres ce qui constitue une séquence valide d'événements observables en situation de multiprogrammation, et influence directement les capacités d'optimisation des compilateurs.
Un Wiki sur le sujet : http://en.wikipedia.org/wiki/Memory_model_%28computing%29
Présentation de Sasha Goldshtein en 2016 sur les modèles mémoires de C++ et du CLR de .NET : https://www.dropbox.com/s/ikbhcc9urnox04y/Memory_model.ppt?dl=0
Le modèle mémoire de la plateforme x86, décrit par Michael J. Sullivan en 2015 : http://www.msully.net/blog/2015/02/25/the-x86-memory-model/
Texte général sur la théorie des modèles mémoire, par Vijay Saraswat, Radha Jagadeesan, Maged Michael et Christoph von Praun, en 2006 : http://www.saraswat.org/rao.html
Un très intéressant article de Sarita V. Ave et Hans Boehm, en 2009, portant sur les modèles mémoire au sens large : http://rsim.cs.illinois.edu/Pubs/10-cacm-memory-models.pdf
Les modèles mémoires faibles et forts, par Jeff Preshing en 2012 : http://preshing.com/20120930/weak-vs-strong-memory-models
Description de l'importance des modèles mémoire, par Clay Breshears en 2012 : http://www.drdobbs.com/blogs/parallel/232901196
En 2016, John Wickerson propose une approche pour comparer les modèles mémoire. C'est aussi un bon texte pour comprendre les modèles mémoire et les enjeux qui leur sont associés : https://johnwickerson.wordpress.com/2016/11/11/comparing-memory-consistency-models/
Le modèle mémoire de C11 :
Dans C++ 11 :
Un modèle mémoire matériel pour x86 : http://www.cl.cam.ac.uk/~pes20/weakmemory/x86tso-paper.tphols.pdf
Le modèle mémoire de Java :
Le modèle mémoire de Go, texte de 2012 : http://golang.org/ref/mem
Pour la plateforme .NET :