Semaphore

Computer Science की भाषा में एक semaphore ऐसा variable होता है जो की control करता है access को वो भी एक या उससे ज्यादा resources की. यह एक tool होता है जिसका इस्तमाल developers द्वारा किया जाता है ये ensure करने के लिए की functions केवल access करें valid data और run करें सही समय में ही.

एक semaphore चाहें तो दूर रख सकता है एक deadlock या race condition को भी जिसके लिए वो disallow कर देता है access को किसी एक resource को जब वो available नहीं होता है.

Computer Programming में दो मुख्य प्रकार के semaphores मेह्जुद होते हैं : binary और counting.

Binary Semaphores

एक binary semaphore असल में एक boolean variable होती है जीकी केवल दो possible values (0 या 1) ही होती है. इसे अक्सर इस्तमाल किया जाता है एक lock के तोर पर वो भी access को restrict करने के लिए एक function या resource को.

उदाहरण के लिए, semaphore A control करती है function getData(). अगर A = 0, getData() excute नहीं होगी. वहीँ अगर A = 1, getData() run होगी. एक binary semaphore को एक flag या फिर एक switch भी समझा जाता है जो की या तो on होता है या फिर off.

Counting Semaphores

एक counting semaphore कोई भी non-negative integer हो सकता है, जिसे की एक Whole Number भी कहा जाता है. इसकी value या तो बढ़ सकती है या कम होती है और ये आधारित होती है एक या उससे ज्यादा functions के परिणाम के हिसाब से.

उदाहरण के तोर पर, एक counting semaphore track भी रखती है बहुत से available resources की वो भी एक resource pool में. अगर semaphore decrement होती है increment होने के स्थान पर, तब अंत में ये 0 तक भी पहुँच सकती है. एक zero value ये indicate करती है की अब कोई भी resources उपलब्ध नहीं है.

[su_note note_color=”#fffdf2″ text_color=”#000000″ radius=”0″]एक “semaphore” इन real world में एक flag या दुसरे object जिसका इस्तमाल होता है signal देने के लिए एक distance से.[/su_note]

« Back to Wiki Index