Timeout (מחשב)
במחשבים, לרבות בתקשורת מחשבים, timeout הוא מצב בו פרק זמן מסוים חלף מאז החלה מדידת שעון. השימוש במנגנוני timeout מתחלק לשתי גישות שונות:
- מדידת זמן שמוקצה לביצוע פעולות כלשהן, ויש להפסיקן עם קבלת timeout או לפני כן אם יתקבל אות מתאים. לדוגמה, סדרן תוכניות מקצה פרק זמן מסוים לשימוש במעבד לכל תהליך או תהליכון. בסוף פרק זמן זה מתקבל timeout ואז מוחלף התהליך/תהליכון באחד אחר על ידי החלפת הקשר. כמו כן, עוד בטרם קבלת אות timeout, עלולה להתקבל פסיקה ואז תתבצע החלפת ההקשר מוקדם מהצפוי.
- מדידת זמן בו ממתינים לאירוע שיתרחש, ובמידה ולא התרחש עד שהתקבל אות timeout - אזי נבצע פעולה שהוגדרה מראש. לדוגמה, בתקשורת מחשבים תבוצע שליחה חוזרת של חבילת מידע אם לא התקבל אישור על קבלתה תוך פרק זמן סביר.
הצורך ב- timeout בפרוטוקולי תקשורת
[עריכת קוד מקור | עריכה]ערוצי תקשורת מעליהם פועלים פרוטוקולי תקשורת, לא יכולים להבטיח שמידע שנשלח מתחנה אחת, יגיע תקין, או יגיע בכלל לתחנת היעד. כמו כן רשתות תקשורת הן דינמיות, ובכל רגע תחנות יכולות להתנתק מהרשת (למשל עקב תקלה טכנית או אפילו כיבוי יזום של המחשב). כדי להתגבר על מכשולים אלו ולהעביר מידע באופן אמין, פרוטוקולים רבים נוהגים לאשר קבלת מידע תקין. אישור כזה מתבצע על פי רוב על ידי שליחה חזרה של אות אישור, שנקרא לרוב Ack. עם כל שליחה של חבילת מידע מתחנת מקור ליעד, תחנת המקור מתחילה למדוד את פרק הזמן שעבר מהשליחה. אם התקבל timeout לפני שהתקבל אישור על קבלתה - אזי תחנת המקור מניחה שהחבילה אבדה בדרך ליעד, או שנפגמה, ומבצעת שליחה חוזרת של אותה חבילה.
לעיתים קרובות פרק הזמן שמוקצה בפרוטוקולי תקשורת בטרם נקבע timeout הוא דינמי ונקבע באופן אוטומטי על ידי נתבים כדי להתאים עצמו לאופי הרשת. מהירות העברת מידע ברשת תקבע את אורך השעון. פרק זמן קצר מדי עלול לגרום לחבילות מידע להשלח שוב, למרות שאלו כן התקבלו כראוי ובכך לגרום לחוסר יעילות. פרק זמן ארוך מדי מהווה בזבוז זמן - שכן ניתן היה להבין שחבילות אבדו ולשלוח אותן מחדש מוקדם יותר.