ത്രെഡ്ഡിങ്
കംപ്യൂട്ടറിൽ പ്രാവർത്തികമാക്കപ്പെടുന്ന 'പ്രോസസ്സി'നെ ഒന്നിലേറെ പ്രക്രിയകളാക്കി വേർതിരിച്ച് അവയെ ഒരേ സമയത്തുതന്നെ നടപ്പിൽ വരുത്തുവാനുള്ള മൾട്ടിടാസ്കിങ് സംവിധാനമാണ് ത്രെഡ്ഡിങ്. കെർണൽ ഷെഡ്യൂളിങ്ങിൽ ഏറ്റവും 'ഭാരം കുറഞ്ഞ' ഘടകമാണ് ത്രെഡ്. ഓരോ പ്രോസസ്സിലും കുറഞ്ഞത് ഒരു ത്രെഡ് എങ്കിലും പ്രവർത്തിക്കുന്നുണ്ടാകും. പ്രോസസ്സിന്റെ അവസ്ഥാവിവരങ്ങൾ പൂർണമായും അതിന്റെ എല്ലാ ത്രെഡ്ഡുകളിലും ലഭ്യമായിരിക്കും. കൂടാതെ കംപ്യൂട്ടറിന്റെ മെമ്മറി, അഡ്രസ് സ്പേസ്, ഇതര വിഭവ ശേഷി മുതലായവയെ പങ്കുവച്ച് ഉപയോഗപ്പെടുത്താൻ ത്രെഡ്ഡുകൾ സൗകര്യമേകുന്നു. വ്യത്യസ്ത പ്രോസസ്സുകളെ തമ്മിൽ കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് നടത്തുന്നതിനെക്കാൾ വേഗതയിൽ ഒരേ പ്രോസസ്സിന്റെ വിവിധ ത്രെഡ്ഡുകൾ തമ്മിൽ കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് നടത്തുവാൻ കഴിയുന്നു എന്നത് ത്രെഡ്ഡുകളുടെ മറ്റൊരു സവിശേഷതയാണ്.
ഏക പ്രോസസ്സർ കംപ്യൂട്ടറിൽ ഒരു സമയത്ത് ഒരു ത്രെഡ് മാത്രമേ പ്രാവർത്തികമാക്കാൻ കഴിയൂ. ത്രെഡ്ഡുകൾ തമ്മിലുള്ള കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് വേഗത്തിലായതിനാൽ ത്രെഡ്ഡുകളെല്ലാം ഒരേ സമയത്തുതന്നെ നടപ്പിലാകുന്നു എന്ന തോന്നൽ ഉപയോക്താവിന് ഉണ്ടാകുന്നു. എന്നാൽ, ഒന്നിലേറെ പ്രോസസ്സർ ഉള്ള മൾട്ടിപ്രോസസ്സർ ക്രമീകരണം, ക്ളസ്റ്റർ സംവിധാനം മുതലായവയിൽ വിവിധ പ്രോസസ്സറുകളിലായി വ്യത്യസ്ത ത്രെഡ്ഡുകൾ ഒരേ സമയത്തുതന്നെ പ്രാവർത്തികമാക്കപ്പെടും.
ഇന്ന് വിപണിയിൽ ലഭ്യമാകുന്ന മിക്ക ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങളും ത്രെഡ്ഡിങ് അനുവദിക്കുന്നവയാണ്. ഇവയുടെ സിസ്റ്റം കെർണലിലൂടെ സിസ്റ്റം കോൾ ഇന്റർഫേസ് ഉപയോഗപ്പെടുത്തി പ്രോഗാമർക്ക് ത്രെഡ്ഡുകൾ ചിട്ടപ്പെടുത്താം. ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിൽ ത്രെഡ്ഡുകൾ പൊതുവേ രണ്ട് രീതിയിലാണ് നടപ്പിലാക്കപ്പെടുന്നത്. പ്രിയെംറ്റീവ് മൾട്ടിത്രെഡ്ഡിങ്, കോ-ഓപ്പറേറ്റീവ് മൾട്ടിത്രെഡ്ഡിങ് എന്നിവയാണ് ഇവ. ത്രെഡ്ഡുകൾ തമ്മിലുള്ള കോൺടെക്സ്റ്റ് സ്വിച്ചിങ് എപ്പോൾ വേണമെന്ന് നിശ്ചയിക്കുന്നതിനുള്ള ചുമതല ആർക്കായിരിക്കും എന്നതനുസരിച്ചാണ് ഇവിടത്തെ വർഗീകരണം. ആദ്യത്തെ രീതിയിലാണ് ക്രമീകരണമെങ്കിൽ അതിനുള്ള ചുമതല ഓപ്പറേറ്റിങ് സിസ്റ്റത്തിനാണ്; രണ്ടാമത്തേതിൽ അത് ത്രെഡ്ഡു തന്നെ നിർവഹിക്കുന്നു.
അവലംബം [തിരുത്തുക]
- 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
പുറത്തേക്കുള്ള കണ്ണികൾ [തിരുത്തുക]
- Answers to frequently asked questions for comp.programming.threads
- What makes multi-threaded programming hard?
- Article "Query by Slice, Parallel Execute, and Join: A Thread Pool Pattern in Java" by Binildas C. A.
- Article "The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software" by Herb Sutter
- Article "The Problem with Threads" by Edward Lee
- Concepts of Multithreading
- ConTest - A Tool for Testing Multithreaded Java Applications by IBM
- Debugging and Optimizing Multithreaded OpenMP Programs
- Multithreading at the Open Directory Project
- Multithreading in the Solaris Operating Environment
- Parallel computing community
- POSIX threads explained by Daniel Robbins
- The C10K problem
|
||||||||||||||||||||||||||||||||
(
| കടപ്പാട്: കേരള സർക്കാർ ഗ്നൂ സ്വതന്ത്ര പ്രസിദ്ധീകരണാനുമതി പ്രകാരം ഓൺലൈനിൽ പ്രസിദ്ധീകരിച്ച മലയാളം സർവ്വവിജ്ഞാനകോശത്തിലെ ത്രെഡ്ഡിങ് എന്ന ലേഖനത്തിന്റെ ഉള്ളടക്കം ഈ ലേഖനത്തിൽ ഉപയോഗിക്കുന്നുണ്ട്. വിക്കിപീഡിയയിലേക്കു് പകർത്തിയതിനു് ശേഷം പ്രസ്തുത ഉള്ളടക്കത്തിനു് സാരമായ മാറ്റങ്ങൾ വന്നിട്ടുണ്ടാകാം. |
)