You are on page 1of 4

‫המכללת האקדמית יהודה ושומרון באריאל‬

‫מדעי המחשב‬
‫קורס‪ :‬מערכות הפעלה‬
‫מספר הקורס ‪2-7020510-1 :‬‬
‫סמסטר ב' מועד א' תשס"ח‬
‫המרצה‪ :‬ד"ר גורביץ אירינה‬
‫משך הבחינה‪ :‬שלוש שעות‬
‫חומר עזר‪ :‬רק דף העזר המצורף‬
‫בתום הבחינה יש למסור את מחברת הבחינה וטופס זה מצורפים יחדיו‪.‬‬

‫‪.1‬יש לענות בקצרה על שאלות הבאות ‪:‬‬


‫–מה המשמעות של מצב מושהה פעיל של תהליך ? לאלה‬
‫מצבים (ובאלו נסיבות) יכול לעבור התהליך ממצב זה ?‬
‫–זיכרון מחולק על פי מחיצות הבאות (‪: )partition‬‬
‫‪( 100K, 500K, 200K, 300K, 600K‬משמאל לימין)‪ .‬איך כל אחד‬
‫מהאלגוריתמים הבאים ‪ First-Fit, Best_Fit and Next-Fit :‬ממקם‬
‫את התהליכים בעלי גדלים הבאים ‪ .212K, 417K, 112K, 426K :‬איזה‬
‫מהאלגוריתמים הוא היעיל ביותר ?‬
‫–הסבר מה זה פסיקה ? מה השפעתן הפסיקות על ביצוע‬
‫מערכת ?‬
‫(‪ 15‬נקודות)‬
‫‪.2‬להלן קבוצת התהליכים אשר כולם מגיעים כל אחד בזמן אחר בסדר הבא‪:‬‬
‫‪( P2, P3, P4, P5 P1 ,‬משמאל לימין) עם המשך של ‪ CPU-burst‬במילישניות עבור כל אחד‬
‫ודרגת העדיפות (‪ priority – 1‬הכי גבוהה)‪:‬‬
‫‪process‬‬ ‫‪Burst‬‬ ‫‪Arrival‬‬ ‫‪priority‬‬
‫‪time‬‬ ‫‪time‬‬
‫‪P1‬‬ ‫‪3‬‬ ‫‪0‬‬ ‫‪3‬‬
‫‪P2‬‬ ‫‪6‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪2‬‬ ‫‪2‬‬
‫‪P4‬‬ ‫‪4‬‬ ‫‪4‬‬ ‫‪4‬‬
‫‪P5‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪1‬‬

‫יש לענות על שלוש שאלות הבאות‬


