[Kos-dev] Synchro VM

Thomas Petazzoni thomas.petazzoni at enix.org
Fri Feb 27 13:02:41 CET 2004


Salut,

J'essaie de temps en temps de réfléchir à la synchro sur la VM. Je pense
partir sur une synchro de base, de brute : lock au niveau de l'espace
d'adressage, pas plus fin (au moins pour le début).

Soit a et b des threads d'une même team. a fait un #PF sur une adresse
X. D'où prise de lock sur l'espace d'adressage. La VM fait son bazar, et
découvre qu'il faut aller chercher les données sur le disque. Il faut
donc relâcher le lock, faire l'opération d'I/O, puis reprendre le lock
et faire le bazar. 

Une fois que le lock est relâché, le thread b fait un #PF sur la même
adresse X (ou sur la même page). Comment la VM va-t-elle savoir que
cette page est déjà en cours de chargement, et qu'il faut juste attendre
un peu ? Comment va-t-elle mettre en attente ce thread ?

Va-t-il y avoir une sorte de file d'attente des requêtes d'I/O de la VM,
de manière à ce que la VM puisse s'apercevoir que la page demandée est
en cours de chargement ?

(Note : la question peut être *très* stupide, c'est juste une question
que je me pose après quelques minutes de réfléxion)

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni at enix.org 
http://thomas.enix.org - Jabber: kos_tom at sourcecode.de
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://the-doors.enix.org/pipermail/kos-dev/attachments/20040227/87a97a02/attachment.pgp


More information about the Kos-dev mailing list