Permission is granted to copy, distribute and/or modify this document.

इस दस्तावेज़ को कॉपी, वितरित और/या संशोधित करने की अनुमति दी जाती है।


नमस्ते दुनिया!


The problems with concurrent programming are complex.

समवर्ती प्रोग्रामिंग के साथ समस्याएं जटिल हैं।


This program demonstrates various interleavings of threads.

यह प्रोग्राम थ्रेड्स के विभिन्न अंतःक्रियाओं को दर्शाता है।


Making groups of operations atomic reduces interleaving.

संचालन के समूहों को परमाणु बनाना अंतःक्रिया को कम करता है।


Computing triangle numbers can be done concurrently.

त्रिभुज संख्याओं की गणना समवर्ती रूप से की जा सकती है।


The code in Figure 2.7 can be run for N=100.

चित्र 2.7 में दिए गए कोड को N=100 के लिए चलाया जा सकता है।


Non-determinism is a significant problem in concurrent programming.

गैर-निर्धारवाद समवर्ती प्रोग्रामिंग में एक महत्वपूर्ण समस्या है।


The problem with non-atomicity can lead to unexpected results.

गैर-परमाणुता की समस्या अप्रत्याशित परिणामों को जन्म दे सकती है।


The Harmony Virtual Machine is used for concurrent programming.

समवर्ती प्रोग्रामिंग के लिए हार्मनी वर्चुअल मशीन का उपयोग किया जाता है।


Critical sections are essential for managing shared resources.

साझा संसाधनों के प्रबंधन के लिए महत्वपूर्ण खंड आवश्यक हैं।


Peterson's Algorithm provides a solution for mutual exclusion.

पीटरसन का एल्गोरिदम पारस्परिक अपवर्जन के लिए एक समाधान प्रदान करता है।


This document provides a reference for the Harmony language.

यह दस्तावेज़ हार्मनी भाषा के लिए एक संदर्भ प्रदान करता है।


मॉड्यूल का उपयोग कोड को व्यवस्थित करने के लिए किया जाता है।


The Harmony Virtual Machine has machine instructions.

हार्मनी वर्चुअल मशीन में मशीन निर्देश हैं।


Addresses and method calls are important concepts.

पते और विधि कॉल महत्वपूर्ण अवधारणाएँ हैं।


Contexts and threads are fundamental to concurrency.

संदर्भ और थ्रेड समवर्तीता के लिए मौलिक हैं।


The compiler and model checker are key components.

संकलक और मॉडल परीक्षक प्रमुख घटक हैं।


The code demonstrates a concurrent queue implementation.

यह कोड एक समवर्ती कतार कार्यान्वयन को दर्शाता है।


Testing is crucial for concurrent data structures.

समवर्ती डेटा संरचनाओं के लिए परीक्षण महत्वपूर्ण है।


The program is designed to test concurrent code.

यह कार्यक्रम समवर्ती कोड का परीक्षण करने के लिए डिज़ाइन किया गया है।


Harmony programs are not intended to be 'run' like programs in most other programming languages.

हारमोनी प्रोग्राम का इरादा अन्य प्रोग्रामिंग भाषाओं में प्रोग्राम की तरह 'चलाना' नहीं है।


The output is a Deterministic State Machine (DFA).

आउटपुट एक नियतात्मक स्टेट मशीन (डीएफए) है।


The green circle represents the initial state and the double circle represents the final state.

हरा वृत्त प्रारंभिक स्थिति का प्रतिनिधित्व करता है और दोहरा वृत्त अंतिम स्थिति का प्रतिनिधित्व करता है।


There is one transition, labeled with the string 'hello world'.

एक संक्रमण है, जिसे 'हैलो वर्ल्ड' स्ट्रिंग के साथ लेबल किया गया है।


Figure 2.2 demonstrates non-deterministic choice in Harmony programs.

चित्र 2.2 हारमोनी प्रोग्राम में गैर-नियतात्मक विकल्प को दर्शाता है।


You can think of the choose operator as enumerating all possible inputs to the program.

आप choose ऑपरेटर को प्रोग्राम के सभी संभावित इनपुट को सूचीबद्ध करने के रूप में सोच सकते हैं।


Harmony usually requires that any program must be able to terminate.

हारमोनी आमतौर पर आवश्यक है कि कोई भी प्रोग्राम समाप्त करने में सक्षम होना चाहिए।


Figure 2.4 demonstrates methods and threads in Harmony.

चित्र 2.4 हारमोनी में विधियों और थ्रेड्स को दर्शाता है।


Because the threads run concurrently, the program can either output 'hello world' or 'world hello'.

चूंकि थ्रेड्स समवर्ती रूप से चलते हैं, इसलिए प्रोग्राम या तो 'हैलो वर्ल्ड' या 'वर्ल्ड हैलो' आउटपुट कर सकता है।


Printing in Harmony is atomic, so 'hweolrllod' is not a possible output.

हारमोनी में प्रिंटिंग एटॉमिक है, इसलिए 'hweolrllod' एक संभावित आउटपुट नहीं है।


Figure 2.6 shows another important feature of Harmony: atomic blocks.

चित्र 2.6 हारमोनी की एक और महत्वपूर्ण विशेषता दिखाता है: एटॉमिक ब्लॉक।


The program is similar to Figure 2.5, but the programmer specified that the two print statements in a thread should be executed as an atomic unit.

प्रोग्राम चित्र 2.5 के समान है, लेकिन प्रोग्रामर ने निर्दिष्ट किया कि एक थ्रेड में दो प्रिंट स्टेटमेंट को एक एटॉमिक इकाई के रूप में निष्पादित किया जाना चाहिए।


Harmony does not support floating point.

हारमोनी फ्लोटिंग पॉइंट का समर्थन नहीं करता है।


In Python, lists, dictionaries, and sets are (mutable) objects. In Harmony, they are (immutable) values.

पायथन में, सूचियाँ, शब्दकोश और सेट (परिवर्तनीय) वस्तुएँ हैं। हारमोनी में, वे (अपरिवर्तनीय) मान हैं।


The method declares a variable called result that eventually contains the result of the method.

विधि एक चर घोषित करती है जिसे परिणाम कहा जाता है जो अंततः विधि का परिणाम रखता है।


The {x..y} notation represents a set containing the numbers from x to y (inclusive).

{x..y} संकेतन x से y (सम्मिलित) तक की संख्याओं वाले एक सेट का प्रतिनिधित्व करता है।


Running this Harmony program will try all possible executions.

इस हारमोनी प्रोग्राम को चलाने से सभी संभावित निष्पादन का प्रयास किया जाएगा।


The assert statement checks that the output is correct.

एसेर्ट स्टेटमेंट जांचता है कि आउटपुट सही है।


If the program is correct, Harmony reports the size of the 'state graph'.

यदि प्रोग्राम सही है, तो हारमोनी 'स्टेट ग्राफ' के आकार की रिपोर्ट करता है।


The person can only take one item at a time.

