وظیفه (محاسبات): تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Rezabot (بحث | مشارکت‌ها)
جز ربات:مرتب‌سازی عنوان‌ها+املا+تمیز+
جز ویرایش به‌وسیلهٔ ابرابزار:
خط ۱:
[[پرونده:Thread pool.svg|بندانگشتی|یک نمونه از استخر ریسمان (باکس هایباکس‌های سبز) با صف هایصف‌های وظیفه از وظایف منتظر (آبی) و کارهای تکمیل شده (زرد) دراین جا وظیفه به معنای ’واحد«واحد کار‘کار» است.|364x364پیکسل]]در محاسبه، یک وظیفه، یک واحد از اجرا یا یک واحد از کار است. این واژه مبهم است اصطلاحات جایگزین دقیق عبارتند از ''[[فرایند (رایانه)|فرایند]]'' ، ''[[فرایند (رایانه)|روند]]'' [[فرایند سبک‌وزن|سبک وزنسبک‌وزن]] ، [[ریسه (رایانه)|ریسمان]] (برای اجرا)، ''گام'' ، ''درخواست'' یا ''پرس'' و ''جو'' (برای کار) است. در نمودار مجاور، [[زمان‌بندی (رایانه)|صف]] های‌های کار ورودی برای انجام کار و کار هایکارهای انجام شده و [[الگوی مخزن نخ|استخری ریسمان]] برای انجام این کار وجود دارد. خود واحد کار یا ریسمان هاییریسمان‌هایی که کار را انجام میدهندمی‌دهند میتوانندمی‌توانند به عنوان 'وظیفه ها' خوانده شوند و می توانندمی‌توانند به ترتیب به عنوان درخواست هادرخواست‌ها / پاسخ هاپاسخ‌ها / رشته ها،رشته‌ها، وظایف ورودی /وظایف تکمیل شده/ رشته ها رشته‌ها (همان طورهمان‌طور که نمایش داده شده) یا درخواست هادرخواست‌ها / پاسخ هاپاسخ‌ها / وظایف نیز معرفی شود.
 
