The leader election protocol is crucial for distributed systems.

مربوط نظاموں کے لیے لیڈر الیکشن پروٹوکول بہت اہم ہے۔


This code implements the two-phase commit protocol.

یہ کوڈ دو مرحلہ کمٹ پروٹوکول کو نافذ کرتا ہے۔


Replicated State Machines are used for fault tolerance.

غلطی برداشت کرنے کے لیے نقل شدہ اسٹیٹ مشینوں کا استعمال کیا جاتا ہے۔


Chain Replication provides high availability.

چین ریپلیکیشن اعلیٰ دستیابی فراہم کرتی ہے۔


The atomic read/write register is a fundamental concept.

ایٹمی پڑھنے/لکھنے کا رجسٹر ایک بنیادی تصور ہے۔


Distributed consensus is a challenging problem.

منقسم اتفاق رائے ایک مشکل مسئلہ ہے۔


Paxos is a well-known consensus protocol.

پیکسوس ایک معروف اتفاق رائے پروٹوکول ہے۔


The Needham-Schroeder protocol has security vulnerabilities.

نیڈھم-شروڈر پروٹوکول میں سیکیورٹی کی کمزوریاں ہیں۔


ہم آہنگی پروگراموں کو تیز تر بناتی ہے۔


ہیلو ورلڈ پہلا پروگرام ہے۔


پروگرام کے متعدد نتائج ہیں۔


تھریڈ بیک وقت چلتے ہیں۔


ایٹمی بلاکس انٹرلیونگ کو کم کرتے ہیں۔


ماڈل چیکر کیڑے تلاش کرتا ہے۔


یہ ایک سادہ مثال ہے۔


ہم آہنگی کے مسائل پیچیدہ ہیں۔


اس معاملے میں دعویٰ ناکام ہو گیا۔


غیر یقینییت ایک اہم مسئلہ ہے۔


آخری بیان کی جانچ کی جاتی ہے۔


Understanding concurrent code is important.

ہم آہنگ کوڈ کو سمجھنا ضروری ہے۔


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

اس دستاویز کی نقل، تقسیم اور/یا ترمیم کرنے کی اجازت ہے۔


This document is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

یہ دستاویز تخلیقی العام انتساب-غیر تجارتی-یکساں-شیئرالائک 4.0 بین الاقوامی (CC BY-NC-SA 4.0) کے تحت لائسنس یافتہ ہے۔


The problems with concurrent programming are complex.

ہم وقت پروگرامنگ کے مسائل پیچیدہ ہیں۔


Hello World! is a classic introductory program.

ہیلو ورلڈ! ایک کلاسک تعارفی پروگرام ہے۔


Critical sections require careful management to avoid errors.

غلطیوں سے بچنے کے لیے نازک حصوں کو احتیاط سے منظم کرنے کی ضرورت ہے۔


Understanding Harmony methods and pointers is essential.

ہارمونی طریقوں اور اشارے کو سمجھنا ضروری ہے۔


Specifying a lock is a fundamental concept in concurrency.

ایک لاک کی وضاحت ہم وقت سازی میں ایک بنیادی تصور ہے۔


Lock implementations can vary significantly.

لاک کے نفاذ نمایاں طور پر مختلف ہو سکتے ہیں۔


Concurrent data structures are used to manage shared resources.

ہم وقت ڈیٹا ڈھانچے مشترکہ وسائل کا انتظام کرنے کے لیے استعمال ہوتے ہیں۔


Testing and debugging are crucial for concurrent programs.

ہم وقت پروگراموں کے لیے جانچ اور ڈیبگنگ بہت ضروری ہیں۔


Conditional waiting is a common technique.

مشروط انتظار ایک عام تکنیک ہے۔


Reader/Writer locks provide a way to manage concurrent access.

ریڈر/رائٹر لاک ہم وقت رسائی کا انتظام کرنے کا ایک طریقہ فراہم کرتے ہیں۔


Bounded buffers are used to synchronize data transfer.

محدود بفر ڈیٹا کی منتقلی کو ہم وقت کرنے کے لیے استعمال ہوتے ہیں۔


Condition variables are essential for thread synchronization.

کنڈیشن متغیر تھریڈ ہم وقت سازی کے لیے ضروری ہیں۔


Starvation and deadlock are serious problems in concurrent systems.

ہم وقت نظاموں میں بھوک اور ڈیڈ لاک سنگین مسائل ہیں۔


Actors and message passing offer an alternative approach.

ایکٹر اور پیغام رسانی ایک متبادل نقطہ نظر پیش کرتے ہیں۔


Barrier synchronization is used to coordinate threads.

رکاوٹ ہم وقت سازی تھریڈز کو مربوط کرنے کے لیے استعمال ہوتی ہے۔


Advanced barrier synchronization techniques exist.

اعلیٰ رکاوٹ ہم وقت سازی کی تکنیک موجود ہیں۔


A concurrent file service is a practical example.

ایک ہم وقت فائل سروس ایک عملی مثال ہے۔


Interrupts can complicate concurrent programming.

انٹرپٹ ہم وقت پروگرامنگ کو پیچیدہ بنا سکتے ہیں۔


The program uses a shared variable and a private variable for each thread.

یہ پروگرام ہر تھریڈ کے لیے ایک مشترکہ متغیر اور ایک نجی متغیر استعمال کرتا ہے۔


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

ہارمونی میں، کسی بھی بیان سے پہلے atomically کی ورڈ لگایا جا سکتا ہے۔


The code in Figure 7.1 also uses the Harmony when statement.

شکل 7.1 میں دیا گیا کوڈ ہارمنی جب بیان بھی استعمال کرتا ہے۔


Atomic statements are not intended to replace locks or other synchronization primitives.

