Presentation is loading. Please wait.

Presentation is loading. Please wait.

מערכות הפעלה חזרה. מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה1.

Similar presentations


Presentation on theme: "מערכות הפעלה חזרה. מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה1."— Presentation transcript:

1 מערכות הפעלה חזרה

2 מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה1

3 מערכות הפעלה - שאלות חזרה3 (c) רסקין לאוניד 2005 שאלה1 LL(m){ m.flag[i]=1; return m; } CS(m,new){ int k; if (m.flags[i]==1){ for (k=0;k<n;k++) m.flags[i]=0; m=new; return SUCCESS; } return FAILURE; }

4 מערכות הפעלה - שאלות חזרה4 (c) רסקין לאוניד 2005 שאלה1 LL(m){ thread.ll = m.count; return m; } CS(m,new){ int k; if (m.count==thread.ll){ m.count++; m=new; return SUCCESS; } return FAILURE; }

5 מערכות הפעלה - שאלות חזרה5 (c) רסקין לאוניד 2005 שאלה 2

6 מערכות הפעלה - שאלות חזרה6 (c) רסקין לאוניד 2005 שאלה 2

7 מערכות הפעלה - שאלות חזרה7 (c) רסקין לאוניד 2005 שאלה 3 בכיתה דיברנו על מדיניות Least Recently Used)) LRU לפנוי דפים. קיימת מדיניות נוספת MRU (Most Recently Used) לפנוי הדפים. האם יתכן מצב בו מספר page faults במערכת יהיה קטן יותר אם המערכת פועלת לפי מדיניות הMRU, מאשר אם היא פועלת לפי מדיניות LRU. אם כן, תן דוגמה והסבר, אם לא הוכח.  במערכת עם זיכרון בגודל N דפים תוכנית שמבצעת לולאה הפונה ל 1N+ דפים.

8 מערכות הפעלה - שאלות חזרה8 (c) רסקין לאוניד 2005 שאלה 3 טענה : העתקת דף בגלל COW יקרה יותר( מבחינת הפעולות שנדרשת לבצע מערכת ההפעלה) מהעתקה רגילה. האם הטענה נכונה? הסבר.  הטענה נכונה. קיים overhead של סימון של הדף כ read only בשתי הטבלאות של התהליכים, טיפול ב page fault של גישה לכתיבה לדף שהוא read only, סימון הדף כ- writable לאחר ההעתקה. באיזה מקרים כדאי להשתמש במנגנון COW ? (רמז: משתמשים במנגנון זה ב Linux )  כאשר לא סביר שתהיה כתיבה לדף. לדוגמה במערכת Linux תהליך הנוצר ע"י fork בד"כ יבצע מיד קריאת exec.

