ത്രെഡ്ഡിങ്
കംപ്യൂട്ടറിൽ പ്രാവർത്തികമാക്കപ്പെടുന്ന 'പ്രോസസ്സി'നെ ഒന്നിലേറെ പ്രക്രിയകളാക്കി വേർതിരിച്ച് അവയെ ഒരേ സമയത്തുതന്നെ നടപ്പിൽ വരുത്തുവാനുള്ള മൾട്ടിടാസ്കിങ് സംവിധാനമാണ് ത്രെഡ്ഡിങ്.[1] കെർണൽ ഷെഡ്യൂളിങ്ങിൽ ഏറ്റവും 'ഭാരം കുറഞ്ഞ' ഘടകമാണ് ത്രെഡ്. ഓരോ പ്രോസസ്സിലും കുറഞ്ഞത് ഒരു ത്രെഡ് എങ്കിലും പ്രവർത്തിക്കുന്നുണ്ടാകും. പ്രോസസ്സിന്റെ അവസ്ഥാവിവരങ്ങൾ പൂർണമായും അതിന്റെ എല്ലാ ത്രെഡ്ഡുകളിലും ലഭ്യമായിരിക്കും. കൂടാതെ കംപ്യൂട്ടറിന്റെ മെമ്മറി, അഡ്രസ് സ്പേസ്, ഇതര വിഭവ ശേഷി മുതലായവയെ പങ്കുവച്ച് ഉപയോഗപ്പെടുത്താൻ ത്രെഡ്ഡുകൾ സൗകര്യമേകുന്നു. വ്യത്യസ്ത പ്രോസസ്സുകളെ തമ്മിൽ കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് നടത്തുന്നതിനെക്കാൾ വേഗതയിൽ ഒരേ പ്രോസസ്സിന്റെ വിവിധ ത്രെഡ്ഡുകൾ തമ്മിൽ കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് നടത്തുവാൻ കഴിയുന്നു എന്നത് ത്രെഡ്ഡുകളുടെ മറ്റൊരു സവിശേഷതയാണ്.
ഏക പ്രോസസ്സർ കംപ്യൂട്ടറിൽ ഒരു സമയത്ത് ഒരു ത്രെഡ് മാത്രമേ പ്രാവർത്തികമാക്കാൻ കഴിയൂ. ത്രെഡ്ഡുകൾ തമ്മിലുള്ള കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് വേഗത്തിലായതിനാൽ ത്രെഡ്ഡുകളെല്ലാം ഒരേ സമയത്തുതന്നെ നടപ്പിലാകുന്നു എന്ന തോന്നൽ ഉപയോക്താവിന് ഉണ്ടാകുന്നു. എന്നാൽ, ഒന്നിലേറെ പ്രോസസ്സർ ഉള്ള മൾട്ടിപ്രോസസ്സർ ക്രമീകരണം, ക്ളസ്റ്റർ സംവിധാനം മുതലായവയിൽ വിവിധ പ്രോസസ്സറുകളിലായി വ്യത്യസ്ത ത്രെഡ്ഡുകൾ ഒരേ സമയത്തുതന്നെ പ്രാവർത്തികമാക്കപ്പെടും.
ഇന്ന് വിപണിയിൽ ലഭ്യമാകുന്ന മിക്ക ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങളും ത്രെഡ്ഡിങ് അനുവദിക്കുന്നവയാണ്. ഇവയുടെ സിസ്റ്റം കെർണലിലൂടെ സിസ്റ്റം കോൾ ഇന്റർഫേസ് ഉപയോഗപ്പെടുത്തി പ്രോഗാമർക്ക് ത്രെഡ്ഡുകൾ ചിട്ടപ്പെടുത്താം. ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിൽ ത്രെഡ്ഡുകൾ പൊതുവേ രണ്ട് രീതിയിലാണ് നടപ്പിലാക്കപ്പെടുന്നത്. പ്രിയെംറ്റീവ് മൾട്ടിത്രെഡ്ഡിങ്, കോ-ഓപ്പറേറ്റീവ് മൾട്ടിത്രെഡ്ഡിങ് എന്നിവയാണ് ഇവ. ത്രെഡ്ഡുകൾ തമ്മിലുള്ള കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് എപ്പോൾ വേണമെന്ന് നിശ്ചയിക്കുന്നതിനുള്ള ചുമതല ആർക്കായിരിക്കും എന്നതനുസരിച്ചാണ് ഇവിടത്തെ വർഗീകരണം. ആദ്യത്തെ രീതിയിലാണ് ക്രമീകരണമെങ്കിൽ അതിനുള്ള ചുമതല ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിനാണ്; രണ്ടാമത്തേതിൽ അത് ത്രെഡ്ഡു തന്നെ നിർവഹിക്കുന്നു.
ചരിത്രം
തിരുത്തുക1967-ൽ വേരിയബിൾ നമ്പർ ഓഫ് ടാസ്ക്കുകളുള്ള (MVT) OS/360 മൾട്ടിപ്രോഗ്രാമിംഗിൽ "ടാസ്ക്കുകൾ" എന്ന പേരിൽ ത്രെഡുകൾ നേരത്തെ തന്നെ ആരംഭിച്ചിരുന്നു. സാൾട്ട്സർ (1966) "ത്രെഡ്" എന്ന പദം കൊണ്ട് വന്നതിന്റെ ക്രെഡിറ്റ് വിക്ടർ എ. വിസ്സോറ്റ്സ്കിക്ക് നൽകുന്നു.[2]
2003-ഓടെ ത്രെഡിംഗിന്റെ ജനപ്രീതി വർദ്ധിച്ചു, സിപിയു ഫ്രീക്വൻസിയുടെ വളർച്ചയ്ക്ക് പകരം കോറുകളുടെ എണ്ണത്തിന്റെ വർദ്ധനവ് ഉണ്ടായി, ഒന്നിലധികം കോറുകൾ ഉപയോഗിക്കുന്നതിന് കൺകറൻസി ആവശ്യമായി വന്നു.[3]
പ്രോസ്സസ്സ്, കേർണൽ ത്രെഡുകൾ, യൂസർ ത്രെഡുകൾ, ഫൈബറുകൾ
തിരുത്തുകഷെഡ്യൂളിംഗ് കേർണൽ തലത്തിലോ ഉപയോക്തൃ തലത്തിലോ നടത്താം, കൂടാതെ മൾട്ടിടാസ്കിംഗ് മറ്റാരെങ്കിലും ചെയ്യുന്നതിന് മുന്നേയോ അല്ലെങ്കിൽ പരസ്പരം സഹകരിച്ചോ ചെയ്യാം. ഇത് വിവിധ ആശയങ്ങൾ നൽകുന്നു.
അവലംബം
തിരുത്തുക- ↑ Lamport, Leslie (September 1979). "How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs" (PDF). IEEE Transactions on Computers. C-28 (9): 690–691. doi:10.1109/tc.1979.1675439. S2CID 5679366.
- ↑ Traffic Control in a Multiplexed Computer System, Jerome Howard Saltzer, Doctor of Science thesis, 1966, see footnote on page 20.
- ↑ Herb Sutter. "The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software".
ഇതും കാണുക
തിരുത്തുക- David R. Butenhof: Programming with POSIX Threads, Addison-Wesley, ISBN 0-201-63392-2
- Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farell: Pthreads Programming, O'Reilly & Associates, ISBN 1-56592-115-1
- Charles J. Northrup: Programming with UNIX Threads, John Wiley & Sons, ISBN 0-471-13751-0
- Mark Walmsley: Multi-Threaded Programming in C++, Springer, ISBN 1-85233-146-1
- Paul Hyde: Java Thread Programming, Sams, ISBN 0-672-31585-8
- Bill Lewis: Threads Primer: A Guide to Multithreaded Programming, Prentice Hall, ISBN 0-13-443698-9
- Steve Kleiman, Devang Shah, Bart Smaalders: Programming With Threads, SunSoft Press, ISBN 0-13-172389-8
- Pat Villani: Advanced WIN32 Programming: Files, Threads, and Process Synchronization, Harpercollins Publishers, ISBN 0-87930-563-0
- Jim Beveridge, Robert Wiener: Multithreading Applications in Win32, Addison-Wesley, ISBN 0-201-44234-5
- Thuan Q. Pham, Pankaj K. Garg: Multithreaded Programming with Windows NT, Prentice Hall, ISBN 0-13-120643-5
- Len Dorfman, Marc J. Neuberger: Effective Multithreading in OS/2, McGraw-Hill Osborne Media, ISBN 0-07-017841-0
- Alan Burns, Andy Wellings: Concurrency in ADA, Cambridge University Press, ISBN 0-521-62911-X
- Uresh Vahalia: Unix Internals: the New Frontiers, Prentice Hall, ISBN 0-13-101908-2
- Alan L. Dennis: .Net Multithreading , Manning Publications Company, ISBN 1-930110-54-5
- Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: C# Threading Handbook, Peer Information Inc, ISBN 1-86100-829-5
- Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: Visual Basic .Net Threading Handbook, Wrox Press Inc, ISBN 1-86100-713-2
കടപ്പാട്: കേരള സർക്കാർ ഗ്നൂ സ്വതന്ത്ര പ്രസിദ്ധീകരണാനുമതി പ്രകാരം ഓൺലൈനിൽ പ്രസിദ്ധീകരിച്ച മലയാളം സർവ്വവിജ്ഞാനകോശത്തിലെ ത്രെഡ്ഡിങ് എന്ന ലേഖനത്തിന്റെ ഉള്ളടക്കം ഈ ലേഖനത്തിൽ ഉപയോഗിക്കുന്നുണ്ട്. വിക്കിപീഡിയയിലേക്ക് പകർത്തിയതിന് ശേഷം പ്രസ്തുത ഉള്ളടക്കത്തിന് സാരമായ മാറ്റങ്ങൾ വന്നിട്ടുണ്ടാകാം. |