Because the last philosopher tries to grab right before left, there is no situation where each philosopher grabs one fork.

क्योंकि अंतिम दार्शनिक बाएं से पहले दाएं को पकड़ने की कोशिश करता है, ऐसी कोई स्थिति नहीं है जहां प्रत्येक दार्शनिक एक कांटा पकड़ता है।


Study the code for yourself until you really understand it.

जब तक आप वास्तव में इसे समझ न लें, तब तक स्वयं कोड का अध्ययन करें।


Semaphores are a powerful and flexible primitive for writing concurrent programs.

सेमाफोर समवर्ती प्रोग्राम लिखने के लिए एक शक्तिशाली और लचीला प्रिमिटिव हैं।


Becoming a real concurrency expert takes years of effort.

एक वास्तविक समवर्ती विशेषज्ञ बनने में वर्षों का प्रयास लगता है।


The study focuses on four major open-source applications.

अध्ययन चार प्रमुख ओपन-सोर्स अनुप्रयोगों पर केंद्रित है।


Understanding these results can help you understand what types of problems actually occur in mature code bases.

इन परिणामों को समझने से आपको यह समझने में मदद मिल सकती है कि परिपक्व कोड बेस में किस प्रकार की समस्याएँ वास्तव में होती हैं।


Table 32.1 shows a summary of the bugs Lu and colleagues studied.

तालिका 32.1 में ल्यू और उनके सहयोगियों द्वारा अध्ययन किए गए बग का सारांश दिखाया गया है।


From the table, you can see that there were 105 total bugs.

तालिका से, आप देख सकते हैं कि कुल 105 बग थे।


We now dive into these different classes of bugs a bit more deeply.

अब हम इन विभिन्न प्रकार के बग में थोड़ा और गहराई से उतरते हैं।


For the first class of non-deadlock bugs, we use examples from the study to drive our discussion.

गैर-डेडलॉक बग के पहले वर्ग के लिए, हम अपनी चर्चा को आगे बढ़ाने के लिए अध्ययन से उदाहरणों का उपयोग करते हैं।


The first type of problem encountered is referred to as an atomicity violation.

सामना की जाने वाली पहली प्रकार की समस्या को परमाणुता उल्लंघन के रूप में जाना जाता है।


Here is a simple example, found in MySQL.

यहाँ एक सरल उदाहरण है, जो MySQL में पाया गया।


Clearly, if the first thread performs the check but then is interrupted before the call to fputs, the second thread could run in-between.

स्पष्ट रूप से, यदि पहला थ्रेड जांच करता है लेकिन फिर fputs को कॉल करने से पहले बाधित हो जाता है, तो दूसरा थ्रेड बीच में चल सकता है।


The more formal definition of an atomicity violation is this: “The desired serializability among multiple memory accesses is violated.

परमाणुता उल्लंघन की अधिक औपचारिक परिभाषा यह है: “एकाधिक मेमोरी एक्सेस के बीच वांछित क्रमबद्धता का उल्लंघन किया जाता है।


Finding a fix for this type of problem is often straightforward.

इस प्रकार की समस्या का समाधान ढूंढना अक्सर सीधा होता है।


Another common type of non-deadlock bug found is known as an order violation.

एक अन्य सामान्य प्रकार का गैर-डेडलॉक बग जिसे क्रम उल्लंघन के रूप में जाना जाता है।


As you probably figured out, the code in Thread 2 seems to assume that the variable mThread has already been initialized.

जैसा कि आपने शायद अनुमान लगाया होगा, थ्रेड 2 में कोड यह मान लेता है कि चर mThread पहले ही आरंभ हो चुका है।


The fix to this type of bug is generally to enforce ordering.

इस प्रकार के बग का समाधान आम तौर पर क्रम को लागू करना है।


When ordering matters between threads, condition variables can come to the rescue.

जब थ्रेड्स के बीच क्रम मायने रखता है, तो स्थिति चर बचाव के लिए आ सकते हैं।


A large fraction of non-deadlock bugs studied are either atomicity or order violations.

अध्ययन किए गए गैर-डेडलॉक बग का एक बड़ा हिस्सा या तो परमाणुता या क्रम उल्लंघन है।


Some require a deeper understanding of what the program is doing.

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


Beyond the concurrency bugs mentioned above, a classic problem that arises is known as deadlock.

ऊपर बताए गए समवर्ती बग के अलावा, एक क्लासिक समस्या जो उत्पन्न होती है उसे डेडलॉक के रूप में जाना जाता है।


Deadlock occurs, for example, when a thread is holding a lock and waiting for another one.

डेडलॉक तब होता है, उदाहरण के लिए, जब एक थ्रेड एक लॉक पकड़े हुए है और दूसरे का इंतजार कर रहा है।


How should we build systems to prevent, avoid, or at least detect and recover from deadlock?

हमें डेडलॉक को रोकने, टालने या कम से कम उसका पता लगाने और उससे उबरने के लिए सिस्टम कैसे बनाना चाहिए?


सर्वर एक इवेंट लूप का उपयोग करता है।


Event-based concurrency can be challenging to manage.

इवेंट-आधारित समवर्तीता का प्रबंधन करना चुनौतीपूर्ण हो सकता है।


The programmer hopes the OS schedules threads reasonably.

प्रोग्रामर उम्मीद करता है कि ओएस थ्रेड्स को उचित तरीके से शेड्यूल करेगा।


This approach is called event-based concurrency.

इस दृष्टिकोण को इवेंट-आधारित समवर्तीता कहा जाता है।


The main loop waits for something to do.

मुख्य लूप कुछ करने का इंतजार करता है।


इवेंट हैंडलर प्रत्येक इवेंट को प्रोसेस करता है।


यह शेड्यूलिंग के बराबर है।


select() आने वाले I/O की जाँच करता है।


Non-blocking interfaces are essential in event-based approaches.

इवेंट-आधारित दृष्टिकोण में गैर-अवरोधक इंटरफेस आवश्यक हैं।


सर्वर आने वाले पैकेटों की जाँच करता है।


कोड एक लूप में FD_ISSET() का उपयोग करता है।


Event-based servers give control of scheduling.

इवेंट-आधारित सर्वर शेड्यूलिंग का नियंत्रण देते हैं।


No blocking calls are allowed in event-based systems.

इवेंट-आधारित सिस्टम में कोई भी अवरोधक कॉल की अनुमति नहीं है।


अсинक्रोनस I/O इस सीमा को दूर करता है।


एप्लिकेशन एक I/O अनुरोध जारी करता है।


स्ट्रक्ट aiocb एक नियंत्रण ब्लॉक है।


सिग्नल संवाद करने का एक तरीका प्रदान करते हैं।


इवेंट-आधारित कोड का प्रबंधन करना कठिन हो सकता है।


Both threads and events are likely to persist.

थ्रेड्स और इवेंट दोनों के बने रहने की संभावना है।


A pioneering paper on how to structure web servers in the then-burgeoning Internet era.

यह एक अग्रणी पेपर है जो उस समय के बढ़ते इंटरनेट युग में वेब सर्वर को कैसे संरचित किया जाए, इस पर आधारित है।


If there is some detail you need to know, it is in here.

यदि आपको कोई जानकारी चाहिए, तो वह यहाँ है।


A paper about how to make threads work at extreme scale; a counter to all the event-based work ongoing at the time.

यह पेपर इस बारे में है कि थ्रेड्स को अत्यधिक पैमाने पर कैसे काम कराया जाए; उस समय चल रहे सभी इवेंट-आधारित कार्यों का प्रतिकार।


Some of these ideas have found their way into the infrastructures of companies such as Google, Amazon, and elsewhere.

इनमें से कुछ विचारों ने Google, Amazon और अन्य कंपनियों के बुनियादी ढांचे में अपनी जगह बनाई है।


तो, क्या अब आपके सिर में दर्द हो रहा है?


It’s hard to think about all the ways threads can interleave.

यह सोचना मुश्किल है कि थ्रेड्स कितने तरीकों से आपस में जुड़ सकते हैं।


Indeed it is. I am always amazed at how so few line of code, when concurrent execution is involved, can become nearly impossible to understand.

वास्तव में ऐसा ही है। मुझे हमेशा आश्चर्य होता है कि समवर्ती निष्पादन शामिल होने पर कोड की इतनी कम पंक्तियाँ समझना लगभग असंभव कैसे हो सकता है।


प्रोफेसर ... उम्म ... गलत हो सकते हैं?


Well that is the real question, isn’t it?

खैर, असली सवाल तो यही है, है ना?


सबसे पहले, इसे सरल रखें!


Avoid complex interactions between threads, and use well-known and tried-and-true ways to manage thread interactions.

थ्रेड्स के बीच जटिल अंतःक्रियाओं से बचें, और थ्रेड अंतःक्रियाओं को प्रबंधित करने के लिए अच्छी तरह से ज्ञात और आजमाए हुए तरीकों का उपयोग करें।


Like simple locking, and maybe a producer-consumer queue?

जैसे कि सरल लॉकिंग, और शायद एक निर्माता-उपभोक्ता कतार?


Second, only use concurrency when absolutely needed; avoid it if at all possible.

दूसरा, समवर्तीता का उपयोग केवल तभी करें जब इसकी नितांत आवश्यकता हो; यदि संभव हो तो इससे बचें।


There is nothing worse than premature optimization of a program.

किसी प्रोग्राम का समय से पहले अनुकूलन करने से बुरा कुछ नहीं है।


I see – why add threads if you don’t need them?

मैं समझ गया - यदि आपको उनकी आवश्यकता नहीं है तो थ्रेड्स क्यों जोड़ें?


Third, if you really need parallelism, seek it in other simplified forms.

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


Good! You should. In the end, you’ll have to do a lot of that, as what we learn together can only serve as the barest introduction to the wealth of knowledge that is out there.

