You are on page 1of 7

‫‪20/7/2022‬‬

‫מערכות הפעלה‬
‫‪10-4080022-20‬‬
‫‪10-4080022-21‬‬
‫מועד ב'‬
‫ד"ר אליאב מנשה‬
‫תשפ״ב סמסטר ב'‬

‫מחשבון‪ ,‬דף נוסחאות ‪ A4‬אחד כתוב משני הצדדים‪.‬‬ ‫חומר עזר ‪-‬‬
‫הוראות לנבחן‬
‫‪ .1‬כתבו בכתב יד ברור ומסודר‪.‬‬
‫‪ .2‬פרטו כל שלב בפתרון‪.‬‬
‫‪ .3‬נדרש להגיש גם את טופס הבחינה וגם את המחברת שקיבלתם‪.‬‬
‫‪ .4‬במידה ויש מקום לפתרון יש לכתוב אותו בטופס הבחינה‪.‬‬

‫בהצלחה !‬ ‫השאלון מכיל ‪ 8‬דפים (כולל דף זה)‪.‬‬


‫========================================‬

‫‪1‬‬
‫(‪15‬נקודות) נתון ה‪ Resource Allocation Graph -‬הבא‪:‬‬ ‫‪.1‬‬

‫האם המערכת נמצאת בדדלוק? הוכח את טענתך‪.‬‬

‫(‪ 15‬נקודות) במערכת מחשב עם ‪ CPU‬אחד ישנם ‪ 3‬תהליכים עם מאפייני הריצה הבאים‪:‬‬ ‫‪.2‬‬
‫תהליך ‪ A‬רץ במשך ‪ 3‬מילישניות‪ ,‬לאחר מכן יוצא ל‪ I/O -‬למשך ‪ 4‬מילישניות‪ ,‬לאחר מכן‬ ‫‪‬‬
‫רץ ‪ 2‬מילישניות ואז מבצע ‪.terminate‬‬

‫תהליך ‪ B‬רץ במשך ‪ 1‬מילישניות‪ ,‬לאחר מכן יוצא ל‪ I/O -‬למשך ‪ 3‬מילישניות‪ ,‬לאחר מכן‬ ‫‪‬‬
‫רץ ‪ 2‬מילישניות ואז מבצע ‪.terminate‬‬

‫תהליך ‪ C‬רץ במשך ‪ 2‬מילישניות‪ ,‬לאחר מכן יוצא ל‪ I/O -‬למשך ‪ 4‬מילישניות‪ ,‬לאחר מכן‬ ‫‪‬‬
‫רץ ‪ 1‬מילישניות ואז מבצע ‪.terminate‬‬

‫תהליך ‪ A‬נכנס למערכת בזמן ‪ .0‬תהליך ‪ B‬נכנס למערכת בזמן ‪ .1‬תהליך ‪ C‬נכנס למערכת בזמן ‪.2‬‬
‫הנח שאם שני תהליכים צריכים להיכנס לתור בו זמנית‪ ,‬אז קודם יכנס לתור התהליך החדש ורק‬
‫אחריו יכנס התהליך שכבר קיים במערכת‪ .‬הנח כי הזמן בפועל שלוקח לתהליך הוא בדיוק הזמן‬
‫הרשום בשאלה‪ ,‬ללא קשר למה שקורה במקביל במערכת (התעלם מזמן ה‪.)context switch -‬‬

‫(‪ 5‬נק׳) מהו ה‪average waiting time -‬במערכת כאשר משתמשים באלגוריתם ‪?FCFS‬‬ ‫א‪.‬‬