व्यक्ति एक समय में केवल एक वस्तु ले जा सकता है।


If left to themselves, the goat would eat the cabbage.

अगर उन्हें अकेला छोड़ दिया जाए, तो बकरी गोभी खा जाएगी।


Figure 7.1 specifies the intended behavior of a lock.

चित्र 7.1 एक ताले के इच्छित व्यवहार को निर्दिष्ट करता है।


The acquire() operation waits until the lock is False.

एक्वायर() ऑपरेशन तब तक प्रतीक्षा करता है जब तक कि लॉक गलत न हो जाए।


The code is similar to Figure 5.3, except that waiting for the lock to become available and taking it is executed as an atomic operation.

कोड चित्र 5.3 के समान है, सिवाय इसके कि लॉक के उपलब्ध होने की प्रतीक्षा करना और उसे लेना एक परमाणु ऑपरेशन के रूप में निष्पादित किया जाता है।


Figure 7.2 shows how locks may be used to implement a critical section.

चित्र 7.2 दिखाता है कि महत्वपूर्ण खंड को लागू करने के लिए तालों का उपयोग कैसे किया जा सकता है।


The code in Figure 7.1 is also in Harmony’ssynchmodule.

चित्र 7.1 में कोड भी Harmony के synchmodule में है।


In Harmony, any statement can be preceded by the atomically keyword.

Harmony में, किसी भी कथन से पहले atomically कीवर्ड लगाया जा सकता है।


When implementing synchronization solutions you should not directly use atomic statements.

सिंक्रनाइज़ेशन समाधान लागू करते समय आपको सीधे परमाणु कथनों का उपयोग नहीं करना चाहिए।


Locks are the most prevalent and basic form of synchronization in concurrent programs.

ताले समवर्ती कार्यक्रमों में सिंक्रनाइज़ेशन का सबसे प्रचलित और बुनियादी रूप हैं।


Typically, whenever you have a shared data structure, you want to protect the data structure with a lock.

आमतौर पर, जब भी आपके पास एक साझा डेटा संरचना होती है, तो आप डेटा संरचना को एक ताले से सुरक्षित करना चाहते हैं।


A data race happens when there is a state in which multiple threads are trying to access the same variable.

डेटा रेस तब होता है जब एक ऐसी स्थिति होती है जिसमें कई थ्रेड एक ही चर तक पहुंचने की कोशिश कर रहे होते हैं।


In Harmony, this can be done in two ways.

Harmony में, यह दो तरीकों से किया जा सकता है।


To implement locks, multi-core processors provide so-called atomic instructions.

ताले लागू करने के लिए, मल्टी-कोर प्रोसेसर तथाकथित परमाणु निर्देश प्रदान करते हैं।


We can use the atomically keyword to specify a wide variety of atomic operations.

हम परमाणु संचालन की एक विस्तृत विविधता निर्दिष्ट करने के लिए atomically कीवर्ड का उपयोग कर सकते हैं।


Method swap in Figure 8.1 shows its specification.

चित्र 8.1 में विधि स्वैप इसकी विशिष्टता को दर्शाता है।


The approach is called spinlock, because each thread is “spinning” (executing a tight loop) until it can acquire the lock.

इस दृष्टिकोण को स्पिनलॉक कहा जाता है, क्योंकि प्रत्येक थ्रेड तब तक “स्पिनिंग” (एक तंग लूप निष्पादित करना) करता है जब तक कि वह लॉक प्राप्त नहीं कर सकता।


A more common solution to implementing a lock uses an atomic test-and-set instruction provided by most CPUs.

एक ताला लागू करने का एक अधिक सामान्य समाधान अधिकांश CPUs द्वारा प्रदान किए गए एक परमाणु टेस्ट-एंड-सेट निर्देश का उपयोग करता है।


Method test and set involves only a single variable.

विधि टेस्ट और सेट में केवल एक चर शामिल है।


The ticket lock prevents starvation using an atomic fetch-and-increment operator.

टिकट लॉक एक परमाणु फेच-एंड-इंक्रीमेंट ऑपरेटर का उपयोग करके भुखमरी को रोकता है।


The machine does not have instructions to atomically increment or decrement values in shared memory locations.

मशीन में साझा मेमोरी स्थानों में मानों को परमाणु रूप से बढ़ाने या घटाने के निर्देश नहीं हैं।


When running multiple threads, each essentially runs an instantiation of the machine, and they do so in parallel.

जब कई थ्रेड चल रहे होते हैं, तो प्रत्येक अनिवार्य रूप से मशीन का एक उदाहरण चलाता है, और वे ऐसा समानांतर में करते हैं।


A program is correct if it works for all possible interleavings of threads.

एक प्रोग्राम सही है यदि यह थ्रेड्स के सभी संभावित अंतःक्रियाओं के लिए काम करता है।


Harmony will try all interleavings and report an error even if only one of those interleavings fails.

हार्मनी सभी अंतःक्रियाओं का प्रयास करेगा और एक त्रुटि की रिपोर्ट करेगा, भले ही उन अंतःक्रियाओं में से केवल एक विफल हो जाए।


इसे रेस कंडीशन के रूप में जाना जाता है।


When running a program with Harmony, it will report violations of assertions.

हार्मनी के साथ एक प्रोग्राम चलाते समय, यह दावों के उल्लंघन की रिपोर्ट करेगा।


If one thinks of the assertion as providing the specification of the program, then clearly its implementation does not satisfy its specification.

यदि कोई दावे को प्रोग्राम के विनिर्देश के रूप में सोचता है, तो स्पष्ट रूप से इसका कार्यान्वयन इसके विनिर्देश को संतुष्ट नहीं करता है।


Either the specification or the implementation (or both) must have a bug.

या तो विनिर्देश या कार्यान्वयन (या दोनों) में एक बग होना चाहिए।


We could change the specification by changing the assertion as follows: finally(x== 1)or(x== 2)

हम दावे को इस प्रकार बदलकर विनिर्देश बदल सकते हैं: अंततः(x== 1)या(x== 2)


This would fix the issue, but more likely it is the program that must be fixed, not the specification.

यह समस्या को ठीक कर देगा, लेकिन अधिक संभावना है कि यह प्रोग्राम है जिसे ठीक किया जाना चाहिए, न कि विनिर्देश।


Run Figure 3.4 using Python. Does the assertion fail?

पायथन का उपयोग करके चित्र 3.4 चलाएँ। क्या दावा विफल होता है?


How many times does the assertion fail (if any)?

दावा कितनी बार विफल होता है (यदि कोई हो)?


Report how many times the assertion fails and what the value of x was for each of the failed runs.

रिपोर्ट करें कि दावा कितनी बार विफल होता है और प्रत्येक विफल रन के लिए x का मान क्या था।


Also experiment with other values of N. How large does N need to be for assertions to fail?

N के अन्य मानों के साथ भी प्रयोग करें। दावों के विफल होने के लिए N को कितना बड़ा होने की आवश्यकता है?


