בחן במערכות הפעלה

מסמכים קשורים
בחן במערכות הפעלה

Comp. Arch. Lecture 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

Microsoft Word - c_SimA_MoedB2005.doc

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

מקביליות

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

הגשה תוך שבוע בשעת התרגול

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

מהוא לתכנות ב- JAVA מעבדה 3

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

שאלהIgal : מערכים דו מימדיים רקורסיה:

מערכות הפעלה

מקביליות

סדנת תכנות ב C/C++

מבוא למדעי המחשב

מבוא לתכנות ב- JAVA תרגול 7

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

תרגול 1

Slide 1

מבוא למדעי המחשב - חובלים

Microsoft Word B

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

Slide 1

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

מבוא למדעי המחשב - חובלים

Slide 1

ex1-bash

PowerPoint Presentation

PowerPoint Presentation

הגשה תוך שבוע בשעת התרגול

PowerPoint Presentation

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

מבוא לתכנות ב- JAVA תרגול 11

Slide 1

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

Microsoft Word - Ass1Bgu2019b_java docx

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

מבוא לאסמבלי

מקביליות

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

PRESENTATION NAME

Microsoft Word - c_SimA_MoedA2006.doc

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

234114

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

Microsoft PowerPoint - rec3.ppt

Microsoft Word - ExamA_Final_Solution.docx

Microsoft PowerPoint - L01-n.ppt

מבוא למדעי המחשב

מערכות הפעלה

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 10_threads.ppt

Slide 1

מבוא למדעי המחשב

תאריך הבחינה 30

Microsoft PowerPoint - rec1.ppt

תרגול 3 - מערכים

מבנה מחשבים ספרתיים

תורת הקומפילציה

תרגיל בית מספר 1#

PowerPoint Presentation

Slide 1

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

תרגיל בית מספר 1#

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

מצגת של PowerPoint

שעור 6

מבוא למדעי המחשב

מספר נבחן / תשס"ג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר

Homework Dry 3

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

Microsoft Word - Sol_Moedb10-1-2,4

Microsoft PowerPoint - lecture4_handnotes_2013_2.ppt [Compatibility Mode]

מערכות הפעלה

Microsoft Word - 28

תמליל:

