अमूर्त परत

From alpha
Jump to navigation Jump to search

कम्प्यूटिंग में, एक अमूर्त परत या अमूर्त स्तर एक सबसिस्टम के कार्य विवरण को छिपाने का एक तरीका है। अमूर्तता की परतों का उपयोग करने वाले सॉफ़्टवेयर मॉडल के उदाहरणों में नेटवर्क प्रोटोकॉल, OpenGL और अन्य ग्राफिक्स लाइब्रेरी के लिए OSI मॉडल शामिल हैं, जो अंतर और प्लेटफ़ॉर्म स्वतंत्रता की सुविधा के लिए चिंताओं को अलग करने की अनुमति देते हैं। एक अन्य उदाहरण मीडिया ट्रांसफर प्रोटोकॉल है।

कंप्यूटर विज्ञान में, एक अमूर्त परत किसी विशिष्ट कार्यान्वयन से दूर एक वैचारिक मॉडल (कंप्यूटर विज्ञान) या कलन विधि का एक सामान्यीकरण है। ये सामान्यीकरण उन व्यापक समानताओं से उत्पन्न होते हैं जो उन मॉडलों द्वारा सर्वोत्तम रूप से समझाए जाते हैं जो विभिन्न विशिष्ट कार्यान्वयनों में मौजूद समानताओं को व्यक्त करते हैं। एक अच्छी अमूर्त परत द्वारा प्रदान किया गया सरलीकरण एक उपयोगी अवधारणा या डिज़ाइन पैटर्न को आसवित करके आसान पुन: उपयोग की अनुमति देता है ताकि स्थितियों, जहां इसे सटीक रूप से लागू किया जा सके, को जल्दी से पहचाना जा सके।

एक परत को दूसरे के ऊपर माना जाता है यदि यह उस पर निर्भरता (कंप्यूटर विज्ञान) है। प्रत्येक परत अपने ऊपर की परतों के बिना मौजूद हो सकती है, और कार्य करने के लिए नीचे की परतों की आवश्यकता होती है। अक्सर अमूर्त परतों को अमूर्त स्तरों के पदानुक्रम में बनाया जा सकता है। OSI मॉडल में सात अमूर्त परतें शामिल हैं। मॉडल की प्रत्येक परत डिजिटल संचार की जरूरतों के एक अलग हिस्से को समाहित और संबोधित करती है, जिससे संबंधित इंजीनियरिंग समाधानों की जटिलता कम हो जाती है।

डेविड व्हीलर (कंप्यूटर वैज्ञानिक) की सॉफ्टवेयर इंजीनियरिंग का एक मौलिक प्रमेय है कंप्यूटर विज्ञान में सभी समस्याओं को एक और स्तर के अप्रत्यक्ष द्वारा हल किया जा सकता है।[1] यह अक्सर जानबूझकर अप्रत्यक्ष रूप से अमूर्तता के साथ गलत तरीके से उद्धृत किया जाता है। इसे कभी-कभी बटलर लैम्पसन को भी गलत तरीके से जोड़ा जाता है। इसके लिए केवलिन हेनी का परिणाम है, ... अप्रत्यक्षता की बहुत सारी परतों की समस्या को छोड़कर।[2]


कंप्यूटर आर्किटेक्चर

एक कंप्यूटर आर्किटेक्चर में, एक कंप्यूटर सिस्टम को आमतौर पर कई अमूर्त स्तरों से मिलकर दर्शाया जाता है जैसे:

