Oracle Database Architecture : Memory Structures | System Global Area (SGA) | Database Buffer cache, Shared Pool, Log Buffers, Large Pool, Java Pool

ORACLE DATABASE ARCHITECTURE की मेमोरी स्ट्रक्चर्स के बारे में जानना महत्वपूर्ण है, क्योंकि यह डेटाबेस के कार्यप्रणाली को समझने में मदद करता है। ऑरैकल डेटाबेस में मेमोरी स्ट्रक्चर्स को मुख्यतः दो भागों में बांटा जा सकता है: SYSTEM GLOBAL AREA (SGA) और PROGRAM GLOBAL AREA (PGA)




विषयसूची

1.     SYSTEM GLOBAL AREA (SGA)

2.     PROGRAM GLOBAL AREA (PGA)

3.     DATABASE BUFFER CACHE

4.     SHARED POOL

5.     LOG BUFFERS

6.     LARGE POOL

7.     JAVA POOL

8.     निष्कर्ष


SYSTEM GLOBAL AREA (SGA)

SGA एक साझा मेमोरी क्षेत्र है जो सभी डेटाबेस उपयोगकर्ताओं द्वारा साझा किया जाता है। इसमें कई महत्वपूर्ण घटक शामिल होते हैं:

  1. DATABASE BUFFER CACHE: इसमें डेटा ब्लॉक्स स्टोर होते हैं जो डिस्क से रीड किए गए होते हैं। यह एक महत्वपूर्ण क्षेत्र है जो डेटा के प्रदर्शन में सुधार करता है।
  2. SHARED POOL: इसमें साझा किए गए SQL और PL/SQL कोड, डेटा डिक्शनरी कैश, और लाइब्रेरी कैश होते हैं। यह डेटाबेस कोड को पुनः उपयोग करने की अनुमति देता है जिससे प्रदर्शन में सुधार होता है।
  3. LOG BUFFERS: इसमें पुनर्प्राप्ति के लिए डेटा लॉग होते हैं जो डिस्क पर लिखे जाते हैं। यह डेटा की अखंडता सुनिश्चित करता है।
  4. LARGE POOL: यह बड़े डेटा संचालन, बैकअप और रिकवरी, और I/O संचालन के लिए उपयोग होता है।
  5. JAVA POOL: इसमें जावा आधारित कोड और डेटा स्टोर होता है जो ऑरैकल डेटाबेस में निष्पादित होता है।

PROGRAM GLOBAL AREA (PGA)

PGA एक व्यक्तिगत मेमोरी क्षेत्र है जो प्रत्येक ऑरैकल सर्वर प्रक्रिया द्वारा उपयोग किया जाता है। इसमें निम्नलिखित घटक शामिल होते हैं:

  1. STACK SPACE: इसमें प्रक्रिया के निष्पादन के दौरान उपयोग किए गए आंतरिक डेटा संरचनाएं स्टोर होती हैं।
  2. USER GLOBAL AREA (UGA): इसमें उपयोगकर्ता विशिष्ट डेटा जैसे कि सत्र की जानकारी और अस्थायी डेटा शामिल होते हैं।
  3. SORT AREA: इसमें डेटा सॉर्टिंग और जॉइनिंग के लिए उपयोग होने वाला मेमोरी क्षेत्र शामिल होता है।

 


DATABASE BUFFER CACHE

DATABASE BUFFER CACHE ORACLE DATABASE ARCHITECTURE का एक महत्वपूर्ण घटक है, जो SYSTEM GLOBAL AREA (SGA) का हिस्सा होता है। यह मेमोरी क्षेत्र उन डेटा ब्लॉक्स को अस्थायी रूप से स्टोर करता है जो डिस्क से रीड किए जाते हैं या जो उपयोगकर्ताओं द्वारा संशोधित किए जाते हैं।