ایٹمی بیانات کا مقصد لاک یا دیگر ہم وقت سازی کے ابتدائیوں کی جگہ لینا نہیں ہے۔


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

لاک ہم وقت سازی کی سب سے زیادہ عام اور بنیادی شکل ہیں جو ہم وقت پروگراموں میں استعمال ہوتی ہے۔


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.

ہارمونی میں، یہ دو طریقوں سے کیا جا سکتا ہے۔


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

لاک کو لاگو کرنے کے لیے، ملٹی کور پروسیسرز نام نہاد ایٹمی ہدایات فراہم کرتے ہیں۔


The approach is called spinlock, because each thread is “spinning” until it can acquire the lock.

اس طریقہ کار کو سپن لاک کہا جاتا ہے، کیونکہ ہر تھریڈ اس وقت تک “گھومتا” رہتا ہے جب تک کہ وہ لاک حاصل نہ کر لے۔


ہارمونی ان متغیرات کو چیک کر سکتی ہے۔


Method test and set involves only a single variable.

طریقہ کار ٹیسٹ اور سیٹ میں صرف ایک متغیر شامل ہے۔


The variable represents the lock: If free, the value is False; if taken, the value is True.

متغیر لاک کی نمائندگی کرتا ہے: اگر مفت ہے، تو قدر غلط ہے؛ اگر لیا گیا ہے، تو قدر درست ہے۔


Method acquire(lk) invokes test and set(lk) until it returns False.

طریقہ کار حاصل کریں(lk) ٹیسٹ اور سیٹ(lk) کو اس وقت تک طلب کرتا ہے جب تک کہ یہ غلط نہ ہو جائے۔


The spinlock implementation suffers potentially from starvation.

سپن لاک عمل درآمد ممکنہ طور پر بھوک کا شکار ہے۔


A ticket lock is an implementation of a lock that prevents starvation.

ٹکٹ لاک ایک لاک کا نفاذ ہے جو بھوک کو روکتا ہے۔


When a customer walks into the bakery, they draw a number from the dispenser.

جب کوئی گاہک بیکری میں داخل ہوتا ہے، تو وہ ڈسپنسر سے ایک نمبر نکالتا ہے۔


After obtaining the ticket, the thread waits until its ticket value equals the counter.

ٹکٹ حاصل کرنے کے بعد، تھریڈ اس وقت تک انتظار کرتا ہے جب تک کہ اس کے ٹکٹ کی قیمت کاؤنٹر کے برابر نہ ہو جائے۔


We now turn to a radically different way of implementing locks.

اب ہم لاک کو لاگو کرنے کے ایک بالکل مختلف طریقے کی طرف رجوع کرتے ہیں۔


In Harmony, a thread can suspend itself and save its context in a shared variable.

ہارمونی میں، ایک تھریڈ خود کو معطل کر سکتا ہے اور اپنے سیاق و سباق کو ایک مشترکہ متغیر میں محفوظ کر سکتا ہے۔


The expression causes the context of the thread to be saved.

یہ اظہار تھریڈ کے سیاق و سباق کو محفوظ کرنے کا سبب بنتا ہے۔


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.

جیسا کہ یہ پتہ چلتا ہے، اس طرح کرنے کا ایک فائدہ ہے۔


We also test if a thread can enter when there is no other thread trying to enter the critical section.

ہم یہ بھی جانچتے ہیں کہ آیا کوئی تھریڈ داخل ہو سکتا ہے جب کوئی دوسرا تھریڈ اہم سیکشن میں داخل ہونے کی کوشش نہیں کر رہا ہے۔


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۔


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.

ہارمونی تمام انٹرلیونگز کی کوشش کرے گا اور ایک غلطی کی اطلاع دے گا یہاں تک کہ اگر ان میں سے صرف ایک انٹرلیونگ ناکام ہوجاتا ہے۔


If the threads run one at a time to completion, then x will be incremented twice and ends up being 2.

اگر تھریڈز ایک وقت میں مکمل ہونے کے لیے چلتے ہیں، تو x کو دو بار بڑھایا جائے گا اور آخر میں 2 ہو جائے گا۔


یہ ریس کنڈیشن کے طور پر جانا جاتا ہے۔


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.

اگر کوئی دعوے کو پروگرام کی تفصیلات فراہم کرنے کے طور پر سوچتا ہے، تو واضح طور پر اس کا نفاذ اس کی تفصیلات کو پورا نہیں کرتا ہے۔


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

ہم مندرجہ ذیل دعوے کو تبدیل کرکے تفصیلات کو تبدیل کرسکتے ہیں: آخر میں(x== 1)یا(x== 2)


The bug is not easily triggered when you run a Python version of the program.

جب آپ پروگرام کا پائیتھون ورژن چلاتے ہیں تو بگ آسانی سے متحرک نہیں ہوتا ہے۔


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 کی قدر کیا تھی۔


Can you think of a fix to Figure 3.2(b)?

کیا آپ شکل 3.2(b) کے لیے کوئی حل سوچ سکتے ہیں؟


Harmony programs are compiled to Harmony bytecode.

ہارمونی پروگرامز کو ہارمنی بائٹ کوڈ میں مرتب کیا جاتا ہے۔


The Harmony compiler, harmony, places the bytecode for file x.hny in file x.hvm.

ہارمونی کمپائلر، ہارمونی، فائل x.hny کے لیے بائٹ کوڈ کو فائل x.hvm میں رکھتا ہے۔


To understand the problem of concurrent computing, it is important to have a basic understanding of machine instructions.

ہم وقت ساز کمپیوٹنگ کے مسئلے کو سمجھنے کے لیے، مشین ہدایات کی بنیادی سمجھ ہونا ضروری ہے۔


ہارمونی اقدار کو بار بار بیان کیا جاتا ہے۔


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

