تفاوت multithreading و multi-tasking
تفاوت multithreading و multi-tasking
تفاوت multithreading و multi-tasking: سیستم عامل چند وظیفه ای (Multi Task): در تکنیک چندنخی (multitasking) یک فرایند (process) که برنامهای در حال اجراست، میتواند به بخشها یا نخهایی (بندهایی) تقسیم شود که میتوانند به صورت همزمان اجراء شوند. برنامههایی که چند وظیفه مستقل از هم را انجام میدهند میتوانند به صورت چند نخی نوشته شوند. گاهی اوقات به سیستمهای multithreading سیستمهای چند تکلیفی یا چند وظیفه ای (multitasking) هم گفته میشود.
فرآیند (process) یا پردازش اساس یک برنامه در حال اجراست که منابعی از سیستم به آن تخصیص داده شده است (شامل رجیسترها، حافظه، فایلها و دستگاهها). فرآیند میتواند مجموعهای از یک یا چند نخ باشد. به نخ، رشته یا بند هم گفته میشود. کلیه اطلاعات مربوط به هر پروسس، در یکی از جداول سیستم عامل به نام جداول process Control Block=PCB ذخیره میشود. این جدول یک آرایه یا لیست پیوندی از ساختارهاست که هر عضو آن مربوط به یکی از پروسسهاست که در حال حاضر موجودیت دارد. اطلاعات موجود در PCB عبارتند از:
- حالت جاری پردازش
- شماره شناسایی پردازش
- اولیت پردازش
- نشانی حافظه پردازش
- نشانی محل برنامه پردازش بر روی دیسک
- شانی سایر منابع پردازش
- محلی برای حفظ ثباتها
- در چند وظیفه ای، چند برنامه همزمان اجرا می شوند، به عنوان مثال کامپایلر جاوا و جاوا IDE جاوا برای مثال Netbeans یا Eclipse، در حالیکه در چندین threaded چندین thread همزمان یک یا چندین قسمت از برنامه چندین بار اجرا می شود.
- در چند وظیفه ای، CPU بین برنامه های متعدد برای تکمیل اجرای خود در زمان واقعی عمل می کند، در حالی که CPU در مالتی threading بین چندین موضوع از یک برنامه مشابه سوئیچ میکند. به یاد داشته باشید، تعویض بین فرآیندهای چندگانه، تغییر هزینه بیشتری را نسبت به تعویض بین موضوعات چندگانه در برنامه مشابه دارد.3) فرآیند یا پراسس در مقایسه با مالتی threading، فرآیندی سنگینتر می باشد، آنها نیاز به فضای آدرس دهی اختصاصی خود دارند، که این بدان معنی است که مالتی tasking در مقایسه با multithreading سنگینتر می باشد. ارتباطات بین فرایندها هزینه بر تر و محدودتر می باشد و تعویض زمینه از یک فرایند به فرآیند دیگر در چند وظیفه ای گرانتر و محدودتر می باشد.
موارد بالا در مورد تفاوت بین چند وظیفه ای و چند راه اندازی است. هر دوی این موارد برای به کارگیری و موازی کردن استفاده کامل از سخت افزار و پردازنده می باشد. چند وظیفه ای توانایی یک کامپیوتر برای اجرای چندین برنامه در یک زمان می باشد، در حالی که چند راه اندازی توانایی یک فرایند برای اجرای چندین رشته در یک زمان است. بعضی اوقات چند وظیفه مفید می باشد و در برخی اوقات چند راه اندازی!
ممنون از مطالبی که منتشر میکنید
خیلی عالی بود