Harmony programs, and indeed the HVM, manipulate Harmony values.

हार्मनी प्रोग्राम, और वास्तव में HVM, हार्मनी मानों में हेरफेर करते हैं।


Strings that start with a letter or an underscore and only contain letters, digits, and underscores can be written without quotes by preceding them with a dot.

ऐसे स्ट्रिंग जो एक अक्षर या एक अंडरस्कोर से शुरू होते हैं और जिनमें केवल अक्षर, अंक और अंडरस्कोर होते हैं, उन्हें एक बिंदु से पहले करके उद्धरणों के बिना लिखा जा सकता है।


महत्वपूर्ण रूप से, (1) = 16= (1,)।


Because, square brackets and parentheses work the same in Harmony, [a,b,c] (which looks like a Python list) is the same Harmony value as (a,b,c) (which looks like a Python tuple).

क्योंकि, वर्ग कोष्ठक और कोष्ठक हार्मनी में समान रूप से काम करते हैं, [a,b,c] (जो पायथन सूची की तरह दिखता है) (a,b,c) के समान हार्मनी मान है (जो पायथन टपल की तरह दिखता है)।


एक शब्दकोश कुंजियों को मानों पर मैप करता है।


The shared memory is a dictionary that maps strings (names of shared variables) to other Harmony values.

साझा मेमोरी एक शब्दकोश है जो स्ट्रिंग (साझा चर के नाम) को अन्य हार्मनी मानों पर मैप करता है।


The code will surely prevent two or more threads from executing in the critical section at the same time.

यह कोड निश्चित रूप से दो या अधिक थ्रेड्स को एक ही समय में महत्वपूर्ण खंड में निष्पादित होने से रोकेगा।


Mutual exclusion is an example of a safety property, a property that ensures that nothing bad will happen.

पारस्परिक अपवर्जन एक सुरक्षा संपत्ति का एक उदाहरण है, एक ऐसी संपत्ति जो यह सुनिश्चित करती है कि कुछ भी बुरा नहीं होगा।


We want to ensure that eventually something good will happen.

हम यह सुनिश्चित करना चाहते हैं कि अंततः कुछ अच्छा होगा।


If there exists a non-empty set of threads that are trying to enter the critical section and threads in the critical section always leave eventually, then eventually one thread will enter the critical section.

यदि थ्रेड्स का एक गैर-रिक्त सेट है जो महत्वपूर्ण खंड में प्रवेश करने की कोशिश कर रहे हैं और महत्वपूर्ण खंड में थ्रेड्स हमेशा अंततः छोड़ देते हैं, तो अंततः एक थ्रेड महत्वपूर्ण खंड में प्रवेश करेगा।


हम इसे प्रगति कहते हैं।


In order to detect violations of progress, and other liveness problems in algorithms in general, Harmony requires that every execution must be able to reach a state in which all threads have terminated.

प्रगति के उल्लंघन और सामान्य रूप से एल्गोरिदम में अन्य जीवित रहने की समस्याओं का पता लगाने के लिए, हार्मनी को आवश्यकता है कि प्रत्येक निष्पादन एक ऐसी स्थिति तक पहुंचने में सक्षम होना चाहिए जिसमें सभी थ्रेड समाप्त हो गए हों।


We will instead model threads in critical sections using the framework in Figure 5.2.

इसके बजाय, हम महत्वपूर्ण खंडों में थ्रेड्स को चित्र 5.2 में ढांचे का उपयोग करके मॉडल करेंगे।


A thread can choose to enter a critical section more than once, but it can also choose to terminate, even without entering the critical section ever.

एक थ्रेड एक से अधिक बार एक महत्वपूर्ण खंड में प्रवेश करना चुन सकता है, लेकिन यह समाप्त करना भी चुन सकता है, यहां तक कि कभी भी महत्वपूर्ण खंड में प्रवेश किए बिना भी।


As it turns out, there is an advantage to doing it this way.

जैसा कि पता चला है, इसे इस तरह से करने का एक फायदा है।


This code specifies that at most one thread can be executing in the critical section.

यह कोड निर्दिष्ट करता है कि अधिकतम एक थ्रेड महत्वपूर्ण खंड में निष्पादित हो सकता है।


You may already have heard of the concept of a lock and have realized that it could be used to implement a critical section.

आपने पहले ही लॉक की अवधारणा के बारे में सुना होगा और महसूस किया होगा कि इसका उपयोग एक महत्वपूर्ण खंड को लागू करने के लिए किया जा सकता है।


The idea is that the lock is like a baton that at most one thread can own (or hold) at a time.

विचार यह है कि लॉक एक बैटन की तरह है जो एक समय में अधिकतम एक थ्रेड का हो सकता है (या पकड़ सकता है)।


A thread that wants to enter the critical section at a time must obtain the lock first and release it upon exiting the critical section.

एक थ्रेड जो एक समय में महत्वपूर्ण खंड में प्रवेश करना चाहता है, उसे पहले लॉक प्राप्त करना होगा और महत्वपूर्ण खंड से बाहर निकलने पर इसे छोड़ना होगा।


Using a lock is a good thought, but how does one implement one?

एक लॉक का उपयोग करना एक अच्छा विचार है, लेकिन कोई इसे कैसे लागू करता है?


Unfortunately, if we run the program through Harmony, we find that the assertion fails.

दुर्भाग्य से, यदि हम हार्मनी के माध्यम से प्रोग्राम चलाते हैं, तो हम पाते हैं कि दावा विफल हो जाता है।


The lockTaken variable suffers from the same sort of race condition as the count variable.

lockTaken चर उसी प्रकार की रेस कंडीशन से पीड़ित है जैसे count चर।


Preventing multiple threads from updating the same variable.

एक ही चर को अपडेट करने से कई थ्रेड्स को रोकना।


A thread can write its own flag and read the flag of its peer.

एक थ्रेड अपना खुद का फ़्लैग लिख सकता है और अपने सहकर्मी का फ़्लैग पढ़ सकता है।


If thread i is in the critical section, then flags[i] = True.

यदि थ्रेड i महत्वपूर्ण खंड में है, तो flags[i] = True।


To reach the critical section between t1 and t2, thread 1 would first have to set flags[1] to True and then wait until flags[0] = False.

t1 और t2 के बीच महत्वपूर्ण खंड तक पहुंचने के लिए, थ्रेड 1 को पहले flags[1] को True पर सेट करना होगा और फिर तब तक इंतजार करना होगा जब तक कि flags[0] = False न हो जाए।


आज धूप बहुत तेज चमक रही है।


क्या आप कृपया मुझे नमक दे सकते हैं?


The company announced record profits this quarter.

कंपनी ने इस तिमाही में रिकॉर्ड मुनाफे की घोषणा की।


He is a very talented musician and composer.

वह एक बहुत ही प्रतिभाशाली संगीतकार और रचनाकार हैं।


The new software update includes several bug fixes.