बहुत अच्छा! आपको करना चाहिए। अंत में, आपको बहुत कुछ करना होगा, क्योंकि हम जो एक साथ सीखते हैं वह केवल ज्ञान की उस संपत्ति का सबसे बुनियादी परिचय दे सकता है जो वहां मौजूद है।


And thus we reach the third of our four ... err... three pillars of operating systems:persistence.

और इस प्रकार हम ऑपरेटिंग सिस्टम के चार ... एर ... तीन स्तंभों में से तीसरे पर पहुँचते हैं: निरंतरता।


Did you say there were three pillars, or four? What is the fourth?

क्या आपने कहा कि तीन स्तंभ थे, या चार? चौथा क्या है?


Imagine you are outside, in a field, and you pick a –

कल्पना कीजिए कि आप बाहर, एक खेत में हैं, और आप एक चुनते हैं –


The Cheetah 15K.5 is a high-performance SCSI drive.

चीता 15K.5 एक उच्च-प्रदर्शन SCSI ड्राइव है।


The Barracuda is a drive built for capacity.

बार्राकुडा क्षमता के लिए बनाया गया एक ड्राइव है।


Details on both are found in Table 37.1.

दोनों के विवरण तालिका 37.1 में पाए जा सकते हैं।


The drives have quite different characteristics.

ड्राइव में काफी अलग-अलग विशेषताएं हैं।


The first is the “high performance” drive market.

पहला “उच्च प्रदर्शन” ड्राइव बाजार है।


दूसरा “क्षमता” बाजार है।


Cost per byte is the most important aspect.

प्रति बाइट लागत सबसे महत्वपूर्ण पहलू है।


The drives are slower but pack as many bits as possible.

ड्राइव धीमे हैं लेकिन जितना संभव हो उतने बिट्स पैक करते हैं।


We can start to calculate how well the drives would do.

हम यह गणना करना शुरू कर सकते हैं कि ड्राइव कितना अच्छा प्रदर्शन करेंगे।


Let’s start by looking at the random workload.

चलो यादृच्छिक कार्यभार को देखकर शुरू करते हैं।


Assuming each 4 KB read occurs at a random location.

यह मानते हुए कि प्रत्येक 4 KB रीड एक यादृच्छिक स्थान पर होता है।


We can calculate how long each such read would take.

हम गणना कर सकते हैं कि इस तरह की प्रत्येक रीड में कितना समय लगेगा।


The average seek time is just taken as the average time.

औसत खोज समय को केवल औसत समय के रूप में लिया जाता है।


The average rotational delay is calculated from the RPM.

औसत घूर्णी विलंब RPM से गणना की जाती है।


Transfer data to and from disks in a sequential manner.

डिस्क से और डिस्क पर डेटा को क्रमिक तरीके से स्थानांतरित करें।


If sequential is not possible, at least think about transferring data in large chunks.

यदि क्रमिक संभव नहीं है, तो कम से कम बड़े टुकड़ों में डेटा स्थानांतरित करने के बारे में सोचें।


The OS has historically played a role in deciding the order of I/Os.

OS ने ऐतिहासिक रूप से I/O के क्रम का निर्णय लेने में भूमिका निभाई है।


SSTF orders the queue of I/O requests by track.

SSTF ट्रैक द्वारा I/O अनुरोधों की कतार को व्यवस्थित करता है।


Imagine in our example above if there were a steady stream of requests.

कल्पना कीजिए कि हमारे ऊपर दिए गए उदाहरण में यदि अनुरोधों की एक स्थिर धारा थी।


How can we make a large, fast, and reliable storage system?

हम एक बड़ी, तेज़ और विश्वसनीय भंडारण प्रणाली कैसे बना सकते हैं?


पता 0x1F3 = LBA निम्न बाइट


पता 0x1F4 = LBA मध्य बाइट


पता 0x1F5 = LBA उच्च बाइट


The basic protocol to interact with the device is as follows, assuming it has already been initialized.

डिवाइस के साथ इंटरैक्ट करने का मूल प्रोटोकॉल इस प्रकार है, यह मानते हुए कि इसे पहले ही इनिशियलाइज़ कर दिया गया है।


ड्राइव के तैयार होने की प्रतीक्षा करें।


कमांड रजिस्टरों में पैरामीटर लिखें।


Start the I/O by issuing read/write to command register.

कमांड रजिस्टर पर रीड/राइट जारी करके I/O शुरू करें।


बाधाओं को संभालें।


After each operation, read the status register.

प्रत्येक ऑपरेशन के बाद, स्थिति रजिस्टर पढ़ें।


If the ERROR bit is on, read the error register for details.

यदि ERROR बिट चालू है, तो विवरण के लिए त्रुटि रजिस्टर पढ़ें।


Most of this protocol is found in the xv6 IDE driver.

इस प्रोटोकॉल का अधिकांश भाग xv6 IDE ड्राइवर में पाया जाता है।


The first is ide_rw(), which queues a request.

पहला ide_rw() है, जो एक अनुरोध को कतार में रखता है।


The second is ide startrequest(), which is used to send a request to the disk.

दूसरा ide startrequest() है, जिसका उपयोग डिस्क पर अनुरोध भेजने के लिए किया जाता है।


Interrupts are an ancient idea, existing on the earliest of machines.

बाधाएँ एक प्राचीन विचार हैं, जो सबसे शुरुआती मशीनों पर मौजूद हैं।


The basic interface for all modern drives is straightforward.

सभी आधुनिक ड्राइव के लिए मूल इंटरफ़ेस सीधा है।


The drive consists of a large number of sectors (512-byte blocks), each of which can be read or written.

ड्राइव में बड़ी संख्या में सेक्टर (512-बाइट ब्लॉक) होते हैं, जिनमें से प्रत्येक को पढ़ा या लिखा जा सकता है।


Multi-sector operations are possible; indeed, many file systems will read or write 4KB at a time (or more).

मल्टी-सेक्टर ऑपरेशन संभव हैं; वास्तव में, कई फ़ाइल सिस्टम एक बार में 4KB (या अधिक) पढ़ेंगे या लिखेंगे।


One can usually assume that accessing two blocks that are near one-another within the drive’s address space will be faster than accessing two blocks that are far apart.

कोई भी आमतौर पर यह मान सकता है कि ड्राइव के एड्रेस स्पेस के भीतर एक-दूसरे के करीब दो ब्लॉकों तक पहुंचना दो दूर के ब्लॉकों तक पहुंचने से तेज़ होगा।


Let’s start to understand some of the components of a modern disk.

आइए एक आधुनिक डिस्क के कुछ घटकों को समझना शुरू करें।


Data is encoded on each surface in concentric circles of sectors; we call one such concentric circle a track.

डेटा प्रत्येक सतह पर सेक्टरों के संकेंद्रित वृत्तों में एन्कोड किया जाता है; हम ऐसे एक संकेंद्रित वृत्त को ट्रैक कहते हैं।


RAID systems can tolerate the loss of a disk and keep operating.

RAID सिस्टम एक डिस्क के नुकसान को सहन कर सकते हैं और काम करते रह सकते हैं।


Administrators could install a SCSI-based RAID storage array instead of a SCSI disk.

प्रशासक SCSI डिस्क के बजाय SCSI-आधारित RAID स्टोरेज एरे स्थापित कर सकते हैं।


RAID was made more successful from day one by solving the problem of deployment.

RAID को तैनाती की समस्या को हल करके पहले दिन से ही अधिक सफल बनाया गया था।


A RAID just looks like a big disk to the host system.

एक RAID होस्ट सिस्टम को एक बड़ी डिस्क की तरह दिखता है।


The operating system and client applications continue to operate without modification.

ऑपरेटिंग सिस्टम और क्लाइंट एप्लिकेशन बिना किसी संशोधन के काम करना जारी रखते हैं।


We now discuss some of the important aspects of RAIDs.

अब हम RAID के कुछ महत्वपूर्ण पहलुओं पर चर्चा करते हैं।


A RAID internally must calculate which disk (or disks) to access in order to complete the request.

एक RAID को आंतरिक रूप से यह गणना करनी चाहिए कि अनुरोध को पूरा करने के लिए किस डिस्क (या डिस्क) तक पहुंचना है।


Consider a RAID that keeps two copies of each block.

एक RAID पर विचार करें जो प्रत्येक ब्लॉक की दो प्रतियां रखता है।


A RAID system is often built as a separate hardware box.

एक RAID सिस्टम अक्सर एक अलग हार्डवेयर बॉक्स के रूप में बनाया जाता है।


RAIDs are fairly complex, consisting of a microcontroller.

RAID काफी जटिल हैं, जिनमें एक माइक्रो कंट्रोलर होता है।


RAIDs are designed to detect and recover from certain kinds of disk faults.

RAID को डिस्क की कुछ प्रकार की त्रुटियों का पता लगाने और उनसे उबरने के लिए डिज़ाइन किया गया है।


In this model, a disk can be in exactly one of two states: working or failed.

इस मॉडल में, एक डिस्क दो में से केवल एक स्थिति में हो सकती है: काम कर रही है या विफल हो गई है।


We will evaluate each RAID design along three axes.

हम तीन अक्षों के साथ प्रत्येक RAID डिज़ाइन का मूल्यांकन करेंगे।


The first axis is capacity; given a set of N disks, how much useful capacity is available?

पहला अक्ष क्षमता है; N डिस्क के एक सेट को देखते हुए, कितनी उपयोगी क्षमता उपलब्ध है?


Different schemes (e.g., parity-based ones) tend to fall in between.

विभिन्न योजनाएँ (जैसे, समता-आधारित) बीच में आने की प्रवृत्ति रखती हैं।


How many disk faults can the given design tolerate?

दिया गया डिज़ाइन कितनी डिस्क त्रुटियों को सहन कर सकता है?


Performance is somewhat challenging to evaluate.

प्रदर्शन का मूल्यांकन करना कुछ हद तक चुनौतीपूर्ण है।