== واژه شناسیواژه‌شناسی ==
به معنای "'''واحد اجرا'''"، در برخی از [[سیستم‌عامل|سیستم عامل هاعامل‌ها]] ، یک کار مترادف با یک [[فرایند (رایانه)|فرایند است]] {{مدرک|reason=Which operating systems?|date=November 2016}} ، و در بقیه با رشتهرشته‌ها ها هم معنیهم‌معنی است. {{مدرک|reason=Which operating systems?|date=November 2016}} در اجراهایی که در ارتباط نیستند ( [[پردازش دسته‌ای|پردازش دسته ای]] )یک وظیفه یک واحد از اجرا است که در داخل یک کار است ، است،<ref>{{Cite web|url=http://whatis.techtarget.com/definition/task|title=What is task? - Definition from WhatIs.com|website=WhatIs.com|accessdate=June 11, 2015}}</ref> <ref>{{Cite web|url=http://www.liutilities.com/articles/what-are-computer-processes/#.VXn8h0b7LDc|title=What are computer processes?|website=liutilities.com|accessdate=June 11, 2015}}</ref> با اینکه وظیفه به طوربه‌طور معمول یک فرایند است. اساساً اصطلاح " [[چندکارگی (رایانه)|چند وظیفه ای"]] اشاره دارد به - اجرای چندین وظیفه در یک زمان- اما تفاوت ظریفی با  کار دارد که نشان میدهدمی‌دهد که چندین وظیفه  در یک زمان در حال اجرا هستند.
 
به معنای "'''واحد کار'''"، در یک کار (به معنی "یک قطعه کار") وظیفه میتواندمی‌تواند مشابه به یک گام باشد (خود گام نه اجرای آن) ، در حالی که در [[پردازش دسته‌ای|پردازش دسته ای]] وظیفه های وظیفه‌های منفرد می تواندمی‌تواند متناظر با با یک قدم از پردازش یک آیتم در یک دسته (بچ) یا به یک قدم از پردازش تمام آیتم هاآیتم‌ها در یک دسته باشند. در [[سیستم هایسیستم‌های آنلاین]]، '''وظایف''' اغلب به یک ''درخواست'' تک (در معماری درخواست-پاسخ ) یا ''پرس و جو'' (در [[بازیابی اطلاعات]]  یا یک مرحله از بررسی، یا بررسی گسترده سیستم اطلاق میشودمی‌شود.
 
=== مثال هامثال‌ها ===
در [[جاوا (زبان برنامه‌نویسی)|زبان]] برنامه نویسیبرنامه‌نویسی [[جاوا (زبان برنامه‌نویسی)|جاوا]] ، این دو مفهوم (یک واحد از اجرا و یک واحد از کار) در زمانی که با ریسمان هاریسمان‌ها به صورت مستقیم کار میکنیممی‌کنیم در هم در میامیزند، اما در   [https://docs.oracle.com/javase/tutorial/essential/concurrency/executors.html Executers freamwork] به وضوح قابل تمیز هستند: {{quote|When you work directly with threads, a <code>Thread</code> serves as both a unit of work and the mechanism for executing it. In the executor framework, the unit of work and the execution mechanism are separate. The key abstraction is the unit of work, which is called a ''task''.<ref>{{cite book |author-link = Joshua Bloch |first = Joshua |last = Bloch |title = Effective Java |edition = Third |page=[https://books.google.com/books?id=BIpDDwAAQBAJ&lpg=PT431&ots=LwbKdbR4_b&dq=%22the%20key%20abstraction%20is%20the%20unit%20of%20work%22&pg=PT431#v=onepage&q=%22the%20key%20abstraction%20is%20the%20unit%20of%20work%22&f=false p. 272], Item 68}}</ref>}}زمانی که شما به صورت مستقیم با نخ هانخ‌ها کار میکنید،می‌کنید، یک نخ(Thread)هم واحدی از کار و هم مکانیزمی برای اجرا آن را آماده میکندمی‌کند. در Executer freamwork، یک واحد از اجرا و یک واحد از کار مستقل هستند. کلید جدا سازیجداسازی این هست که واحدی از کار، به عنوان وظیفه نامیده میشودمی‌شود.
 
=== واژه شناسیواژه‌شناسی IBM:''' ===
اصطلاحاتی که [[آی‌بی‌ام|IBM]] استفاده میکندمی‌کند دارای نفوذ است، گرچه اصطلاح دارای گنگی باشد، در اصطلاح IBM یک وظیفه دارای چندین معنای بخصوص است، شامل:<ref>{{یادکرد وب|عنوان=IBM Globalization|نشانی=http://www.ibm.com/software/globalization/index.html/link_label_1.html|وبگاه=www.ibm.com|تاریخ=2018-08-31|بازبینی=2019-05-09|کد زبان=en-US}}</ref>:
* یک واحد از کار که یک قدم در فرایند را نشان میدهندمی‌دهند.
* یک واحد از کار که به وسیله ابزار یا فرایند کامل میشوندمی‌شوند.
* یک فرایند و روش هایی روش‌هایی که فرایند را اجرا میکنندمی‌کنند.
* مجموعه ای از اقدامات طراحی شده برای دستیابی به یک نتیجه خاص. یک وظیفه بر روی یک مجموعه ای از اهداف در یک برنامه خاص انجام می شودمی‌شود.
* یک واحد محاسبات. در یک کار موازی، دو یا چند وظیفه همزمان کار میکنندمی‌کنند با هم از طریق عبور پیام و اشتراک حافظه ارتباط دارند. هرچند که متداول است که یک وظیفه بوسیله یک پردازنده فیزیکی یا منطقی اختصاص داده شود، اصطلاح ’وظیفه‘«وظیفه» و ’پردازنده‘«پردازنده» در اصطلاح قابل جایگزینی با یک دیگر نیستند.
* فعالیتی که ارزش تجاری دارند، توسط یک کاربر آغاز شده و توسط نرم‌افزار انجام می شودمی‌شود.
 
در [[زد/اواس|z / OS به]] طور خاص، دقیقاً تعریف شده استشده‌است به عنوان: <ref>[http://www-01.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zglossary.doc/zglossary.html Glossary of z/OS terms and abbreviations]: [http://www-01.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zglossary.doc/zglossary.html#t T]</ref>
* "در محیط چند برنامه ریزی یا چند پردازش، یک یا چند توالی دستورالعمل هادستورالعمل‌ها توسط یک برنامه کنترل به عنوان یک عنصر از کار که توسط یک کامپیوتر انجام میمی‌شود، شود،تلقیتلقی میشودمی‌شود. "
 
اصطلاح وظیفه در OS/360 از طریق z/OS تقریباً معادل فرایند سبک وزنسبک‌وزن است؛ وظایف در یک مرحله از کار فضای آدرس را به اشتراک میگزارندمی‌گزارند. با این حال، در [[ذخیره مجازی چندگانه|MVS/ESA]] از طریق z/OS، یک وظیفه یا بلوک سرویس درخواست ([[Service Request Block]] ) ممکن است از طریق لیست دسترسی آن به سایر آدرس هایآدرس‌های فضای مجاز دسترسی داشته باشد.
 
=== کرنل لینوکس ===
اصطلاح ''وظیفه'' در [[هسته لینوکس]] (حداقل از v2.6.13، <ref>{{Cite web|title=<code>include/linux/sched.h</code>|website=GitHub.com|publisher=Linus Torvalds|date=August 29, 2005|url=https://github.com/torvalds/linux/blob/v2.6.13/include/linux/sched.h}}</ref> تا از جمله v4.8 <ref>{{Cite web|title=<code>include/linux/sched.h</code>|website=GitHub.com|publisher=Linus Torvalds|date=October 3, 2016|url=https://github.com/torvalds/linux/blob/v4.8/include/linux/sched.h}}</ref> )  استفاده میشودمی‌شود که به واحدی از اجرا اشاره دارد، که ممکن است توسط منابع مختلف سیستم با وظایف دیگر در سیستم به اشتراک گذاشته شود. بسته به سطح اشتراک گذاری، این کار ممکن است به عنوان یک ریسمان یا [[فرایند (رایانه)|فرایند]] در نظر گرفته [[فرایند (رایانه)|شود]] . وظایف با استفاده از سیستم تماس ()Clone <ref>{{Cite web|title=clone, __clone2 - create a child process|url=http://man7.org/linux/man-pages/man2/clone.2.html|date=July 17, 2016|accessdate=November 6, 2016}}</ref> به وجود می آیندمی‌آیند که در آن کاربر می تواندمی‌تواند سطح مطلوب به اشتراک گذاری منابع را مشخص کند.
 
== تاریخ ==
واژه وظیفه برای یک قسمت از زمان کار برای چند برنامگی در اوایل دهه 1960۱۹۶۰ به کار برده میشد،می‌شد، این مثال برای سال 1961۱۹۶۱ است:
 
مدل سریال توانایی اجرای وظیفه هاوظیفه‌ها از یک کار در شیوه هایشیوه‌های مختلف شبیه به عملکرد IBM 709 را دارد.
 
این اصطلاح با معرفی OS / 360 (اعلام شده در سال ۱۹۶۴) محبوبیت داشت که شامل خصوصیات چند برنامه نویسیبرنامه‌نویسی با تعداد ثابتی از وظیفه ها وظیفه‌ها (MFT) و چند برنامه نویسیبرنامه‌نویسی با تعدادی از وظایف متغیر میشودمی‌شود(MVT) بود. در این مورد، وظایف با فرایندهای سبک وزنسبک‌وزن شناسایی شدند، یک شغل شامل تعدادی از وظایف و بعدها، وظایف میتوانستندمی‌توانستند زیر وظایف (در اصطلاحات مدرن، [[فرایند فرزند|پروسه هایپروسه‌های فرزند]] ) داشته باشند.
 
امروز اصطلاح "وظیفه" به صورت بسیار مبهم استفاده میشودمی‌شود. به عنوان مثال، [[مدیریت وظایف (ویندوز)|مدیر وظیفه ویندوز]] ( Windows Task Manager )مدیریت ''فرایندهای'' (در حال اجرا) را بر عهده دارد، در حالی که وظیفه برنامه ریزبرنامه‌ریز ویندوز ( Wnidows Task Scheduler ) برنامه را برای اجرای در آینده زمان بندی میکند،زمان‌بندی می‌کند، آنچه که به طوربه‌طور سنتی به عنوان یک [[زمان‌بند کار| زمان بندیزمان‌بندی]] شناخته [[زمان‌بند کار|شده استشده‌است]] ، و از پسوند <code>.job</code> استفاده می کندمی‌کند. در مقابل، اصطلاح " [[صف وظایف]] " معمولاً به معنای "واحد کار" استفاده می شودمی‌شود.
 
== جستارهای وابسته ==
== همچنین نگاه کنید ==
* موازی کاری
* [[زمان‌بندی (رایانه)|صف کار]]
 
== منابع ==