שאלה על fork

vasermann

New member
שאלה על fork

אני מנסה את מזלי גם בפורום הזה (אם ויני לא מתנגד כמובן...) נתקלתי בבחינה בשאלה הבאה: איזו מהטענות הבאות נכונות: א. במערכת הפעלה UNIX הקריאה ל-fork משכפלת את ה-file descriptors של הקבצים הפתוחים. ב. במערכת הפעלה UNIX הקריאה ל-exec משכפלת את ה-file descriptors של הקבצים הפתוחים. ג. במערכת הפעלה UNIX הקריאה ל-fork גורמת לשכפול של כל הזכרון של התהליך. ד. במערכת הפעלה UNIX הקריאה ל-exec גורמת לשכפול של כל הזכרון של התהליך. לדעתי התשובה הנכונה היא ג', אולם לדעת המרצה התשובה היא א'. מי לדעתכם צודק? תודה מראש לעונים!
 

vicz

New member
שונאת את תפוז!!!!!!

חיפשתי בחומר לימוד, כתבתי הודעה ארוכה ומושקעת, עם ציטוטים מהספר וזה נמחק!!!!!!!!!!!!!!!!!!!!! אני אסכם בקצרה כי האורחים עוד מעט מגיעים. הפקודה fork מעתיקה את סגמנט הערימה והמחסנית, אך האב והבן חולקים את סגמנט הטקסט. לכן לא ניתן לטעון שכל הזיכרון מעותק. מצד שני, בין השאר מועתקים file descriptors לכן תשובה א' נכונה. סורי.
 

vasermann

New member
איזה אורחים?

ליומולדת? ותודה לשניכם, למרות שבניתי על 5 נק' נוספות...
 

vasermann

New member
אבל, אבל, אבל!

בספרו של סטיבנס כתוב: the child is a copy of the parent...often they share the text segment, if it is read only ואני מבין מכך שלפעמים זהו העתק מדויק ולפעמים הם חולקים את מקטע הטקטס. נראה לי שאין לי מה להפסיד אם אערער בכל-זאת, נכון? ומזל טוב
 

vicz

New member
תנסה

המבחן אמריקאי כך שאין סיכוי שבדיקה נוספת תוריד לך נקודות. אגב, כמה קיבלת?
 

vinney

Well-known member
נו אז זה די הורס לך את הסיכויים

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

mazory

New member
מה שקורה...

מה שקורה זה שכל עוד אין שינוי במקטע הטקסט אז הם חולקים אותו והוא לא מועתק. ברגע שיש שינוי אז כמובן שהוא מועתק כי כל אחד מהתהליכים עובד על סגמנט אחר. זה נקרא COPY ON DEMAND, וזה נחשב TRADEOFF טוב בקונטקסט הזה של תהליכים (חוסכים בחלק מהעתקות, לעומת זאת כשיש בה צורך, ההעתקה עצמה מתבצעת בזמן ה-EXEC ואז ריצת התהליך מתעכבת מעט..)
 
למעלה