Bienvenue à tous.
Je vais maintenant discuter d'un projet de programmation sur la programmation des sockets.
Le nom du projet est "Mémoire transparente distribuée".
La condition préalable à la réalisation de ce projet est que vous soyez bien familiarisé avec les concepts de programmation
de socket en C.
Je vous encourage à réaliser ce projet en C, mais si vous avez des connaissances en programmation de sockets
dans un autre langage, par exemple C Plus Plus ou Python ou Java, vous êtes également le bienvenu pour réaliser ce projet.
Mais je vais discuter et présenter l'énoncé du problème de ce projet en termes de langage C.
Discutons maintenant des objectifs du projet, de ce que nous essayons exactement de réaliser à travers ce projet.
Ainsi, de nombreux nœuds partagent leur morceau de mémoire locale en un grand morceau de mémoire, et cette ligne est l'essence
même de ce projet.
Essayons donc de comprendre ce point en détail.
Supposons donc que vous ayez quatre machines physiques et que chacune d'entre elles dispose d'un disque
dur de 2 Go.
Au total, vous disposez donc de huit Go de mémoire, mais ces huit Go de mémoire sont en fait répartis sur quatre machines
physiques différentes.
La mémoire est donc répartie sur quatre nœuds, mais l'utilisateur n'est pas conscient de cette répartition, et c'est à
cela que se rapporte le terme "transparent".
L'utilisateur final pourra accéder à l'ensemble des huit Go de mémoire par l'intermédiaire d'un réseau.
C'est vrai.
Vous pouvez donc voir que dans ce diagramme, il y a un réseau entre l'utilisateur et le stockage qui est distribué sur des
machines physiques.
Ce modèle de mémoire est utilisé lorsque de grandes quantités de données doivent être stockées sur plusieurs machines.
Le système de fichiers distribués Hadoop, qui repose sur ce modèle, est un exemple de ce type de stockage distribué.
C'est vrai.
Ainsi, dans ce projet, nous allons construire une mémoire distribuée et l'utilisateur n'aura pas à suivre
les informations relatives à l'emplacement des données ou à la manière dont elles sont récupérées.
C'est vrai.
Voici donc ce qu'il en est réellement.
C'est-à-dire que nous avons un utilisateur ici.
Nous disposons d'un réseau qui se situe entre l'utilisateur et les machines physiques.
Cet utilisateur a désormais accès à un total de 8 Go de stockage, répartis sur plusieurs machines
physiques.
L'objectif final de ce projet est donc que l'utilisateur final ait l'impression d'avoir accès
à huit Go de mémoire.
L'utilisateur n'a pas besoin de garder une trace de la machine physique sur laquelle il travaille.
En fait, les données qui l'intéressent sont réservées à l'utilisateur final.
Il semblerait que la totalité des huit Go de mémoire physique soit disponible.
En d'autres termes, ce projet vise à donner l'illusion à l'utilisateur final qu'il a
accès à un plus gros morceau de mémoire unifié.
Ce gros morceau de mémoire est en fait réparti sur plusieurs machines physiques.
Ce diagramme reflète donc l'objectif global de notre projet.