وہ سٹرنگز جو کسی حرف یا انڈرسکور سے شروع ہوتے ہیں اور صرف حروف، ہندسوں اور انڈرسکور پر مشتمل ہوتے ہیں، بغیر کوٹس کے لکھے جا سکتے ہیں۔


Each thread has a program counter (PC) that indexes into the code, a stack of Harmony values, and a private register that contains a Harmony dictionary value.

ہر تھریڈ میں ایک پروگرام کاؤنٹر (PC) ہوتا ہے جو کوڈ میں انڈیکس کرتا ہے، ہارمونی اقدار کا ایک اسٹیک، اور ایک نجی رجسٹر جو ہارمونی ڈکشنری ویلیو پر مشتمل ہوتا ہے۔


آج موسم خوشگوار ہے۔


کیا آپ براہ کرم مجھے نمک دے سکتے ہیں؟


I am going to the market to buy some groceries.

میں کچھ گروسری خریدنے کے لیے بازار جا رہا ہوں۔


The company announced its quarterly profits.

کمپنی نے اپنے سہ ماہی منافع کا اعلان کیا۔


وہ ایک بہت باصلاحیت موسیقار ہے۔


The government is implementing new policies.

حکومت نئی پالیسیاں نافذ کر رہی ہے۔


Please submit your application by Friday.

براہ کرم جمعہ تک اپنی درخواست جمع کروائیں۔


The research team is working on a new project.

تحقیقی ٹیم ایک نئے منصوبے پر کام کر رہی ہے۔


وہ روانی سے فرانسیسی بولتی ہے۔


کانفرنس اگلے مہینے منعقد کی جائے گی۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


چیلنجوں کے باوجود، وہ کامیاب ہوئے۔


معاشی پیشن گوئی پرامید ہے۔


وہ اپنے شعبے میں ایک معروف ماہر ہیں۔


The software update includes new features.

سافٹ ویئر اپ ڈیٹ میں نئی خصوصیات شامل ہیں۔


مذاکرات جاری ہیں۔


The company's stock price increased significantly.

کمپنی کے حصص کی قیمت میں نمایاں اضافہ ہوا۔


The project requires careful planning and execution.

اس منصوبے کے لیے محتاط منصوبہ بندی اور عمل درآمد کی ضرورت ہے۔


The implications of the decision are far-reaching.

اس فیصلے کے مضمرات دور رس ہیں۔


The complex interplay of factors contributed to the outcome.

عوامل کے پیچیدہ باہمی تعامل نے نتیجے میں حصہ ڈالا۔


The code uses locks to prevent race conditions.

یہ کوڈ ریس کنڈیشنز سے بچنے کے لیے لاکس کا استعمال کرتا ہے۔


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

ایک تھریڈ مشترکہ متغیرات کو تبدیل کیے بغیر کسی شرط کا انتظار کر رہا ہے، اسے بلاک سمجھا جاتا ہے۔


The program uses a bounded buffer for inter-thread communication.

پروگرام تھریڈز کے درمیان مواصلت کے لیے ایک محدود بفر استعمال کرتا ہے۔


Condition variables are a synchronization primitive designed to allow for general and efficient solutions to conditional waiting problems.

کنڈیشن ویری ایبلز ایک ہم وقت سازی کی ابتدائی چیز ہیں جو مشروط انتظار کے مسائل کے عمومی اور موثر حل کی اجازت دینے کے لیے ڈیزائن کی گئی ہیں۔


The writer is waiting, but the readers keep entering the critical section.

رائٹر انتظار کر رہا ہے، لیکن ریڈرز اہم حصے میں داخل ہوتے رہتے ہیں۔


یہ بھوک کا ایک مثال ہے۔


The program is designed to prevent deadlock.

پروگرام ڈیڈ لاک سے بچنے کے لیے ڈیزائن کیا گیا ہے۔


Multiple threads are accessing shared resources.

متعدد تھریڈز مشترکہ وسائل تک رسائی حاصل کر رہے ہیں۔


سسٹم ریڈر/رائٹر لاک استعمال کرتا ہے۔


The code implements a queue data structure.

یہ کوڈ ایک قطار ڈیٹا ڈھانچہ نافذ کرتا ہے۔


The program uses hand-over-hand locking.

پروگرام ہاتھ سے ہاتھ لاکنگ کا استعمال کرتا ہے۔


The while loop checks for the condition that the thread is waiting for.

وائل لوپ اس شرط کی جانچ کرتا ہے جس کا تھریڈ انتظار کر رہا ہے۔


The implementation of reader/writer locks addresses fairness.

ریڈر/رائٹر لاکس کا نفاذ منصفانہ ہونے سے متعلق ہے۔


پروگرام تھریڈ سیف ہے۔


The system uses condition variables for synchronization.

سسٹم ہم وقت سازی کے لیے کنڈیشن ویری ایبلز کا استعمال کرتا ہے۔


یہ کوڈ مصروف انتظار سے بچتا ہے۔


The program is designed for parallel processing.

پروگرام متوازی پروسیسنگ کے لیے ڈیزائن کیا گیا ہے۔


The system uses a monitor for thread management.

سسٹم تھریڈ مینجمنٹ کے لیے مانیٹر کا استعمال کرتا ہے۔


پروگرام ایک سپن لاک استعمال کرتا ہے۔


یہ کوڈ کارکردگی کے لیے بہتر ہے۔


The file system uses a disk for storage.

فائل سسٹم اسٹوریج کے لیے ایک ڈسک کا استعمال کرتا ہے۔


Each block on the disk is identified by its offset or block number.

ڈسک پر موجود ہر بلاک کی شناخت اس کے آفسیٹ یا بلاک نمبر سے ہوتی ہے۔


The file system interface is similar to Unix-like file systems.

فائل سسٹم انٹرفیس یونیکس جیسے فائل سسٹمز سے ملتا جلتا ہے۔


