ריבוי תכנות לעומת מערכות שיתוף זמן
ריבוי תכנות הוא הקצאה של יותר מתוכנית אחת במקביל על מערכת מחשב והמשאבים שלה. ריבוי תכנות מאפשר שימוש יעיל במעבד על ידי מתן אפשרות למשתמשים שונים להשתמש במעבד ובמכשירי ה-I/O ביעילות. ריבוי תכנות מוודא שלמעבד תמיד יהיה מה לבצע, ובכך מגביר את ניצול המעבד. מצד שני, שיתוף זמן הוא שיתוף משאבי מחשוב בין מספר משתמשים בו זמנית. מכיוון שהדבר יאפשר למספר רב של משתמשים לעבוד במערכת מחשב אחת בו-זמנית, הדבר יוריד את עלות אספקת יכולות המחשוב.
מהי מערכת ריבוי תכנות?
ריבוי תכנות הוא מעבר מהיר של מעבד בין מספר תוכניות. תוכנית מורכבת בדרך כלל מכמה משימות. משימה מסתיימת בדרך כלל עם בקשה כלשהי להעביר נתונים שתדרוש ביצוע פעולות I/O. ריבוי משימות נעשה בדרך כלל כדי להעסיק את ה-CPU, בעוד התוכנית הפועלת כעת מבצעת פעולות I/O. בהשוואה להוראות ביצוע אחרות, פעולות ה-I/O איטיות ביותר. גם אם תוכנית מכילה מספר קטן מאוד של פעולות קלט/פלט, רוב הזמן שלוקח לתוכנית מוקדש לאותן פעולות קלט/פלט. לכן, שימוש בזמן סרק זה ואפשר לתוכנית אחרת להשתמש במעבד באותו זמן יגדיל את ניצול המעבד. ריבוי תכנות פותח בתחילה בסוף שנות החמישים כתכונה של מערכות הפעלה והיה בשימוש לראשונה במחשוב מיינפריים. עם הצגת טכנולוגיות זיכרון וירטואלי ומכונות וירטואליות, הוגבר השימוש בריבוי תכנות.
מהי מערכת שיתוף זמן?
שיתוף זמן, שהוצג בשנות ה-60, הוא שיתוף משאבי מחשוב בין מספר משתמשים בו-זמנית. במערכות שיתוף זמן, מספר מסופים מחוברים לשרת ייעודי יחיד בעל מעבד משלו. לפעולות/פקודות המבוצעות על ידי מערכת ההפעלה של מערכת שיתוף זמן יש טווח זמן קצר מאוד. לכן ה-CPU מוקצה למשתמשים בטרמינלים לפרק זמן קצר, ובכך משתמשת בטרמינל מקבלת תחושה שיש לה מעבד המוקדש לה מאחורי הטרמינל שלה. פרק הזמן הקצר שבו פקודה מבוצעת במערכת שיתוף זמן נקרא פרוסת זמן או קוונט זמן. עם התפתחות האינטרנט, מערכות שיתוף הזמן הפכו פופולריות יותר מאחר שחוות שרתים יקרות יכולות לארח מספר גדול מאוד של לקוחות החולקים את אותם משאבים. מאחר שהאתרים פועלים בעיקר בפרצי פעילות ואחריהם פרקי זמן סרק, זמן הסרק של לקוח אחד יוכל לשמש ביעילות את האחר, מבלי שאיש מהם ישים לב לעיכוב.
מה ההבדל בין מערכת ריבוי תכנות למערכת שיתוף זמן?
ההבדל העיקרי בין ריבוי תכנות לשיתוף זמן הוא שריבוי תכנות הוא ניצול יעיל של זמן ה-CPU, על ידי מתן אפשרות למספר תוכניות להשתמש ב-CPU בו-זמנית, אך שיתוף זמן הוא שיתוף של מתקן מחשוב על ידי מספר משתמשים שרוצים להשתמש באותו מתקן באותו זמן. כל משתמש במערכת שיתוף זמן מקבל טרמינל משלה ומקבל תחושה שהיא משתמשת במעבד לבד. למעשה, מערכות שיתוף זמן משתמשות בקונספט של ריבוי תכנות כדי לחלוק את זמן ה-CPU בין מספר משתמשים בו-זמנית.