नए सॉफ़्टवेयर अपडेट में कई बग फिक्स शामिल हैं।


Despite the challenges, they persevered and succeeded.

चुनौतियों के बावजूद, वे डटे रहे और सफल हुए।


The research team is conducting experiments in the lab.

अनुसंधान टीम प्रयोगशाला में प्रयोग कर रही है।


वह तीन भाषाओं में धाराप्रवाह है।


The economic forecast predicts a period of growth.

आर्थिक पूर्वानुमान में विकास की अवधि की भविष्यवाणी की गई है।


The ancient ruins are a popular tourist destination.

प्राचीन खंडहर एक लोकप्रिय पर्यटन स्थल हैं।


The algorithm efficiently sorts the data.

एल्गोरिदम कुशलता से डेटा को सॉर्ट करता है।


The government implemented new environmental regulations.

सरकार ने नए पर्यावरणीय नियम लागू किए।


The complexities of the situation are difficult to understand.

स्थिति की जटिलताओं को समझना मुश्किल है।


The company's innovative approach revolutionized the industry.

कंपनी के नवीन दृष्टिकोण ने उद्योग में क्रांति ला दी।


The philosophical debate explored the nature of consciousness.

दार्शनिक बहस ने चेतना की प्रकृति की खोज की।


The intricate design of the machine required advanced engineering skills.

मशीन के जटिल डिजाइन के लिए उन्नत इंजीनियरिंग कौशल की आवश्यकता थी।


The implications of the policy change are far-reaching.

नीति परिवर्तन के निहितार्थ दूरगामी हैं।


The scientific community is constantly seeking new discoveries.

वैज्ञानिक समुदाय लगातार नई खोजों की तलाश में है।


The artist's work reflects a deep understanding of human emotions.

कलाकार का काम मानवीय भावनाओं की गहरी समझ को दर्शाता है।


The negotiations reached an impasse after weeks of discussion.

सप्ताहों की चर्चा के बाद बातचीत गतिरोध पर पहुँच गई।


The file system uses worker threads for file operations.

फ़ाइल सिस्टम फ़ाइल संचालन के लिए कार्यकर्ता थ्रेड्स का उपयोग करता है।


Each block is identified by its offset or block number.

प्रत्येक ब्लॉक को उसके ऑफसेट या ब्लॉक नंबर से पहचाना जाता है।


The superblock specifies the number of inode blocks.

सुपरब्लॉक आईनोड ब्लॉकों की संख्या निर्दिष्ट करता है।


In a Unix file system, the disk is subdivided into three parts.

यूनिक्स फ़ाइल सिस्टम में, डिस्क को तीन भागों में विभाजित किया गया है।


The file system interface is the same as the specification.

फ़ाइल सिस्टम इंटरफ़ेस विनिर्देश के समान है।


कार्यकर्ता थ्रेड क्लाइंट अनुरोधों को संभालते हैं।


The method first acquires the free list lock.

विधि सबसे पहले मुक्त सूची लॉक प्राप्त करती है।


The code to write to a file or to delete a file is provided.

फ़ाइल में लिखने या फ़ाइल को हटाने का कोड प्रदान किया गया है।


थ्रेड्स को बाधित किया जा सकता है।


An interrupt is a notification, while an exception is an error.

एक व्यवधान एक अधिसूचना है, जबकि एक अपवाद एक त्रुटि है।


Harmony allows modeling interrupts using the trap statement.

हार्मनी ट्रैप स्टेटमेंट का उपयोग करके व्यवधानों को मॉडल करने की अनुमति देता है।


The code in Figure 20.2 is not interrupt-safe.

चित्र 20.2 में कोड व्यवधान-सुरक्षित नहीं है।


व्यवधानों के साथ लॉक काम नहीं करते हैं।


Instead, the way one fixes interrupt-safety issues is through disabling interrupts temporarily.

इसके बजाय, व्यवधान-सुरक्षा समस्याओं को ठीक करने का एक तरीका है व्यवधानों को अस्थायी रूप से अक्षम करना।


It is important that the main() code re-enables interrupts.

यह महत्वपूर्ण है कि main() कोड व्यवधानों को फिर से सक्षम करे।


It will often be necessary to write code that is both interrupt-safe and thread-safe.

अक्सर ऐसे कोड लिखना आवश्यक होगा जो व्यवधान-सुरक्षित और थ्रेड-सुरक्षित दोनों हो।


Non-blocking synchronization is discussed in this chapter.

इस अध्याय में गैर-अवरुद्ध सिंक्रनाइज़ेशन पर चर्चा की गई है।


The code is a “proof of existence” for non-blocking synchronization.

यह कोड गैर-अवरुद्ध सिंक्रनाइज़ेशन के लिए


The produce(item) method uses inc(?back) to allocate the next available slot.

उत्पाद(आइटम) विधि अगले उपलब्ध स्लॉट को आवंटित करने के लिए inc(?back) का उपयोग करती है।


A distributed system takes failures into account.

एक वितरित प्रणाली विफलताओं को ध्यान में रखती है।


दार्शनिक को खाने के लिए दो काँटों की आवश्यकता होती है।


Each philosopher likes to take breaks from eating to think for a while.

प्रत्येक दार्शनिक को थोड़ी देर सोचने के लिए खाने से ब्रेक लेना पसंद है।


If you run it, Harmony complains that the execution may not be able to terminate.

यदि आप इसे चलाते हैं, तो हारमोनी शिकायत करता है कि निष्पादन समाप्त नहीं हो पाएगा।


क्या आप समस्या देख पा रहे हैं?


Preventing deadlock thus means preventing that one of these conditions occurs.

इस प्रकार डेडलॉक को रोकना इन शर्तों में से किसी एक के घटित होने से रोकना है।


A thread must request all resources it is going to need at the same time.

एक थ्रेड को एक ही समय में उन सभी संसाधनों का अनुरोध करना होगा जिनकी उसे आवश्यकता है।


Locks do not have such an ability, so we re-implement the Dining Philosophers using condition variables.

लॉक में ऐसी क्षमता नहीं होती है, इसलिए हम कंडीशन वेरिएबल्स का उपयोग करके डाइनिंग फिलोसोफर्स को फिर से लागू करते हैं।


Each client sends a request to the server.

प्रत्येक क्लाइंट सर्वर को एक अनुरोध भेजता है।


The server maintains a local, zero-initialized counter variable.

सर्वर एक स्थानीय, शून्य-प्रारंभिक काउंटर चर बनाए रखता है।


This illustration is an example of the client/server model.

यह चित्रण क्लाइंट/सर्वर मॉडल का एक उदाहरण है।


बाधाओं का पुन: उपयोग किया जा सकता है।


Threads may execute in rounds, and between each round threads wait at the barrier.

थ्रेड राउंड में निष्पादित हो सकते हैं, और प्रत्येक राउंड के बीच थ्रेड बैरियर पर प्रतीक्षा करते हैं।


In this example, there are two vectors that need to be multiplied.