The superblock specifies the number of inode blocks and the start of a linked list of free blocks.

سپر بلاک انوڈ بلاکس کی تعداد اور مفت بلاکس کی ایک منسلک فہرست کے آغاز کی وضاحت کرتا ہے۔


In this simplified file system, each inode contains just three pieces of information about the file.

اس سادہ فائل سسٹم میں، ہر انوڈ میں فائل کے بارے میں صرف تین معلومات شامل ہیں۔


The worker threads synchronize using a plain lock for the free list.

ورکر تھریڈز مفت فہرست کے لیے ایک سادہ لاک کا استعمال کرتے ہوئے ہم وقت ساز ہوتے ہیں۔


The implementation uses the actor model for concurrency.

عمل درآمد ہم وقتی کے لیے اداکار ماڈل کا استعمال کرتا ہے۔


The request queue has concurrent producers and consumers.

درخواست قطار میں ہم وقتی پروڈیوسر اور صارفین ہوتے ہیں۔


The response queues are single use only.

جواب کی قطاریں صرف ایک استعمال کے لیے ہیں۔


Each worker thread executes an infinite loop.

ہر ورکر تھریڈ ایک لامحدود لوپ کو انجام دیتا ہے۔


The method first needs to read the block that contains the inode.

طریقہ کار کو سب سے پہلے وہ بلاک پڑھنے کی ضرورت ہے جس میں انوڈ موجود ہے۔


If the offset is 0, then the request tries to access the data that is in the direct block.

اگر آفسیٹ 0 ہے، تو درخواست براہ راست بلاک میں موجود ڈیٹا تک رسائی حاصل کرنے کی کوشش کرتی ہے۔


Writing to a file or deleting a file are also handled.

فائل میں لکھنا یا فائل کو حذف کرنا بھی سنبھالا جاتا ہے۔


An interrupt is a notification of some event.

ایک رکاوٹ کسی واقعہ کا نوٹیفکیشن ہے۔


An exception is caused by the thread executing an invalid machine instruction.

ایک استثنیٰ ایک غلط مشین ہدایات پر عمل درآمد کرنے والے تھریڈ کی وجہ سے ہوتا ہے۔


Harmony allows modeling interrupts using the trap statement.

ہارمونی ٹریپ بیان کا استعمال کرتے ہوئے رکاوٹوں کی ماڈلنگ کی اجازت دیتا ہے۔


The code in Figure 20.2 is not interrupt-safe.

شکل 20.2 میں موجود کوڈ رکاوٹ سے محفوظ نہیں ہے۔


تالا رکاوٹوں کے ساتھ کام نہیں کرتے ہیں۔


The way one fixes interrupt-safety issues is through disabling interrupts temporarily.

رکاوٹ سے حفاظت کے مسائل کو ٹھیک کرنے کا طریقہ عارضی طور پر رکاوٹوں کو غیر فعال کرنا ہے۔


It is important that the main code re-enables interrupts after incrementing count.

یہ ضروری ہے کہ مین کوڈ گنتی میں اضافہ کرنے کے بعد رکاوٹوں کو دوبارہ فعال کرے۔


The code reliably sends messages between threads.

یہ کوڈ قابل اعتماد طریقے سے تھریڈز کے درمیان پیغامات بھیجتا ہے۔


Alice sends application messages in a specific order.

ایلس ایک مخصوص ترتیب میں ایپلیکیشن پیغامات بھیجتی ہے۔


باب ایپلیکیشن پیغامات وصول کرتا ہے۔


The Alternating Bit Protocol is suitable for our purposes.

متبادل بٹ پروٹوکول ہمارے مقاصد کے لیے موزوں ہے۔


Alice and Bob each maintain a sequence number.

ایلس اور باب میں سے ہر ایک ایک ترتیب نمبر برقرار رکھتا ہے۔


Alice keeps sending the same network message until she receives an acknowledgment.

ایلس ایک ہی نیٹ ورک پیغام اس وقت تک بھیجتی رہتی ہے جب تک کہ اسے تصدیق موصول نہ ہو جائے۔


Bob waits until he receives a message matching Bob’s sequence number.

باب اس وقت تک انتظار کرتا ہے جب تک کہ اسے باب کے ترتیب نمبر سے مماثل پیغام موصول نہ ہو جائے۔


Because of the network properties, a one-bit sequence number suffices.

نیٹ ورک کی خصوصیات کی وجہ سے، ایک بٹ کا ترتیب نمبر کافی ہے۔


We can model each channel as a variable.

ہم ہر چینل کو ایک متغیر کے طور پر ماڈل بنا سکتے ہیں۔


The method places either m (to model a successful send) or () (to model loss) in !pchan.

یہ طریقہ یا تو m (ایک کامیاب بھیجنے کی ماڈلنگ کے لیے) یا () (!pchan میں نقصان کی ماڈلنگ کے لیے) رکھتا ہے۔


Method appsend(net, seq, msg) retransmits {.seq: !seq, .payload:msg} until an acknowledgment for !seq is received.

طریقہ کار appsend(net, seq, msg) {.seq: !seq, .payload:msg} کو دوبارہ منتقل کرتا ہے جب تک کہ !seq کے لیے ایک اعتراف موصول نہ ہو جائے۔


The number of messages must be bounded, because model checking requires a finite model.

پیغامات کی تعداد محدود ہونی چاہیے، کیونکہ ماڈل چیکنگ کے لیے ایک محدود ماڈل کی ضرورت ہوتی ہے۔


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

لیڈر الیکشن پروسیسرز کے نیٹ ورک میں ایک منفرد لیڈر منتخب کرنے کا مسئلہ ہے۔


ہر پروسیسر کی ایک منفرد شناخت کنندہ ہے۔


پروسیسرز ایک انگوٹھی میں منظم ہیں۔


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