प्रोग्रामेबल लॉजिक को अक्सर हार्डवेयर का हिस्सा माना जाता है, जबकि लॉजिकल डेफिनिशन को कभी-कभी डिवाइस के सॉफ्टवेयर या फर्मवेयर के हिस्से के रूप में भी देखा जाता है। फर्मवेयर में केवल निम्न-स्तरीय सॉफ़्टवेयर शामिल हो सकते हैं, लेकिन ऑपरेटिंग सिस्टम और एप्लिकेशन सहित सभी सॉफ़्टवेयर भी शामिल हो सकते हैं। सॉफ्टवेयर परतों को आगे हार्डवेयर अमूर्त परतों, भौतिक और तार्किक डिवाइस ड्राइवरों, रिपॉजिटरी जैसे फाइल सिस्टम, ऑपरेटिंग सिस्टम कर्नेल, मिडलवेयर, एप्लिकेशन और अन्य में विभाजित किया जा सकता है। निम्न-स्तरीय प्रोग्रामिंग भाषाओं जैसे VHDL, मशीन भाषा, सभा की भाषा से संकलित भाषा, व्याख्या की गई भाषा और भाषा का अंकन में भी अंतर किया जा सकता है।[3]


इनपुट और आउटपुट

यूनिक्स ऑपरेटिंग सिस्टम में, अधिकांश प्रकार के इनपुट और आउटपुट ऑपरेशंस को डिवाइस से पढ़े जाने वाले या डिवाइस पर लिखे गए बाइट्स की धारा माना जाता है। डिवाइस स्वतंत्रता प्रदान करने के लिए बाइट्स मॉडल की इस धारा का उपयोग फ़ाइल I/O, सॉकेट I/O और टर्मिनल I/O के लिए किया जाता है। एप्लिकेशन स्तर पर डिवाइस को पढ़ने और लिखने के लिए, प्रोग्राम डिवाइस को खोलने के लिए एक फ़ंक्शन को कॉल करता है, जो एक वास्तविक डिवाइस हो सकता है जैसे टर्मिनल या वर्चुअल डिवाइस जैसे नेटवर्क पोर्ट या फ़ाइल सिस्टम में फ़ाइल . डिवाइस की भौतिक विशेषताओं को ऑपरेटिंग सिस्टम द्वारा मध्यस्थ किया जाता है जो बदले में एक अमूर्त इंटरफ़ेस प्रस्तुत करता है जो प्रोग्रामर को डिवाइस से/बाइट्स को पढ़ने और लिखने की अनुमति देता है। ऑपरेटिंग सिस्टम तब डिवाइस को बाइट्स की धारा को पढ़ने और लिखने के लिए आवश्यक वास्तविक परिवर्तन करता है।

ग्राफिक्स

अधिकांश ग्राफ़िक्स लाइब्रेरी जैसे OpenGL एक इंटरफ़ेस के रूप में एक अमूर्त ग्राफ़िकल डिवाइस मॉडल प्रदान करते हैं। लाइब्रेरी प्रोग्रामर द्वारा प्रदान किए गए कमांड को ग्राफिकल तत्वों और ऑब्जेक्ट्स को आकर्षित करने के लिए आवश्यक विशिष्ट डिवाइस कमांड में अनुवाद करने के लिए ज़िम्मेदार है। एक आलेखक के लिए विशिष्ट डिवाइस कमांड कैथोड रे ट्यूब कंप्यूटर प्रदर्शन के लिए डिवाइस कमांड से भिन्न होते हैं, लेकिन ग्राफिक्स लाइब्रेरी कार्यान्वयन और डिवाइस-निर्भर विवरण को अमूर्त इंटरफ़ेस प्रदान करके छुपाती है जो आदिम (कंप्यूटर विज्ञान) का एक सेट प्रदान करती है। ग्राफिकल ऑब्जेक्ट्स को चित्रित करने के लिए आम तौर पर उपयोगी।

यह भी देखें

संदर्भ

  1. Spinellis, Diomidis (2007). Beautiful Code: Leading Programmers Explain How They Think. Sebastopol, CA: O'Reilly and Associates. pp. 279–291.
  2. @kevlinhenney (September 3, 2012). "Yes, that's my corollary" (Tweet) – via Twitter.
  3. Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 0-13-148521-0.