ריבוי משימות

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Disambig RTL.svgערך זה עוסק בריבוי משימות במחשב. אם התכוונתם לריבוי משימות אנושי, ראו ריבוי משימות אנושי.

ריבוי משימותאנגלית: Multitasking) הוא היכולת של מחשב לבצע מספר משימות במקביל. במקרה של מחשב עם מעבד יחיד יכולה לרוץ רק משימה אחת בכל פרק זמן נתון, אולם אפשר לקבל הדמיה של הרצת מספר משימות במקביל על ידי מעבר מהיר בין משימות שונות. המעבר הזה נקרא גם שיתוף זמן (באנגלית: time sharing).

המעבר בין הרצת משימות שונות נקרא החלפת הקשר, מכיוון שבו עוברים מהסביבה (ההקשר) של משימה אחת לזו של משימה אחרת. למשימות קוראים (במערכות שונות) תהליכים, תהליכונים, או משימות.

תוכן עניינים

מקדים [עריכה]

ריבוי משימות מקדים (Preemptive Multitasking) הוא המימוש המקובל לריבוי משימות במערכות הפעלה. סדרן מרכזי (בדרך כלל חלק ממערכת ההפעלה) אחראי להוציא להקצות את המעבדים לתהליכים. הסדרן יכול להפריע (preempt) לתהליך אם עבר זמנו.

שיתופי [עריכה]

ריבוי משימות שיתופי (Cooperative Multitasking) הוא ריבוי משימות שממומש על ידי התהליכים עצמם ללא כפיה של מערכת ההפעלה או סדרן מרכזי אחר. כאשר תהליך סיים לעבוד עם המעבד הוא קורא לפעולת yield (מאנגלית: ויתור) שמעבירה את הביצוע לתהליך הבא.

המימוש הזה פשוט יותר אולם תהליך סורר אחד יכול לתקוע את כל המערכת. היה בשימוש, לדוגמה, בMicrosoft Windows 3.x ובMac OS.

חלוקת המשאבים [עריכה]

רכיב התוכנה שאחראי על חלוקת הזמן נקרא סדרן תכניות. חלוקת הזמן לא בהכרח שווה ויכולה להתבסס על היוריסטיקות שונות. היוריסטיקה אפשרית לדוגמה היא לתת העדפה (יותר זמן עיבוד) לתהליכים גדולים יותר.

בעת חלוקת המשאבים יש סכנת הרעבה של תהליכים.

ראו גם [עריכה]

קישורים חיצוניים [עריכה]