Sunday, January 27, 2013

ஜாவாவும் மல்டிதிரட்டிங்கும் முதல் பகுதி


ஒரு நிரலின் இயக்கப்பாதை திரட் எனப்படுகின்றது. இவை தொடர்ச்சியான நிரல் வரிகளை மற்றும்  தனியான flow of control உடையது. உதாரணத்திற்கு cpu  ஆனது தொடர்ச்சியாக பல்வேறு பணிகளை செய்கின்றது. ஒரு ஆவணத்தை print செய்தல் , சாப்ட்வேர் நிறுவுதல் போன்ற பணிகளை செய்கின்றது.ஒவ்வொரு பணிகளும் வெவ்வேறு திரட்களை கொண்டது.
    
ஒரே ஒரு திரட் கொண்ட ப்ராசஸ் ஆனது single threaded process என்றும் ஒன்றுக்கும் மேற்பட்ட திரட் கொண்ட ப்ராசஸ் multi threaded process என்றும் அழைக்கப்படுகின்றது.
உதாரனமாக word ஆனது multi threaded process ஆகும். ஒரே நேரத்தில் ஃபார்மெட் மற்றும் ப்ரின்ட் முதலிய பணிகளை செய்யலாம்.
single threaded process ஆனது ஒரே நேரத்தில் ஒரே ஒரு பணியை செய்யக் கூடியது. multi threaded process ஆனது ஓரே நேரத்தில் ஒன்றுக்கும் மேற்பட்ட பணிகளை செய்யக்கூடியது.

மல்டி டாஸ்கிங்க் (multi tasking) எனப்படுவது ஒரே நேரத்தில் ஒன்றுக்கும் மேற்பட்ட பணிகளை செய்யக்கூடிய ஆற்றல் ஆகும்.

இவை இரு வகைப்படும்.
  1. process –based multitasking
  2. thread based multi tasking.
ப்ராசஸ் அடிப்படையிலான மல்டிடாஸ்கிங்க்.

இதில் ப்ரொசஸ் மாறும் போது  ஒரு program ல் இருந்து மற்றொரு ப்ரொக்ராமிற்கு மாறக்கூடியது.உதாரணமாக onlineல் பாட்டு கேட்டுகொண்டே வொர்ட் டாக்குமெண்டை ப்ரின்ட் செய்வது.இது heavy weight process எனப்படுகின்றது. ஏனெனில் இதில் ப்ராசஸிற்கு வெவ்வெறு நிணைவகவெளி(memory space) தேவைப்படுகின்றது.




திரட் அடிப்படையிலான மல்டிடாஸ்கிங்க்.

இதில் ஒரே நிரலின் வெவ்வெறு பகுதிகள் ஒரே நேரத்தில் இயக்கப்படுகின்றது.உதரணமாக text editor ஆனது ஒரே நேரத்தில் ஃபார்மட் செய்து கொண்டே ப்ரிண்டும் செய்வது ஆகும்.
இது ஒரே நிணைவக வெளீயில் நடைபெறுகின்றது, எனவே இது light weight process ஆகும்.

மல்டிதிரட்டிங்கின் நண்மைகள்:

  1. மேம்படுத்தப்பட்ட செயல் பாடு.
  2. குறைக்கப்பட்ட கணினி வளங்களின் பயன்பாடு.
  3. ஒரே நேரத்தில் வெவ்வெறு பயன்பாடுகளை அணுகுதல்.
  4. சுலபமாகப்பட்ட நிரல் அமைப்பு.
மல்டிதிரட்டிங்கின் பாதகங்கள்

  1. race condition:
                 ஒரே நேரத்தில் வெவ்வேறு திரட்டுகள் ஒரே வேரியபிளை அணுகுதல். ஒரு திரட் ஆனது வேரியபிளை படிக்க முற்படும் போது மற்றொன்று அதில் எழுத முற்படுதல்.
  1. Deadlock condition:
            இரண்டு திரட்டுகள் அதனுடைய செயல்பாடுகளை முடிப்பதற்கு ஒன்றுக்கொன்று எதிர்பாத்திருத்தல். உதாரணமாக திரட்1 மற்றும் திரட்2 எடுத்துக்கொள்வோம்.திரட்1 ஆனது அதனுடைய பணிகளை முடிப்பதற்கு திரட்2ல் லாக் ரிலீஸ் செய்யப்பட வேண்டும், அதே நேரத்தில் திரட்2 ஆனது அதனுடைய பணிககளை முடிப்பதற்கு திரட்1ல் லாக் ரிலீஸ் செய்ய வேண்டும். இதுவே deadlock எனப்படுகின்றது.
  1. ப்ரியாரிட்டி பிரச்சனை:
    இரண்டு திரட்டுகளை சிபியு அணுகும் போது அதிக ப்ரியாரிட்டி கொண்ட திரட்டை முதலில் செயல்படுத்தும்.




மல்டிதிரட்டிங்கின் தேவை:

        ஒரே ஒரு திரட் கொண்ட நிரலில் cpu ஆனது io  operations ஆக காத்திருக்கும் போது வாளாவிருக்கின்றது. இதனால் cpu வின் நேரம் வீணாகின்றது.மல்டி திரட்டிங்க் கொண்ட நிரலில் இந்நேரத்தில் நிரலின் மற்றொரு பகுதி செயல் படுத்தப்படும்.
 ஜாவாவில் திரட்டுகளின் பயன்பாட்டிற்கு java.lang.Thread கிளாஸ் பயன்படுகின்றது. Thread class ஆனது வெவ்வெறு வழிமுறைகளை(methods) கொண்டுள்ளது.
ads Udanz