We now consider three important RAID designs.

अब हम तीन महत्वपूर्ण RAID डिज़ाइनों पर विचार करते हैं।


The first RAID level is actually not a RAID level at all.

पहला RAID स्तर वास्तव में कोई RAID स्तर नहीं है।


This approach is designed to extract the most parallelism from the array.

यह दृष्टिकोण सरणी से सबसे अधिक समानांतरता निकालने के लिए डिज़ाइन किया गया है।


As you can see, for each stripe of data, we have added a single parity block.

जैसा कि आप देख सकते हैं, प्रत्येक डेटा स्ट्राइप के लिए, हमने एक एकल पैरिटी ब्लॉक जोड़ा है।


For example, parity block P1 has redundant information that it calculated from blocks 4, 5, 6, and 7.

उदाहरण के लिए, पैरिटी ब्लॉक P1 में अतिरिक्त जानकारी है जो उसने ब्लॉक 4, 5, 6 और 7 से गणना की है।


To compute parity, we need to use a mathematical function that enables us to withstand the loss of any one block from our stripe.

पैरिटी की गणना करने के लिए, हमें एक गणितीय फ़ंक्शन का उपयोग करने की आवश्यकता है जो हमें हमारी स्ट्राइप से किसी भी एक ब्लॉक के नुकसान का सामना करने में सक्षम बनाता है।


It turns out the simple function XOR does the trick quite nicely.

यह पता चला है कि सरल फ़ंक्शन XOR बहुत अच्छी तरह से काम करता है।


For a given set of bits, the XOR of all of those bits returns a 0 if there are an even number of 1’s in the bits, and a 1 if there are an odd number of 1’s.

बिट्स के दिए गए सेट के लिए, उन सभी बिट्स का XOR 0 लौटाता है यदि बिट्स में 1 की संख्या सम है, और 1 यदि 1 की संख्या विषम है।


You can remember this in a very simple way: that the number of 1’s in any row must be an even (not odd) number; that is the invariant that the RAID must maintain in order for parity to be correct.

आप इसे बहुत ही सरल तरीके से याद रख सकते हैं: किसी भी पंक्ति में 1 की संख्या एक सम (विषम नहीं) संख्या होनी चाहिए; यही वह अपरिवर्तनीय है जिसे पैरिटी को सही रखने के लिए RAID को बनाए रखना चाहिए।


कल्पना कीजिए कि कॉलम C2 खो गया है।


To figure out what values must have been in the column, we simply have to read in all the other values in that row (including the XOR’d parity bit) and reconstruct the right answer.