DATABASE BUFFER CACHE का महत्व

  1. प्रदर्शन में सुधार: DATABASE BUFFER CACHE डिस्क I/O को कम करता है क्योंकि डेटा ब्लॉक्स मेमोरी में स्टोर होते हैं। जब भी डेटा की आवश्यकता होती है, तो इसे सबसे पहले BUFFER कैश में देखा जाता है। यदि डेटा BUFFER कैश में उपलब्ध है, तो इसे डिस्क से रीड करने की आवश्यकता नहीं होती, जिससे प्रदर्शन में सुधार होता है।
  2. डेटा में संशोधन: जब उपयोगकर्ता डेटा में कोई परिवर्तन करते हैं, तो ये परिवर्तन पहले BUFFER कैश में होते हैं। ये परिवर्तन BUFFER कैश में रहते हैं जब तक कि इन्हें डिस्क पर स्थायी रूप से नहीं लिखा जाता।
  3. कंसिस्टेंसी और रिकवरी: BUFFER कैश में डेटा की प्रतिलिपियाँ रखी जाती हैं, जिससे डेटाबेस की कंसिस्टेंसी बनी रहती है और किसी भी दुर्घटना या विफलता की स्थिति में डेटा रिकवरी में सहायता मिलती है।

DATABASE BUFFER CACHE के घटक

  1. BUFFER: BUFFER कैश छोटे बफर्स से बना होता है, जिनमें डेटा ब्लॉक्स स्टोर होते हैं। प्रत्येक BUFFER एक ब्लॉक का प्रतिनिधित्व करता है।
  2. FREE BUFFERS: ये वे बफर्स होते हैं जो खाली होते हैं और जिन्हें डेटा स्टोर करने के लिए उपयोग किया जा सकता है।
  3. DIRTY BUFFERS: ये वे बफर्स होते हैं जिनमें डेटा संशोधित किया गया है लेकिन अभी तक डिस्क पर नहीं लिखा गया है।
  4. PINNED BUFFERS: ये बफर्स वर्तमान में उपयोग में होते हैं और अन्य कार्यों द्वारा इन पर एक्सेस नहीं किया जा सकता।

BUFFER कैश का संचालन

  1. रीडिंग डेटा: जब उपयोगकर्ता डेटा को एक्सेस करते हैं, तो सबसे पहले BUFFER कैश में देखा जाता है। यदि डेटा BUFFER कैश में है, तो उसे सीधे वहीं से रीड किया जाता है। यदि डेटा BUFFER कैश में नहीं है, तो उसे डिस्क से लाया जाता है और BUFFER कैश में स्टोर किया जाता है।
  2. राइटिंग डेटा: जब डेटा में परिवर्तन होते हैं, तो ये पहले BUFFER कैश में स्टोर होते हैं (DIRTY BUFFERS)। समय-समय पर, ऑरैकल द्वारा ये DIRTY BUFFERS डिस्क पर लिखे जाते हैं ताकि डेटा स्थायी हो जाए।

SHARED POOL

शेयर्ड पूल ORACLE DATABASE ARCHITECTURE का एक महत्वपूर्ण घटक है, जो SYSTEM GLOBAL AREA (SGA) का हिस्सा होता है। यह मेमोरी क्षेत्र डेटाबेस के कई महत्वपूर्ण घटकों को स्टोर और प्रबंधित करता है, जो डेटाबेस के कुशल संचालन के लिए आवश्यक हैं।

शेयर्ड पूल के घटक

  1. लाइब्रेरी कैश: यह कैश SQL और PL/SQL के निष्पादित कोड को स्टोर करता है। इसमें निम्नलिखित शामिल हैं:
    • SQL स्टेटमेंट्स: जो SQL स्टेटमेंट्स हाल ही में निष्पादित किए गए हैं, वे यहां स्टोर होते हैं। इससे बार-बार वही स्टेटमेंट निष्पादित करने पर प्रदर्शन में सुधार होता है।
    • PL/SQL कोड: PL/SQL प्रोसीजर, फंक्शन, ट्रिगर आदि का कोड भी यहां स्टोर होता है।
  2. डेटा डिक्शनरी कैश: यह कैश डेटाबेस ऑब्जेक्ट्स की मेटाडेटा जानकारी को स्टोर करता है। इसमें टेबल, इंडेक्स, कॉलम और यूजर की जानकारी शामिल होती है।
  3. रिजल्ट कैश: यह कैश SQL क्वेरी के रिजल्ट्स को स्टोर करता है। यदि वही क्वेरी दोबारा निष्पादित की जाती है, तो डेटाबेस पहले से स्टोर किए गए रिजल्ट को पुनः उपयोग करता है, जिससे निष्पादन समय में सुधार होता है।

