ریسمان (رایانش) کیست؟ توضیح بده.
یک ریسمان اجرایی یا نخ اجرایی در علوم رایانه، «کوچترین توالی» از دستورالعمل‌های برنامه‌ریزی شده‌است که توسط یک زمان‌بند می‌تواند مستقلاً مدیریت گردد، این زمان‌بند معمولاً جزئی از سیستم‌عامل است. پیاده‌سازی ریسمان‌ها و فرایندها از یک سیستم‌عامل به سیستم‌عامل دیگر متفاوت است اما در اکثر موارد، ریسمان یک مولفه از فرایند است. چندین ریسمان می‌توانند در داخل یک فرایند یکسان قرار داشته باشند، که به صورت هم‌روند اجرا می‌شوند و منابعی (مثل حافظه) را در میان خود به اشتراک می‌گذارند، اما فرایندهای متفاوت، این منابع را به اشتراک نمی‌گذارند. ریسمان‌های یک فرایند، مخصوصا «کد اجرایی‌شان»، «مقادیر متغیرهای با انتساب پویا»، و «متغیرهای سراسری » را، در هر زمان، به اشتراک می‌گذارند.ریسمان، فرایند سبک‌وزنی است. به ویژه اینکه، ریسمان در یک فرایند دستورالعمل (کد قابل اجرا) و متن خود (ارزش هر متغیر در هر لحظه معین) را به اشتراک می‌گذارد.در سیستم تک‌پردازنده‌ای، چندریسمانی به صورت عمده توسط تقسیم-زمانی چندگانه (به انگلیسی: time-division multiplexing) به صورت برنامه چندکاره اجرا می‌شود و واحد پردازش مرکزی (CPU) در بین ریسمان‌های نرم‌افزاری متفاوت تعویض می‌شود. این تعویض زمینه به گونه‌ای اجرا می‌شود که کاربر تصور می‌کند ریسمان‌ها یا وظایف؛ هم‌زمان اجرا می‌شوند. در سیستم‌های چند پردازنده‌ای یا چندهسته‌ای، ریسمان‌ها می‌توانند به صورت جداگانه و هم‌زمان توسط هر کدام از پردازنده‌ها یا هسته‌ها اجرا شوند. در حالت چندپردازنده‌ای، سیستم عامل ممکن است از ریسمان‌های سخت‌افزار که برای بهره‌برداری بهتر از پردازندهٔ مرکزی؛ در پشتیبان سخت‌افزار موجود است استفاده کند و این حالت با ریسمان‌های نرم‌افزاری که به‌طور کامل توسط نرم‌افزار بدون دخالت پردازنده مرکزی ساخته می‌شوند؛ متفاوت است.زمان‌بندی پردازش در اغلب سیستم عامل‌های امروزه به‌طور مستقیم از هر دو حالت ریسمان‌های اشتراک زمانی و چندپردازنده‌ای پشتیبانی می‌کنند. هسته سیستم عامل به برنامه‌ها این اجازه را می‌دهد که ریسمان‌ها را توسط بازبینی واسط فراخوان سیستمی اداره کند. برخی از پیاده‌سازی ریسمان ها؛ ریسمان‌های هسته نامیده می‌شوند، در حقیقت فرایندهای سبک‌وزن نوع خاصی از ریسمان‌های هسته هستند که وضعیت و اطلاعات مشابه را به اشتراک می‌گذارند.برنامه‌ها می‌توانند ریسمان‌های فضای کاربر را برای ایجاد وقفه در عملکرد خود توسط زمان‌سنج، ارسال سیگنال یا روش‌های دیگر استفاده کنند. به‌طور مثال اد هوک و قبضه‌کردن از این دسته‌اند.ریسمان‌ها در مقابل فرایندها.ریسمان‌ها با چندکارگی پردازش رایانه سنتی؛ در موارد زیر تفاوت دارند:سیستم‌هایی مانند ویندوز ان‌تی (به انگلیسی: Windows NT) و اواس/۲ (به انگلیسی: OS/2) به عنوان سیستم‌هایی با ریسمان‌های ارزان و فرایندهای گران شناخته شده‌اند؛ در سیستم عامل‌های دیگر تفاوت زیادی به جز در هزینهٔ فضای آدرس وجود ندارد.چندریسمانی.چندریسمانی به‌طور عمده در سیستم عامل‌های چندوظیفه‌ای پیدا می‌شود. چندریسمانی یک مدل گسترده در برنامه‌نویسی و اجرا است که اجازه می‌دهد چند ریسمان در یک فرایند اجرا شوند. این ریسمان‌ها منابع فرایند را به اشتراک می‌گذارند، اما می‌توانند به‌طور مستقل اجرا شوند. مدل برنامه‌نویسی ریسمانی توسعه‌پذیری خوبی را توسط اجرای هم‌زمان ایجاد می‌کند. چندریسمانی همچنین می‌تواند در یک فرایند تنها برای رایانش موازی در سیستم چندپردازشی به کار رود.برنامه‌های کاربردی چندریسمانی مزیت‌های زیر را دارا هستند:چندریسمانی معایب زیر را دارد:زمان‌بندی.زمان‌بندی ریسمان‌های سیستم عامل در یکی از دو راه:ریسمان‌هایی که وظایف را فراخوانی می‌کنند، ابتدا در عملکرد چندبرنامه‌ای OS/360 با تعداد متغیری از وظایف در ۱۹۶۷ ظاهر شدند.تا اواخر دههٔ ۱۹۸۰، پردازنده‌ها در رایانه‌های رومیزی پشتیبانی زیادی از چندریسمانی نمی‌کردند، اگرچه ریسمان‌ها هنوز هم در آن رایانه‌ها استفاده می‌شد زیرا جابه جایی بین ریسمان‌ها بسیار سریعتر از تعویض زمینهٔ کل فرایند بود. در اواخر دههٔ ۱۹۹۰، ایدهٔ اجرای دستور توسط چندین ریسمان به‌طور همزمان، با نام چندریسمانی همزمان (به انگلیسی: simultaneous multithreading) شناخته شد، که رایانه‌های رومیزی با پردازنده‌های اینتلپنتیوم ۴ تحت عنوان فراریسمانی (به انگلیسی: hyper-threading) به آن دست یافتند. این طراحی در معماری اینتل کور و اینتل کور۲ کمی افت کرد، اما دوباره در معماری پردازنده‌های کور ای ۷ و برخی از کور ای ۳ و ۵ برقرار شد.