תהליכון – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
JAnDbot (שיחה | תרומות)
מ בוט מסיר: ru משנה: fr, tr, zh
אין תקציר עריכה
שורה 1: שורה 1:
[[קובץ:Multithreaded process.svg|ממוזער|תהליך עם שני תהליכונים]]
[[קובץ:Multithreaded process.svg|ממוזער|תהליך עם שני תהליכונים]]
'''תהליכון''' (ב[[אנגלית]]: '''Thread of execution''', או בקיצור: '''Thread''') ולעתים '''חוט''', '''פתיל ריצה''' או '''נים''' הוא [[מבנה נתונים]] ב[[מדעי המחשב]] המשמש ב[[מערכת הפעלה|מערכות הפעלה]] כדי לתאר הקשר ריצה במרחב כתובות.
'''חוט''' (ב[[אנגלית]]: '''Thread of execution''', או בקיצור: '''Thread''') ולעתים '''חוט''', '''פתיל ריצה''' הוא [[מבנה נתונים]] ב[[מדעי המחשב]] המשמש ב[[מערכת הפעלה|מערכות הפעלה]] כדי לתאר הקשר ריצה במרחב כתובות.


מערכות הפעלה מודרניות מאפשרות לנהל במסגרת ריצה של [[תהליך (מדעי המחשב)|תהליך]] (Process) מספר תהליכונים הרצים במקביל במרחב כתובות אחד. במערכות אלו כל תהליך חדש מתחיל את ביצועו באמצעות 'תהליכון ראשי' אשר עשוי בהמשך ליצור תהליכונים נוספים. מנגנון הריצה באמצעות תהליכונים מאפשר לספק למשתמש במערכת ההפעלה מהירות תגובה ורציפות פעולה כאשר התהליך (יישום) מבצע כמה משימות במקביל.
מערכות הפעלה מודרניות מאפשרות לנהל במסגרת ריצה של [[תהליך (מדעי המחשב)|תהליך]] (Process) מספר תהליכונים הרצים במקביל במרחב כתובות אחד. במערכות אלו כל תהליך חדש מתחיל את ביצועו באמצעות 'תהליכון ראשי' אשר עשוי בהמשך ליצור תהליכונים נוספים. מנגנון הריצה באמצעות תהליכונים מאפשר לספק למשתמש במערכת ההפעלה מהירות תגובה ורציפות פעולה כאשר התהליך (יישום) מבצע כמה משימות במקביל.

גרסה מ־13:50, 19 באוגוסט 2010

תהליך עם שני תהליכונים

חוטאנגלית: Thread of execution, או בקיצור: Thread) ולעתים חוט, פתיל ריצה הוא מבנה נתונים במדעי המחשב המשמש במערכות הפעלה כדי לתאר הקשר ריצה במרחב כתובות.

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

ריצה במקביל

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

תקלות בתכנות מבוסס ריבוי תהליכונים

במערכות הפעלה המאפשרות ריבוי תהליכונים (Multithreading) בתהליך אחד, קיימת גישה חופשית של כל התהליכונים בתהליך לכל המידע במרחב הכתובות של אותו תהליך. מצב זה מאפשר למתכנת מערכות תוכנה המבוססות על ריבוי תהליכונים שיתוף מידע פשוט ומהיר בין התהליכונים, אך חושף את התהליך לתקלות העשויות לפגוע בפעולתו. דוגמה למצבים כאלו היא תחרות (Race conditions) בין התהליכונים העשויה לגרום לדריסת מידע לפרקים. כדי למנוע תופעות אלו, מספקות מערכות ההפעלה ושפות התכנות כלי סנכרון כדוגמת נעילה, סמפור וקטע קריטי. כלים אלו מאפשרים לתאם את הגישה למידע על ידי התהליכונים, אך עשויים בתורם להציב בעיות חדשות כדוגמת חבק (Deadlock) שבו שני תהליכונים נועלים כל אחד משאבים שהשני ממתין להם וכך לא מתקדמים לעולם.