9 מערכות הפעלה - שאלות חזרה9 (c) רסקין לאוניד 2005 שאלה 4 נתונה מערכת מחשוב מבוזרת – קבוצה של מחשבים עצמאיים המחוברים ברשת תקשורת. בכל אחד מהמחשבים רצים תהליכים שונים וישנם משאבים שונים, כאשר לכל משאב קיים עותק יחיד. כל תהליך יכול לבקש לעצמו הקצאות משאבים ללא הגבלה, כאשר המשאבים יכולים להמצא על אותו מחשב או על מחשב אחר מהקבוצה. במקרה של משאב מרוחק, נשלחת בקשה להקצאה/שחרור למערכת ההפעלה במחשב המרוחק עם זהות המחשב והתהליך המבקש וכן המשאב המיועד. הבעייה: יש לבנות אלגוריתם שיאפשר גילוי של קיפאון כתוצאה משימוש במשאבים בכל המערכת המבוזרת. הנחות:  ניתן להזניח את כל הבעיות הקשורות בתקשורת ברשת (אבדן הודעות וכו').  הודעות שנשלחות בין המחשבים מגיעות מיד (אפס זמן עיכוב) – ממש כאילו הן התבצעו בתוך המחשב המקומי.

10 מערכות הפעלה - שאלות חזרה10 (c) רסקין לאוניד 2005 שאלה 4 קבוצת סטודנטים בממ"ה ישבה ודנה בבעיה: קם עמיקם ואמר: "הפתרון פשוט – בכל מחשב נריץ אלגוריתם רגיל של גילוי פריקות לחלוטין בגרף ההקצאות. עם זאת, נשנה את האלגוריתם לבניית גרף ההקצאות באופן הבא: עבור כל מחשב אחר בקבוצה נוסיף שני צמתים לגרף – אחד עבור המשאבים ואחד עבור התהליכים באותו מחשב מרוחק. לצומת המשאבים של מחשב מרוחק יהיו אינסוף עותקים. כל בקשה להקצאה שנשלחת עבור תהליך במחשב הנוכחי למחשב מרוחק תוסיף קשת מהתהליך המבקש לצומת המשאבים של אותו מחשב. אם הבקשה מאושרת, הקשת תהופך. באופן דומה, כל בקשה שתגיע ממחשב מרוחק עבור משאב מקומי תוסיף קשת מצומת התהליכים של אותו מחשב למשאב המקומי. אם הבקשה תאושר, הקשת תהופך."

11 מערכות הפעלה - שאלות חזרה11 (c) רסקין לאוניד 2005 שאלה 4 האם ייתכן מצב בו האלגוריתם יגלה קיפאון במערכת המבוזרת כאשר אין קיפאון? הסבירו או תנו דוגמה נגדית.  יתכן P1 P2 R1 R2 P3

12 מערכות הפעלה - שאלות חזרה12 (c) רסקין לאוניד 2005 שאלה 4 האם ייתכן מצב בו האלגוריתם לא יגלה קיפאון קיים במערכת המבוזרת? הסבירו או תנו דוגמה נגדית.  יתכן P1 R1 R2 P3 R3 P2

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

14 מערכות הפעלה - שאלות חזרה14 (c) רסקין לאוניד 2005 שאלה 4 האם ייתכן מצב בו האלגוריתם יגלה קיפאון במערכת המבוזרת כאשר אין קיפאון? הסבירו או תנו דוגמה נגדית.  לא ייתכן. אם האלגוריתם יגלה מעגל מכוון (שמשמעותו קיפאון), פירוש הדבר שהמעגל מתקיים גם בהרכבה של כל הגרפים של ההקצאות יחד, מפני שלכל משאב יש עותק יחיד שמיוצג בנפרד גם במרוחק וכל תהליך מיוצג בנפרד גם כשהוא מרוחק.

15 מערכות הפעלה - שאלות חזרה15 (c) רסקין לאוניד 2005 שאלה 4 האם ייתכן מצב בו האלגוריתם לא יגלה קיפאון קיים במערכת המבוזרת? הסבירו או תנו דוגמה נגדית.  יתכן P1 R1 R2 P3 R3 P2

16 מערכות הפעלה - שאלות חזרה16 (c) רסקין לאוניד 2005 שאלה 4 אמר איתמר: "גם הפיתרון של ניצה עדיין לא מספיק. לדעתי, יש לבנות את גרף ההקצאות המקומי כפי שניצה הציעה מדי פרק זמן (אין צורך בתיאום עם המחשבים האחרים) ולהפיץ אותו לכל שאר המחשבים, ואחר-כך להריץ את אלגוריתם גילוי המעגלים המכוונים כאשר "מדביקים" את הגרף המקומי שחושב יחד עם הגרפים שהספיקו להתקבל בינתיים מהמחשבים האחרים."

17 מערכות הפעלה - שאלות חזרה17 (c) רסקין לאוניד 2005 שאלה 4 האם ייתכן מצב בו האלגוריתם יגלה קיפאון במערכת המבוזרת כאשר אין קיפאון? הסבירו או תנו דוגמה נגדית.  ייתכן. בעקבות גרף לא מעודכן של ההקצאות במחשב אחר, ייתכן שהאלגוריתם יגלה מעגל כמו בדוגמה בתשובה 2, למרות שאין מעגל כזה. לפיכך, קיפאון "רגעי" יכול להתגלות.

18 מערכות הפעלה - שאלות חזרה18 (c) רסקין לאוניד 2005 שאלה 4 האם ייתכן מצב בו האלגוריתם לא יגלה קיפאון קיים במערכת המבוזרת? הסבירו או תנו דוגמה נגדית.  לא ייתכן. קיפאון הוא תכונה יציבה, כלומר, מרגע שהוא נוצר, הוא מתקיים לתמיד. לפיכך, בנקודה מסוימת יכילו כל הגרפים של ההקצאות את כל מרכיבי הקיפאון והוא יתגלה.

19 מערכות הפעלה - שאלות חזרה19 (c) רסקין לאוניד 2005 שאלה 4 האם ניתן לשפר את אלגוריתם "איתמר"? אם כן, הציעו שיפור מתאים.  דרוש שיפור נוסף והוא במקרה של גילוי קיפאון מבוזר לחכות לקבלת גרפים מעודכנים מהמחשבים המשתתפים בקיפאון כדי להקטין את התופעה של גילוי "רגעי".

20 מערכות הפעלה - שאלות חזרה20 (c) רסקין לאוניד 2005 שאלה 5 נתבונן במערכת עם N חוטים וכ"א רץ על מעבד שונה. לכל חוט ID שונה בתחום N..1. ישנו משתנה גלובלי global שמאותחל ל-0. כל חוט בודק ערכו של global ואם הוא 0 הוא כותב ID לתוכו. נתון קוד שפותר את הבעיה: Wait(Sem); If (global==0) global = ID; Signal(Sem); מה יכול לקרות עם מעבד יחיד נופל?  אם הוא מחזיק את הסמפור יווצר deadlock הצע פתרון בעזרת LL & SC.  If (LL(global)==0) SC(global, ID);

21 מערכות הפעלה - שאלות חזרה21 (c) רסקין לאוניד 2005 שאלה 6 מריצים אתה קוד הבא.  הניחו שברירת מחדל של טיפול בסיגנל 10 הינה הדפסת ERROR. בנוסף הניחו שקריאות מערכת הפעלה לא נכשלות. אם לפני ביצוע execv() ע"י בן הוא יקבל סיגנל 10 מה יודפס? אם אחרי ביצוע execv() ע"י בן הוא יקבל סיגנל 10 מה יודפס? אם אחרי ביצוע execv() ע"י בן האב יקבל סיגנל 10 מה יודפס? void catcher() { printf("hello\n"); exit(0); } main() { signal(10,catcher); if (fork()==0) { execv("…."); } else…. {

22 מערכות הפעלה - שאלות חזרה22 (c) רסקין לאוניד 2005 שאלה 7 בשאלה זו הניחו שכל התהליכים ניגשים לדפים זרים. רוצים לתת ל-Super User שליטה על מנגנון הדפדוף. לכן reference יהיה לא בוליאני אלא מספר אי שלילי. כל גישה מגדילה אותו ב-1. בנוסף נגדיר שדה age. Swapper כל הריצה שלו יעבור על כל הדפים ויחשב את הגיל שלהם: ויאפס את שדה ה-reference. דפים נכנסים לזיכרון עם reference=age=0 ומוכנסים ל-active list. דפים עם age הכי גבוה מועברים ל-inactive list. Super User שולט על ו-

23 מערכות הפעלה - שאלות חזרה23 (c) רסקין לאוניד 2005 שאלה 7 עבור האם המדיניות היא LRU?  לא. למשל עבור גישות הבאות AAB. עבור האם אלגוריתם דפדוף הינו מחסנית? לצורך פשטות הניחו שבכל פעם שרוצים להביא דף מריצים את swapper.  האלגוריתם הינו FIFO. מההרצאות ידוע ש-FIFO אינו מחסנית.


Download ppt "מערכות הפעלה חזרה. מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה1."

Similar presentations


Ads by Google