אוניברסיטת בן-גוריון בנגב, המחלקה למדעי המחשב מועד א' במערכות הפעלה מרצים: איתי דינור, דני הנדלר ומרינה קוגן-סדצקי. מתרגלים: אור דינרי, מתן דרורי, סימיון נוביקוב, צחי ספורטה, עמית פורטנוי וירין קופר. ענו על כל השאלות: סה"כ 100 נקודות. תאריך הבחינה: 24 ביוני, 2019 שם הקורס: מערכות הפעלה מספר הקורס: 20213031 שנה: 2019, סמסטר: ב', מועד: משך הבחינה: שלוש שעות חומר עזר: אסור א' 1. מערכות קבצים )25 נקודות( )10 נק'( שלומציונה טוענת שהרצת התוכנית המוצגת להלן תגרום ל-.run-time error לעומתה, זרובבל טוען שהתוכנית תסתיים באופן תקין. מי מהם צודק ומה יהיה תוכנו של הקובץ a.txt אחרי סיום הריצה? נמקו במדויק ובקצרה. א. FILE *fptr; int main() { fptr=fopen( a.txt, w ); if(fork()==0) { fprintf(fptr, 123 ); fclose(fptr); else { wait(); fprintf(fptr, abc ); fclose(fptr); return 0; )15 נק'( תכנית קוראת קובץ בשם /usr/tmp/file.txt במערכת קבצים של.Unix גודל הקובץ הוא 10.5K. bytes הניחו שגודלו של כל בלוק במערכת הקבצים הוא 1K bytes ושבתחילת ריצת התוכנית מבני הנתונים היחידים של מערכת הקבצים שנמצאים בזיכרון ה- RAM הינם ה- root directory וה- inode שלו. הניחו גם שכל inode נמצא בשלמותו בבלוק יחיד של הדיסק ושגם כל תיקיה (directory) נמצאת בשלמותה בבלוק יחיד של הדיסק. הניחו בנוסף שה- buffer cache גדול וכל בלוק המובא ל- RAM במהלך הריצה נשאר בו עד סוף הריצה ושבכל inode יש 10 שדות של.direct block numbers i. )5 נק'( כמה בלוקים תצטרך התוכנית לקרוא מן הדיסק על מנת להביא את כל תוכנו של הקובץ /usr/tmp/file.txt ל- RAM? פרטו את אופן החישוב. ב. )5 נק'( נניח כי לקובץ הנ"ל )/usr/tmp/file.txt( קיים קישור סימבולי link) (soft בשם /usr/tmp/x וכי לאחר קריאת הקובץ ישירות דרך /usr/tmp/file.txt התוכנית קוראת את הקובץ בהצלחה גם דרך קישור סימבולי זה. כמה בלוקים נוספים תצטרך התוכנית לקרוא מן הדיסק על מנת להביא את כל תוכנו של הקובץ /usr/tmp/file.txt באמצעות הקישור הסימבולי? פרטו את אופן החישוב. עמ' 1 מתוך 6

)5 נק'( ענו על אותה שאלה של סעיף ii כאשר הפעם /usr/tmp/x הינו hard link לקובץ./usr/tmp/file.txt פרטו את אופן החישוב. i מערכת ההפעלה Xv6 )25 נקודות(.2 בסוף הבחינה מופיע נספח עם קוד של Xv6 בו תוכלו להסתייע כדי לפתור שאלה זו. א. )10 נק'( להלן קוד של user program אותה מריצים מעל.Xv6 )5 נק'( נתון כי במערכת מעבד יחיד. יהא n מספר השורות בהן כתוב hello המופיעות בקובץ hello.txt לאחר סיום הדפסת המחרוזת. done מהם הערכים האפשריים של n? הסבירו תשובתכם במדויק. ניתן להיעזר בקוד של הפונקציה,trap הנתון בסוף הבחינה. )5 נק'( ענו על אותה שאלה בהינתן כי המערכת מרובת מעבדים. הסבירו תשובתכם במדויק. #include "types.h" #include "user.h" #include "fcntl.h" 1. int main() { 2. int fd = open("hello.txt", O_CREATE O_WRONLY); 3. int pid = fork(); 4. if(pid > 0) { 5. sleep(100); 6. kill(pid); 7. write(fd, "done\n", 5); 8. wait(); 9. 10. 11. while(1) { write(fd, "hello\n", 6); 12. )8 נק'( בעת יצירת תהליך חדש באמצעות הקריאה ל-,fork ה- trapframes והתהליך הבן זהים, למעט הבדל יחיד. הסבירו בקצרה מהו ההבדל. ב. של התהליך האב בעבודה 2 התבקשתם לממש את הפונקציה: int kthread_create(void (*start_func)(), void *stack). ג. )7 נק'( אילו השמות (assignments) יש לבצע ל- trapframe של החוט החדש שנוצר ע"י הקריאה לפונקציה על מנת שיוכל לרוץ כהלכה? הסבירו תשובתכם בקצרה. עמ' 2 מתוך 6

3. סינכרוניזציה )25 נקודות( )13 נק'( בכל חלקי הסעיף, כדי להוכיח שתכונה אינה מתקיימת, כתבו תסריט מדויק המדגים זאת. כדי להוכיח שתכונה מתקיימת, כתבו נימוק קצר ומדויק )אין צורך בהוכחות פורמליות(. להזכירכם, הפעולה האטומית swap(addr,v) כותבת ערך v לכתובת addr ומחזירה את הערך הקודם. הפעולה האטומית compare-and-swap(addr,old,new) משווה את הערך ב- addr ל- old. אם הערכים שווים, היא כותבת את הערך new ל- addr ומחזירה ;true אחרת היא אינה משנה את ערך addr ומחזירה.false א. שלומציונהערכה שינויים באלגוריתם ה- MCS למניעה הדדית וקיבלה את האלגוריתם הבא: Program for process i (1,,n) Qnode: structure {bit locked, Qnode *next shared Qnode mynodei, Qnode *tail initially null local succeesor 1 mynodei.next := null 2 pred := swap(tail, &mynodei) 3 if (pred null) { 4 mynodei.locked := true 5 pred->next := &mynodei 6 await mynodei.locked = false 7 CS 8 if mynodei.next null { 9 successor := mynodei.next 10 successor->locked := false 11 else 12 compare-and-swap(tail, &mynodei, null) האם האלגוריתם החדש מקיים מניעה הדדית? האם האלגוריתם החדש מקיים חופש מקיפאון freedom)?(deadlock האם האלגוריתם מקיים את תכונת (FIFO)?first-in- first out )4 נק'( )5 נק'( )4 נק'( i )12 נק'( בכל החלקים של סעיף זה יש לנמק במדויק ובקצרה. נתון קטע הקוד הבא אותו מבצעים 0<n תהליכים. הקוד משתמש בסמאפור הוגן )first-in- first-out( S ובמונה C התומך בפעולה אטומית של fetch-and-inc המאותחל ל- 0. פעולת fetch-and-inc מגדילה את ערך המונה ב- 1 ומחזירה את ערכו הקודם של המונה. הניחו כי n זוגי. קטע האיתחול )הלולאה בשורה 1( מבוצע פעם אחת בלבד לפני תחילת ריצת התהליכים. shared semaphore S initially 0 shared counter C initially 0 Initialization code 1 for (i=0; i < n/2; i++) S.up Program for process `` i (1,,n) 2 S.down 3 S.down 4 C.fetch-and-inc( ) 5 S.up ב. עמ' 3 מתוך 6

תהא E קבוצת כל הריצות האפשריות בהן כל אחד מ- n התהליכים מבצע את קטע הקוד שלמעלה פעם אחת בדיוק, עד אשר הוא מסיים אותו או נתקע בפעולת down לנצח. עבור ריצה כזו,E E נסמן ב- E. בסוף הריצה C את הערך אליו מגיע המונה C(E) )4 נק'( בהנחה שהסמאפור הינו מסוג,counting semaphore מהו הערך המקסימלי של כאשר המקסימום נלקח על פני כל הריצות ב- E?,C(E) )4 נק'( בהנחה שהסמאפור הינו מסוג,counting semaphore מהו הערך המינימלי של,C(E) כאשר המינימום נלקח על פני כל הריצות ב- E? )4 נק'( בהנחה שהסמאפור הינו מסוג,binary semaphore מהו הערך המקסימלי של,C(E) כאשר המקסימום נלקח על פני כל הריצות ב- E? i 4. ניהול זיכרון )25 נקודות( א. )15 נק') )5 נק') הסבירו בקצרה מדוע בעת החלפת תהליכים switch) (process context צריך לבצע ל- TLB. flush )5 נק') במערכת הפעלה דמיונית I-UNIX הוחלט שבכל החלפת תהליכים, לפני הביצוע של ה- flush ל- TLB, תוכן ה- TLB ישמר ב- PCB של התהליך המוחלף. מצד שני, כאשר תהליך שהוחלף חוזר לרוץ, ערכי ה- TLB אשר נשמרו עבורו ב- PCB ייטענו מחדש ל- TLB. הסבירו בקצרה מה עשוי להיות היתרון במימוש השינוי הנ"ל על פני המערכת המקורית )שרק ביצעה flush ל- TLB בעת החלפת תהליכים(. )5 נק') לאחר מימוש השינוי בסעיף הקודם, התברר שלפעמים, תוכניות שרצו בצורה תקינה על מערכת ה- I-UNIX המקורית הוציאו פלט שגוי ואף התרסקו. הסבירו בקצרה מה עשוי להיות הגורם לתקלה. i ב. )10 נק') )5 נק') במערכת,UNIX נתונים שני תהליכים שאין ביניהם יחס )ישיר או עקיף( של תהליך אב ותהליך בן. האם יתכן מצב שבו מערכת ההפעלה תמפה שני דפים של קוד בזיכרון הוירטואלי של שני התהליכים )דף אחד עבור כל תהליך( לאותו דף פיסי? אם כן, תארו תרחיש בו מיפוי כזה יתרחש. אם לא, נמקו בקצרה. )5 נק') במערכת,UNIX האם יתכן שמערכת ההפעלה תמפה שני דפים של נתונים בזיכרון הוירטואלי של שני תהליכים )דף אחד עבור כל תהליך( לאותו דף פיסי, והמיפויים יישארו תקפים גם כאשר אחד התהליכים יכתוב לדף? אם כן, תארו תרחיש בו מיפוי כזה יתרחש. אם לא, נמקו בקצרה. ב ה צ ל ח ה! עמ' 4 מתוך 6