शेयर्ड पूल का महत्व

  1. प्रदर्शन में सुधार: शेयर्ड पूल SQL और PL/SQL कोड को कैश करता है, जिससे बार-बार निष्पादन पर कोड को दोबारा पार्स और कम्पाइल करने की आवश्यकता नहीं होती। इससे निष्पादन समय में कमी आती है और समग्र प्रदर्शन में सुधार होता है।
  2. मेमोरी उपयोग का अनुकूलन: शेयर्ड पूल डेटाबेस ऑब्जेक्ट्स की मेटाडेटा और रिजल्ट्स को कैश करता है, जिससे मेमोरी का प्रभावी उपयोग होता है और I/O ऑपरेशंस कम होते हैं।
  3. डेटाबेस का कुशल प्रबंधन: शेयर्ड पूल डेटाबेस के विभिन्न महत्वपूर्ण घटकों को संग्रहीत और प्रबंधित करता है, जिससे डेटाबेस का समग्र प्रबंधन आसान और प्रभावी होता है।

शेयर्ड पूल का संचालन

  1. कैशिंग और रीकैशिंग: जब कोई SQL स्टेटमेंट या PL/SQL कोड निष्पादित होता है, तो वह लाइब्रेरी कैश में स्टोर होता है। यदि वही स्टेटमेंट या कोड दोबारा निष्पादित किया जाता है, तो इसे लाइब्रेरी कैश से लिया जाता है, जिससे निष्पादन तेज होता है।
  2. डिक्शनरी कैश एक्सेस: जब भी कोई डेटाबेस ऑब्जेक्ट एक्सेस किया जाता है, तो उसकी मेटाडेटा जानकारी डेटा डिक्शनरी कैश से प्राप्त की जाती है। इससे मेटाडेटा एक्सेस का समय कम होता है।
  3. रिजल्ट कैश उपयोग: जब कोई क्वेरी निष्पादित होती है, तो उसका रिजल्ट रिजल्ट कैश में स्टोर होता है। यदि वही क्वेरी दोबारा निष्पादित होती है, तो रिजल्ट कैश से रिजल्ट लिया जाता है, जिससे निष्पादन समय में सुधार होता है।

LOG BUFFERS

LOG BUFFERS ORACLE DATABASE ARCHITECTURE का एक महत्वपूर्ण घटक है, जो SYSTEM GLOBAL AREA (SGA) का हिस्सा होता है। यह मेमोरी क्षेत्र उन सभी परिवर्तनों को अस्थायी रूप से स्टोर करता है जो डेटाबेस में किए गए हैं, इससे पहले कि ये परिवर्तित डेटा डिस्क पर लिखे जाएं।

LOG BUFFERS का महत्व

  1. डेटा अखंडता: LOG BUFFERS डेटा के सभी परिवर्तनों को कैश करता है, जिससे किसी भी दुर्घटना या विफलता के बाद डेटा को पुनर्प्राप्त करना संभव होता है। यह डेटाबेस की अखंडता सुनिश्चित करता है।
  2. प्रदर्शन में सुधार: LOG BUFFERS के माध्यम से परिवर्तनों को पहले मेमोरी में स्टोर किया जाता है, जिससे हर छोटे परिवर्तन के लिए डिस्क पर लिखने की आवश्यकता नहीं होती। इससे प्रदर्शन में सुधार होता है क्योंकि डिस्क I/O कम हो जाता है।
  3. रिकवरी की प्रक्रिया: LOG BUFFERS में स्टोर किए गए डेटा लॉग की मदद से दुर्घटनाओं के बाद डेटा रिकवरी करना संभव होता है। ये लॉग्स डेटाबेस को पिछले स्थिर स्थिति में वापस लाने में सहायता करते हैं।

LOG BUFFERS का संचालन

  1. परिवर्तन कैशिंग: जब कोई परिवर्तन डेटाबेस में किया जाता है, जैसे कि किसी डेटा को अपडेट करना, डिलीट करना या नया डेटा जोड़ना, तो ये परिवर्तन सबसे पहले LOG BUFFERS में स्टोर होते हैं।
  2. डिस्क पर लिखना: समय-समय पर, LOG BUFFERS में स्टोर किए गए परिवर्तनों को लॉग फाइल्स में लिखा जाता है। यह प्रक्रिया आमतौर पर तब होती है जब LOG BUFFERS भर जाते हैं या जब डेटाबेस में कुछ महत्वपूर्ण घटनाएं घटित होती हैं।
  3. रिकवरी प्रोसेस: अगर किसी कारणवश डेटाबेस में कोई विफलता होती है, तो LOG BUFFERS में स्टोर किए गए परिवर्तनों का उपयोग करके डेटाबेस को उसकी पिछले स्थिर स्थिति में वापस लाया जाता है। यह डेटाबेस के पुनर्प्राप्ति के लिए महत्वपूर्ण है।

