תהליכים ותהליכונים בווינדוס מוסברים¶
פתחתם פעם את מנהל המשימות בגלל שהמחשב נתקע, והתחלתם לגלול ברשימת "תהליכים" בלי ממש להבין מה אתם רואים? זה בסדר, רוב האנשים לא מבינים. אבל אם אתם רוצים להבין איך ווינדוס באמת מריץ תוכנות, ההבדל בין תהליך לתהליכון הוא נקודת ההתחלה הכי חשובה.
מה זה תהליך - process¶
תהליך הוא בעצם תוכנית שרצה. כשאתם פותחים את כרום, ווינדוס יוצר תהליך חדש בשביל כרום. לכל תהליך יש מרחב זיכרון משלו, שהמערכת דואגת שאף תהליך אחר לא יוכל לגעת בו בלי אישור. זו בדיוק הסיבה שאם כרום קורס, זה בדרך כלל לא מפיל את שאר התוכנות שרצות - הן מבודדות אחת מהשנייה.
לכל תהליך יש גם מזהה ייחודי שנקרא PID, שאותו אפשר לראות במנהל המשימות בלשונית "פרטים".
מה זה תהליכון - thread¶
בתוך כל תהליך, יש לפחות תהליכון אחד שמבצע את הפעולות בפועל. תהליכון הוא בעצם רצף ההוראות שהמעבד מריץ. תהליך יכול להכיל תהליכון בודד, אבל רוב התוכנות המודרניות מריצות הרבה תהליכונים במקביל בתוך אותו תהליך.
לדוגמה, בכרום עצמו, תהליכון אחד יכול לטפל בציור המסך בזמן שתהליכון אחר טוען תוכן מהרשת. זו הסיבה שדפדפן יכול להמשיך להגיב גם כשעמוד אחד נתקע בטעינה.
ההבדל המרכזי בין תהליך לתהליכון הוא הבידוד. תהליכונים בתוך אותו תהליך חולקים את אותו מרחב זיכרון, מה שהופך את התקשורת ביניהם למהירה, אבל גם פותח את הדלת לבאגים עדינים אם שני תהליכונים מנסים לגעת באותו מידע בו-זמנית.
איך רואים את זה בפועל¶
מנהל המשימות של ווינדוס נותן הצצה בסיסית - כמות ה-CPU, זיכרון, ומספר התהליכים הפעילים. אבל אם אתם רוצים לראות באמת כמה תהליכונים רצים בתוך כל תהליך, כדאי להכיר את Process Explorer, כלי חינמי של מיקרוסופט שנותן תמונה הרבה יותר מפורטת - כולל עץ שלם של תהליכי אב וילד, ורשימת התהליכונים שרצים בכל תהליך.
למה ווינדוס בכלל צריך לנהל את זה¶
מערכת ההפעלה אחראית על תזמון (scheduling) - היא מחליטה איזה תהליכון ירוץ על המעבד ובאיזה רגע, כי בפועל למעבד יש מספר מוגבל של ליבות, אבל יכולים לרוץ מאות תהליכים במקביל. ווינדוס מחליף בין תהליכונים במהירות כזו שנדמה לנו שהכל קורה בו-זמנית, גם אם בפועל יש רק כמה ליבות פיזיות.
זה גם אחראי לתעדף - תהליכים שמריצים חלון פעיל שאתם עובדים איתו מקבלים בדרך כלל עדיפות גבוהה יותר, כדי שהמערכת תרגיש רספונסיבית.
למה זה חשוב למי שלא מתכנת¶
גם אם אתם לא כותבים קוד, הבנה בסיסית של תהליכים עוזרת לכם לאבחן בעיות. תוכנה שתקועה בדרך כלל נראית במנהל המשימות כתהליך שצורך אחוזי מעבד גבוהים בלי סיבה, או תהליך שלא מגיב. וכשאתם רואים כמה תהליכי כרום נפתחים בכל פעם שאתם פותחים לשונית חדשה, עכשיו אתם מבינים למה - כרום פשוט משתמש בתהליכים נפרדים לכל לשונית בדיוק בשביל אותו בידוד שדיברנו עליו.
מי שרוצה להבין את ווינדוס לעומק, לא רק כמשתמש אלא כמי שיודע איך המערכת עובדת מבפנים, מוזמן להתחיל מהיסודות בקורס שלנו: קורס ווינדוס בסיסי.
יש לכם שאלה על תהליך ספציפי שאתם רואים אצלכם במחשב, או שאתם רוצים להעמיק בנושא תזמון? בואו נדבר על זה בקהילה.