‫‪.1‬יש לשרטט את שלושה תרשימי ה‪ Grantt charts -‬המדגימים את ביצועם‬
‫התהליכים הנ"ל על פי שלושה אלגוריתמי התזמון הבאים‪,SRTF :‬‬
‫העדיפות ה‪.non-preemptive, RR ((q=2 -‬‬
‫‪.2‬מה הזמן ה‪ turnaround-‬של כל אחד מהתהליכים לכל אחד מהאלגוריתמים‬
‫מה‪ -‬א'‪.‬‬
‫‪.3‬מה הזמן ההמתנה (‪ )waiting time‬של כל אחד מהתהליכים לכל אחד‬
‫מהאלגוריתמים מה‪ -‬א'‪.‬‬
‫‪.4‬לאיזה אלגוריתם זמן ההמתנה הממוצע הוא הקצר ביותר ?‬
‫(‪ 20‬נקודות)‬
‫‪ .3‬להלן פתרון של הבעיה " ‪ 5‬פילוסופים " כאשר שניים מהם שמאליים (‬
‫‪ )philosopher_l‬ושלושה מהם ימניים (‪:)philosopher_r‬‬
‫‪;program dining philosophes‬‬
‫‪;)var fork: array[0..4] of semaphore (:=1‬‬
;i: integer
;)procedure philosopher_l (i: integer
begin
repeat
;think
;)wait(fork[(i+1) mod 5
;)]wait(fork[i
;eat
;)]signal(fork[i
;)signal(fork[(i+1) mod 5
;forever
;end

;)procedure philosopher_r (i: integer


begin
repeat
;think
;)]wait(fork[i
;)wait(fork[(i+1) mod 5
;eat
;)signal(fork[(i+1) mod 5
;)]signal(fork[i
;forever
;end
begin
parbegin
;)philosopher_l(0
;)philosopher_l(1
;)philosopher_r(2
;)philosopher_r(3
;)philosopher_r(4
.parend; end
.deadlock-‫האם בהרצת התכנית הנ"ל יכול להיווצר ה‬
)‫ נקודות‬15(
: ‫ נתון תצלום הבא של המערכת‬.4
Available
r1 r2 r3 r4
0 1 3 2
current allocation max demand still needs
process r1 r2 r3 r4 r1 r2 r3 r4 r1 r2 r3 r4
p1 2 1 0 2 2 4 1 2
p2 2 0 2 0 1 4 3 0
p3 0 0 0 0 0 1 0 1
p4 4 0 0 0 4 0 0 1
p5 3 3 3 4 3 4 4 4

still-‫ יש לחשב את הצרכים של כל אחד מהתהליכים ולהציג אותם כמטריצה ה‬.‫א‬


.needs
‫) ? מדוע‬not safe( ‫) או לא בטוח‬safe( ‫ האם מצבה הנוכחית של המערכת הוא בטוח‬.‫ב‬
?)‫(נמק‬
‫ג‪ .‬האם המערכת נמצאת כרגע במצב ה‪ ? deadlock -‬נמק‪.‬‬
‫ד‪ .‬בתנאי שתהליך ‪ p2‬דורש (‪ – )0 ,1 ,2 ,1‬משמאל לימין –האם הדרישה זו יכולה‬
‫להיענות מידית באופן בטוח‪ .‬נמק‪.‬‬
‫ה‪ .‬בתנאי שתהליך ‪ p3‬דורש (‪ – )0 ,1 ,1 ,0‬משמאל לימין – האם הדרישה תיענה‬
‫מידית? נמק‪.‬‬
‫(‪ 20‬נקודות)‬
‫‪ .5‬נתונה תכנית הבאה‬
‫‪<include <stdio.h#‬‬
‫‪<include <sys/types.h#‬‬
‫‪)(main‬‬
‫}‬
‫‪(if ))fork)((==0‬‬
‫‪;)"printf)"child\n‬‬
‫‪{ else‬‬
‫‪;)"printf)"parent\n‬‬
‫‪(if ))fork)((==0‬‬
‫‪;)"printf)"child \n‬‬
‫‪};)"else printf)"parent\n‬‬
‫‪} ;)"printf)"finish\n‬‬

‫א‪ .‬יש להריץ את התכנית (חובה להציג ולהסביר את שלבי ההרצה במפורט)‬
‫ב‪ .‬מה יוצג כפלט?‬
‫(‪ 15‬נקודות)‬

‫‪ .6‬את‪/‬ה נכנס‪/‬ת כרגע למערכת ‪ LINOX‬עם המספר המזהה שלך (תת‪-‬‬


‫תיקייה ‪ ,)user3‬כאשר המבנה של מערכת הקבצים מוצג להלן (כל‬
‫הקבצים צבועים באפור) ‪:‬‬

‫תאר‪/‬י את פעולתן של כל הפקודות הבאות (כולל את תוצאות של כל‬


‫הפקודה) ‪:‬‬
‫‪mkdir pictures‬‬ ‫‪.1‬‬
‫‪cp ../user2/pict/*.bmp pictures‬‬

‫‪cd prog.2‬‬
‫‪. *.* /cp ../../user2/prog‬‬
‫‪ls‬‬
‫‪. cd.3‬‬
‫‪ls –l|grep '^d'|wc –l‬‬

‫ושרטט‪/‬י את המבנה החדש שיתקבל לאחר ביצועיהן (לאחר כל שלושת‬


‫המשימות)‬
‫(‪ 15‬נקודות)‬

‫בהצלחה!‬

You might also like