इस उदाहरण में, दो वेक्टर हैं जिन्हें गुणा करने की आवश्यकता है।


The barrier implementation is correct for single use.

बैरियर कार्यान्वयन एकल उपयोग के लिए सही है।


Each turnstile is as before: It counts the number of threads that have arrived at the turnstile.

प्रत्येक टर्नस्टाइल पहले की तरह है: यह उन थ्रेड्स की संख्या की गणना करता है जो टर्नस्टाइल पर पहुंचे हैं।


The threads first go through the red turnstile and wait there for the last thread.

थ्रेड पहले लाल टर्नस्टाइल से गुजरते हैं और वहां अंतिम थ्रेड की प्रतीक्षा करते हैं।


In each round, the resource usually has to be used to capacity.

प्रत्येक दौर में, संसाधन का आमतौर पर क्षमता तक उपयोग किया जाना चाहिए।


A thread should first wait until any threads that already entered the section have exited.

एक थ्रेड को पहले तब तक इंतजार करना चाहिए जब तक कि पहले से ही अनुभाग में प्रवेश कर चुके कोई भी थ्रेड बाहर न निकल जाएं।


Following this recipe might lead to the following problem.

इस नुस्खा का पालन करने से निम्नलिखित समस्या हो सकती है।


An important part of solving the problem is figuring out what state must be kept about the resource.

समस्या को हल करने का एक महत्वपूर्ण हिस्सा यह पता लगाना है कि संसाधन के बारे में क्या स्थिति रखनी चाहिए।


Alice sends application messages in order, and Bob receives them.

ऐलिस क्रम में एप्लिकेशन संदेश भेजती है, और बॉब उन्हें प्राप्त करता है।


The protocol ensures that if Alice sends a message, Bob will eventually deliver it.

प्रोटोकॉल सुनिश्चित करता है कि यदि ऐलिस एक संदेश भेजती है, तो बॉब अंततः उसे वितरित करेगा।


The Alternating Bit Protocol uses sequence numbers for reliable communication.

वैकल्पिक बिट प्रोटोकॉल विश्वसनीय संचार के लिए अनुक्रम संख्याओं का उपयोग करता है।


Alice retransmits the message until she receives an acknowledgment.

ऐलिस संदेश को तब तक फिर से भेजती है जब तक उसे स्वीकृति नहीं मिल जाती।


Bob increments his sequence number after receiving a matching message.

बॉब मिलान संदेश प्राप्त करने के बाद अपनी अनुक्रम संख्या बढ़ाता है।


The network channels are modeled as variables that can contain messages.

नेटवर्क चैनलों को चर के रूप में मॉडल किया जाता है जिनमें संदेश हो सकते हैं।


The app_send function retransmits the message until an acknowledgment is received.

app_send फ़ंक्शन संदेश को तब तक फिर से भेजता है जब तक कि स्वीकृति प्राप्त नहीं हो जाती।


The app_recv function returns the next successfully received message.

app_recv फ़ंक्शन अगला सफलतापूर्वक प्राप्त संदेश लौटाता है।


The test code sends and receives a stream of messages reliably.

परीक्षण कोड विश्वसनीय रूप से संदेशों की एक धारा भेजता और प्राप्त करता है।


The receiver is spawned as eternal because it does not terminate.

रिसीवर को शाश्वत के रूप में उत्पन्न किया जाता है क्योंकि यह समाप्त नहीं होता है।


Leader election is the problem of electing a unique leader in a network.

नेता चुनाव एक नेटवर्क में एक अद्वितीय नेता का चुनाव करने की समस्या है।


Processors are organized in a ring, each knowing its successor.

प्रोसेसर एक रिंग में व्यवस्थित होते हैं, प्रत्येक अपने उत्तराधिकारी को जानता है।


The protocol elects the processor with the highest identifier as leader.

प्रोटोकॉल उच्चतम पहचानकर्ता वाले प्रोसेसर को नेता के रूप में चुनता है।


Each processor sends its identifier to its successor.

प्रत्येक प्रोसेसर अपने पहचानकर्ता को अपने उत्तराधिकारी को भेजता है।


A processor forwards a larger identifier it receives.

एक प्रोसेसर एक बड़ा पहचानकर्ता अग्रेषित करता है जिसे वह प्राप्त करता है।


If a processor receives its own identifier, it discovers it is the leader.

यदि कोई प्रोसेसर अपना स्वयं का पहचानकर्ता प्राप्त करता है, तो वह पता लगाता है कि वह नेता है।


The leader then starts the second phase, notifying other processors.

फिर नेता दूसरा चरण शुरू करता है, अन्य प्रोसेसर को सूचित करता है।


The network is modeled as a set of messages.

नेटवर्क को संदेशों के एक सेट के रूप में मॉडल किया गया है।


The send method atomically adds a message to this set.

सेंड विधि परमाणु रूप से इस सेट में एक संदेश जोड़ती है।


The receive method looks for messages destined for the processor.

प्राप्त विधि प्रोसेसर के लिए नियत संदेशों की तलाश करती है।


T1 was trying to lockpool[0].lock while T3 was freeing that very same node, and T1 lost the race.

T1, pool[0].lock को लॉक करने की कोशिश कर रहा था, जबकि T3 उसी नोड को मुक्त कर रहा था, और T1 रेस हार गया।


In fact, Harmony allows you to step through an execution forwards and backwards.

वास्तव में, हारमोनी आपको एक निष्पादन को आगे और पीछे की ओर से देखने की अनुमति देता है।


The boxes are color-coded: Each method has its own color.

डिब्बे रंग-कोडित हैं: प्रत्येक विधि का अपना रंग होता है।


T1 first callsput(?q, 1) and then allocates a new node initialized with a lock.

T1 सबसे पहले put(?q, 1) को कॉल करता है और फिर एक नए नोड को आवंटित करता है जिसे लॉक के साथ इनिशियलाइज़ किया गया है।


T1 then enters into the whileloop and tries to acquirenq→lock.

T1 फिर whileloop में प्रवेश करता है और nq→lock प्राप्त करने की कोशिश करता है।


This is where the problem is—T1 is about to acquire the lock in that same node.

समस्या यहीं है—T1 उसी नोड में लॉक प्राप्त करने वाला है।


To fix the code without changing the data structure, we can use hand-over-hand locking.

डेटा संरचना को बदले बिना कोड को ठीक करने के लिए, हम हैंड-ओवर-हैंड लॉकिंग का उपयोग कर सकते हैं।


Critical sections enable multiple threads to easily share data structures.

क्रिटिकल सेक्शन कई थ्रेड्स को आसानी से डेटा संरचनाओं को साझा करने में सक्षम बनाते हैं।


A thread that is waiting for a condition without changing shared variables is considered blocked.

एक थ्रेड जो साझा चरों को बदले बिना किसी स्थिति की प्रतीक्षा कर रहा है, उसे अवरुद्ध माना जाता है।