LOG BUFFERS के घटक

  1. लॉग एंट्रीज: ये छोटे डेटा यूनिट्स होते हैं जो डेटाबेस में किए गए प्रत्येक परिवर्तन को दर्शाते हैं। प्रत्येक लॉग एंट्री में परिवर्तन की पूरी जानकारी होती है।
  2. लॉग राइटर (LGWR): यह एक पृष्ठभूमि प्रक्रिया है जो LOG BUFFERS से लॉग एंट्रीज को समय-समय पर लॉग फाइल्स में लिखता है। LGWR यह सुनिश्चित करता है कि डिस्क पर लॉग्स समय पर लिखे जाएं और डेटा की अखंडता बनी रहे।

LARGE POOL

LARGE POOL ORACLE DATABASE ARCHITECTURE का एक महत्वपूर्ण हिस्सा है, जो SYSTEM GLOBAL AREA (SGA) में स्थित होता है। यह मेमोरी क्षेत्र विशेष कार्यों के लिए आरक्षित किया गया है, जिससे मेमोरी मैनेजमेंट और डेटाबेस प्रदर्शन में सुधार होता है।

LARGE POOL का महत्व

  1. विशिष्ट संचालन के लिए मेमोरी आवंटन: LARGE POOL का उपयोग विशेषत: बड़े डेटा संचालन, बैकअप और रिकवरी, और I/O संचालन के लिए किया जाता है। यह डेटाबेस के नियमित संचालन के लिए मेमोरी आवंटन को अलग रखने में मदद करता है।
  2. मल्टीथ्रेडेड सर्वर (MTS): जब डेटाबेस मल्टीथ्रेडेड सर्वर मोड में होता है, तो LARGE POOL यूजर सत्रों के लिए मेमोरी आवंटित करता है, जिससे Shared पूल पर भार कम होता है और समग्र प्रदर्शन में सुधार होता है।
  3. बैकअप और रिकवरी: RMAN (Recovery Manager) बैकअप और रिकवरी संचालन के लिए LARGE POOL का उपयोग करता है, जिससे Shared पूल पर कोई प्रभाव नहीं पड़ता और बैकअप/रिकवरी संचालन तेजी से और अधिक कुशलता से संपन्न होते हैं।

LARGE POOL के घटक

  1. यूजर सत्र: जब डेटाबेस मल्टीथ्रेडेड सर्वर मोड में होता है, तो यूजर सत्रों की जानकारी LARGE POOL में स्टोर की जाती है। इससे मेमोरी का प्रभावी प्रबंधन होता है और Shared पूल पर भार कम होता है।
  2. बैकअप और रिकवरी बफर्स: RMAN द्वारा उपयोग किए जाने वाले बड़े बफर्स LARGE POOL में स्टोर होते हैं। इससे बैकअप और रिकवरी संचालन के दौरान मेमोरी की आवश्यकताएं पूरी होती हैं।
  3. I/O संचालन: बड़े I/O संचालन, जैसे डेटा वेयरहाउसिंग और अन्य बड़े डेटा ट्रांसफर, के लिए भी LARGE POOL का उपयोग किया जाता है। यह सुनिश्चित करता है कि इन संचालन के लिए पर्याप्त मेमोरी उपलब्ध हो।

LARGE POOL का संचालन

  1. मेमोरी आवंटन: LARGE POOL का आकार और इसके मेमोरी ब्लॉक्स का आवंटन डेटाबेस प्रशासक द्वारा कॉन्फ़िगर किया जाता है। यह डेटाबेस के विशेष आवश्यकताओं और कार्यभार के अनुसार निर्धारित किया जाता है।
  2. प्रभावी मेमोरी उपयोग: LARGE POOL का उपयोग विशिष्ट कार्यों के लिए किया जाता है, जिससे Shared पूल पर भार कम होता है और मेमोरी का प्रभावी उपयोग सुनिश्चित होता है। यह डेटाबेस के समग्र प्रदर्शन में सुधार करता है।
  3. ऑपरेशन का पृथक्करण: LARGE POOL विभिन्न ऑपरेशनों को अलग-अलग मेमोरी क्षेत्रों में स्टोर करता है, जिससे इन ऑपरेशनों का प्रदर्शन बढ़ता है और डेटाबेस के अन्य हिस्सों पर प्रभाव नहीं पड़ता।