پروٹوکول سب سے زیادہ شناخت کنندہ والے پروسیسر کو لیڈر کے طور پر منتخب کرتا ہے۔


In the first phase, each processor sends its identifier to its successor.

پہلے مرحلے میں، ہر پروسیسر اپنا شناخت کنندہ اپنے جانشین کو بھیجتا ہے۔


A processor waits for a message using the Harmony atomically when exists statement.

ایک پروسیسر ہارمنی ایٹومکلی کا استعمال کرتے ہوئے ایک پیغام کا انتظار کرتا ہے جب موجودہ بیان موجود ہے۔


Modern databases support multiple clients concurrently accessing the data.

جدید ڈیٹا بیس بیک وقت ڈیٹا تک رسائی حاصل کرنے والے متعدد کلائنٹس کی حمایت کرتے ہیں۔


In database terminology, a transaction is an operation on a database.

ڈیٹا بیس کی اصطلاحات میں، ایک لین دین ڈیٹا بیس پر ایک آپریشن ہے۔


Imagine five philosopers sitting around a table, each with a plate of food in front of them and a fork between every two plates.

تصور کریں کہ پانچ فلسفی ایک میز کے گرد بیٹھے ہیں، ہر ایک کے سامنے کھانے کی پلیٹ ہے اور ہر دو پلیٹوں کے درمیان ایک کانٹا ہے۔


Each philosopher requires two forks to eat.

ہر فلسفی کو کھانے کے لیے دو کانٹوں کی ضرورت ہوتی ہے۔


To start eating, a philosopher first picks up the fork on the left, then the fork on the right.

کھانا شروع کرنے کے لیے، ایک فلسفی پہلے بائیں طرف کا کانٹا اٹھاتا ہے، پھر دائیں طرف کا کانٹا۔


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

ہر فلسفی کو کچھ دیر سوچنے کے لیے کھانے سے وقفہ لینا پسند ہے۔


To do so, the philosopher puts down both forks.

ایسا کرنے کے لیے، فلسفی دونوں کانٹے نیچے رکھ دیتا ہے۔


Each philosopher repeats this procedure.

ہر فلسفی اس طریقہ کار کو دہراتا ہے۔


Dijkstra had them repeating this for ever, but for the purposes of this book, philosophers can—if they wish—leave the table when they are not using any forks.

ڈائیکسٹرا نے انہیں ہمیشہ کے لیے یہ دہرانے کو کہا، لیکن اس کتاب کے مقاصد کے لیے، فلسفی—اگر وہ چاہیں—میز چھوڑ سکتے ہیں جب وہ کسی بھی کانٹے کا استعمال نہیں کر رہے ہیں۔


If you run it, Harmony complains that the execution may not be able to terminate, with all five threads being blocked trying to acquire the lock.

اگر آپ اسے چلاتے ہیں، تو ہارمنی شکایت کرتا ہے کہ عملدرآمد ختم نہیں ہو سکے گا، تمام پانچ تھریڈز لاک حاصل کرنے کی کوشش میں بلاک ہو رہے ہیں۔


کیا آپ کو مسئلہ نظر آرہا ہے؟


Does it depend on N, the number of philosophers?

کیا یہ این، فلسفیوں کی تعداد پر منحصر ہے؟


Mutual Exclusion: each resource can only be used by one thread at a time.

باہمی اخراج: ہر وسیلہ ایک وقت میں صرف ایک تھریڈ کے ذریعے استعمال کیا جا سکتا ہے۔


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

اس طرح ڈیڈ لاک کو روکنے کا مطلب ہے کہ ان میں سے کسی ایک حالت کو ہونے سے روکنا۔


However, mutual exclusion is not easily prevented in general because many resources allow only one process to use it at a time.

تاہم، عام طور پر باہمی اخراج کو آسانی سے روکا نہیں جا سکتا کیونکہ بہت سے وسائل صرف ایک عمل کو ایک وقت میں استعمال کرنے کی اجازت دیتے ہیں۔


Havender proposed the following techniques that avoid the remaining three conditions.

ہیوینڈر نے مندرجہ ذیل تکنیکوں کی تجویز پیش کی جو باقی تین شرائط سے بچتی ہیں۔


To implement a No Hold and Wait solution, a philosopher would need a way to lock both the left and right forks at the same time.

کوئی ہولڈ اینڈ ویٹ حل نافذ کرنے کے لیے، ایک فلسفی کو ایک ہی وقت میں بائیں اور دائیں دونوں کانٹوں کو لاک کرنے کا طریقہ درکار ہوگا۔


Locks do not have such an ability, so we re-implement the Dining Philosophers using condition variables that allow one to wait for arbitrary application- specific conditions.

لاک میں ایسی صلاحیت نہیں ہوتی، اس لیے ہم ڈائننگ فلاسفرز کو کنڈیشن متغیرات کا استعمال کرتے ہوئے دوبارہ نافذ کرتے ہیں جو کسی کو من مانی ایپلی کیشن مخصوص حالات کا انتظار کرنے کی اجازت دیتے ہیں۔


The No Circular Waiting approach is to prevent a cycle from forming, with each thread waiting for the next thread on the cycle.

کوئی سرکلر انتظار کا طریقہ کار ایک سائیکل بننے سے روکنا ہے، جس میں ہر تھریڈ سائیکل پر اگلے تھریڈ کا انتظار کر رہا ہے۔


In the case of the philosopers, they could prevent deadlock by always picking up the lower numbered fork before the higher numbered fork.

فلسفیوں کی صورت میں، وہ ہمیشہ زیادہ نمبر والے کانٹے سے پہلے کم نمبر والا کانٹا اٹھا کر ڈیڈ لاک کو روک سکتے ہیں۔


This completes all the Havender methods.

