Semaphores sous KS 31 (WB1.1)
5 sujets de 1 à 5 (sur un total de 5)
5 sujets de 1 à 5 (sur un total de 5)
- Vous devez être connecté pour répondre à ce sujet.
5 sujets de 1 à 5 (sur un total de 5)
Salut Giloo
Voilà une question que tu pourrais poser sur Amiga-C2, non?
t’es tu inscrit à ma mailling list d’Amiga Coders?
Non? alors rejoins vite les Frieden Bros et tout les autres ici : [email protected]
à bientôt
Fab1 a écrit :
Gilloo:
Solution bourrin: à coup de Forbid() Permit() et le compteur mis à jour dans la zone critique j’imagine.
Sinon, en assembleur, il y aurait bien l’instruction atomique TAS (test and set) qui te permettrait d’implémenter des sémaphores aussi.
J’aime bien les ch’vaux.
Oui, avec forbid/permit on peut protéger un compteur (0 = ok acces possible; >0 y’a du monde on attend), mais comment mettre en file d’attente plusieurs tâches sans faire perdre du temps au processeur?
Il me semble que l’instruction TAS part en vrille si on accède à la chipmem…
obtain :
– forbid
– petite structure contenant un pointeur vers la tache courante
– la rajouter dans une liste du semaphore
– wait sur un signal dédié
– permit
release :
– forbid
– signaler toutes les taches de la liste du semaphore
– permit
C’est ce que font les semaphores d’amigaos.
Plus plein de bordel de compteur, mémorisation de la tache ayant obtenu le semaphore, etc…
5 sujets de 1 à 5 (sur un total de 5)
› Forums › AmigaOS, MorphOS et AROS › Développement › Semaphores sous KS 31 (WB1.1)
© 2024 Amiga Impact.
Construit avec par Thèmes Graphene.