מערכות הפעלה חזרה. מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה 1 int X = 1, p1 = 0, p2 = 0; int ProcessA() { printf("process A\n"); while(X);

Slides:



Advertisements
Similar presentations
Processes and threads. תהליכים ותתי תהליכים תהליכים –כל תוכנית שרצה היא תהליך (process) –ניתן להתפצל מתהליך אחד למספר תהליכים, בעזרת הפקודה fork(). הרבה.
Advertisements

ממיבחניםC שאלות ++.
שיטות ניתוח - דוגמא משווה
מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
Operating Systems, 112 Practical Session 4, Scheduling.
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 פסיקות  סוגי פסיקות  איך מערכת ההפעלה מטפלת בפסיקות  דוגמא : קלט בעזרת פסיקות.
Na+ P-. הפוטנציאל האלקטרוכימי אנרגיה חופשית ל - 1 mole חומר. מרכיב חשמלי מרכיב כימי מרכיבי הפוטנציאל האלקטרוכימי של חומר X: המרכיב הכימי : RTlnC x R –
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
פרויקט מחקרי בנושא יחס הזהב ואסתטיקה של מנשקים ARD מנחה : פרופ ' נעם טרקטינסקי מנחה אקדמי : פרופ ' יובל אלוביץ ' מגישים : אפרת דוד ארסני קרופניק.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מערכות הפעלה חזרה. מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה1.
A. Frank File Organization Indexed-Sequential File Introduction Thanks to Tamar Barnes.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מרצה: פרופסור דורון פלד
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
שאילת שאלות שאלת חקר המפתח למנעול 1. שאילת שאלות – שאלת חקר מה ניתן לשנות ? :  בתנאים : טמפ ' או לחץ או הכלים, או הציוד  בחומרים : איכות או כמות או.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
1 מבוא למדעי המחשב מבנה של תכנית. 2 מבנה של תכנית – חלוקה לקבצים  תכנית בשפת C הינה אוסף של הגדרות של:  משתנים (חיצוניים)  פונקציות  ניתן לפרוש תכנית.
Questions are the Answer Penick&all H ISTORY R ELATIOINSHIPS A PPLICATION S PECULATION E XPLANATION.
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 זימון תהליכים  מדיניות בסיסיות : RR, FCFS, SJF  הערכת זמן ריצה ושימוש בעדיפויות  ריבוי תורים ודוגמאות.
CS Introduction to AI Tutorial 6 AB Questions Tutorial 6 AB Questions.
Remember Remember The 5 th of November. תרגול 2 קובץ סדרתי.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
עקרון ההכלה וההדחה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
1 Formal Specifications for Complex Systems (236368) Tirgul Hazara.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
תחשיב היחסים (הפרדיקטים)
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
גיאולוגיה סטרוקטורלית מעגלי מוהר למעוות סופי (המשך...)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
תרגול 3 RAID. 7/14/20152 עובדה : בעת שכלל החומרה מתקדם בצעדי ענק, התקדמות הדיסקים מבחינת זמן גישה ונפח איטית יותר. פיתרון : לעבוד עם מספר גדול של דיסקים,
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
WEB OF SCIENCE. WEB OF SCIENCE  Science Citation Index ExpandedTM  Social Sciences Citation Index®  Art & Humanities Citation Index®
Presentation by Gil Perry Supervised by Amos Fiat 1.
Kashrut is a mitzvah in the Torah and has been passed on through generations. Kashrut is a chok. this means that we don’t know why we do it but we.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
 Client, Supplier ומה שביניהם ( ADT!).  שאלה 1: יצירת ADT עבור מעגל במישור נניח שלקוח מעוניין בפעולות הבאות : הזזת מעגל וחישוב שטח מעגל. הספק יספק ללקוח.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
שיתוף PDT בין חוטים PDT Thread A Process Descriptor File Object 1 File Object 2 File 1 File 2 pthread_create Thread B Process Descriptor ה PDT משותף לכל.
קשר לוגי : סיבה ותוצאה. במשפט – דוגמות קלות בגלל הגשם החלטנו לא לנסוע לטיול לחיפה. הרצון שלי להצליח הניע אותי להשקיע בלימודים. ציפורים נודדות בין יבשות.
Tirgul 12 Trees 1.
תירגול 14: מבני נתונים דינאמיים
עבודה עם נתונים באמצעות ADO.NET
Marina Kogan Sadetsky –
Synchronization, Part 2 Semaphores
Shell Scripts בסביבת UNIX
תוכנה 1 תרגול 13 – סיכום.
Presentation transcript:

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

מערכות הפעלה - שאלות חזרה2 (c) רסקין לאוניד 2005 שאלה 1 int X = 1, p1 = 0, p2 = 0; int ProcessA() { printf("process A\n"); while(X); printf("process A finished\n"); exit (1); } void killAll(){ if(p2) kill(p2, 15); if(p1) kill(p1, 9); } int ProcessB() { X = 0; printf("process B\n"); killAll(); printf("process B finished\n"); return 1; } int main() { int status; if((p1 = fork()) != 0) if((p2 = fork()) != 0){ wait(&status); printf("status: %d\n", status); wait(&status); printf("status: %d\n", status); } else ProcessB(); else ProcessA() printf("The end\n"); return 3; } *כאשר תהליך מקבל סיגנל x הוא מסתיים וערך היציאה שלו הוא x.

מערכות הפעלה - שאלות חזרה3 (c) רסקין לאוניד 2005 שאלה 1 עבור כל אחת משורות הפלט הבאות, סמנו כמה פעמים הן מופיעות בפלט כלשהו. 1.process A 2.status: 1 3.status: status: The end סמנו עבור כל שורה האם היא מתקיימת בפלט כלשהו. 1. השורה process B מופיעה לפני השורה process A. 2. השורה status: 137 מופיעה לפני השורה The end. 3. השורה status: 143 מופיעה לפני השורה status: 137.

מערכות הפעלה - שאלות חזרה4 (c) רסקין לאוניד 2005 שאלה 2 נתונות 3 תכניות A, B, ו-C, וקובץ F. בין A ו-B יש פייפ A-B ובין B ו-C יש פייפ C-B. תכנית A פותחת את הקובץ F, כותבת בו בכתובת 17, כותבת לפייפ A-B, וסוגרת את F. תכנית B קוראת את הפייפ A-B, פותחת את F, כותבת בכתובת 17, כותבת לפייפ B-C, וסוגרת את F. תכנית C קוראת את הפייפ B-C, פותחת את הקובץ F, וקוראת את הערך בכתובת 17. כאשר הריצו את התכניות A, B, ו-C, מצאו ש-C קראה ב-F את הערך שכתבה שם A. א. האם זה אפשרי במערכת הקבצים SNF כאשר A, B, ו-C מורצות במחשבים שונים ו-F קובץ בשרת מרוחק? (הנח שקיימת אפשרות לפתוח פייפ בין תכניות הרצות במחשבים שונים כך שההתנהגות זהה לזו שהפייפ מציג כאשר התכניות רצות באותו מחשב) אם כן – הכיצד? אם לא – מדוע? ב. רוצים לגרום ל-C לקרא תמיד דווקא את הערך ש-B כתבה (בין אם התכניות רצות במחשבים שונים ובין אם רצות באותו מחשב). איך ניתן לעשות זאת על ידי עדכון מדיניות כתיבת העדכונים של מערכת הקבצים (תוך פגיעה אפשרית בביצועים)? אל תסבירו יותר מדי – פשוט כתבו את המונח המדויק למדיניות החדשה.

מערכות הפעלה - שאלות חזרה5 (c) רסקין לאוניד 2005 שאלה 2 מנסים לעשות זאת על ידי עדכון מנגנון הנעילות של מערכת הקבצים. מימוש של איזה מבין התנאים הבאים על ידי מערכת הקבצים ייתן את התוצאה המקווה? 1."לא מרשים פתיחת קובץ לשתי תכניות יחדיו אם שתיהן כותבות לקובץ" 2."לא מרשים פתיחת קובץ לשתי תכניות יחדיו אם הן משתפות פייפ" 3."לא מרשים כתיבה לבלוק מסוים בקובץ שכבר כתבו אליו לאחרונה" 4."לא מרשים כתיבה ישירה לרשת" 5."לא מרשים פתיחת קובץ לשתי תכניות יחדיו אם אפילו אחת מהן כותבת לקובץ" 6."מסנכרנים את הקריאה והכתיבה באמצעות סמפור"

מערכות הפעלה - שאלות חזרה6 (c) רסקין לאוניד 2005 שאלה 3 במערכת מסוימת קיים pipe שאמור להעביר נתונים בין תהליכי יצרן לתהליכי צרכן. לפי הגדרת המערכת ישנם 10 תהליכי יצרן P0..P9 ו- 10 תהליכי צרכן C0...C9,כך שיצרן Pk מייצר נתונים עבור צרכן Ck. כמו כן ידוע שכל הנתונים הם בגודל בית אחד וכל צרכן יודע לזהות אם הנתונים הם שלו (אחרי שהוא קורא אותם). רוצים לממש את המערכת הנ"ל תוך שימוש ב- pipe הנתון. עבור כל אחד מהסעיפים a ו-b להלן בדקו האם הפתרון המוצע נכון. אם הפתרון נכון הסבירו למה והצביעו על חיסרון שלו, אם הפתרון אינו נכון הסבירו מדוע הוא לא עובד והציעו לו תיקון מינימלי כדי שיעבוד נכון בלי להשתמש באמצעי סנכרון אחרים.

מערכות הפעלה - שאלות חזרה7 (c) רסקין לאוניד 2005 שאלה 3 1. יצרן Pk כותב פיסות מידע בגודל הנתון ל- pipe בלי קשר לשאר התהליכים. צרכן Ck קורא מה – pipe פיסת מידע בגודל הנתון ובודק האם היא מיועדת אליו, אם כן הוא משתמש בה, אם לא הוא כותב אותה בחזרה ל- pipe. 2. יצרן Pk מחכה לסיגנל מתהליך Pk-1להגיד שהגיע תורו לכתוב, כותב פיסות מידע ל- pipe, ושולח signal לצרכן Ck כדי שיקרא את המידע וסיגנל נוסף ליצרן Pk+1(mod 10) לאותת לו שהגיע תורו לכתוב (בהתחלה יצרן P0 לא מחכה לאף תהליך אחר). צרכן Ck מחכה לסיגנל מיצרן Pk, וכשהוא מקבל אותו הוא ניגש ל- pipe וקורא את המידע. הוחלט להשתמש ב-pipe הנ"ל עבור הסנכרון בלבד בין היצרנים לצרכנים ( המידע עצמו לא יועבר דרכו). כתבו פסואדו קוד אשר מממש סמפור מונה באמצעות ה- pipe. עליכם לממש את הפונקציות signal ו-wait, אין להשתמש באמצעי סנכרון נוספים.

מערכות הפעלה - שאלות חזרה8 (c) רסקין לאוניד 2005 שאלה 4 שאלה זו עוסקת בזָמָן התהליכים של לינוקס. כפי לפשט את השאלה, נניח את ההנחות הבאות: אין תהליכי גרעין. כל תהליכי המשתמש הם תהליכים שמבצעים חישובים בלבד. (כלומר, אם לא נאמר במפורש אחרת, התהליכים לעולם אינם מוותרים מרצונם על המעבד). לכל התהליכים יש עדיפות ברירת-מחדל. זְמָן הפעולה של הזָמָן עצמו הוא אפס. תהליך שחוזר מהמתנה, מוכנס ל-active-array של ה-RUN_QUEUE, לפי עדיפותו הדינאמית. נתון כי STARVATION_LIMIT= .

מערכות הפעלה - שאלות חזרה9 (c) רסקין לאוניד 2005 שאלה 5 1. נניח כי במערכת 99 תהליכים. א. מהו אורך פרוסת הזמן שיקבל כל תהליך? ב. מהו החלק מזמן המעבד שכל תהליך מקבל? 2. כעת נניח כי במערכת 100 תהליכים. מהו אורך פרוסת הזמן שיקבל כל תהליך, ומהו החלק מזמן המעבד שכל תהליך מקבל? 3. נוסיף למערכת, המריצה 99 תהליכים, תהליך נוסף (מספר 100) שמתעורר ע"י הקשת המשתמש במקלדת. המשתמש מקליד במקלדת בקצב של מקש בשנייה. זמן הטיפול בכל הקלדת מקש הוא 50msec. א. מהו החלק מזמן המעבד שיקבל תהליך זה? ב. מה יקרה לפרוסות הזמן של התהליכים האחרים? 4. במערכת שבה 100 תהליכים חישוביים: א. הציעו שיטה שתאפשר לתהליך חישובי לקבל זמן מעבד על-חשבון התהליכים האחרים (מבלי לשנות את עדיפותו הסטטית). ב. האם השיטה תעבוד כאשר יש 50 תהליכים? ג. אם השיטה תעבוד כאשר יש 10 תהליכים? 5. מה יקרה אם שני תהליכים ישתמשו בו-זמנית בשיטה שהצעתם בסעיף ד' (כאשר יש 100 תהליכים)? מה יקרה אם כל התהליכים יעשו זאת? 6. נניח כי יש במערכת שני תהליכים חישוביים בלבד. האם תהליך אחד יכול להגדיל את חלק הזמן היחסי שהוא מקבל (ללא שינוי עדיפותו הסטטית, כמובן)?