یہ تمام ہیوینڈر طریقوں کو مکمل کرتا ہے۔


If we can prevent more than four diners from starting to eat at the same time, then we can avoid the conditions for deadlock from ever happening.

اگر ہم چار سے زیادہ کھانے والوں کو ایک ہی وقت میں کھانا شروع کرنے سے روک سکتے ہیں، تو ہم ڈیڈ لاک کے حالات کو کبھی بھی ہونے سے روک سکتے ہیں۔


آج دھوپ بہت تیز چمک رہی ہے۔


کیا آپ براہ کرم مجھے نمک دے سکتے ہیں؟


خبروں میں ایک بڑے زلزلے کی اطلاع دی گئی۔


He is studying computer science at the university.

وہ یونیورسٹی میں کمپیوٹر سائنس کی تعلیم حاصل کر رہا ہے۔


The company announced its quarterly earnings.

کمپنی نے اپنی سہ ماہی کی آمدنی کا اعلان کیا۔


Please submit your application by Friday.

براہ کرم جمعہ تک اپنی درخواست جمع کروائیں۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


She is a talented musician and composer.

وہ ایک باصلاحیت موسیقار اور کمپوزر ہیں۔


The government implemented new regulations.

حکومت نے نئے ضوابط نافذ کیے۔


The research paper explores the impact of climate change.

تحقیقی مقالہ موسمیاتی تبدیلی کے اثرات کو تلاش کرتا ہے۔


The software update includes several bug fixes.

سافٹ ویئر اپ ڈیٹ میں کئی بگ فکس شامل ہیں۔


مذاکرات تعطل کا شکار ہو گئے۔


The artist's work is displayed in a gallery.

فنکار کا کام ایک گیلری میں نمائش کے لیے رکھا گیا ہے۔


معاشی پیش گوئی ترقی کی پیشین گوئی کرتی ہے۔


The team won the championship after a tough season.

ٹیم نے ایک مشکل سیزن کے بعد چیمپئن شپ جیت لی۔


The experiment yielded unexpected results.

تجربے کے غیر متوقع نتائج برآمد ہوئے۔


The new policy will affect many citizens.

نئی پالیسی بہت سے شہریوں کو متاثر کرے گی۔


The company is investing in renewable energy.

کمپنی قابل تجدید توانائی میں سرمایہ کاری کر رہی ہے۔


The book provides a comprehensive overview of the subject.

کتاب اس موضوع کا ایک جامع جائزہ فراہم کرتی ہے۔


The technology has the potential to revolutionize the industry.

اس ٹیکنالوجی میں صنعت میں انقلاب لانے کی صلاحیت ہے۔


The algorithm is complex, but it provides a robust solution.

یہ الگورتھم پیچیدہ ہے، لیکن یہ ایک مضبوط حل فراہم کرتا ہے۔


Please provide the necessary documentation for the project.

براہ کرم منصوبے کے لیے ضروری دستاویزات فراہم کریں۔


The company is expanding its operations to new markets.

کمپنی نئی منڈیوں میں اپنی کارروائیاں بڑھا رہی ہے۔


آج آپ کو دیکھ کر بہت خوشی ہوئی۔


The weather forecast predicts rain for tomorrow.

موسم کی پیش گوئی کل بارش کی ہے۔


کیا آپ براہ کرم اسے دہرا سکتے ہیں؟


میٹنگ دوپہر 2 بجے ہوگی۔


یہ ایک بہت اہم فیصلہ ہے۔


The data analysis revealed some interesting insights.

ڈیٹا تجزیہ نے کچھ دلچسپ بصیرتیں ظاہر کیں۔


The government announced new economic policies.

حکومت نے نئی معاشی پالیسیوں کا اعلان کیا۔


He is a highly skilled software engineer.

وہ ایک انتہائی ہنر مند سافٹ ویئر انجینئر ہے۔


The project is facing some unexpected challenges.

منصوبے کو کچھ غیر متوقع چیلنجز کا سامنا ہے۔


The museum has a vast collection of artifacts.

اس میوزیم میں نوادرات کا ایک وسیع ذخیرہ ہے۔


She is fluent in several foreign languages.

وہ کئی غیر ملکی زبانوں میں روانی سے بات کرتی ہے۔


The company's profits increased significantly this quarter.

اس سہ ماہی میں کمپنی کا منافع نمایاں طور پر بڑھا ہے۔


The research team is working on a new vaccine.

تحقیقی ٹیم ایک نئی ویکسین پر کام کر رہی ہے۔


The details of the agreement are confidential.

معاہدے کی تفصیلات خفیہ ہیں۔


The situation requires immediate attention.

اس صورتحال کو فوری توجہ کی ضرورت ہے۔


The artist's work is known for its unique style.

فنکار کا کام اپنے منفرد انداز کے لیے جانا جاتا ہے۔


The complex interplay of factors makes prediction difficult.

عوامل کا پیچیدہ باہمی تعامل پیش گوئی کو مشکل بنا دیتا ہے۔


آج موسم خوشگوار ہے۔


کیا آپ براہ کرم مجھے نمک دے سکتے ہیں؟


I am going to the market to buy some groceries.

میں بازار جا رہا ہوں کچھ گروسری خریدنے کے لیے۔


The company announced a new product launch.

کمپنی نے ایک نئی مصنوعات کے آغاز کا اعلان کیا۔


The research team is working on a new project.

تحقیقی ٹیم ایک نئے منصوبے پر کام کر رہی ہے۔


He is a very talented musician and composer.

وہ ایک بہت باصلاحیت موسیقار اور کمپوزر ہیں۔


The government is implementing new policies.

حکومت نئی پالیسیاں نافذ کر رہی ہے۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


وہ کئی زبانوں میں روانی سے بات کرتی ہے۔


معاشی پیش گوئی ترقی کی پیشین گوئی کرتی ہے۔