‫(‪ 10‬נק׳) מהו ה‪ ,average waiting time -‬במקרה שהמערכת משתמשת במנגנון ‪MLFQ‬‬ ‫ב‪.‬‬
‫‪ scheduler‬עם שלוש רמות העובדות עם ‪ quantum time‬של ‪ 2 ,1‬ו‪.)preemptive( 4 -‬‬

‫‪2‬‬
:‫ נק) התבונן בקטע קוד הבא‬15( .3
:‫ ומאותחלים באופן הבא‬,N-1 ‫ עד‬0-‫ מוגדרים כמערכים בוליאניים מ‬T,B ‫משתני האלגוריתם‬

i, T[i] = false, B[i] = true ‫לכל‬


value = 3 :‫ המאותחל כך‬integer ‫ מסוג‬value ‫בנוסף קיים משתנה גלובלי נוסף‬
.‫ מתבצעות באופן אטומי‬wait -‫ ו‬signal ‫הפעולות‬

:i ‫הקוד הנ״ל הוא עבור תהליך‬

wait(i){
if((T[i] == false) && (B[i] == true)){
value--
}
if (value<0){
T[i] = true
}else{
B[i] = false
}
}

signal(i){
value++
B[i] = true
if (value <= 0){
int j=0
for(j=0;T[j]==false;j++){
}
T[j] = false
B[j] = false
}
}

//To enter Critical Section Process i performs the following code


while (B[i] == true) wait(i)

//CS

signal(i)

3
‫(‪ 5‬נק) הסבר איזו בעיה הקוד הזה פותר אם בכלל?‬ ‫א‪.‬‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫(‪ 10‬נק) יוסי שינה את ערך ה‪ value -‬באתחול מ‪ 3 -‬ל‪ ,1 -‬חבר שלו דני טוען שהקוד‬ ‫ב‪.‬‬
‫לאחר העדכון של יוסי אינו עונה על כל הדרישות עבור פתרון תקין של קטע קוד קריטי‬
‫עבור ‪ N‬תהליכים הרצים במקביל‪ ,‬האם דני צודק או לא? הסבר‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫____________________________________________________________‬

‫‪4‬‬
‫(‪ 10‬נק׳) להלן שני תהליכים (‪ )processes‬הרצים במקביל‪:‬‬ ‫‪.4‬‬

‫‪Process 1:‬‬
‫{)‪for (i=0 ; i<5 ; i++‬‬
‫;‪y=y+1‬‬
‫}‬

‫‪Process 2:‬‬
‫{)‪for(j=0 ; j<10 ; j++‬‬
‫;‪y=y+5‬‬
‫}‬

‫הניחו כי במערכת מעבד יחיד‪ ,‬וכי משתנה ‪ y‬משתנה משותף לשני התהליכים והוא מאותחל ל ‪.0‬‬
‫במידה והפעולה “‪ ”;y=y+1‬הינה פעולה אטומית וכל שאר הפעולות בקוד הן לא פעולות אטומיות‪,‬‬
‫מהם הערכים הסופיים ש – ‪ y‬יכול לקבל? (הערה‪ :‬בתשובה יש להתייחס לערך האפשרי‬
‫המינימלי והמקסימלי)‬
‫ערך מקסימלי‪___________________ :‬‬ ‫‪‬‬
‫ערך מינימלי‪____________________ :‬‬ ‫‪‬‬

‫(‪ 5‬נק) בקשות קריאה מהדיסק מגיעות ל‪ disk driver -‬עבור ‪:cylinders‬‬ ‫‪.5‬‬
‫‪( 76 ,12 ,80 ,4 ,40 ,44 ,20‬על‪-‬פי סדר משמאל לימין)‪ .‬בדיסק ‪ 120‬צילינדרים (‪)0-119‬‬
‫והראש נמצא כרגע מעל צילינדר ‪ 70‬ונע לכיוון ‪ .cylinder 0‬מהו המרחק (מספר הצילינדרים)‬
‫שתצטרך הזרוע לעבור‪ ,‬בהנחה שהאלגוריתם בו עושים שימוש הוא ‪?C-Look‬‬

‫תשובה‪_______________:‬‬

‫‪5‬‬
‫(‪ 10‬נק׳) מערכת ‪ paging‬משתמשת ב ‪ frame‬בגודל של )‪ .4KB (4096‬להלן ה‪page-‬‬ ‫‪.6‬‬
‫‪ tables‬ו‪ TLBs‬של תהליך במערכת‪:‬‬

‫תרגמו את הכתובת הלוגית ‪ 3300‬לכתובת פיזית וחשבו את כמות הגישות לזיכרון (‪.)RAM‬‬

‫הכתובת הפיזית המתאימה‪____________:‬‬ ‫א‪.‬‬


‫מספר גישות לזיכרון‪___________:‬‬ ‫ב‪.‬‬

‫(‪ 5‬נק׳) נתונה סדרת הקריאות הבאה ל – ‪ PAGES‬של תהליך מסוים (משמאל לימין)‪:‬‬ ‫‪.7‬‬
‫‪1,5,4,2,0,1,3,2,3,4,3,5,1,2,5‬‬
‫במקרה שלתהליך זה מוקצים ‪ ,FRAMES 4‬כמה ‪ PAGE FAULTS‬יהיו אם ההחלפות‬
‫מתבצעות על‪-‬פי האלגוריתם ‪?LRU‬‬

‫תשובה‪_______________:‬‬

‫(‪ 5‬נק׳) איזה מהטיעונים הבאים לגבי שחלוף (‪ )Swapping‬וכיווץ (‪ )Compaction‬בזיכרון‬ ‫‪.8‬‬
‫ממשי נכון?‬

‫אין טעם לתמוך‪ ,‬באותה מערכת‪ ,‬הן בכיווץ והן בשחלוף‪.‬‬ ‫א‪.‬‬
‫כדאי לבצע את ההעתקה לצורך כיווץ ע"י יחידת בקר עצמאית כמו ‪.DMA‬‬ ‫ב‪.‬‬
‫התוכנית שהוחלפה תוחזר תמיד לאותו מקום בזיכרון‪.‬‬ ‫ג‪.‬‬
‫כדאי לבצע את ההעתקה לצורך שחלוף ע"י יחידת בקר עצמאית כמו ‪.DMA‬‬ ‫ד‪.‬‬

‫‪6‬‬
‫(‪ 5‬נק׳) האם תיתכן מקביליות אמיתית ( ‪ )True Concurrency‬במחשב בעל מעבד אחד (‬ ‫‪.9‬‬
‫‪?)Uniprocessor‬‬

‫כן‪.‬‬ ‫א‪.‬‬
‫לא‪ ,‬זוהי אשליה הנוצרת בגלל פער המהירות בין פעולות ‪ IO‬לבין מהירות מעבד‪.‬‬ ‫ב‪.‬‬
‫לא‪ ,‬המקביליות המדומה מתאפשרת בגלל היכולת לשחזר בדיוק מחדש תהליך שהופסק‬ ‫ג‪.‬‬
‫זמנית‪.‬‬
‫לא‪ ,‬כי המעבד יכול לשרת רק תהליך אחד בכל "רגע"‪.‬‬ ‫ד‪.‬‬

‫(‪ 5‬נק) כאשר מערכת מחשב נמצאת במצב של ‪ ,trashing‬אילו פעולות יש לבצע במערכת כדי‬ ‫‪.10‬‬
‫לצאת ממצב זה?‬
‫הקטנת מספר התהליכים הנמצאים ב‪ready queue -‬‬ ‫א‪.‬‬
‫הגדלת מספר התהליכים הנמצאים ב‪ready queue -‬‬ ‫ב‪.‬‬
‫הגדלת ה‪ quantum -‬ב‪Round Robin -‬‬ ‫ג‪.‬‬
‫הקטנת ה‪ quantum -‬ב‪Round Robin -‬‬ ‫ד‪.‬‬

‫(‪ 5‬נק) איזה משיטות הזימנון (‪ )Scheduling‬הבאות סובלת מאפקט השיירה (‪Convoy‬‬ ‫‪.11‬‬
‫‪?)Effect‬‬

‫)‪.FCFS (First Come First Serve‬‬ ‫א‪.‬‬


‫)‪.SRTF (Short Remaining Time First‬‬ ‫ב‪.‬‬
‫זימנון מעגלי (‪.)Round Robin‬‬ ‫ג‪.‬‬
‫כל אלגוריתמי הזימנון עם לקיחה בכוח (‪.)Preemptive‬‬ ‫ד‪.‬‬

‫(‪ 5‬נק) במרחב זיכרון וירטואלי של ‪ 16‬סיביות‪ ,‬גודל הדף הוא ‪ 8192‬בתים‪ .‬כמה דפים ישנם?‬ ‫‪.12‬‬
‫ואיך הם ממוספרים?‬

‫‪ 16‬דפים ממוספרים ‪.0-15‬‬ ‫א‪.‬‬


‫‪ 8‬דפים ממוספרים ‪.1-8‬‬ ‫ב‪.‬‬
‫‪ 8‬דפים ממוספרים ‪.0-7‬‬ ‫ג‪.‬‬
‫‪ 16‬דפים ממוספרים ‪.1-16‬‬ ‫ד‪.‬‬
‫אף תשובה לא נכונה‪.‬‬ ‫ה‪.‬‬

‫‪7‬‬

You might also like