यह पता लगाने के लिए कि कॉलम में क्या मान होना चाहिए था, हमें बस उस पंक्ति में अन्य सभी मानों (XOR'd पैरिटी बिट सहित) को पढ़ना होगा और सही उत्तर का पुनर्निर्माण करना होगा।


Specifically, assume the first row’s value in column C2 is lost (it is a 1); by reading the other values in that row (0 from C0, 0 from C1, 1 from C3, and 0 from the parity column P), we get the values 0, 0, 1, and 0.

विशेष रूप से, मान लें कि कॉलम C2 में पहली पंक्ति का मान खो गया है (यह 1 है); उस पंक्ति में अन्य मानों को पढ़कर (C0 से 0, C1 से 0, C3 से 1, और पैरिटी कॉलम P से 0), हमें मान 0, 0, 1, और 0 मिलते हैं।


Because we know that XOR keeps an even number of 1’s in each row, we know what the missing data must be: a 1.

क्योंकि हम जानते हैं कि XOR प्रत्येक पंक्ति में 1 की एक सम संख्या रखता है, हम जानते हैं कि लापता डेटा क्या होना चाहिए: 1।


And that is how reconstruction works in a XOR-based parity scheme!

और इस तरह XOR-आधारित पैरिटी योजना में पुनर्निर्माण काम करता है!


Note also how we compute the reconstructed value: we just XOR the data bits and the parity bits together, in the same way that we calculated the parity in the first place.

यह भी ध्यान दें कि हम पुनर्निर्मित मान की गणना कैसे करते हैं: हम बस डेटा बिट्स और पैरिटी बिट्स को एक साथ XOR करते हैं, उसी तरह जैसे हमने पहली बार पैरिटी की गणना की थी।


Simply perform a bitwise XOR across each bit of the data blocks; put the result of each bitwise XOR into the corresponding bit slot in the parity block.

डेटा ब्लॉक के प्रत्येक बिट पर एक बिटवाइज़ XOR करें; प्रत्येक बिटवाइज़ XOR के परिणाम को पैरिटी ब्लॉक में संबंधित बिट स्लॉट में रखें।


RAID-4 uses 1 disk for parity information for every group of disks it is protecting.

RAID-4 पैरिटी जानकारी के लिए 1 डिस्क का उपयोग करता है, उन डिस्क के प्रत्येक समूह के लिए जिसकी वह सुरक्षा कर रहा है।


RAID-4 tolerates 1 disk failure and no more.

RAID-4 1 डिस्क विफलता को सहन करता है और इससे अधिक नहीं।


Sequential read performance can utilize all of the disks except for the parity disk, and thus deliver a peak effective bandwidth of (N−1) SMB/s (an easy case).

अनुक्रमिक पढ़ने का प्रदर्शन पैरिटी डिस्क को छोड़कर सभी डिस्क का उपयोग कर सकता है, और इस प्रकार (N−1) SMB/s की अधिकतम प्रभावी बैंडविड्थ प्रदान करता है (एक आसान मामला)।


When writing a big chunk of data to disk, RAID-4 can perform a simple optimization known as a full-stripe write.

डिस्क पर डेटा का एक बड़ा हिस्सा लिखते समय, RAID-4 एक सरल अनुकूलन कर सकता है जिसे पूर्ण-स्ट्राइप राइट के रूप में जाना जाता है।


In this case, the RAID can simply calculate the new value of P0 (by performing an XOR across the blocks 0, 1, 2, and 3) and then write all of the blocks (including the parity block) to the five disks above in parallel.

इस मामले में, RAID बस P0 का नया मान (ब्लॉक 0, 1, 2, और 3 पर XOR करके) की गणना कर सकता है और फिर सभी ब्लॉक (पैरिटी ब्लॉक सहित) को समानांतर में ऊपर की पांच डिस्क पर लिख सकता है।


Thus, full-stripe writes are the most efficient way for RAID-4 to write to disk.

इस प्रकार, पूर्ण-स्ट्राइप राइट RAID-4 के लिए डिस्क पर लिखने का सबसे कुशल तरीका है।


Imagine we wish to overwrite block 1 in the example above.

कल्पना कीजिए कि हम उपरोक्त उदाहरण में ब्लॉक 1 को ओवरराइट करना चाहते हैं।


The inode is a data structure that stores metadata about a file.

आईनोड एक डेटा संरचना है जो एक फ़ाइल के बारे में मेटाडेटा संग्रहीत करती है।


File systems use inodes to manage files on a storage device.

फ़ाइल सिस्टम एक भंडारण उपकरण पर फ़ाइलों को प्रबंधित करने के लिए आईनोड का उपयोग करते हैं।


The inode number is used to index into an array of inodes.

आईनोड नंबर का उपयोग आईनोड की एक सरणी में अनुक्रमण करने के लिए किया जाता है।


Each inode contains information like file size and permissions.

प्रत्येक आईनोड में फ़ाइल का आकार और अनुमतियाँ जैसी जानकारी होती है।


The design of the inode is a key part of file system design.

आईनोड का डिज़ाइन फ़ाइल सिस्टम डिज़ाइन का एक महत्वपूर्ण हिस्सा है।


Most modern systems have a similar structure for every file.

अधिकांश आधुनिक प्रणालियों में प्रत्येक फ़ाइल के लिए एक समान संरचना होती है।


The i-number is the low-level name of the file.

आई-नंबर फ़ाइल का निम्न-स्तरीय नाम है।


In vsfs, the i-number helps calculate the inode's location on disk.

vsfs में, आई-नंबर डिस्क पर आईनोड के स्थान की गणना करने में मदद करता है।


आईनोड तालिका आईनोड संग्रहीत करती है।


The file system calculates the offset into the inode region.

फ़ाइल सिस्टम आईनोड क्षेत्र में ऑफसेट की गणना करता है।


Disks are not byte addressable, but sector addressable.

डिस्क बाइट एड्रेसेबल नहीं हैं, बल्कि सेक्टर एड्रेसेबल हैं।


The inode contains information about the file's type.

आईनोड में फ़ाइल के प्रकार के बारे में जानकारी होती है।


It also stores the file's size and access permissions.

यह फ़ाइल के आकार और एक्सेस अनुमतियों को भी संग्रहीत करता है।


Metadata is all the information about a file.

मेटाडेटा एक फ़ाइल के बारे में सभी जानकारी है।


Direct pointers inside the inode point to disk blocks.

आईनोड के अंदर सीधे पॉइंटर डिस्क ब्लॉक की ओर इशारा करते हैं।


Indirect pointers point to blocks containing more pointers.

अप्रत्यक्ष पॉइंटर उन ब्लॉकों की ओर इशारा करते हैं जिनमें अधिक पॉइंटर होते हैं।


Multi-level indexing supports larger files.

मल्टी-लेवल इंडेक्सिंग बड़ी फ़ाइलों का समर्थन करता है।


एक्सटेंट पॉइंटर का एक विकल्प हैं।


Most files are small, which influences inode design.

अधिकांश फ़ाइलें छोटी होती हैं, जो आईनोड डिज़ाइन को प्रभावित करती हैं।


Directories contain a list of (entry name, inode number) pairs.

निर्देशिकाओं में (प्रविष्टि नाम, आईनोड नंबर) जोड़े की एक सूची होती है।


I want to call stat() on each file to get more information.

मैं प्रत्येक फ़ाइल पर अधिक जानकारी प्राप्त करने के लिए stat() कॉल करना चाहता हूँ।


This is exactly what ls does when you pass it the -l flag.

यह बिल्कुल वही है जो ls करता है जब आप इसे -l फ़्लैग पास करते हैं।


You can delete a directory with a call to rmdir().

आप rmdir() को कॉल करके एक निर्देशिका हटा सकते हैं।


Removing directories is more dangerous, as you could potentially delete a large amount of data.

निर्देशिकाओं को हटाना अधिक खतरनाक है, क्योंकि आप संभावित रूप से बड़ी मात्रा में डेटा हटा सकते हैं।


The directory must be empty before it is deleted.

निर्देशिका को हटाने से पहले खाली होना चाहिए।


The call to rmdir() simply will fail if you try to delete a non-empty directory.

यदि आप एक गैर-खाली निर्देशिका को हटाने का प्रयास करते हैं, तो rmdir() कॉल विफल हो जाएगा।


We now come back to the mystery of why removing a file is performed via unlink().

अब हम इस रहस्य पर वापस आते हैं कि फ़ाइल को unlink() के माध्यम से क्यों हटाया जाता है।


The link() system call takes two arguments.

link() सिस्टम कॉल दो तर्क लेता है।


When you link a new file name to an old one, you essentially create another way to refer to the same file.

जब आप एक नए फ़ाइल नाम को पुराने से लिंक करते हैं, तो आप अनिवार्य रूप से उसी फ़ाइल को संदर्भित करने का एक और तरीका बनाते हैं।


The command-line program ln is used to do this.

कमांड-लाइन प्रोग्राम ln का उपयोग ऐसा करने के लिए किया जाता है।


We created a file with the word “hello” in it.

हमने इसमें “hello” शब्द के साथ एक फ़ाइल बनाई।


We can examine the file by either opening file or file2.

हम फ़ाइल या फ़ाइल2 को खोलकर फ़ाइल की जांच कर सकते हैं।


फ़ाइल को किसी भी तरह से कॉपी नहीं किया जाता है।


You now just have two human names that both refer to the same file.

आपके पास अब केवल दो मानवीय नाम हैं जो दोनों एक ही फ़ाइल को संदर्भित करते हैं।


By passing the -i flag to ls, it prints out the inode number of each file.

ls को -i फ़्लैग पास करके, यह प्रत्येक फ़ाइल का इनोड नंबर प्रिंट करता है।


When you create a file, you are really doing two things.

जब आप एक फ़ाइल बनाते हैं, तो आप वास्तव में दो काम कर रहे होते हैं।


First, you are making a structure (the inode) that will track virtually all relevant information about the file.

सबसे पहले, आप एक संरचना (इनोड) बना रहे हैं जो फ़ाइल के बारे में लगभग सभी प्रासंगिक जानकारी को ट्रैक करेगी।


To remove a file from the file system, we call unlink().

फ़ाइल सिस्टम से फ़ाइल को हटाने के लिए, हम unlink() को कॉल करते हैं।


The reason this works is because when the file system unlinks file, it checks a reference count within the inode number.

इसका कारण यह है कि जब फ़ाइल सिस्टम फ़ाइल को अनलिंक करता है, तो यह इनोड नंबर के भीतर एक संदर्भ गणना की जांच करता है।


You can see the reference count of a file using stat().

आप stat() का उपयोग करके फ़ाइल की संदर्भ गणना देख सकते हैं।


The directory 'foo' would have an entry ('foo', '10') that maps the user-readable name to the low-level name.

'foo' निर्देशिका में एक प्रविष्टि ('foo', '10') होगी जो उपयोगकर्ता-पठनीय नाम को निम्न-स्तरीय नाम से जोड़ती है।


Each entry in a directory refers to either files or other directories.

एक निर्देशिका में प्रत्येक प्रविष्टि या तो फ़ाइलों या अन्य निर्देशिकाओं को संदर्भित करती है।


By placing directories within other directories, users are able to build an arbitrary directory tree.

निर्देशिकाओं को अन्य निर्देशिकाओं के भीतर रखकर, उपयोगकर्ता एक मनमाना निर्देशिका ट्री बनाने में सक्षम होते हैं।


The directory hierarchy starts at a root directory.

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


For example, if a user created a directory 'foo' in the root directory, and then created a file 'bar.txt' in the directory 'foo', we could refer to the file by its absolute pathname.

उदाहरण के लिए, यदि किसी उपयोगकर्ता ने रूट निर्देशिका में 'foo' नामक एक निर्देशिका बनाई, और फिर 'foo' निर्देशिका में 'bar.txt' नामक एक फ़ाइल बनाई, तो हम फ़ाइल को उसके पूर्ण पथनाम से संदर्भित कर सकते हैं।


Naming is an important aspect of computer systems.

नामकरण कंप्यूटर सिस्टम का एक महत्वपूर्ण पहलू है।


In UNIX systems, virtually everything that you can think of is named through the file system.

UNIX सिस्टम में, लगभग हर चीज जिसके बारे में आप सोच सकते हैं, फ़ाइल सिस्टम के माध्यम से नामित की जाती है।


This uniformity of naming eases your conceptual model of the system.

नामकरण की यह एकरूपता आपके सिस्टम के वैचारिक मॉडल को आसान बनाती है।


Thus, whenever creating a system or interface, think carefully about what names you are using.

इसलिए, जब भी कोई सिस्टम या इंटरफ़ेस बनाते हैं, तो इस बारे में सावधानी से सोचें कि आप किन नामों का उपयोग कर रहे हैं।


The first part is an arbitrary name, whereas the second part of the file name is usually used to indicate the type of the file.

पहला भाग एक मनमाना नाम है, जबकि फ़ाइल नाम का दूसरा भाग आमतौर पर फ़ाइल के प्रकार को इंगित करने के लिए उपयोग किया जाता है।


Thus, we can see one great thing provided by the file system: a convenient way to name all the files we are interested in.

इस प्रकार, हम फ़ाइल सिस्टम द्वारा प्रदान की गई एक महान चीज़ देख सकते हैं: उन सभी फ़ाइलों को नाम देने का एक सुविधाजनक तरीका जिनमें हमारी रुचि है।


Names are important in systems as the first step to accessing any resource is being able to name it.

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


In UNIX systems, the file system thus provides a unified way to access files.

इस प्रकार, UNIX सिस्टम में, फ़ाइल सिस्टम फ़ाइलों तक पहुँचने का एक एकीकृत तरीका प्रदान करता है।


Let’s now discuss the file system interface in more detail.

आइए अब फ़ाइल सिस्टम इंटरफ़ेस पर अधिक विस्तार से चर्चा करें।


We’ll start with the basics of creating, accessing, and deleting files.

हम फ़ाइलों को बनाने, एक्सेस करने और हटाने की मूल बातें से शुरुआत करेंगे।


This can be accomplished with the open system call.

यह ओपन सिस्टम कॉल के साथ पूरा किया जा सकता है।


Here is some example code to create a file called “foo” in the current working directory.

यहां वर्तमान कार्यशील निर्देशिका में “foo” नामक एक फ़ाइल बनाने के लिए कुछ उदाहरण कोड दिया गया है।


The older way of creating a file is to call creat().

फ़ाइल बनाने का पुराना तरीका creat() को कॉल करना है।


A file descriptor is just an integer, private per process, and is used in UNIX systems to access files.

एक फ़ाइल डिस्क्रिप्टर केवल एक पूर्णांक है, जो प्रति प्रक्रिया निजी है, और UNIX सिस्टम में फ़ाइलों तक पहुँचने के लिए उपयोग किया जाता है।


Once we have some files, of course we might like to read or write them.

एक बार जब हमारे पास कुछ फ़ाइलें हैं, तो निश्चित रूप से हम उन्हें पढ़ना या लिखना चाहेंगे।


The file system uses caching to improve performance.

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


Caching can significantly reduce the number of I/O operations.

कैशिंग I/O ऑपरेशंस की संख्या को काफी कम कर सकता है।


Modern file systems integrate virtual memory and file system pages.

आधुनिक फ़ाइल सिस्टम वर्चुअल मेमोरी और फ़ाइल सिस्टम पृष्ठों को एकीकृत करते हैं।


Write buffering can improve performance by batching updates.

राइट बफ़रिंग अपडेट को बैच करके प्रदर्शन में सुधार कर सकता है।


Some applications force writes to disk to avoid data loss.

कुछ एप्लिकेशन डेटा हानि से बचने के लिए डिस्क पर लिखने के लिए मजबूर करते हैं।


File systems use inodes to store metadata about files.

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


Directories are a specific type of file that store name-to-inode mappings.

निर्देशिकाएँ एक विशिष्ट प्रकार की फ़ाइल हैं जो नाम-से-इनोड मैपिंग संग्रहीत करती हैं।


File systems often use bitmaps to track free or allocated blocks.

फ़ाइल सिस्टम अक्सर मुक्त या आवंटित ब्लॉकों को ट्रैक करने के लिए बिटमैप का उपयोग करते हैं।


The old UNIX file system had poor performance.

पुराने UNIX फ़ाइल सिस्टम का प्रदर्शन खराब था।


The Fast File System (FFS) was designed to be disk-aware.

फास्ट फाइल सिस्टम (FFS) को डिस्क-अवेयर होने के लिए डिज़ाइन किया गया था।


FFS divides the disk into cylinder groups.

FFS डिस्क को सिलेंडर समूहों में विभाजित करता है।


Each cylinder group contains a copy of the superblock.

प्रत्येक सिलेंडर समूह में सुपरब्लॉक की एक प्रति होती है।


The inode bitmap tracks whether each inode is free.

इनोड बिटमैप ट्रैक करता है कि प्रत्येक इनोड मुक्त है या नहीं।


FFS places related files within the same block group.

FFS संबंधित फ़ाइलों को एक ही ब्लॉक समूह के भीतर रखता है।


FFS tries to place files in the same group as their inode.

FFS फ़ाइलों को उनके इनोड के समान समूह में रखने की कोशिश करता है।


For large files, FFS spreads blocks across different groups.

बड़ी फ़ाइलों के लिए, FFS ब्लॉकों को विभिन्न समूहों में फैलाता है।


This helps to avoid performance issues with large files.

यह बड़ी फ़ाइलों के साथ प्रदर्शन संबंधी समस्याओं से बचने में मदद करता है।


The goal is to improve file system performance.

लक्ष्य फ़ाइल सिस्टम के प्रदर्शन में सुधार करना है।


Understanding file system design is crucial for system administrators.

सिस्टम प्रशासकों के लिए फ़ाइल सिस्टम डिज़ाइन को समझना महत्वपूर्ण है।


File system optimization involves many trade-offs.

फ़ाइल सिस्टम अनुकूलन में कई ट्रेड-ऑफ़ शामिल हैं।


The system crashed during the file operation.

फ़ाइल ऑपरेशन के दौरान सिस्टम क्रैश हो गया।


Journaling helps recover data after a system failure.

जर्नलिंग सिस्टम की विफलता के बाद डेटा को पुनर्प्राप्त करने में मदद करता है।


The recovery process replays everything in the log.

रिकवरी प्रक्रिया लॉग में सब कुछ फिर से चलाती है।


The user will be surprised when reading the file.

फ़ाइल पढ़ते समय उपयोगकर्ता आश्चर्यचकित होगा।


One solution is to never reuse blocks until the delete is checkpointed.

एक समाधान यह है कि डिलीट को चेकपॉइंट किए जाने तक कभी भी ब्लॉक का पुन: उपयोग न करें।


Linux ext3 uses a revoke record in the journal.

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


The system first scans for revoke records.

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


रिवोक किया गया डेटा कभी भी फिर से नहीं चलाया जाता है।


We summarize the protocols with timelines.

हम टाइमलाइन के साथ प्रोटोकॉल का सारांश देते हैं।


Data journaling protocol is shown in Table 42.1.

डेटा जर्नलिंग प्रोटोकॉल तालिका 42.1 में दिखाया गया है।


The writes of the transaction begin block can be issued at the same time.

लेनदेन ब्लॉक की शुरुआत के लेखन को एक ही समय में जारी किया जा सकता है।


The checkpointing writes cannot begin until the transaction end block has committed.

चेकपॉइंटिंग लेखन तब तक शुरू नहीं हो सकता जब तक कि लेनदेन अंत ब्लॉक कमिट न हो जाए।


Metadata journaling protocol is shown in Table 42.2.

मेटाडेटा जर्नलिंग प्रोटोकॉल तालिका 42.2 में दिखाया गया है।


The data write can be issued at the same time as the writes to the transaction begin.

डेटा लेखन को लेनदेन की शुरुआत में लेखन के समान समय पर जारी किया जा सकता है।


Completion time is determined by the I/O subsystem.

समाप्ति समय I/O सबसिस्टम द्वारा निर्धारित किया जाता है।


We have two options for keeping file system metadata consistent.

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


Soft Updates carefully orders all writes.

सॉफ्ट अपडेट सभी लेखन को सावधानीपूर्वक व्यवस्थित करता है।


Implementing Soft Updates can be a challenge.

सॉफ्ट अपडेट को लागू करना एक चुनौती हो सकती है।


Copy-on-write never overwrites files in place.

कॉपी-ऑन-राइट कभी भी फ़ाइलों को जगह पर ओवरराइट नहीं करता है।


We will be learning more about this technique later.

हम बाद में इस तकनीक के बारे में और जानेंगे।


The file system manages data structures to implement abstractions like files and directories.

फ़ाइल सिस्टम फ़ाइलों और निर्देशिकाओं जैसे अमूर्तता को लागू करने के लिए डेटा संरचनाओं का प्रबंधन करता है।


Power loss or system crashes can lead to inconsistent states in persistent data structures.

बिजली का नुकसान या सिस्टम क्रैश स्थायी डेटा संरचनाओं में असंगत स्थितियों को जन्म दे सकता है।


Fsck is a tool used to find and repair inconsistencies in file systems.

Fsck फ़ाइल सिस्टम में असंगतताओं को खोजने और उनकी मरम्मत करने के लिए इस्तेमाल किया जाने वाला एक उपकरण है।


Journaling adds overhead but recovers more quickly from crashes.

जर्नलिंग ओवरहेड जोड़ता है लेकिन क्रैश से अधिक तेज़ी से ठीक हो जाता है।


The system may crash between any two writes, leading to partial updates.

सिस्टम किसी भी दो लेखन के बीच क्रैश हो सकता है, जिससे आंशिक अपडेट हो सकते हैं।


Imagine you have to update two on-disk structures, A and B, to complete an operation.

कल्पना कीजिए कि आपको एक ऑपरेशन पूरा करने के लिए दो ऑन-डिस्क संरचनाओं, ए और बी को अपडेट करना होगा।


The crash-consistency problem is a significant challenge in file system design.

क्रैश-कंसिस्टेंसी समस्या फ़ाइल सिस्टम डिज़ाइन में एक महत्वपूर्ण चुनौती है।


Fsck operates in phases to check and repair file system inconsistencies.

Fsck फ़ाइल सिस्टम की असंगतताओं की जांच और मरम्मत के लिए चरणों में काम करता है।


The superblock is checked for reasonableness and corruption.

सुपरब्लॉक की जांच उचितता और भ्रष्टाचार के लिए की जाती है।


Fsck scans inodes and indirect blocks to understand allocated blocks.

Fsck आवंटित ब्लॉकों को समझने के लिए इनोड और अप्रत्यक्ष ब्लॉकों को स्कैन करता है।


Each inode is checked for corruption or other problems.

प्रत्येक इनोड की भ्रष्टाचार या अन्य समस्याओं के लिए जांच की जाती है।


Fsck verifies the link count of each allocated inode.

Fsck प्रत्येक आवंटित इनोड की लिंक गणना को सत्यापित करता है।


Duplicate pointers, where two inodes refer to the same block, are also checked.

डुप्लिकेट पॉइंटर्स, जहां दो इनोड एक ही ब्लॉक को संदर्भित करते हैं, की भी जांच की जाती है।


Bad block pointers, which point outside the valid range, are removed.

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


Directory checks ensure the integrity of directory contents.

डायरेक्टरी जांच डायरेक्टरी सामग्री की अखंडता सुनिश्चित करती है।


Fsck can be slow on very large disk volumes.

Fsck बहुत बड़े डिस्क वॉल्यूम पर धीमा हो सकता है।


The introduction of FFS was a watershed moment in file system history.

FFS की शुरुआत फ़ाइल सिस्टम के इतिहास में एक महत्वपूर्ण क्षण था।


Modern disks internally read the entire track and buffer it in an internal disk cache.

आधुनिक डिस्क आंतरिक रूप से पूरे ट्रैक को पढ़ते हैं और इसे एक आंतरिक डिस्क कैश में बफर करते हैं।


Usability improvements, beyond the basic technology, also likely gained FFS a stronger user base.

उपयोगिता सुधारों, बुनियादी तकनीक से परे, ने भी FFS को एक मजबूत उपयोगकर्ता आधार प्राप्त करने की संभावना दी।


Making a system usable is often as or more important than its deep technical innovations.

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


LFS places chunks of the inode map right next to where it is writing all of the other new information.

एलएफएस इनोड मैप के टुकड़ों को वहीं रखता है जहां वह अन्य सभी नई जानकारी लिख रहा है।


Thus, when appending a data block to a filek, LFS actually writes the new data block, its inode, and a piece of the inode map all together onto the disk.

इस प्रकार, फ़ाइलk में एक डेटा ब्लॉक जोड़ते समय, एलएफएस वास्तव में नए डेटा ब्लॉक, उसके इनोड और इनोड मैप के एक टुकड़े को एक साथ डिस्क पर लिखता है।


How do we find the inode map, now that pieces of it are alsonow spread across the disk?

अब हम इनोड मैप कैसे खोजें, जबकि इसके टुकड़े भी डिस्क पर फैल गए हैं?


The checkpoint region contains pointers to the latest pieces of the inode map.

चेकप्वाइंट क्षेत्र में इनोड मैप के नवीनतम टुकड़ों के पॉइंटर शामिल हैं।


The checkpoint region is only updated periodically.

चेकप्वाइंट क्षेत्र को केवल समय-समय पर अपडेट किया जाता है।


LFS has just such a fixed place on disk for this, known as the checkpoint region (CR).

एलएफएस के पास इसके लिए डिस्क पर एक निश्चित स्थान है, जिसे चेकप्वाइंट क्षेत्र (सीआर) के रूप में जाना जाता है।


To make sure you understand how LFS works, let us now walk through what must happen to read a file from disk.

यह सुनिश्चित करने के लिए कि आप समझें कि एलएफएस कैसे काम करता है, आइए अब देखें कि डिस्क से फ़ाइल पढ़ने के लिए क्या होना चाहिए।


LFS simply looks up the inode-number to inode-disk- address mapping in the imap, and reads in the most recent version of the inode.

एलएफएस बस आईमैप में इनोड-नंबर से इनोड-डिस्क-एड्रेस मैपिंग को देखता है, और इनोड का सबसे हालिया संस्करण पढ़ता है।


However, to access a file in a file system, some directories must be accessed too.

हालांकि, फ़ाइल सिस्टम में फ़ाइल तक पहुंचने के लिए, कुछ निर्देशिकाओं तक भी पहुंच होनी चाहिए।


Remember that LFS will do so sequentially on the disk.

याद रखें कि एलएफएस ऐसा डिस्क पर क्रमिक रूप से करेगा।


LFS cleverly avoids this problem with the inode map.

एलएफएस इनोड मैप के साथ इस समस्या से चतुराई से बचता है।


You may have noticed another problem with LFS; it keeps writing newer version of a file.

आपने एलएफएस के साथ एक और समस्या देखी होगी; यह फ़ाइल का नया संस्करण लिखता रहता है।


हम ऐसे पुराने सामान को कचरा कहते हैं।


By the simple act of overwriting a data block, a number of new structures must be persisted by LFS.

एक डेटा ब्लॉक को ओवरराइट करने के सरल कार्य से, एलएफएस द्वारा कई नई संरचनाओं को बनाए रखा जाना चाहिए।


So what should we do with these older versions of inodes, datablocks, and so forth?

तो हमें इनोड, डेटाब्लॉक और इसी तरह के इन पुराने संस्करणों के साथ क्या करना चाहिए?


LFS instead keeps only the latest live version of a file.

इसके बजाय, एलएफएस केवल फ़ाइल का नवीनतम लाइव संस्करण रखता है।


The process of cleaning is a form of garbage collection.

सफाई की प्रक्रिया कचरा संग्रह का एक रूप है।


Write performance would drop considerably.

लेखन प्रदर्शन में काफी गिरावट आएगी।


The basic cleaning process works as follows.

बुनियादी सफाई प्रक्रिया इस प्रकार काम करती है।


LFS must be able to determine whether D is live.

एलएफएस को यह निर्धारित करने में सक्षम होना चाहिए कि डी लाइव है या नहीं।


When accessing a seemingly-working disk, it may return an error.

एक प्रतीत होता है कि काम कर रहे डिस्क तक पहुँचते समय, यह एक त्रुटि लौटा सकता है।


Both of these types of faults are somewhat rare.

ये दोनों प्रकार की त्रुटियाँ कुछ हद तक दुर्लभ हैं।


The table shows the percent of drives that exhibited at least one LSE or block corruption.

तालिका उन ड्राइवों का प्रतिशत दिखाती है जिनमें कम से कम एक एलएसई या ब्लॉक भ्रष्टाचार प्रदर्शित हुआ।


As you can see from the table, while buying better drives reduces the frequency of both types of problem.

जैसा कि आप तालिका से देख सकते हैं, बेहतर ड्राइव खरीदने से दोनों प्रकार की समस्या की आवृत्ति कम हो जाती है।


Costly drives with more than one LSE are as likely to develop additional errors as cheaper drives.

एक से अधिक एलएसई वाले महंगे ड्राइव में सस्ते ड्राइव की तरह ही अतिरिक्त त्रुटियां विकसित होने की संभावना होती है।


एलएसई डिस्क के आकार के साथ बढ़ते हैं।


एलएसई वाले अधिकांश डिस्क में 50 से कम हैं।


Disks with LSEs are more likely to develop additional LSEs.

एलएसई वाले डिस्क में अतिरिक्त एलएसई विकसित होने की अधिक संभावना होती है।


डिस्क स्क्रबिंग उपयोगी है।


Chance of corruption varies greatly across different drive models.

भ्रष्टाचार की संभावना विभिन्न ड्राइव मॉडलों में बहुत भिन्न होती है।


Age affects are different across models.

उम्र का प्रभाव मॉडलों में अलग-अलग होता है।


Workload and disk size have little impact on corruption.

कार्यभार और डिस्क आकार का भ्रष्टाचार पर बहुत कम प्रभाव पड़ता है।


Most disks with corruption only have a few corruptions.

भ्रष्टाचार वाले अधिकांश डिस्क में केवल कुछ ही भ्रष्टाचार होते हैं।


Corruption is not independent with a disk or across disks in RAID.

भ्रष्टाचार एक डिस्क के साथ या RAID में डिस्क में स्वतंत्र नहीं है।


To learn more about these failures, you should likely read the original papers.

इन विफलताओं के बारे में अधिक जानने के लिए, आपको मूल पत्रों को पढ़ना चाहिए।


If you really wish to build a reliable storage system, you must include machinery to detect and recovery from both LSEs and block corruption.

यदि आप वास्तव में एक विश्वसनीय भंडारण प्रणाली बनाना चाहते हैं, तो आपको एलएसई और ब्लॉक भ्रष्टाचार दोनों का पता लगाने और उनसे उबरने के लिए मशीनरी शामिल करनी होगी।


When a storage system tries to access a block, and the disk returns an error, the storage system should simply use whatever redundancy mechanism it has to return the correct data.

जब कोई स्टोरेज सिस्टम किसी ब्लॉक तक पहुंचने की कोशिश करता है, और डिस्क एक त्रुटि लौटाता है, तो स्टोरेज सिस्टम को बस सही डेटा वापस करने के लिए उसके पास जो भी रिडंडेंसी तंत्र है, उसका उपयोग करना चाहिए।


In a mirrored RAID, for example, the system should access the alternate copy.

उदाहरण के लिए, एक मिरर RAID में, सिस्टम को वैकल्पिक प्रतिलिपि तक पहुंचना चाहिए।


The growing prevalence of LSEs has influenced RAID designs over the years.

एलएसई की बढ़ती व्यापकता ने वर्षों से RAID डिज़ाइनों को प्रभावित किया है।


When an LSE is discovered during reconstruction, the extra parity helps to reconstruct the missing block.

जब पुनर्निर्माण के दौरान एक एलएसई का पता चलता है, तो अतिरिक्त समानता लापता ब्लॉक को फिर से बनाने में मदद करती है।


मूल विचार इस प्रकार है।


When updating the disk, before overwriting the structures in place, first write down a little note describing what you are about to do.

डिस्क को अपडेट करते समय, मौजूदा संरचनाओं को ओवरराइट करने से पहले, पहले एक छोटा सा नोट लिखें जिसमें आप क्या करने जा रहे हैं, इसका वर्णन हो।


By design, journaling thus adds a bit of work during updates to greatly reduce the amount of work required during recovery.

डिजाइन के अनुसार, जर्नलिंग इस प्रकार अपडेट के दौरान थोड़ा काम जोड़ता है ताकि रिकवरी के दौरान आवश्यक काम की मात्रा को बहुत कम किया जा सके।


The new key structure is the journal itself, which occupies some small amount of space within the partition or on another device.

नई प्रमुख संरचना स्वयं जर्नल है, जो विभाजन के भीतर या किसी अन्य डिवाइस पर कुछ छोटी मात्रा में स्थान घेरती है।


Say we have our canonical update again, where we wish to write the ‘inode (I[v2]), bitmap (B[v2]), and data block (Db) to disk again.

मान लीजिए कि हमारे पास फिर से हमारा सामान्य अपडेट है, जहाँ हम ‘इनोड (I[v2]), बिटमैप (B[v2]), और डेटा ब्लॉक (Db) को फिर से डिस्क पर लिखना चाहते हैं।


The transaction begin (TxB) tells us about this update, including information about the pending update to the file system.

लेन-देन की शुरुआत (TxB) हमें इस अपडेट के बारे में बताता है, जिसमें फ़ाइल सिस्टम में लंबित अपडेट के बारे में जानकारी शामिल है।


The middle three blocks just contain the exact contents of the blocks themselves; this is known as physical logging.

मध्य के तीन ब्लॉक में केवल स्वयं ब्लॉक की सटीक सामग्री होती है; इसे भौतिक लॉगिंग के रूप में जाना जाता है।


Once this transaction is safely on disk, we are ready to overwrite the old structures in the file system; this process is called checkpointing.

एक बार यह लेन-देन सुरक्षित रूप से डिस्क पर हो जाने के बाद, हम फ़ाइल सिस्टम में पुरानी संरचनाओं को ओवरराइट करने के लिए तैयार हैं; इस प्रक्रिया को चेकिंग कहा जाता है।


To enforce ordering between two disk writes, modern file systems have to take a few extra precautions.

दो डिस्क राइट के बीच ऑर्डर लागू करने के लिए, आधुनिक फ़ाइल सिस्टम को कुछ अतिरिक्त सावधानियां बरतनी पड़ती हैं।


One solution is to disable write buffering.

एक समाधान राइट बफ़रिंग को अक्षम करना है।


Unfortunately, recent research shows that some disk manufacturers, in an effort to deliver “higher performing” disks, explicitly ignore write-barrier requests.

दुर्भाग्य से, हाल के शोध से पता चलता है कि कुछ डिस्क निर्माता, “उच्च प्रदर्शन” वाली डिस्क देने के प्रयास में, स्पष्ट रूप से राइट-बैरियर अनुरोधों को अनदेखा करते हैं।


You may have noticed a particular inefficiency of writing to the log.

आपने लॉग में लिखने की एक विशेष अक्षमता पर ध्यान दिया होगा।


Namely, the file system first has to write out the transaction-begin block and contents of the transaction; only after these writes complete can the file system send the transaction-end block to disk.

अर्थात्, फ़ाइल सिस्टम को पहले लेन-देन-शुरू ब्लॉक और लेन-देन की सामग्री को लिखना होगा; केवल इन राइट्स के पूरा होने के बाद ही फ़ाइल सिस्टम लेन-देन-अंत ब्लॉक को डिस्क पर भेज सकता है।


When writing a transaction to the journal, include a checksum of the contents of the journal in the begin and end blocks.

जर्नल में एक लेन-देन लिखते समय, शुरुआत और अंत ब्लॉक में जर्नल की सामग्री का एक चेकसम शामिल करें।


This simple fix was attractive enough to gain the notice of Linux file system developers.

यह सरल सुधार लिनक्स फ़ाइल सिस्टम डेवलपर्स का ध्यान आकर्षित करने के लिए पर्याप्त आकर्षक था।


To avoid this problem, the file system issues the transactional write in two steps.

इस समस्या से बचने के लिए, फ़ाइल सिस्टम दो चरणों में लेन-देन संबंधी राइट जारी करता है।


An important aspect of this process is the atomicity guarantee provided by the disk.

इस प्रक्रिया का एक महत्वपूर्ण पहलू डिस्क द्वारा प्रदान की गई परमाणुता की गारंटी है।


If the crash happens before the transaction is written safely to the log, then our job is easy: the pending update is simply skipped.

यदि लेन-देन लॉग में सुरक्षित रूप से लिखे जाने से पहले क्रैश होता है, तो हमारा काम आसान है: लंबित अपडेट को बस छोड़ दिया जाता है।


You might have noticed that the basic protocol could add a lot of extra disk traffic.

आपने शायद देखा होगा कि मूल प्रोटोकॉल बहुत अधिक अतिरिक्त डिस्क ट्रैफ़िक जोड़ सकता है।


To address these problems, journaling file systems treat the log as a circular data structure, re-using it over and over.

इन समस्याओं को दूर करने के लिए, जर्नलिंग फ़ाइल सिस्टम लॉग को एक गोलाकार डेटा संरचना के रूप में मानते हैं, इसे बार-बार पुन: उपयोग करते हैं।


It turns out that file systems can react poorly to failures.

यह पता चला है कि फ़ाइल सिस्टम विफलताओं पर खराब प्रतिक्रिया दे सकते हैं।


This paper discusses how to build fault-tolerant services.

यह पेपर इस बारे में बात करता है कि दोष-सहिष्णु सेवाएं कैसे बनाई जाएं।


Distributed systems have changed the world.

वितरित प्रणालियों ने दुनिया को बदल दिया है।


Machines, disks, and networks can fail from time to time.

मशीनें, डिस्क और नेटवर्क समय-समय पर विफल हो सकते हैं।


How can we build systems that work when components fail?

हम ऐसे सिस्टम कैसे बना सकते हैं जो घटकों के विफल होने पर भी काम करें?


संचार स्वाभाविक रूप से अविश्वसनीय है।


Packets are regularly lost or corrupted.

पैकेट नियमित रूप से खो जाते हैं या दूषित हो जाते हैं।


We need reliable communication on top of an unreliable network.

हमें एक अविश्वसनीय नेटवर्क के ऊपर विश्वसनीय संचार की आवश्यकता है।


The sender sends a message to the receiver.

प्रेषक संदेश को प्राप्तकर्ता को भेजता है।


The receiver then sends a short message back to acknowledge its receipt.

फिर प्राप्तकर्ता इसकी प्राप्ति को स्वीकार करने के लिए एक छोटा संदेश वापस भेजता है।


The sender sets a timer to go off after some period of time.

प्रेषक कुछ समय के बाद बंद होने के लिए एक टाइमर सेट करता है।


If no acknowledgment has been received, the sender concludes that the message has been lost.

यदि कोई अभिस्वीकृति प्राप्त नहीं हुई है, तो प्रेषक यह निष्कर्ष निकालता है कि संदेश खो गया है।


The sender then simply performs a retry of the send.

प्रेषक फिर बस भेजने का पुन: प्रयास करता है।


Sequence counters can be used to avoid duplicates.

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


TCP/IP is the most commonly used reliable communication layer.

TCP/IP सबसे अधिक इस्तेमाल किया जाने वाला विश्वसनीय संचार परत है।


Setting the timeout value correctly is important.

टाइमआउट मान को सही ढंग से सेट करना महत्वपूर्ण है।


Robust systems strive to avoid overload.

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


Distributed shared memory systems enable processes to share a virtual address space.

वितरित साझा मेमोरी सिस्टम प्रक्रियाओं को एक आभासी पता स्थान साझा करने में सक्षम बनाते हैं।


Imagine if a machine fails; what happens to the pages on that machine?

कल्पना कीजिए कि यदि कोई मशीन विफल हो जाती है; उस मशीन पर पृष्ठों का क्या होता है?


The basic question should remind you of some of the topics we discussed.

बुनियादी सवाल आपको उन कुछ विषयों की याद दिलाना चाहिए जिन पर हमने चर्चा की थी।


The server checks if the cached file is valid.

सर्वर जांच करता है कि कैश की गई फ़ाइल मान्य है या नहीं।


If the cached copy is valid, the client can use it.

यदि कैश की गई प्रति मान्य है, तो क्लाइंट इसका उपयोग कर सकता है।


Otherwise, the client should fetch the newer version.

अन्यथा, क्लाइंट को नया संस्करण लाना चाहिए।


Server recovery after a crash is more complicated.

क्रैश के बाद सर्वर की रिकवरी अधिक जटिल है।


कॉलबैक मेमोरी में रखे जाते हैं।


The server has no idea which client has which files after reboot.

रीबूट के बाद सर्वर को इस बात का कोई अंदाज़ा नहीं होता कि किस क्लाइंट के पास कौन सी फ़ाइलें हैं।


Clients must realize the server has crashed.

क्लाइंट को यह महसूस करना होगा कि सर्वर क्रैश हो गया है।


They should treat all cache contents as suspect.

उन्हें सभी कैश सामग्री को संदिग्ध मानना चाहिए।


Reestablish the validity of a file before using it.

उपयोग करने से पहले फ़ाइल की वैधता को फिर से स्थापित करें।


एक सर्वर क्रैश एक बड़ी घटना है।


Ensure each client is aware of the crash.

सुनिश्चित करें कि प्रत्येक क्लाइंट क्रैश से अवगत है।


एक बासी फ़ाइल तक पहुँचने वाले क्लाइंट का जोखिम।


There are many ways to implement such recovery.

इस तरह की रिकवरी को लागू करने के कई तरीके हैं।


The server can send a message to each client.

सर्वर प्रत्येक क्लाइंट को एक संदेश भेज सकता है।


Clients can check that the server is alive periodically.

क्लाइंट समय-समय पर जांच कर सकते हैं कि सर्वर जीवित है या नहीं।


There is a cost to building a more scalable caching model.

अधिक स्केलेबल कैशिंग मॉडल बनाने की लागत है।


With NFS, clients hardly noticed a server crash.

NFS के साथ, क्लाइंट शायद ही कभी सर्वर क्रैश को नोटिस करते थे।


AFSv2 was found to be much more scalable.

AFSv2 को बहुत अधिक स्केलेबल पाया गया।


Each server could support about 50 clients.

प्रत्येक सर्वर लगभग 50 क्लाइंट का समर्थन कर सकता है।


Client-side performance came close to local performance.

क्लाइंट-साइड प्रदर्शन स्थानीय प्रदर्शन के करीब आया।


In DSM systems, some accesses are inexpensive, but others cause page faults.

डीएसएम सिस्टम में, कुछ एक्सेस सस्ते होते हैं, लेकिन अन्य पेज फॉल्ट का कारण बनते हैं।


Imagine a linked list where a next pointer points into a portion of the address space that is gone.

एक लिंक्ड लिस्ट की कल्पना करें जहां एक अगला पॉइंटर एड्रेस स्पेस के उस हिस्से की ओर इशारा करता है जो गायब हो गया है।


Remote procedure call packages make executing code on a remote machine simple.

रिमोट प्रक्रिया कॉल पैकेज एक दूरस्थ मशीन पर कोड को निष्पादित करना सरल बनाते हैं।


The stub generator's job is to remove some of the pain of packing function arguments.

स्टब जनरेटर का काम फ़ंक्शन तर्कों को पैक करने के दर्द को दूर करना है।


The client calls func1(x); internally, the code in the client stub for func1() does this.

क्लाइंट func1(x) को कॉल करता है; आंतरिक रूप से, func1() के लिए क्लाइंट स्टब में कोड यह करता है।


Create a message buffer. A message buffer is usually just a contiguous array of bytes.

एक संदेश बफर बनाएँ। एक संदेश बफर आमतौर पर केवल बाइट्स की एक सन्निहित सरणी होती है।


The process of putting all of this information into a single contiguous buffer is marshaling.

इस सारी जानकारी को एक ही सन्निहित बफर में डालने की प्रक्रिया को मार्शलिंग कहा जाता है।


Wait for the reply. Because function calls are usually synchronous, the call will wait.

जवाब का इंतज़ार करें। क्योंकि फ़ंक्शन कॉल आमतौर पर सिंक्रोनस होते हैं, कॉल इंतज़ार करेगा।


रिटर्न कोड और अन्य तर्कों को अनपैक करें।


The run-time library handles much of the heavy lifting in an RPC system.

रन-टाइम लाइब्रेरी एक RPC सिस्टम में भारी-भरकम काम को संभालती है।


The first challenge is how to locate a remote service.

पहली चुनौती एक दूरस्थ सेवा का पता लगाना है।


The simplest approaches build on existing naming systems.

सबसे सरल दृष्टिकोण मौजूदा नामकरण प्रणालियों पर आधारित हैं।


Should the RPC system use a reliable protocol such as TCP/IP, or UDP/IP?

क्या RPC सिस्टम को TCP/IP जैसे विश्वसनीय प्रोटोकॉल का उपयोग करना चाहिए, या UDP/IP का?


Building RPC on top of a reliable communication layer can lead to inefficiency.

एक विश्वसनीय संचार परत के ऊपर RPC बनाने से अक्षमता हो सकती है।


Many RPC packages are built on top of unreliable communication layers, such as UDP.

कई RPC पैकेज अविश्वसनीय संचार परतों, जैसे UDP, के ऊपर बनाए गए हैं।


What happens when a remote call takes a long time to complete?

क्या होता है जब एक दूरस्थ कॉल को पूरा होने में लंबा समय लगता है?


The run-time must also handle procedure calls with large arguments.

रन-टाइम को बड़े तर्कों के साथ प्रक्रिया कॉल को भी संभालना होगा।


Some machines store values in big endian ordering, whereas others use little endian ordering.

कुछ मशीनें बड़े एंडियन क्रम में मान संग्रहीत करती हैं, जबकि अन्य छोटे एंडियन क्रम का उपयोग करती हैं।


The end-to-end argument makes the case that the application is the only locale.

एंड-टू-एंड तर्क यह मामला बनाता है कि एप्लिकेशन ही एकमात्र स्थान है।


RPC packages often handle this by providing a well-defined endianness within their message formats.

RPC पैकेज अक्सर अपने संदेश प्रारूपों के भीतर एक अच्छी तरह से परिभाषित एंडियननेस प्रदान करके इसे संभालते हैं।


सर्वर अप्रत्याशित रूप से क्रैश हो गया।


Data integrity is crucial for reliable system operation.

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


The client requested a file from the network file system.

क्लाइंट ने नेटवर्क फ़ाइल सिस्टम से एक फ़ाइल का अनुरोध किया।


NFS servers must commit each write to stable storage.

एनएफएस सर्वर को प्रत्येक राइट को स्थिर स्टोरेज में कमिट करना होगा।


The file system design prioritizes fast recovery from server failure.

फ़ाइल सिस्टम डिज़ाइन सर्वर विफलता से त्वरित रिकवरी को प्राथमिकता देता है।


He is reading a book about operating systems.

वह ऑपरेटिंग सिस्टम के बारे में एक किताब पढ़ रहा है।


The company is developing new file system technologies.

कंपनी नई फ़ाइल सिस्टम तकनीकों का विकास कर रही है।


The research paper discusses the challenges of distributed file systems.

शोध पत्र वितरित फ़ाइल सिस्टम की चुनौतियों पर चर्चा करता है।


Can you explain the concept of write buffering?

क्या आप राइट बफ़रिंग की अवधारणा समझा सकते हैं?


The client reported success, but the data was lost.

क्लाइंट ने सफलता की सूचना दी, लेकिन डेटा खो गया।


सर्वर उच्च लोड का अनुभव कर रहा है।


The file was corrupted due to a server crash.

सर्वर क्रैश के कारण फ़ाइल दूषित हो गई।


The system needs to handle server failures gracefully.

सिस्टम को सर्वर विफलताओं को सहजता से संभालना होगा।


The design of AFS aimed for scalability.

एएफएस का डिज़ाइन मापनीयता के लिए था।


The protocol uses callbacks to reduce server interactions.

प्रोटोकॉल सर्वर इंटरैक्शन को कम करने के लिए कॉलबैक का उपयोग करता है।


The file system provides cache consistency.

फ़ाइल सिस्टम कैश स्थिरता प्रदान करता है।


The Andrew File System (AFS) was developed at CMU.

एंड्रयू फ़ाइल सिस्टम (एएफएस) सीएमयू में विकसित किया गया था।


क्लाइंट पूरी फ़ाइल को प्राप्त करता है।


The server sends a callback to the client.

सर्वर क्लाइंट को एक कॉलबैक भेजता है।


The system uses file identifiers (FIDs).

सिस्टम फ़ाइल पहचानकर्ताओं (एफआईडी) का उपयोग करता है।


The client application will want to call open(), read(), write(), close() and other standard API calls to access files and directories.

क्लाइंट एप्लिकेशन फ़ाइलों और निर्देशिकाओं तक पहुँचने के लिए ओपन(), रीड(), राइट(), क्लोज() और अन्य मानक एपीआई कॉलों को कॉल करना चाहेगा।


Imagine the server crashes after the first read completes, but before the client has issued the second one.

कल्पना कीजिए कि सर्वर पहले रीड के पूरा होने के बाद क्रैश हो जाता है, लेकिन क्लाइंट ने दूसरा जारी करने से पहले।


In this example, the file descriptor is a piece of shared state between the client and the server.

इस उदाहरण में, फ़ाइल डिस्क्रिप्टर क्लाइंट और सर्वर के बीच साझा स्थिति का एक हिस्सा है।


Shared state, as we hinted above, complicates crash recovery.

साझा स्थिति, जैसा कि हमने ऊपर संकेत दिया है, क्रैश रिकवरी को जटिल बनाती है।


For these reasons, the designers of NFS decided to pursue a stateless approach.

इन कारणों से, NFS के डिजाइनरों ने एक स्टेटलेस दृष्टिकोण अपनाने का फैसला किया।


Each client operation contains all the information needed to complete the request.

प्रत्येक क्लाइंट ऑपरेशन में अनुरोध को पूरा करने के लिए आवश्यक सभी जानकारी होती है।


How can we define the network protocol to enable stateless operation?

हम स्टेटलेस ऑपरेशन को सक्षम करने के लिए नेटवर्क प्रोटोकॉल को कैसे परिभाषित कर सकते हैं?


File handles are used to uniquely describe the file or directory a particular operation is going to operate upon.

फ़ाइल हैंडल का उपयोग उस फ़ाइल या निर्देशिका का विशिष्ट रूप से वर्णन करने के लिए किया जाता है जिस पर कोई विशेष ऑपरेशन संचालित होने वाला है।


You can think of a file handle as having three important components: a volume identifier, an inode number, and a generation number.

आप एक फ़ाइल हैंडल को तीन महत्वपूर्ण घटकों के रूप में सोच सकते हैं: एक वॉल्यूम पहचानकर्ता, एक इनोड नंबर और एक पीढ़ी संख्या।


The volume identifier informs the server which file system the request refers to.

वॉल्यूम पहचानकर्ता सर्वर को सूचित करता है कि अनुरोध किस फ़ाइल सिस्टम को संदर्भित करता है।


The client passes a directory file handle and name of a file to look up.

क्लाइंट एक निर्देशिका फ़ाइल हैंडल और देखने के लिए एक फ़ाइल का नाम पास करता है।


Once a file handle is available, the client can issue READ and WRITE protocol messages on a file.

एक बार फ़ाइल हैंडल उपलब्ध होने के बाद, क्लाइंट किसी फ़ाइल पर रीड और राइट प्रोटोकॉल संदेश जारी कर सकता है।


The READ protocol message requires the protocol to pass along the file handle of the file along with the offset within the file and number of bytes to read.

रीड प्रोटोकॉल संदेश के लिए प्रोटोकॉल को फ़ाइल के फ़ाइल हैंडल को फ़ाइल के भीतर ऑफ़सेट और पढ़ने के लिए बाइट्स की संख्या के साथ पास करने की आवश्यकता होती है।


WRITE is handled similarly, except the data is passed from the client to the server, and just a success code is returned.

राइट को इसी तरह से संभाला जाता है, सिवाय इसके कि डेटा क्लाइंट से सर्वर को पास किया जाता है, और केवल एक सफलता कोड लौटाया जाता है।


We will see why this protocol request is important in NFSv2 below when we discuss caching.

हम देखेंगे कि यह प्रोटोकॉल अनुरोध NFSv2 में नीचे क्यों महत्वपूर्ण है जब हम कैशिंग पर चर्चा करेंगे।


The client-side file system tracks open files, and generally translates application requests into the relevant set of protocol messages.

क्लाइंट-साइड फ़ाइल सिस्टम खुले फ़ाइलों को ट्रैक करता है, और आम तौर पर एप्लिकेशन अनुरोधों को प्रोटोकॉल संदेशों के प्रासंगिक सेट में अनुवादित करता है।


The server simply responds to each protocol message, each of which has all the information needed to complete request.

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


Idempotency is a useful property when building reliable systems.

विश्वसनीय सिस्टम बनाते समय आइडम्पोटेंसी एक उपयोगी गुण है।


In NFSv2, a client handles all of these failures in a single, uniform, and elegant way: it simply retries the request.

NFSv2 में, एक क्लाइंट इन सभी विफलताओं को एक ही, समान और सुरुचिपूर्ण तरीके से संभालता है: यह बस अनुरोध को फिर से प्रयास करता है।


An operation is called idempotent when the effect of performing the operation multiple times is equivalent to the effect of performing the operating a single time.

एक ऑपरेशन को आइडम्पोटेंट कहा जाता है जब ऑपरेशन को कई बार करने का प्रभाव एक बार ऑपरेशन करने के प्रभाव के बराबर होता है।


Time sharing is a fundamental concept in operating systems.

समय साझा करना ऑपरेटिंग सिस्टम में एक बुनियादी अवधारणा है।


The operating system virtualizes the CPU.

ऑपरेटिंग सिस्टम सीपीयू का वर्चुअलाइजेशन करता है।


How to virtualize memory is a key topic.

मेमोरी को कैसे वर्चुअलाइज़ करें, यह एक महत्वपूर्ण विषय है।


समय-स्थान ट्रेड-ऑफ को समझें।


यह पुस्तक LaTeX का उपयोग करके टाइपसेट की गई थी।


असमय अनुकूलन से बचें।


टाइमआउट मान सेट करते समय सावधान रहें।


विस्तार-आधारित दृष्टिकोणों पर विचार करें।


How to build a lock is explained in this chapter.

इस अध्याय में बताया गया है कि लॉक कैसे बनाया जाए।


How to create and control processes is important.

प्रक्रियाओं को कैसे बनाया और नियंत्रित किया जाए, यह महत्वपूर्ण है।


How to deal with deadlock is a complex problem.

गतिरोध से कैसे निपटें, यह एक जटिल समस्या है।


How to handle disk starvation is discussed.

डिस्क भुखमरी से कैसे निपटें, इस पर चर्चा की गई है।


How to make all writes sequential writes.

कैसे सभी लेखन को क्रमिक लेखन बनाया जाए।


समय साझाकरण (और स्थान साझाकरण) का उपयोग करें।


जब संदेह हो, तो इसे आजमाएँ।


अलगाव का सिद्धांत महत्वपूर्ण है।


थ्रेड समवर्तीता के लिए आवश्यक हैं।


The RAID mapping problem is a challenge.

RAID मैपिंग समस्या एक चुनौती है।


वर्चुअलाइजेशन एक महत्वपूर्ण अवधारणा है।


कार्यभार के महत्व को समझें।