Sometimes it is useful for a thread to wait for additional conditions besides the critical section being unoccupied.

कभी-कभी एक थ्रेड के लिए महत्वपूर्ण खंड के खाली होने के अलावा अतिरिक्त स्थितियों की प्रतीक्षा करना उपयोगी होता है।


What we want is a special kind of lock that allows either (i) one writer or (ii) one or more readers to acquire the lock.

हम एक विशेष प्रकार का लॉक चाहते हैं जो या तो (i) एक लेखक या (ii) एक या अधिक पाठकों को लॉक प्राप्त करने की अनुमति देता है।


इसे रीडर/राइटर लॉक कहा जाता है।


A reader/writer lock is an object whose abstract state contains two integer counters.

रीडर/राइटर लॉक एक ऐसी वस्तु है जिसकी अमूर्त स्थिति में दो पूर्णांक काउंटर होते हैं।


There are four operations on a reader/writer lock.

रीडर/राइटर लॉक पर चार ऑपरेशन हैं।


A problem with this test is that it does not find a problem with an implementation like the one in Figure 12.3.

इस परीक्षण के साथ एक समस्या यह है कि यह चित्र 12.3 में दिए गए कार्यान्वयन जैसी समस्या का पता नहीं लगाता है।


This implementation implements a reader/writer lock as an ordinary lock, and thus lets only one thread in the critical section at a time.

यह कार्यान्वयन एक रीडर/राइटर लॉक को एक साधारण लॉक के रूप में लागू करता है, और इस प्रकार एक समय में केवल एक थ्रेड को महत्वपूर्ण खंड में जाने देता है।


Figure 12.5 illustrates an implementation of a reader/writer lock that uses active busy waiting.

चित्र 12.5 एक रीडर/राइटर लॉक के कार्यान्वयन को दर्शाता है जो सक्रिय व्यस्त प्रतीक्षा का उपयोग करता है।


Abounded bufferis a queue with the usualput/getinterface, but implemented using a buffer of a certain maximum length.

एक बाउंडेड बफर एक कतार है जिसमें सामान्य put/get इंटरफ़ेस होता है, लेकिन एक निश्चित अधिकतम लंबाई के बफर का उपयोग करके कार्यान्वित किया जाता है।


If the buffer is full, an enqueuer must wait; if the buffer is empty, a dequeuer must wait.

यदि बफर भरा हुआ है, तो एक एनक्यूअर को इंतजार करना होगा; यदि बफर खाली है, तो एक डीक्यूअर को इंतजार करना होगा।


Coming up with a good implementation is known as the “Producer/Consumer Problem”.

एक अच्छा कार्यान्वयन लेकर आना “उत्पादक/उपभोक्ता समस्या” के रूप में जाना जाता है।


The replica updates its configuration after receiving a failure notification.

विफलता की सूचना मिलने पर प्रतिकृति अपनी कॉन्फ़िगरेशन को अपडेट करती है।


If a replica is the head, it adds received requests to its history.

यदि कोई प्रतिकृति शीर्ष है, तो वह प्राप्त अनुरोधों को अपने इतिहास में जोड़ती है।


Chain replication does not produce all possible behaviors of a replicated state machine.

श्रृंखला प्रतिकृति, प्रतिकृति राज्य मशीन के सभी संभावित व्यवहारों का उत्पादन नहीं करती है।


In practice, a predecessor would set up a TCP connection to its successor.

व्यवहार में, एक पूर्ववर्ती अपने उत्तराधिकारी के लिए एक टीसीपी कनेक्शन स्थापित करेगा।


Another way of modeling is by enumerating all the possible state transitions.

मॉडलिंग का एक और तरीका सभी संभावित राज्य संक्रमणों की गणना करना है।


Each type of action is captured using a lambda and a method.

प्रत्येक प्रकार की क्रिया को एक लैम्डा और एक विधि का उपयोग करके कैप्चर किया जाता है।


All replicas, except the immortal one, can crash.

अमर प्रतिकृति को छोड़कर, सभी प्रतिकृतियाँ क्रैश हो सकती हैं।


The Harmony action module explores all possible behaviors.

हार्मोनी एक्शन मॉड्यूल सभी संभावित व्यवहारों का पता लगाता है।


A register is an object that you can read or write.

एक रजिस्टर एक ऐसी वस्तु है जिसे आप पढ़ या लिख सकते हैं।


Concurrent operations on the shared register appear atomic.

साझा रजिस्टर पर समवर्ती संचालन परमाणु प्रतीत होते हैं।


A read operation returns either the last value written or the value of a concurrent write operation.

एक रीड ऑपरेशन या तो अंतिम लिखित मान या समवर्ती राइट ऑपरेशन का मान लौटाता है।


We would therefore like to find a solution that can survive the crash of a server.

इसलिए, हम एक ऐसा समाधान खोजना चाहेंगे जो सर्वर के क्रैश से बच सके।


We will again replicate the register object: Maintain multiple copies.

हम फिर से रजिस्टर ऑब्जेक्ट की प्रतिकृति बनाएंगे: कई प्रतियां बनाए रखें।


All write operation will be ordered by a unique logical timestamp.

सभी राइट ऑपरेशन को एक अद्वितीय तार्किक टाइमस्टैम्प द्वारा क्रमबद्ध किया जाएगा।


Each server maintains not only the value of the object, but also the timestamp.

प्रत्येक सर्वर न केवल वस्तु का मान बनाए रखता है, बल्कि टाइमस्टैम्प भी बनाए रखता है।


In the first phase, a client asks each server for its current timestamp and value.

पहले चरण में, एक क्लाइंट प्रत्येक सर्वर से उसके वर्तमान टाइमस्टैम्प और मान के लिए पूछता है।


Distributed consensus is the problem of having processors agree on a single value.

वितरित सहमति प्रोसेसर को एक ही मान पर सहमत होने की समस्या है।


Each processor proposes a value, which we assume here to be from the set {0, 1}.

प्रत्येक प्रोसेसर एक मान प्रस्तावित करता है, जिसे हम यहां सेट {0, 1} से मानते हैं।


The consensus problem is impossible to solve in the face of processor failures.

प्रोसेसर विफलताओं की स्थिति में सहमति समस्या को हल करना असंभव है।


प्रत्येक प्रोसेसर अंततः निर्णय लेता है।


आज धूप बहुत तेज चमक रही है।


कृपया मुझे एक गिलास पानी दीजिये।


The company announced a new product launch.

कंपनी ने एक नए उत्पाद के लॉन्च की घोषणा की।


He is studying for his exams diligently.

वह अपनी परीक्षाओं के लिए लगन से पढ़ाई कर रहा है।


The algorithm efficiently sorts the data.

एल्गोरिदम कुशलता से डेटा को सॉर्ट करता है।


क्या आप कृपया उसे दोहरा सकते हैं?


The government is implementing new policies.

सरकार नई नीतियाँ लागू कर रही है।


She is a talented musician and composer.

वह एक प्रतिभाशाली संगीतकार और रचनाकार हैं।


