கணிமொழி - ஆடி - ஜூலை 2008

ஒன்று மற்றொன்றை மீறாத படி கணினியானது பல பணிகள் புரிவது எப்படி?

ம ஸ்ரீ ராமதாஸ், என் ஆர் சி பாஸ், சென்னை
முந்தைய இதழில் வெளியான "நுழைகையில் நிகழ்பவை..." தொடர்ச்சி...

நேரத்திற்கு ஏற்றவாறு கருவின் (கெர்னல்) கிரமப்படுத்தி (ஷெட்யூலர்) பணிகளுக்கான நேரத்தை பிரிக்கும் பொறுப்பினைச் செய்கிறது. அதைத் தவிர தங்களது இயங்குதளமும் இவற்றை முறைப்படுத்தி பிரித்தால்தான் ஒன்றின் பணி நினைவில் (working memory) மற்றொன்று மாட்டிக் கொள்ளாது இருக்கம். தங்களது நிரல்களனைத்தும் ஒன்றுக்கொன்று ஒத்துழைத்து பணிபுரிவதாகத் தாங்கள் கருதினாலும் அவற்றுள் ஒன்றில் வழு ஏற்பட்டு அது மற்றவற்றை பாதிப்பது விரும்பத்தகாத ஒன்று. இச்சிக்கல்களைத் தவிர்க்க தங்கள் இயங்கு தளம் செய்யும் பணிகளுக்கு நினைவு நிர்வாகம் (memory management) என்று பெயர்.

தங்கள் வசமுள்ள ஒவ்வொரு பணிக்கும், அதற்குரிய நிரலை இயக்கவும், மாறிகளையும் (variable) விடைகளையும் வைத்துக்கொள்ளும் பொருட்டு தனித்தனி நினைவிடங்கள் தேவைப்படுகின்றன. வாசிக்க மட்டும் வல்ல நிரட் பகுதியொன்றைக் (code segement) (பணியின் உத்தரவுகளைக் கொண்டிருக்கும்) கொண்டதாகவும் இயற்ற வல்ல தரவுப் பகுதியொன்றைக் (data segement) (பணியின் மாறிகளைக் சேமிக்க உதவும்) கொண்டதாகவும் இவ்வமைப்பைத் தாங்கள் கருதலாம். பிரதியொரு பணியும் தமக்கேயுரிய தரவுப் பகுதியைக் கொண்டிருக்கும். ஆனால் இருவேறு பணிகள் ஒரே நிரலை இயக்க முற்படுகிற போது யுனிக்ஸானது நேர்த்தியுடன் ஒரே நிரட் பகுதியை அவற்றுக்குப் பகிர்ந்தளிக்கும்.

போலி நினைவு (Virtual memory)

நினைவுகளுக்கான செலவு அதிகமாகையால் நேர்த்தி (efficiency) மிகவும் முக்கியத்துவம் வாய்ந்ததாகக் கருதப்படுகிறது. சில நேரங்களில் X வழங்கி (server) போன்ற பெரிய பணிகள் கணினியில் இயக்கப்படும் போது அனைத்து நிரல்களுக்கும் தேவையான நினைவு இல்லாது போகலாம். இக்குறையை களையும் பொருட்டு போலி நினைவு எனப்படும் நுட்பத்தினை யுனிக்ஸ் கையாள்கிறது. இதன்படி ஒரு பணிக்குரிய அனைத்து தரவுகளும் நிரல்களும் நினைவில் கொள்ளப்பட மாட்டாது. மாறாக பணிக்கு தேவையான சிறிய பகுதியை மட்டும் வைத்துக் கொண்டு மற்றதை தங்களது வன்தட்டில் (hard disk) இருக்கக் கூடிய மாற்றிடத்திற்கு (swap space) கொடுத்துவிடும்.

விளங்கக் கூறிட வேண்டுமாயின், இயங்கு தளமானது தன்னிடத்தே இருக்கும் நினைவினைக் காட்டிலும் அதிகம் இருப்பது போல் பாசாங்கு செய்யும். மிகைப்படுத்தப்பட்ட போலி நினைவிடத்தில் செயற்படக் கூடிய அறைகளின் தொகுப்பாக தங்களின் பிரதான நினைவானது செயற்படும். இவற்றுள் பெரும்பாலானவை உண்மையாக தட்டின் மாற்றிடத்திதிலேயே (swap space) சேமிக்கப்படுகின்றன. இம்மாயையை தொடர்ச்சியாகப் பேணிட வேண்டி இயங்கு தளமானது தரவுகளை நினைவிற்கும் தட்டிற்கும் இடையே மாற்றிய வண்ணம் இருக்கும். இதன் பலனாக போலி நினைவானது மிகப் பெரியதாக இருக்கும் அதே வேளையில் உண்மையான நினைவோடு ஒப்பிடும் போது அத்துனை மெதுவாக இல்லாதும் இருக்கும்.

தொடரும்...