JAVA POOL

JAVA POOL ORACLE DATABASE ARCHITECTURE का एक महत्वपूर्ण हिस्सा है, जो SYSTEM GLOBAL AREA (SGA) में स्थित होता है। यह मेमोरी क्षेत्र विशेष रूप से जावा आधारित कोड और डेटा के निष्पादन के लिए आरक्षित होता है।

JAVA POOL का महत्व

  1. जावा कोड निष्पादन: ऑरैकल डेटाबेस में जावा स्टोर्ड प्रोसीजर्स, फंक्शन्स, और ट्रिगर्स का उपयोग किया जाता है। JAVA POOL इन जावा आधारित कोड के निष्पादन के लिए आवश्यक मेमोरी को प्रदान करता है।
  2. सत्र मैनेजमेंट: JAVA POOL जावा वर्चुअल मशीन (JVM) के संचालन के लिए आवश्यक मेमोरी को मैनेज करता है। यह सत्रों की जानकारी को स्टोर करता है और उन्हें कुशलता से प्रबंधित करता है।
  3. प्रदर्शन में सुधार: JAVA POOL का उपयोग जावा आधारित ऑपरेशन्स के लिए अलग से मेमोरी आवंटित करता है, जिससे Shared पूल पर भार कम होता है और समग्र डेटाबेस प्रदर्शन में सुधार होता है।

JAVA POOL के घटक

  1. जावा स्टोर्ड प्रोसीजर्स और फंक्शन्स: जावा में लिखे गए प्रोसीजर्स और फंक्शन्स का कोड JAVA POOL में स्टोर और निष्पादित होता है।
  2. जावा क्लासेज और ऑब्जेक्ट्स: जावा क्लास फाइल्स और ऑब्जेक्ट्स को JAVA POOL में स्टोर किया जाता है, जो JVM द्वारा उपयोग किए जाते हैं।
  3. कम्पाइल्ड जावा कोड: जावा कोड के कम्पाइल्ड वर्शन (जावा बाइटकोड) को भी JAVA POOL में स्टोर किया जाता है।

JAVA POOL का संचालन

  1. मेमोरी आवंटन: JAVA POOL का आकार डेटाबेस प्रशासक द्वारा कॉन्फ़िगर किया जाता है। यह डेटाबेस में जावा आधारित कार्यों की आवश्यकताओं के अनुसार निर्धारित किया जाता है।
  2. जावा कोड निष्पादन: जब कोई जावा स्टोर्ड प्रोसीजर, फंक्शन, या ट्रिगर निष्पादित होता है, तो आवश्यक कोड और डेटा JAVA POOL से प्राप्त होते हैं। JVM इन संसाधनों का उपयोग करके कोड को निष्पादित करता है।
  3. मेमोरी मैनेजमेंट: JAVA POOL का उपयोग मेमोरी मैनेजमेंट के लिए किया जाता है, जिससे JVM के संचालन के दौरान मेमोरी का प्रभावी उपयोग होता है और अनावश्यक मेमोरी आवंटन से बचा जा सकता है।

निष्कर्ष

ORACLE DATABASE ARCHITECTURE की मेमोरी स्ट्रक्चर्स सिस्टम के समग्र प्रदर्शन और डेटा की अखंडता के लिए अत्यंत महत्वपूर्ण हैं। SGA और PGA दोनों मिलकर यह सुनिश्चित करते हैं कि डेटाबेस कुशलता से काम करे और उपयोगकर्ताओं को तेज और सटीक डेटा उपलब्ध कराए। इनकी संरचना और कार्यप्रणाली को समझकर, डेटाबेस प्रशासक बेहतर प्रदर्शन और प्रभावी प्रबंधन सुनिश्चित कर सकते हैं।

DATABASE BUFFER CACHE ऑरैकल डेटाबेस के प्रदर्शन को बढ़ाने में महत्वपूर्ण भूमिका निभाता है। यह डेटा को तेज़ी से उपलब्ध कराता है और डिस्क I/O को कम करता है, जिससे समग्र प्रणाली की दक्षता बढ़ती है। DATABASE BUFFER CACHE की संरचना और कार्यप्रणाली को समझना डेटाबेस प्रशासकों के लिए आवश्यक है ताकि वे डेटाबेस का सही तरीके से प्रबंधन कर सकें और उच्च प्रदर्शन सुनिश्चित कर सकें।

शेयर्ड पूल ऑरैकल डेटाबेस के प्रदर्शन और दक्षता को बढ़ाने में महत्वपूर्ण भूमिका निभाता है। यह SQL और PL/SQL कोड, डेटा डिक्शनरी मेटाडेटा, और क्वेरी रिजल्ट्स को कैश करके निष्पादन समय को कम करता है और मेमोरी उपयोग को अनुकूलित करता है। डेटाबेस प्रशासकों के लिए शेयर्ड पूल की संरचना और कार्यप्रणाली को समझना आवश्यक है, ताकि वे डेटाबेस का सही तरीके से प्रबंधन कर सकें और उच्च प्रदर्शन सुनिश्चित कर सकें।

LOG BUFFERS ऑरैकल डेटाबेस की डेटा अखंडता और प्रदर्शन में सुधार में महत्वपूर्ण भूमिका निभाते हैं। वे सभी परिवर्तनों को मेमोरी में अस्थायी रूप से स्टोर करते हैं और समय-समय पर इन्हें डिस्क पर लिखते हैं, जिससे डिस्क I/O कम होता है और डेटाबेस का प्रदर्शन बेहतर होता है। LOG BUFFERS की संरचना और कार्यप्रणाली को समझना डेटाबेस प्रशासकों के लिए आवश्यक है ताकि वे डेटाबेस का सही तरीके से प्रबंधन कर सकें और उच्च प्रदर्शन और डेटा अखंडता सुनिश्चित कर सकें।

LARGE POOL ऑरैकल डेटाबेस की मेमोरी संरचना का एक महत्वपूर्ण घटक है, जो विशेष कार्यों के लिए मेमोरी आवंटित करता है। यह बैकअप और रिकवरी, बड़े डेटा संचालन और मल्टीथ्रेडेड सर्वर सत्रों के लिए आवश्यक मेमोरी को सुनिश्चित करता है, जिससे Shared पूल पर भार कम होता है और समग्र डेटाबेस प्रदर्शन में सुधार होता है। डेटाबेस प्रशासकों के लिए LARGE POOL की संरचना और कार्यप्रणाली को समझना आवश्यक है, ताकि वे डेटाबेस का सही तरीके से प्रबंधन कर सकें और उच्च प्रदर्शन और दक्षता सुनिश्चित कर सकें।

JAVA POOL ऑरैकल डेटाबेस की मेमोरी संरचना का एक महत्वपूर्ण घटक है, जो जावा आधारित कोड और डेटा के निष्पादन के लिए आवश्यक मेमोरी को प्रबंधित करता है। यह जावा स्टोर्ड प्रोसीजर्स, फंक्शन्स, और ट्रिगर्स के कुशल संचालन को सुनिश्चित करता है और Shared पूल पर भार कम करता है। डेटाबेस प्रशासकों के लिए JAVA POOL की संरचना और कार्यप्रणाली को समझना आवश्यक है, ताकि वे डेटाबेस का सही तरीके से प्रबंधन कर सकें और उच्च प्रदर्शन और दक्षता सुनिश्चित कर सकें।

 

इस ब्लॉग से लोकप्रिय पोस्ट

DHCP server क्या होता है ?

Scroll Lock क्या होता है ?

IBM कंपनी की कहानी क्या है ?

Computer में Arithmetic Logic Unit (ALU) : एक परिचय

Oracle Database Architecture : Network Structures | Listener, Oracle Net, Transparent Network Substrate, Oracle Connection Manager, Database Links, Oracle Advanced Security और Oracle Shared Server Architecture

CPU में ALU के अंकगणितीय संचालन (Arithmetic Operations)

कंप्यूटर में CMOS क्या होता है ? CMOS के विशेषताएँ , सीएमओएस के विभिन्न प्रकार , सीएमओएस (CMOS) के विकल्प