நினைவகச் சுத்திகரிப்பு

கட்டற்ற கலைக்களஞ்சியமான விக்கிப்பீடியாவில் இருந்து.
தாவிச் செல்லவும்: வழிசெலுத்தல், தேடல்

நினைவகச் சுத்திகரிப்பு (Garbage Collection) என்பது நினைவக மேலாண்மையின் (Memory Management) முக்கியமானப் பணியாகும். ஜோன் மெக்கார்த்தி என்பவரால் இத்தொழில்நுட்பம் 1959ஆம் ஆண்டு கண்டுபிடிக்கப்பட்டது. நினைவகத்தில் (Memory) ஒரு நிரலுக்காக (Programme) ஒதுக்கப்பட்ட இடத்தில் நிரல் பயன்படுத்தி முடித்த அல்லது நிரலால் எட்டமுடியாத தரவுகளின் (Data) இடத்தைக் கண்டுகொண்டு, அவற்றை நிரலிடத்திருந்து பெற்றுக்கொள்வது நினைவகச் சுத்திகரிப்பு ஆகும். சில நிரலாக்க மொழிகளில் நினைவகச் சுத்திகரிப்பென்பது மொழியின் சிறப்பம்சங்களுள் ஒன்று (உதா: ஜாவா). சி,சி++ போன்ற மொழிகளில் நிரலரே (Programmer) நினைவகத்தைச் சுத்திகரிக்கும் பணியை மேற்கொள்ளவேண்டும். அடா, மாடுலா-3 மற்றும் சி++/சிஎல்ஐ போன்ற மொழிகளில் நினைவகச் சுத்திகரிப்பு அம்சமும் உள்ளது மற்றும் நிரலரே நினைவகத்தைச் சுத்திகரிக்க வழியும் உள்ளது.

பணிகள்[தொகு]

  1. நிரல் பயன்படுத்தி முடித்த மற்றும் எதிர் காலத்தில் நிரலால் எட்டமுடியாத தரவுகளின் (Data) இடத்தைக் கண்டுகொள்ளுதல்.
  2. அத்தகைய தரவுகள் பயன்படுத்திய மற்றும் அவற்றுக்கு ஒதுக்கப்பட்ட வளங்களைப் பறிமுதல் செய்தல்.

இவை நினைவகச் சுத்திகரிப்பின் முக்கிய பணிகளாகும்.

நன்மைகள்[தொகு]

இவ்வம்சம் நிரலரை நினைவகச் சுத்திகரிப்பின் கடுமையானப் பணிகளிலிருந்து விடுவிக்கிறது. இதன் மூலம் நிரலில் ஏற்படும் பல பிழைகள் தவிர்க்கப்படுகின்றன. உதாரணத்திற்கு

  • தொங்கும் குறிப்பான்கள் - பறிமுதல் செய்யப்பட்ட நினைவக இடத்தைக் குறிக்கும் குறிப்பான்களால் ஒதுக்கப்படாத நினைவக இடத்தை பயன்படுத்த நேரும். இதனால் இயக்குதளம் நிரலை இயக்குவதை நிறுத்தலாம் அல்லது வேறு ஏதேனும் எதிர்பாராத விளைவுகள் ஏற்படக்கூடும்.
  • ஏற்கனவே சுத்திகரிக்கப்பட்ட இடங்கள் சுத்திகரிக்கப்பட நேரலாம்.

நிரலின் பாதுகாப்பிற்கு ஆபத்து விளைவிக்கும் பிழைகளும் தவிர்க்கப்படுகின்றன.