Theory
2 customer, 2 पहेली
एक ही दोपहर में shop के counter पर 2 सवाल आ जाते हैं।
पहला customer: "मेरे laptop में 8 GB RAM है, लेकिन मैंने गिना, मेरे open apps और tabs को तो इससे ज़्यादा चाहिए। फिर crash क्यों नहीं हुआ?"
दूसरा customer: "सुबह Photoshop खुलने में एक मिनट लगता है, लेकिन बंद करने के बाद दोबारा खोलूं तो seconds में खुल जाता है, ऐसा क्यों?"
2 पहेली, memory के 2 trick: पहली वाली को virtual memory solve करती है, और दूसरी वाली को cache।
Theory
Drawer, shelf, godown
Chirag के counter पर एक छोटा सा drawer है जिसमें वो items रखता है जो customers बार-बार मांगते हैं: यही cache है, बहुत छोटा लेकिन instant। उसके पीछे shelves हैं जिनमें दिन भर का working stock रहता है: यही RAM है। और सड़क के उस पार एक बड़ा, slow godown है जिसमें बाकी सब सामान रखा जाता है: यही hard disk है। अब जब shelves भर जाती हैं, तो Chirag shelf का सामान थोड़ी देर के लिए godown में पार्क कर देता है और ज़रूरत पड़ने पर वापस ले आता है: यही virtual memory है।
Theory
Cache memory, अब formally
CPU, RAM से कहीं ज़्यादा fast होता है। अगर उसे अकेला छोड़ दें तो वो बस बैठा data आने का इंतज़ार करता रहेगा।
Cache एक छोटी, बहुत fast memory है (SRAM की बनी होती है) जो CPU और RAM के बीच में बैठती है, और recently और frequently used data तथा instructions को रखती है। RAM तक जाने से पहले CPU पहले cache में देखता है: अगर data मिल गया तो उसे hit कहते हैं और RAM तक का चक्कर बच जाता है, और अगर नहीं मिला तो उसे miss कहते हैं, तब वो RAM से लाता है (और एक copy cache में रख लेता है)।
Modern CPUs इसे levels में रखते हैं: L1 (सबसे छोटा, सबसे fast, core के अंदर), L2, L3 (बड़ा, shared, थोड़ा slow)।
Theory
Virtual memory, अब formally
जब RAM का हर byte भरा हुआ हो और आप एक और app खोल दें, तब OS crash नहीं होता। वो चुपचाप RAM के उन हिस्सों को (जिन्हें pages कहते हैं) जो least recently used होते हैं, hard disk के एक reserved area में move कर देता है, ताकि नए काम के लिए असली RAM खाली हो जाए। और जब कोई हटाया हुआ page दोबारा चाहिए होता है, तो उसे वापस swap कर लिया जाता है।
Disk का यही हिस्सा जो नकली-RAM बनकर काम करता है, वही virtual memory है। Programs को कभी पता ही नहीं चलता; उन्हें तो बस लगता है कि physically जितनी है उससे ज़्यादा memory available है।
At a glance
Memory hierarchy: जितना छोटा, उतना fast
| Level | Size | Speed |
|---|---|---|
| Registers (CPU में) | कुछ ही bytes | सबसे fast |
| Cache (L1/L2/L3) | KBs से MBs तक | बहुत ज़्यादा fast |
| RAM | GBs में | Fast |
| Virtual memory (disk) | जितना allot किया जाए | चारों में सबसे slow |
Quiz
Cache memory का मुख्य purpose क्या है?
- Fast CPU और slower RAM के बीच की speed gap को पाटना
- Power off होने पर भी files को permanently store करना
- Modern computers में RAM को पूरी तरह replace कर देना
- बड़ी files के लिए extra storage space देना
Show the answer
Fast CPU और slower RAM के बीच की speed gap को पाटना
Cache सिर्फ इसलिए है कि fast CPU को data मिलता रहे, यानी वो जो data बार-बार मांगता है उसे पास रखे ताकि CPU को RAM का इंतज़ार कम करना पड़े। ये volatile है (option B तो storage की बात कर रहा है), ये RAM के साथ काम करती है उसकी जगह नहीं (option C), और इसके कुछ ही MBs में कोई files store नहीं होतीं (option D)। Cache के purpose वाले सवाल exam में बार-बार आते हैं।
Think first
अब पहले customer को सही जवाब दें
तो 8 GB laptop में 10 GB के open apps होने पर machine slow क्यों है लेकिन ज़िंदा है? और जब ऐसा होता है तो सब कुछ lag क्यों करने लगता है? godown वाली picture से सोच कर बताइए।
Show the answer
OS ने overflow वाला हिस्सा disk पर virtual memory में पार्क कर दिया, इसलिए कुछ भी crash नहीं हुआ। लेकिन disk, RAM से बहुत ज़्यादा slow होती है, तो shelf और godown के बीच होने वाला हर swap असली time लेता है: machine बच तो जाती है, पर slow होकर। और जब वो काम करने से ज़्यादा वक्त swapping में लगाने लगे, उस extreme situation को thrashing कहते हैं। ईमानदार shop advice: RAM बढ़वा लीजिए।
Watch out
जहां marks कटते हैं वो confusions
"Virtual memory मुझे ज़्यादा RAM देती है": नहीं। वो slow disk space इस्तेमाल करके ज़्यादा apparent memory देती है; असली RAM तो सिर्फ physical chips ही होती है। "Cache files store करती है": नहीं। Cache तो CPU के लिए in-flight data रखती है और power off होते ही खाली हो जाती है। और comparison वाले सवालों में कभी मत लिखिए कि cache RAM और disk के बीच बैठती है: वो CPU और RAM के बीच बैठती है।
Theory
काम की shop wisdom
इसीलिए ज़्यादा RAM वाला phone उस phone से smooth लगता है जिसमें processor का number बड़ा है पर RAM कम है: क्योंकि swapping कम होती है। इसीलिए कभी-कभी "clear cache" करने से app ठीक हो जाता है: पुराना cached data फिर से बन जाता है। छोटा-fast पास में, बड़ा-slow दूर, ये hierarchy वाला idea Operating System subject में और हर systems interview में दोबारा आता है।
Summary
Key takeaways
- Memory hierarchy: registers → cache → RAM → disk; जितना छोटा उतना fast।
- Cache: CPU और RAM के बीच की छोटी, ultra-fast SRAM, frequently used data के लिए (L1/L2/L3)।
- Virtual memory: OS disk space को overflow RAM की तरह इस्तेमाल करता है, pages में swap करके।
- Virtual memory machine को ज़िंदा तो रखती है पर slow कर देती है; ज़रूरत से ज़्यादा swapping को thrashing कहते हैं।
- Cache storage नहीं है; virtual memory असली RAM नहीं है।
- याद रखने का hook: drawer, shelf, godown।