Skillnaden Mellan Semaphore Och Monitor

Skillnaden Mellan Semaphore Och Monitor
Skillnaden Mellan Semaphore Och Monitor

Video: Skillnaden Mellan Semaphore Och Monitor

Video: Skillnaden Mellan Semaphore Och Monitor
Video: Semaphore versus Monitors (Lecture #14) 2024, April
Anonim

Semaphore vs Monitor

Semaphore är en datastruktur som används för att säkerställa att flera processer inte får åtkomst till en gemensam resurs eller ett kritiskt avsnitt samtidigt, i parallella programmeringsmiljöer. Semaforer används för att undvika döda lås och rasförhållanden. Monitor är en programmeringsspråkkonstruktion som också används för att undvika att flera processer får åtkomst till en gemensam resurs samtidigt, vilket garanterar ömsesidig uteslutning. Bildskärmar använder villkorliga variabler för att uppnå denna uppgift.

Vad är en semafor?

Semaphore är en datastruktur som används för att tillhandahålla ömsesidig uteslutning av kritiska avsnitt. Semaforer stöder främst två operationer som kallas vänta (historiskt känd som P) och signal (historiskt känd som V). Väntaoperationen blockerar en process tills semaforen är öppen och signaloperationen tillåter en annan process (tråd) att komma in. Varje semafor är associerad med en kö av vänteprocesser. När väntaoperationen anropas av en tråd, om semaforen är öppen, kan tråden fortsätta. Om semaforen stängs när väntaoperationen anropas av en tråd, blockeras tråden och den måste vänta i kön. Signaloperationen öppnar en semafor och om det redan finns en tråd som väntar i kön, får processen fortsätta och om det inte finns några trådar som väntar i kön kommer signalen att komma ihåg för nästa tråd. Det finns två typer av semaforer som kallas mutex semaforer och räknar semaforer. Mutex-semaforer tillåter en enda åtkomst till en resurs och räknande semaforer ger flera trådar åtkomst till en resurs (som har flera tillgängliga enheter).

Vad är en bildskärm?

En bildskärm är ett programmeringsspråk som används för att kontrollera åtkomst till delad data. Bildskärmar inkapslar delade datastrukturer, procedurer (som fungerar på delade datastrukturer) och synkronisering mellan samtidiga proceduranrop. En bildskärm ser till att dess data inte möts av ostrukturerad åtkomst och garanterar att slitbanor (som får åtkomst till bildskärmsdata genom dess procedurer) interagerar på ett legitimt sätt. En bildskärm garanterar ömsesidig uteslutning genom att endast tillåta en tråd att utföra någon övervakningsprocedur vid en given tidpunkt. Om en annan tråd försöker åberopa en metod i monitorn, medan en tråd redan utför en procedur i monitorn, blockeras den andra proceduren och den måste vänta i kön. Det finns två typer av bildskärmar som heter Hoare-skärmar och Mesa-skärmar. De skiljer sig främst i sin schemaläggningssemantik.

Vad är skillnaden mellan Semaphore och Monitor?

Även om både semaforerna och bildskärmarna används för att uppnå ömsesidig utestängning i parallella programmeringsmiljöer skiljer de sig åt i de tekniker som används för att uppnå denna uppgift. I bildskärmar finns koden som används för att uppnå ömsesidig uteslutning på ett enda ställe och är mer strukturerad, medan kod för semaforer distribueras som vänta- och signalfunktionssamtal. Det är också väldigt enkelt att göra misstag när man implementerar semaforer, medan det är mycket liten chans att göra misstag när man implementerar bildskärmar. Vidare använder skärmar tillståndsvariabler, medan semaforer inte gör det.

Rekommenderas: