Semaforer med FreeBSD

From: Morten Winther (none@freebsd--mwi.dk.lh.bsd-dk.dk)
Date: Sun 01 Feb 2004 - 14:42:48 CET


Date: Sun, 01 Feb 2004 14:42:48 +0100
From: Morten Winther <none@freebsd--mwi.dk.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Semaforer med FreeBSD

Hej

Jeg roder for tiden med at program der skal simulere nogle fysiske
ressourcer, der kun må tilgås af en 'bruger' på samme tid. Derfor har
jeg oprettet en række semafor'er for at kunne sikre mig at kun en bruger
tilgår den samme ressource på samme tid, da jeg har flere processer der
forsøge at bruge samme ressourcer)

Jeg har nogle generelle funktioner up() og down() der bruges til at
ændre semafor'en for at vise om en ressource er ledig. Det virker sådan
set fint, men jeg er lidt i tvivl om hvordan FreeBSD prioriterer
adgangen til en ressource. Disse funktioner bruger semop() kalder i C.

Hvis nu proces #a starter med at lave en down(), og så proces #b laver
en down() og så til sidst proces #c laver en down() kan jeg så være
sikker på at proces #b kommer til næste gang så snart #a har lavet en up()?

Spørgsmålet går altså på om semaforer er implementeret som en
FIFO-løsning i FreeBSD?

/ morten



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:36 CET