Concept of virtual memory and cache memory

Cache એ CPU અને RAM ની વચ્ચે રહેલો નાનો પણ ultra-fast store છે, જ્યાં વારંવાર વપરાતો data રહે છે; virtual memory એ RAM ખૂટી પડે ત્યારે hard disk ની જગ્યા ઉધાર લઈને extra RAM તરીકે કામ કરે છે.

10 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

2 customer ના 2 કોયડા

એક જ બપોરે shop ના counter પર 2 સવાલ આવે છે.

પહેલો customer: "મારા laptop માં 8 GB RAM છે, પણ મેં ગણ્યું તો મારી બધી open apps અને tabs ને એના કરતાં વધારે memory જોઈએ. તો પછી એ crash કેમ નથી થયું?"

બીજો customer: "Photoshop સવારે open થવામાં એક minute લે છે, પણ બંધ કરીને ફરી open કરું તો seconds માં ખૂલી જાય છે, આવું કેમ?"

2 કોયડા, અને memory ની 2 યુક્તિ: પહેલાનો જવાબ છે virtual memory, અને બીજાનો છે cache.

Theory

ખાનું, છાજલી, godown

Chirag ના counter પર એક નાનું ખાનું (drawer) છે, જેમાં customer વારંવાર માંગે એ વસ્તુઓ પડી હોય છે: આ છે cache, નાનું પણ ત્વરિત. એની પાછળ છાજલી (shelves) પર દિવસનો કામનો stock રહે છે: આ છે RAM. અને સામે રસ્તાની પેલી બાજુ એક મોટો ધીમો godown છે, જ્યાં બાકીનું બધું પડ્યું હોય છે: આ છે hard disk. હવે જ્યારે છાજલી ભરાઈ જાય, ત્યારે Chirag છાજલી પરની થોડી વસ્તુઓ થોડા વખત માટે godown માં મૂકી દે છે અને જરૂર પડે ત્યારે પાછી લઈ આવે છે: આ છે virtual memory.

Theory

Cache memory, વ્યવસ્થિત રીતે

CPU એ RAM કરતાં ઘણું ઝડપી છે. કંઈ ના કરીએ તો CPU નવરું બેસી રહે, data આવે એની રાહ જોતું.

Cache એ એક નાની અને ખૂબ જ fast memory છે (SRAM માંથી બનેલી), જે CPU અને RAM ની વચ્ચે રહે છે અને હમણાં હમણાં તથા વારંવાર વપરાયેલો data અને instructions સાચવે છે. RAM પાસે જતાં પહેલાં CPU પહેલાં cache માં જુએ છે: hit થાય તો RAM સુધીની આખી આંટી બચી જાય, અને miss થાય તો RAM માંથી લાવવું પડે (અને એની એક copy cache માં રાખી લે).

આજકાલના CPU માં એ levels માં ગોઠવેલી હોય છે: L1 (સૌથી નાની, સૌથી ઝડપી, core ની અંદર), L2, અને L3 (મોટી, shared, પ્રમાણમાં ધીમી).

Theory

Virtual memory, વ્યવસ્થિત રીતે

જ્યારે RAM નો એકેએક byte ભરાઈ ગયો હોય અને તમે વધારે એક app open કરો, ત્યારે OS crash નથી થતું. એ ચૂપચાપ RAM માંથી સૌથી ઓછા વપરાયેલા (least recently used) ટુકડા (જેને pages કહે છે) ઉઠાવીને hard disk ના એક અલગ રાખેલા વિસ્તારમાં મૂકી દે છે, જેથી નવા કામ માટે ખરી RAM ખાલી થાય. પછી જે page કાઢી નાખ્યું હોય એની ફરી જરૂર પડે, તો એને પાછું swap કરી લે.

Disk નો આ વિસ્તાર જે નકલી RAM નું કામ કરે છે એને virtual memory કહે છે. Programs ને એની ખબર જ નથી પડતી; એમને તો physically છે એના કરતાં વધારે memory દેખાય છે.

At a glance

The memory hierarchy: જેમ નાની, તેમ ઝડપી

LevelSizeSpeed
Registers (CPU માં)થોડા bytesબધામાં સૌથી ઝડપી
Cache (L1/L2/L3)KBs થી MBsઅતિશય ઝડપી
RAMGBsઝડપી
Virtual memory (disk)જેટલી ફાળવી હોય તેટલીચારેયમાં સૌથી ધીમી

Quiz

What is the main purpose of cache memory?

  1. To bridge the speed gap between the fast CPU and slower RAM
  2. To permanently store files even when power is off
  3. To replace RAM entirely in modern computers
  4. To add extra storage space for large files
Show the answer

To bridge the speed gap between the fast CPU and slower RAM

Cache નું અસ્તિત્વ જ ફક્ત એટલા માટે છે કે fast CPU ને data મળતો રહે; જે data એ વારંવાર માંગે એ સાચવી રાખે જેથી RAM ની રાહ ભાગ્યે જ જોવી પડે. એ volatile છે (option B તો storage ની વાત કરે છે), એ RAM ને બદલે નહીં પણ RAM સાથે કામ કરે છે (option C), અને એની ગણતરીના MBs માં કોઈ files સચવાતી નથી (option D). Cache ના purpose નો સવાલ exam માં નિયમિત આવે છે.

Think first

પહેલા customer ને બરાબર જવાબ

તો 8 GB laptop માં 10 GB ની apps open હોય તોય એ ધીમું ચાલે છે પણ જીવતું રહે છે, એવું કેમ? અને એ થાય ત્યારે બધું lag કેમ કરે છે? Godown વાળા ચિત્રથી વિચારો.

Show the answer

OS એ વધારાનું બધું disk પરની virtual memory માં મૂકી દીધું, એટલે કંઈ crash ના થયું. પણ disk એ RAM કરતાં ઘણું ધીમું છે, એટલે છાજલી અને godown વચ્ચે થતો દરેક swap ખરેખરો સમય ખાય છે: machine ધીમું પડીને ટકી રહે છે. જ્યારે એ કામ કરવા કરતાં swapping માં જ વધારે સમય કાઢવા લાગે, એ ટોકના tબિંદુને thrashing કહે છે. અને shop નો સાચો advice એ જ છે: RAM વધારો.

Watch out

માર્ક કપાવે એવી ગૂંચવણો

"Virtual memory મને વધારે RAM આપે છે": ના. એ તો ધીમી disk space વાપરીને વધારે memory દેખાડે છે; ખરી RAM તો ફક્ત physical chips જ છે. "Cache files સાચવે છે": ના. Cache તો CPU માટે ચાલુ કામનો data રાખે છે અને power જતાં જ ખાલી થઈ જાય છે. અને comparison ના સવાલમાં ક્યારેય એવું ના લખતા કે cache RAM અને disk ની વચ્ચે રહે છે: એ CPU અને RAM ની વચ્ચે રહે છે.

Theory

Shop ની અક્કલ જે કામ લાગશે

એટલે જ વધારે RAM વાળો phone એ મોટા-number વાળા processor પણ ઓછી RAM વાળા phone કરતાં smooth લાગે છે: swapping ઓછું થાય. અને એટલે જ ક્યારેક "clear cache" કરવાથી app ઠીક થઈ જાય છે: જૂનો પડી ગયેલો cached data ફરી બની જાય. આ hierarchy નો idea (નાનું-ઝડપી નજીક, મોટું-ધીમું દૂર) Operating System ના subject માં અને દરેક systems interview માં પાછો આવવાનો છે.

Summary

Key takeaways

  • Memory hierarchy: registers → cache → RAM → disk; જેમ નાની તેમ ઝડપી.
  • Cache: CPU અને RAM ની વચ્ચેની નાની, ultra-fast SRAM, વારંવાર વપરાતા data માટે (L1/L2/L3).
  • Virtual memory: OS disk space ને overflow RAM તરીકે વાપરે છે, pages માં swap થાય છે.
  • Virtual memory machine ને જીવતું રાખે છે પણ ધીમું; વધુ પડતું swapping એટલે thrashing.
  • Cache એ storage નથી; virtual memory એ ખરી RAM નથી.
  • યાદ રાખવાની કડી: ખાનું, છાજલી, godown.

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Basic Computer Architecture

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Concept of virtual memory and cache memory · Introduction to Computers · Gri-Learn