אנשי מיקרוסופט מבינים משהו בריבוי משימות?

לכאורה מגייסת מיקרוסופט את אנשי הפיתוח הטובים ביותר בעולם. למה לא לשאול אותם אם הם מבינים משהו בריבוי משימות, לפני שמעסיקים אותם?

ג'ון דבורק, PC Magazine פורסם: 11.12.06, 14:31

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

 

הבעיה פשוטה: מיקרוסופט מעולם לא הצליחה ליישם ריבוי משימות כמו שצריך. מערכת ההפעלה לא יודעת מה לתעדף ותמיד בוחרת באופן שגוי.

 

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

 

מערכת ההפעלה Windows רואה בכל העברה של תיקייה בודדת - משימה נפרדת (לא בתבונה יתרה). אם מדובר בקבצים גדולים - כדאי שתשריינו לילה מראש.

 

Windows לא מעריכה

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

 

Windows רחוקה עד כדי גיחוך מהערכה ריאלית של הזמן הדרוש. לעיתים Windows מקדישה דקות שלמות רק לצורך "הכנת" קובץ לשם העתקתו. מה בדיוק היא בודקת? את גודלו? את מיקומו? לא ברור לי מה היא עושה בזמן היקר הזה. מה שבטוח - מה שבאמת חשוב למשתמש לא מקבל מענה.

 

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

 

הודעת שגיאה באיחור של שעתיים היתה יכולה להימנע לו מערכת ההפעלה היתה בודקת מבעוד מועד בעיות אפשריות, למשל בעת "הכנת" הקובץ להעתקה.

 

רשימת התלונות אינסופית. אני לא מאמין שביל גייטס, סטיב באלמר ושאר החבר'ה לא היו מבחינים באווילויות אלה בעת שימוש שגרתי במערכת ההפעלה. לכן אני תוהה אם בכירי מיקרוסופט אכן משתמשים במחשבים.

 

רק קצה הקרחון

כשל ריבוי המשימות בהעברת קבצים הוא רק קצה הקרחון. Windows מחסירה פעימות ועוצרת משימות בפתאומיות כה רבה, עד כדי כך שאני חושד שאני תוהה אם במיקרוסופט יודעים בכלל איך ליישם ריבוי משימות. מערכת ההפעלה OS/2 היתה טובה יותר בהקשר זה. אמיגה היתה טובה הרבה יותר. לכאורה מגייסת מיקרוסופט את אנשי הפיתוח הטובים ביותר בעולם. למה לא לשאול אותם אם הם מבינים משהו בריבוי משימות, לפני שמעסיקים אותם?

 

למה אין למשתמש אפשרות לתעדף את המשימות שיבוצעו במקביל? מקרה לדוגמה: אתם יושבים בנחת מול מעבד התמלילים, ומקישים על אחד המקשים. באותו רגע מחליטה אחת התוכנות שרצות ברקע "להתקשר הביתה", ואז אתם מבלים את זמנכם בטעינה איטית של הנפשת פלאש קופצנית.

 

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

 

אחת הדוגמאות החביבות עלי מגיעה מעולם היישומים שמטפלים בתמונות. יש לי קובץ JPEG מסיבי אותו רציתי לסובב ב-180 מעלות (כי הוא צולם במהופך). כדי להשלים את המטלה אני צריך ללכת לישון 8 שעות ולקוות שהמחשב לא החליט "לעצור הכל" כדי לשאול אותי שאלת כן-לא טיפשית באמצע התהליך. בעיה זו היא סימפטום של ליקויים ביכולת מערכת ההפעלה לנהל ריבוי משימות.

 

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