The complex system requires careful analysis.

پیچیدہ نظام کو محتاط تجزیہ کی ضرورت ہے۔


The philosophical debate explored the nature of reality.

فلسفیانہ بحث نے حقیقت کی نوعیت کو تلاش کیا۔


The implications of the new technology are far-reaching.

نئی ٹیکنالوجی کے مضمرات دور رس ہیں۔


The historical context is crucial for understanding the events.

واقعات کو سمجھنے کے لیے تاریخی تناظر بہت ضروری ہے۔


The intricate details of the project were meticulously planned.

منصوبے کی پیچیدہ تفصیلات کو باریک بینی سے منصوبہ بندی کی گئی تھی۔


The artist's innovative techniques revolutionized the art world.

فنکار کی جدید تکنیکوں نے آرٹ کی دنیا میں انقلاب برپا کر دیا۔


The scientific community is investigating the phenomenon.

سائنسی برادری اس رجحان کی تحقیقات کر رہی ہے۔


The political landscape is constantly shifting and evolving.

سیاسی منظر نامہ مسلسل بدلتا اور ارتقا پذیر ہو رہا ہے۔


The ethical considerations of artificial intelligence are paramount.

مصنوعی ذہانت کے اخلاقی تحفظات سب سے اہم ہیں۔


The complexities of international relations are often underestimated.

بین الاقوامی تعلقات کی پیچیدگیوں کو اکثر کم سمجھا جاتا ہے۔


The Harmony compiler analyzes the code for potential issues.

ہارمونی کمپائلر کوڈ میں ممکنہ مسائل کا تجزیہ کرتا ہے۔


The program uses a lock to protect the critical section.

پروگرام اہم حصے کی حفاظت کے لیے ایک لاک کا استعمال کرتا ہے۔


Can you explain the concept of inductive invariants?

کیا آپ انڈکٹیو انویریئنٹس کے تصور کی وضاحت کر سکتے ہیں؟


الگورتھم باہمی اخراج کو یقینی بناتا ہے۔


HVM ابتدائی حالت میں شروع ہوتا ہے۔


The test program starts a thread for each operation.

ٹیسٹ پروگرام ہر آپریشن کے لیے ایک تھریڈ شروع کرتا ہے۔


کمپائلر بائٹ کوڈ تیار کرتا ہے۔


The Harmony file extensions are important.

ہارمونی فائل کی توسیع اہم ہیں۔


ماڈل چیکر گراف کا تجزیہ کرتا ہے۔


The program checks for safety violations.

پروگرام حفاظت کی خلاف ورزیوں کی جانچ کرتا ہے۔


مصنف نے ویکیپیڈیا کے صفحے کو ٹھیک کیا۔


کوڈ اسپلٹ بائنری سیمفورز کا استعمال کرتا ہے۔


The main gate is implemented by a binary semaphore.

مین گیٹ کو ایک بائنری سیمفور کے ذریعے لاگو کیا جاتا ہے۔


The reader/writer problem is a classic concurrency challenge.

ریڈر/رائٹر کا مسئلہ ایک کلاسک ہم وقتی چیلنج ہے۔


The monitor has special variables called condition variables.

مانیٹر میں خاص متغیرات ہیں جنہیں کنڈیشن ویری ایبلز کہا جاتا ہے۔


The program uses wait and signal operations.

پروگرام انتظار اور سگنل آپریشنز کا استعمال کرتا ہے۔


The bounded buffer has two waiting conditions.

محدود بفر میں دو انتظار کی شرائط ہیں۔


تھریڈ اس وقت تک بلاک رہتا ہے جب تک کہ گیٹ نہ کھل جائے۔


الگورتھم ایک خوبصورت حل ہے۔


The Harmony compiler and model checker are powerful tools.

ہارمونی کمپائلر اور ماڈل چیکر طاقتور ٹولز ہیں۔


اس صورت میں، !؟a(b) a(b) کا جائزہ لیتا ہے۔


This can be used to implement generators.

اسے جنریٹر کو نافذ کرنے کے لیے استعمال کیا جا سکتا ہے۔


For example, the following Harmony program, perhaps surprisingly, does not run into failing assertions:

مثال کے طور پر، درج ذیل ہارمنی پروگرام، شاید حیرت انگیز طور پر، ناکام دعووں میں نہیں چلتا:


Internally, Harmony uses the address of a method variable and sometimes you see them on the stack during a computation.

اندرونی طور پر، ہارمنی ایک طریقہ کار کے متغیر کا پتہ استعمال کرتا ہے اور بعض اوقات آپ انہیں کمپیوٹیشن کے دوران اسٹیک پر دیکھتے ہیں۔


If k is a method variable, then its address is output as ?@k.

اگر k ایک طریقہ کار کا متغیر ہے، تو اس کا پتہ ?@k کے طور پر آؤٹ پٹ ہوتا ہے۔


However, there is no such thing as the address of a local variable.

تاہم، مقامی متغیر کا کوئی پتہ نہیں ہے۔


مندرجہ ذیل دو پروگراموں پر غور کریں:


In the program on the left, x is a shared variable, and ?x is the location of variable x.

بائیں طرف کے پروگرام میں، x ایک مشترکہ متغیر ہے، اور ?x متغیر x کا مقام ہے۔


In the program on the right, x is a local variable.

دائیں طرف کے پروگرام میں، x ایک مقامی متغیر ہے۔


?x evaluates x and then takes its address, so in this case ?x equals ?1.

?x x کا جائزہ لیتا ہے اور پھر اس کا پتہ لیتا ہے، لہذا اس صورت میں ?x ?1 کے برابر ہے۔


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

C کی طرح، ہارمنی اظہار کے لیے مختصر p→v کی حمایت کرتا ہے (!p).v۔