सॉफ्टवेयर अपडेट ने कई बग्स को ठीक किया।


I am going to the market to buy groceries.

मैं किराने का सामान खरीदने के लिए बाजार जा रहा हूँ।


आर्थिक पूर्वानुमान वृद्धि की भविष्यवाणी करता है।


He demonstrated exceptional leadership skills.

उन्होंने असाधारण नेतृत्व कौशल का प्रदर्शन किया।


सिस्टम आर्किटेक्चर जटिल है।


बैठक सुबह 10 बजे शुरू होगी।


The company is facing financial challenges.

कंपनी वित्तीय चुनौतियों का सामना कर रही है।


She is passionate about environmental conservation.

वह पर्यावरण संरक्षण के बारे में भावुक हैं।


कोड को और अधिक अनुकूलन की आवश्यकता है।


क्या आप कृपया अधिक जानकारी प्रदान कर सकते हैं?


The political situation is very volatile.

राजनीतिक स्थिति बहुत अस्थिर है।


He has a deep understanding of the subject.

उन्हें विषय की गहरी समझ है।


यह एल्गोरिदम डेटा को कुशलता से सॉर्ट करता है।


Please provide your identification details.

कृपया अपनी पहचान का विवरण प्रदान करें।


Despite the challenges, they persevered and succeeded.

चुनौतियों के बावजूद, वे डटे रहे और सफल हुए।


Could you please repeat that information?

क्या आप कृपया उस जानकारी को दोहरा सकते हैं?


The research paper explores complex topics.

शोध पत्र जटिल विषयों की पड़ताल करता है।


He is a highly respected professor in the field.

वह इस क्षेत्र में एक बहुत सम्मानित प्रोफेसर हैं।


The meeting will commence at 2 PM sharp.

बैठक दोपहर 2 बजे ठीक शुरू होगी।


The software update includes several bug fixes.

सॉफ्टवेयर अपडेट में कई बग फिक्स शामिल हैं।


वह कई भाषाओं में धाराप्रवाह है।


The economic forecast predicts a recession.

आर्थिक पूर्वानुमान मंदी की भविष्यवाणी करता है।


The project requires careful planning and execution.

परियोजना के लिए सावधानीपूर्वक योजना और निष्पादन की आवश्यकता है।


The artist's work is known for its vibrant colors.

कलाकार का काम अपने जीवंत रंगों के लिए जाना जाता है।


The government implemented new regulations.

सरकार ने नए नियम लागू किए।


The complex equation was difficult to solve.

जटिल समीकरण को हल करना मुश्किल था।


The team celebrated their victory with enthusiasm.

टीम ने उत्साह के साथ अपनी जीत का जश्न मनाया।


The historical significance of the event is undeniable.

घटना का ऐतिहासिक महत्व निर्विवाद है।


The company's financial performance improved significantly.

कंपनी के वित्तीय प्रदर्शन में उल्लेखनीय सुधार हुआ।


The philosophical debate explored the nature of reality.

दार्शनिक बहस ने वास्तविकता की प्रकृति की पड़ताल की।


The technological advancements have transformed society.

तकनीकी प्रगति ने समाज को बदल दिया है।


यह कोड एक बाइटकोड पते का उपयोग करता है।


Harmony supports the shorthand p → v for the expression (!p).v.

हारमोनी अभिव्यक्ति (!p).v के लिए संक्षिप्त रूप p → v का समर्थन करता है।


A context value captures the state of a thread.

एक संदर्भ मान एक थ्रेड की स्थिति को कैप्चर करता है।


The save expression, when invoked, returns a tuple (e, c).

जब लागू किया जाता है, तो सहेजें अभिव्यक्ति एक टपल (e, c) लौटाती है।


See Figure A.1 for an example of how this could be used to fork a thread.

यह देखने के लिए कि इसका उपयोग थ्रेड को फोर्क करने के लिए कैसे किया जा सकता है, चित्र A.1 देखें।


The statement assert b evaluates b and reports an error if b is false.

कथन assert b, b का मूल्यांकन करता है और यदि b गलत है तो एक त्रुटि की रिपोर्ट करता है।


A statement can be preceded by the atomically keyword.

एक कथन से पहले एटॉमिकली कीवर्ड आ सकता है।


The statement await b is equivalent to when b: pass.

कथन await b, जब b: पास के बराबर है।


The expression const N = 3 introduces a new constant N with the value 3.

अभिव्यक्ति const N = 3, मान 3 के साथ एक नया स्थिरांक N प्रस्तुत करता है।


The statement def m a [returns r]: S1; S2: ... defines a new bytecode address constant m.

कथन def m a [returns r]: S1; S2: ... एक नया बाइटकोड पता स्थिरांक m परिभाषित करता है।


The statement del x removes variable x from the state.

कथन del x, स्थिति से चर x को हटा देता है।


The statement for x in y: S1; S2; ... iterates over y.

कथन for x in y: S1; S2; ... y पर पुनरावृति करता है।


If a module is imported more than once, its code is only included the first time.

यदि किसी मॉड्यूल को एक से अधिक बार आयात किया जाता है, तो इसका कोड केवल पहली बार शामिल किया जाता है।


The statement global v, ... tells the compiler that the given variables are shared global variables.

कथन global v, ... कंपाइलर को बताता है कि दिए गए चर साझा वैश्विक चर हैं।


हारमोनी if कथनों का समर्थन करता है।


You can introduce new bound variables in a method using the let statement.

आप let कथन का उपयोग करके किसी विधि में नए बाउंड चर पेश कर सकते हैं।


The statement print e evaluates e and adds the result to the print log.

कथन print e, e का मूल्यांकन करता है और परिणाम को प्रिंट लॉग में जोड़ता है।


In Harmony, shared variable Load and Store operations are atomic.

हारमोनी में, साझा चर लोड और स्टोर ऑपरेशन एटॉमिक हैं।


The statement spawn lv starts a new thread.

कथन spawn lv एक नया थ्रेड शुरू करता है।


The statement trap lv specifies that the current thread should evaluate lv at some future time.

कथन trap lv निर्दिष्ट करता है कि वर्तमान थ्रेड को भविष्य में किसी समय lv का मूल्यांकन करना चाहिए।


The Harmony compiler and model checker are used for verifying concurrent programs.

समानांतर कार्यक्रमों के सत्यापन के लिए हार्मनी कंपाइलर और मॉडल चेकर का उपयोग किया जाता है।


Harmony compiles Harmony into bytecode and then model checks the bytecode.

हार्मनी, हार्मनी को बाइटकोड में संकलित करता है और फिर बाइटकोड का मॉडल चेक करता है।


The result is analyzed for failing assertions and invariants.

परिणाम का विफल दावों और अपरिवर्तनीयों के लिए विश्लेषण किया जाता है।


There are three phases: compile, model check, and analysis.

इसमें तीन चरण हैं: संकलन, मॉडल जांच और विश्लेषण।


