פעולה חוסמת – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Shunram (שיחה | תרומות)
מאין תקציר עריכה
Yonidebot (שיחה | תרומות)
מ בוט החלפות: דוגמה; לעתים;
שורה 3:
חלק מהפעולות שתהליך מבצע מול [[מערכת הפעלה|מערכת ההפעלה]] הן פעולות חוסמות, ועל כן הפעלתן עלולה לגרום לתהליך כולו להיעצר עד שמערכת ההפעלה תחזיר את תוצאת הפעולה.
 
דוגמאדוגמה לפעולה חוסמת היא בקשת הנעילה של [[מנעול (מדעי המחשב)|מנעול]]. בקשת הנעילה לא תחזור עד שהנעילה תצליח, והנעילה לא תצליח עד שהמנעול יהיה פנוי לנעילה (כלומר לא יוחזק על ידי תהליך אחר). במקרה זה התהליך/תהליכון הנועל עלול להחסם לזמן רב.
 
== הימנעות מחסימה ==
לעיתיםלעתים קרובות, נרצה לבצע פעולה חוסמת אך לאפשר לתהליך להמשיך לרוץ ולא להיעצר עד שהתוצאה תחזור ממערכת ההפעלה. במקרה כזה ניתן לפצל מה[[תהליך (מדעי המחשב)|תהליך]] הראשי [[תהליכון]] שיפעיל את הפעולה החוסמת. במצב זה התהליכון נחסם אך התהליך הראשי לא נחסם וממשיך לרוץ.
דוגמאדוגמה למצב כזה נוכל לראות במימוש תוכנת [[צ'אט]] בסיסית שמאפשרת כתיבה וקריאה. כדי לקרוא מידע נכנס נבצע האזנה ל[[שקע (מדעי המחשב)|שקע]] (Socket). האזנה לשקע היא פעולה חוסמת שלא חוזרת עד שמתקבל בשקע מידע. כלומר אם נבחר להמתין להודעה נכנסת, לא נוכל לשלוח הודעה משלנו עד שתתקבל אצלנו הודעה. כדי לאפשר צ'אט אינטראקטיבי יותר, שמאפשר שליחת טקסט וקבלת טקסט כל הזמן ולא רק בתורות, נפצל את התהליך לתהליכון קורא ותהליכון כותב.
 
== ראו גם ==