נספח קוד Xv6 void trap(struct trapframe *tf) { if(tf->trapno == T_SYSCALL){ if(myproc()->killed) myproc()->tf = tf; syscall(); if(myproc()->killed) return; switch(tf->trapno) { /* Irrelevant */ // Force process exit if it has been killed and is in user space. // (If it is still executing in the kernel, let it keep running // until it gets to the regular system call return.) if(myproc() && myproc()->killed && (tf->cs&3) == DPL_USER) // Force process to give up CPU on clock tick. // If interrupts were on while locks held, would need to check nlock. if(myproc() && myproc()->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) yield(); // Check if the process has been killed since we yielded if(myproc() && myproc()->killed && (tf->cs&3) == DPL_USER) // Layout of the trap frame built on the stack by the // hardware and by trapasm.s, and passed to trap(). struct trapframe { // registers as pushed by pusha uint edi; uint esi; uint ebp; uint oesp; // useless & ignored uint ebx; uint edx; uint ecx; uint eax; עמ' 5 מתוך 6

// rest of trap frame ushort gs; ushort padding1; ushort fs; ushort padding2; ushort es; ushort padding3; ushort ds; ushort padding4; uint trapno; // below here defined by x86 hardware uint err; uint eip; ushort cs; ushort padding5; uint eflags; // below here only when crossing rings, such as from user to kernel uint esp; ushort ss; ushort padding6; ; עמ' 6 מתוך 6