The Harmony file name extensions are as follows: .hny, .hvm, .hco, .hvb, .hfa.

हार्मनी फ़ाइल नाम एक्सटेंशन इस प्रकार हैं: .hny, .hvm, .hco, .hvb, .hfa।


Harmony can also generate .tla, .htm, .gv, .png, and .tex files.

हार्मनी .tla, .htm, .gv, .png और .tex फ़ाइलें भी उत्पन्न कर सकता है।


By default, running “harmony x.hny’ will generate x.hvm, x.hco, x.hvb, x.png, and x.hvm files.

डिफ़ॉल्ट रूप से, “harmony x.hny’ चलाने पर x.hvm, x.hco, x.hvb, x.png और x.hvm फ़ाइलें उत्पन्न होंगी।


Various options can be used to change the behavior.

व्यवहार को बदलने के लिए विभिन्न विकल्पों का उपयोग किया जा सकता है।


When importing a module using import x, harmony will try to find the corresponding .hny file.

import x का उपयोग करके एक मॉड्यूल आयात करते समय, हार्मनी संबंधित .hny फ़ाइल खोजने का प्रयास करेगा।


The options include output file options and other options.

विकल्पों में आउटपुट फ़ाइल विकल्प और अन्य विकल्प शामिल हैं।


Peterson’s Algorithm is a solution to the mutual exclusion problem.

पीटरसन का एल्गोरिदम पारस्परिक अपवर्जन समस्या का एक समाधान है।


We will focus on how one might go about proving mutual exclusion for an algorithm such as Peterson’s.

हम इस बात पर ध्यान केंद्रित करेंगे कि पीटरसन के एल्गोरिदम जैसे एल्गोरिदम के लिए पारस्परिक अपवर्जन को कैसे सिद्ध किया जा सकता है।


A state is comprised of the values of the shared variables as well as the values of the thread variables.

एक स्थिति में साझा चरों के मान और साथ ही थ्रेड चरों के मान शामिल होते हैं।


Each time a thread executes a HVM machine instruction, the state changes.

हर बार जब कोई थ्रेड एक HVM मशीन निर्देश निष्पादित करता है, तो स्थिति बदल जाती है।


हम इसे एक कदम कहते हैं।


A trace is a sequence of steps starting from the initial state.

एक ट्रेस प्रारंभिक स्थिति से शुरू होने वाले कदमों का एक क्रम है।


We call a state reachable if it can be reached from the initial state through a finite trace.

हम एक स्थिति को सुलभ कहते हैं यदि इसे प्रारंभिक स्थिति से एक सीमित ट्रेस के माध्यम से पहुँचा जा सकता है।


An invariant of a program is a predicate that holds over all states that are reachable by that program.

एक प्रोग्राम का अपरिवर्तनीय एक ऐसा प्रिडिकेट है जो उस प्रोग्राम द्वारा सुलभ सभी स्थितियों पर लागू होता है।


We want to show that exclusivity is an invariant because mutual exclusion means that all reachable states are exclusive.

हम यह दिखाना चाहते हैं कि विशिष्टता एक अपरिवर्तनीय है क्योंकि पारस्परिक अपवर्जन का अर्थ है कि सभी सुलभ स्थितियाँ विशिष्ट हैं।


The Split Binary Semaphore (SBS) approach is a general technique for implementing conditional waiting.

स्प्लिट बाइनरी सेमाफोर (एसबीएस) दृष्टिकोण सशर्त प्रतीक्षा को लागू करने के लिए एक सामान्य तकनीक है।


The code implements a bounded buffer using Hoare monitors.

यह कोड होरे मॉनिटर का उपयोग करके एक सीमित बफर लागू करता है।


Method wait increments the condition’s counter.

विधि प्रतीक्षा स्थिति के काउंटर को बढ़ाती है।


A bounded buffer is implemented using Hoare monitors.

एक सीमित बफर को होरे मॉनिटर का उपयोग करके लागू किया जाता है।


The mutex semaphore is acquired when entering a monitor.

म्यूटेक्स सेमाफोर को मॉनिटर में प्रवेश करते समय प्राप्त किया जाता है।


Each condition variable maintains a binary semaphore.

प्रत्येक स्थिति चर एक बाइनरी सेमाफोर को बनाए रखता है।


Method signal checks to see if the condition’s count is non-zero.

विधि सिग्नल यह देखने के लिए जाँच करती है कि क्या स्थिति की गिनती गैर-शून्य है।


Implementing a reader/writer lock with Hoare monitors is not straightforward.

होरे मॉनिटर के साथ रीडर/राइटर लॉक को लागू करना सीधा नहीं है।


When a writer releases the lock, it has to choose whether to signal a reader or another writer.

जब एक लेखक लॉक जारी करता है, तो उसे यह चुनना होगा कि रीडर या किसी अन्य लेखक को सिग्नल देना है या नहीं।


The simplest solution would be to peek at the counters inside the respective condition variables.

सबसे सरल समाधान संबंधित स्थिति चरों के अंदर काउंटरों पर झाँकना होगा।


The alternative is for the reader/writer implementation to keep track of that state explicitly.

विकल्प यह है कि रीडर/राइटर कार्यान्वयन उस स्थिति को स्पष्ट रूप से ट्रैक करे।


I received considerable help and inspiration from various people while writing this book.

मुझे यह पुस्तक लिखते समय विभिन्न लोगों से काफी मदद और प्रेरणा मिली।


विलियम मा को भी बहुत-बहुत धन्यवाद।


I have had lots of discussions with him about a wide range of improvements.

मैंने उनके साथ सुधारों की एक विस्तृत श्रृंखला पर बहुत चर्चा की है।


मैं एरियल केलसन को भी धन्यवाद देना चाहता हूँ।


They also developed much of that web site.

उन्होंने उस वेबसाइट का भी बहुत विकास किया।


I also would like to acknowledge my regular conversation about Harmony with Sasha Sandler.

मैं साशा सैंडलर के साथ हारमोनी के बारे में अपनी नियमित बातचीत को भी स्वीकार करना चाहूंगा।


He is an early industrial adopter of Harmony.

वह हारमोनी के शुरुआती औद्योगिक अपनाने वालों में से एक हैं।


Most of what I know about concurrent programming I learned from my colleague Fred Schneider.

समवर्ती प्रोग्रामिंग के बारे में जो कुछ भी मैं जानता हूँ, वह मैंने अपने सहयोगी फ्रेड श्नाइडर से सीखा।


Being a foremost security expert, he also assisted significantly with the chapter on the Needham-Schroeder protocol.

एक प्रमुख सुरक्षा विशेषज्ञ होने के नाते, उन्होंने नीडम-श्रोएडर प्रोटोकॉल पर अध्याय में भी महत्वपूर्ण सहायता की।


I first demonstrated Harmony to the students in my CS6480 class.

मैंने पहली बार अपने CS6480 वर्ग के छात्रों को हारमोनी का प्रदर्शन किया।