שאלות לגבי חוטים

kand100

New member
שאלות לגבי חוטים

1. מתי כדאי להעדיף תוכנית מרובת תהליכים על פני תוכנית מרובת חוטים ? 2. האם זה נכון שכאשר החוט הראשי מת אז כל בניו מתים כי הזכרון נהרס (אבל אם אחד הבנים מת אז מערכת ההפעלה יודעת לא להרוס את הזכרון) ? תודה מראש !
 

vinney

Well-known member
כשהשאלה תלושה מההקשר, קשה לענות../images/Emo13.gif

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

Jonatan 44

New member
שאני אבין

חוטים הם שם ל-threads? חשבתי שבעברית זה נימים... עוד משהוא, גם כדי ליצור קשר בין תרד'ים צריך מנגנון IPC כמו pipes לדוג', לא?
 

kand100

New member
חוטים זה אכן threads

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

vinney

Well-known member
יש מלא סיבות

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