A context value (a.k.a. continuation) captures the state of a thread.

ایک سیاق و سباق کی قدر (a.k.a. تسلسل) ایک تھریڈ کی حالت کو حاصل کرتا ہے۔


The save expression, when invoked, returns a tuple (e, c) where c is the context value of the thread right after the save instruction finished.

save اظہار، جب طلب کیا جاتا ہے، ایک ٹپل (e, c) لوٹاتا ہے جہاں c تھریڈ کی سیاق و سباق کی قدر ہے جو save ہدایات کے ختم ہونے کے فوراً بعد ہے۔


Using go c the context can be turned into a new thread that, instead, returns r from the save expression.

go c کا استعمال کرتے ہوئے سیاق و سباق کو ایک نئے تھریڈ میں تبدیل کیا جا سکتا ہے، جو اس کے بجائے save اظہار سے r لوٹاتا ہے۔


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

اس کی مثال کے لیے شکل A.1 دیکھیں کہ اسے تھریڈ کو دو تھریڈز میں فورک کرنے کے لیے کیسے استعمال کیا جا سکتا ہے۔


The stop expression stores the context of the thread right after the expression in !p (i.e., p must be an address value) and terminates the thread.

stop اظہار تھریڈ کے سیاق و سباق کو اظہار کے فوراً بعد !p میں محفوظ کرتا ہے (یعنی، p ایک ایڈریس ویلیو ہونا چاہیے) اور تھریڈ کو ختم کرتا ہے۔


A thread can be for ever suspended using stop None or just stop().

ایک تھریڈ کو ہمیشہ کے لیے stop None یا صرف stop() کا استعمال کرتے ہوئے معطل کیا جا سکتا ہے۔


Harmony currently supports the following statements:

ہارمنی فی الحال درج ذیل بیانات کی حمایت کرتا ہے:


Single expression evaluation Any expression by itself can be used as a statement.

واحد اظہار کی تشخیص کوئی بھی اظہار خود ایک بیان کے طور پر استعمال کیا جا سکتا ہے۔


The statement x = 3 changes the state by assigning 3 to variable x.

بیان x = 3 متغیر x کو 3 تفویض کرکے حالت کو تبدیل کرتا ہے۔


The program uses a bounded buffer to manage data flow between producers and consumers.

یہ پروگرام پروڈیوسروں اور صارفین کے درمیان ڈیٹا کے بہاؤ کو منظم کرنے کے لیے ایک محدود بفر کا استعمال کرتا ہے۔


Hoare monitors provide a mechanism for synchronization in concurrent programming.

ہوئر مانیٹر ہم وقت پروگرامنگ میں ہم وقت سازی کے لیے ایک طریقہ کار فراہم کرتے ہیں۔


A bounded buffer is implemented using a Hoare monitor.

ایک محدود بفر کو ہوئر مانیٹر کا استعمال کرتے ہوئے لاگو کیا جاتا ہے۔


The mutex semaphore is acquired when entering a monitor and released upon exit.

جب کسی مانیٹر میں داخل ہوتے ہیں تو میوٹیکس سیمفور حاصل کیا جاتا ہے اور باہر نکلنے پر جاری کیا جاتا ہے۔


Method wait increments the condition’s counter, releases the monitor mutex, and blocks.

طریقہ کار انتظار حالت کے کاؤنٹر میں اضافہ کرتا ہے، مانیٹر میوٹیکس جاری کرتا ہے، اور بلاک کرتا ہے۔


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

طریقہ کار سگنل چیک کرتا ہے کہ آیا حالت کی گنتی غیر صفر ہے۔


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

ہوئر مانیٹر کے ساتھ ریڈر/رائٹر لاک کو لاگو کرنا سیدھا نہیں ہے۔


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.

متبادل یہ ہے کہ ریڈر/رائٹر عمل درآمد اس حالت کو واضح طور پر ٹریک کرے۔


Concurrency can be improved if a thread downgrades its write lock to a read lock.

ہم وقت سازی کو بہتر بنایا جا سکتا ہے اگر کوئی تھریڈ اپنے رائٹ لاک کو ریڈ لاک میں تبدیل کرے۔


The book discusses concurrent programming concepts.

کتاب ہم وقت پروگرامنگ کے تصورات پر بحث کرتی ہے۔


The Harmony language does not have language support for monitors.

ہارمونی زبان میں مانیٹر کے لیے زبان کی حمایت نہیں ہے۔


A Hoare monitor uses a hidden split binary semaphore.

ایک ہوئر مانیٹر ایک پوشیدہ اسپلٹ بائنری سیمفور کا استعمال کرتا ہے۔


Each condition variable maintains a binary semaphore and a counter.

ہر حالت متغیر ایک بائنری سیمفور اور ایک کاؤنٹر کو برقرار رکھتا ہے۔


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

طریقہ کار سگنل یہ دیکھنے کے لیے چیک کرتا ہے کہ آیا حالت کی گنتی غیر صفر ہے۔


Bounded buffer implemented using Hoare monitors.

ہوئر مانیٹر کا استعمال کرتے ہوئے لاگو کردہ محدود بفر۔


The code is written in much the same way you would if using the SBS technique.

کوڈ اسی طرح لکھا گیا ہے جس طرح آپ ایس بی ایس تکنیک کا استعمال کرتے ہیں۔


کوئی ریلیز ون طریقہ کار نہیں ہے۔


Instead, one can conclude that put guarantees that the queue will be non-empty.

اس کے بجائے، کوئی یہ نتیجہ اخذ کر سکتا ہے کہ پٹ اس بات کی ضمانت دیتا ہے کہ قطار غیر خالی ہوگی۔


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

ہوئر مانیٹر کے ساتھ ریڈر/رائٹر لاک کو لاگو کرنا اتنا سیدھا نہیں ہے۔