Implementering: Den största nackdelen med semaforen är att den kräver upptagen väntan Upptagen väntan slösar bort CPU-cykler som någon annan process kanske kan använda produktivt. Den här typen av semafor kallas även spinlock eftersom processen snurrar medan man väntar på låset.
Har semaforer vänteköer?
Semaphore-implementationSemaforer kan implementeras i operativsystemet genom gränssnitt med processtillståndet och schemaläggningsköer: en tråd som är blockerad på en semafor flyttas från att köra till att vänta (en semaforspecifik väntan) kö).
Använder mutexes upptagen väntan?
Standard kontra spin mutex:
En ledig väntan: tråden som väntar på att låsa mutex blockeras i ett vänteläge som förklaras i kapitel 2. Det släpper processorn, som sedan kan användas för att köra en annan tråd. … En upptagen väntan, även kallad spin wait, där en tråd waiting to lock the mutex inte släpper CPU:n
Vad är skillnaden mellan semafor och mutex?
En mutex är ett objekt men semafor är en heltalsvariabel. … Ett mutex-objekt tillåter flera processtrådar att komma åt en enskild delad resurs men bara en åt gången. Å andra sidan tillåter semafor flera processtrådar att komma åt den ändliga instansen av resursen tills den är tillgänglig.
Vilka är huvudproblemen med semaforer?
Klassiska problem med synkronisering med Semaphore Solution
- Bounded-buffer (eller Producer-Consumer) Problem: Bounded Buffer-problem kallas också producentkonsumentproblem. …
- Problem med middagsfilosfärer: …
- Läsare och författare Problem: …
- Sovande frisörproblem: