מערכות הפעלה ( אביב 2006) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.

Slides:



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

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 תיאום בין תהליכים : שיטות מתקדמות  שימוש בחומרה למימוש מנעולים  מנגנוני מערכת הפעלה לתיאום : סמפורים, משתני תנאי.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תיאום בין תהליכים : יסודות  דוגמאות לבעיות תיאום  הגדרות : קטע קריטי, מנעולים  אלגוריתם קופת - חולים.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכות קבצים מבוזרות  מבוא  מבנה כללי  דוגמה : Network file system  דוגמה : Google file system.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מערכות קבצים מבוזרות  מבוא : שקיפות ושמירת מצב.  דוגמה : Network File System.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכת הקבצים  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.
תיאום בין תהליכים: שיטות מתקדמות
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 סיכום הקורס.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
פה מחלקים דיסקים ?. platter surface Reading head tracks sectors cylinder Magnetic Disk rotating מבנה הדיסק הדיסק מחולק לצלחות (platters) לכל צלחת יש ראש.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 פסיקות  סוגי פסיקות  איך מערכת ההפעלה מטפלת בפסיקות  דוגמא : קלט בעזרת פסיקות.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם הבנקאי להתחמקות.
מערכות הפעלה קורס מס ' מבוא  אדמיניסטרציה.  מהי מערכת הפעלה.  ארגון מערכות הפעלה.
מערכות הפעלה תרגול 3 – תהליכים ב-Linux (1). מערכות הפעלה - תרגול 32 (c) ארז חדד 2003 תוכן התרגול מבוא לתהליכים ב-Linux API לעבודה עם תהליכים מבוא לניהול.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 מערכות קבצים מבוזרות  מבוא : שקיפות ושמירת מצב.  דוגמה : Network File System.
נובמבר ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 אפליקציות שרת - לקוח  פרדיגמת שרת לקוח  מושג ה socket  מבנה שרת - לקוח  קצת יותר על רשתות.
אוקטובר מבנה מערכות הפעלה אוקטובר אסף שוסטר שקפים ע"פ אלן אזגורי/חגית עטיה.
הגנה במערכות מתוכנתות תרגול 1 – המחשב האישי הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
מערכות הפעלה תרגול 6 – חוטים ב-Linux.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 מערכות הפעלה קורס מס '
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 מימוש מערכת הקבצים  תכונות של דיסקים.  מימושים בסיסיים.  קצת על מימושים מתקדמים.  אמינות מערכת הקבצים.
מערכות הפעלה תרגול 3 – תהליכים ב-Linux (1). מערכות הפעלה - תרגול 32 (c) ארז חדד 2003 תוכן התרגול מבוא לתהליכים ב-Linux API לעבודה עם תהליכים מבוא לניהול.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות ושימושים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מימוש מערכת הקבצים  תכונות של דיסקים.  מימושים בסיסיים.  קצת על מימושים מתקדמים.  אמינות מערכת הקבצים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 וירטואליזציה.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 מערכות הפעלה קורס מס '
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מערכות הפעלה קורס מס '
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מרץ 2002אלן אזאגורי ©1 זיכרון משותף מבוזר Distributed Shared Memory.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 וירטואליזציה.
מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה מרץ אלן אזאגורי (מרצה אחראי) ארז חדד.
טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 זימון תהליכים  מדיניות בסיסיות : RR, FCFS, SJF  הערכת זמן ריצה ושימוש בעדיפויות  ריבוי תורים ודוגמאות.
מערכות הפעלה תרגול 6 – חוטים ב-Linux. מערכות הפעלה - תרגול 62 (c) ארז חדד 2003 תוכן התרגול מבוא לחוטים ב-Linux כיצד גרעין Linux תומך בחוטים עבודה עם חוטים.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 זימון תהליכים  מדיניות בסיסיות : RR, FCFS, SJF  הערכת זמן ריצה ושימוש בעדיפויות  ריבוי תורים ודוגמאות.
מרץ 2002אלן אזאגורי ©1 חוטים Threads. מרץ 2002 אלן אזאגורי ©2עמוד נושאים הגדרות –חוטים –חוטים לעומת תהליכים תמיכת מערכת ההפעלה בחוטים דוגמאות –Mach –Windows.
אביב 2004 מערכות הפעלה מערכות הפעלה קורס מס '
מערכות הפעלה תרגול 6 – חוטים ב-Linux. מערכות הפעלה - תרגול 62 (c) ארז חדד 2003 תוכן התרגול סינכרוניזציה בגרעין של Linux מבוא לחוטים ב-Linux כיצד גרעין.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מערכות הפעלה קורס מס' מערכות הפעלה (אביב 2009) חגית עטיה ©
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 סיכום הקורס.
זימון תהליכים מדיניות בסיסיות: RR, FCFS, SJF קביעת עדיפויות
מערכת הקבצים : יסודות  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.  מימושים : בסיסיים וקצת על מימושים.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
תיאום בין תהליכים : יסודות  דוגמאות לבעיות תיאום  הגדרות : קטע קריטי, מנעולים  אלגוריתם קופת - חולים.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 מערכת הקבצים  מבוא : מטרות מערכת קבצים  מנשק המשתמש : פעולות על קבצים, ארגון קבצים, הגנה  תכונות של דיסקים.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Introduction Operating Systems (234123) – Spring 2013 Introduction Dan Tsafrir (11/3/2013) OS (234123) - spring intro1.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
שיתוף PDT בין חוטים PDT Thread A Process Descriptor File Object 1 File Object 2 File 1 File 2 pthread_create Thread B Process Descriptor ה PDT משותף לכל.
Process Realization In OS
תהליכים-דייאט: חוטים מוטיבציה חוטי משתמש וחוטי מערכת
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Presentation transcript:

מערכות הפעלה ( אביב 2006) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות

מערכות הפעלה ( אביב 2006) חגית עטיה ©2 עלות ריבוי תהליכים  תהליכים דורשים משאבי מערכת רבים מרחב כתובות, גישה לקלט / פלט (file table)...  זימון תהליכים הינו פעולה כבדה context switch לוקח הרבה זמן.  תקשורת בין תהליכים עוברת דרך מערכת ההפעלה מערכת ההפעלה שומרת על ה " שערים " בחומות שבנתה בין תהליכים שונים

מערכות הפעלה ( אביב 2006) חגית עטיה ©3 טבעי לי מקבילי... אך הרבה בעיות קל יותר לפתור באמצעות ריבוי תהליכים דוגמא א ', מעבד תמלילים : מציג פלט, ממתין לקלט מהמשתמש, בודק איות,... דוגמא ב ', שרת קבצים : ממתין לקבל בקשה כאשר מקבל בקשה, חייב להפסיק לחכות ולעבור לטפל בבקשה פתרון : לבצע fork תהליך הבן מטפל בבקשה שהגיעה האב ממשיך להמתין לבקשה זה פתרון לא - יעיל כי מחייב הקצאת מרחב כתובות, PCB...

מערכות הפעלה ( אביב 2006) חגית עטיה ©4 שומרי משקל  התהליכים שנוצרים לטיפול בבקשות דומים זה לזה : אותו קוד אותם משאבים ונתונים.  אבל לא זהים : מטפלים בבקשות שונות. נמצאים בשלבים שונים במהלך הטיפול. תהליכים - דייאט ( lightweight processes ) אשר משתפים מרחב כתובות, הרשאות ומשאבים

מערכות הפעלה ( אביב 2006) חגית עטיה ©5 תהליכים - דייאט = חוטים  חוט ( thread ) הינו יחידת ביצוע ( בקרה ) בתוך תהליך במערכות הפעלה קלאסיות " חוט " יחיד בכל תהליך במערכות הפעלה מודרניות תהליך הוא רק מיכל לחוטים  לכל חוט דרושים המשאבים : program counter מחסנית רגיסטרים נמצאים ב Thread Control Block (TCB) P1P1 P3P3 P2P2 P1P1 T1T1 T2T2 T3T3

מערכות הפעלה ( אביב 2006) חגית עטיה ©6 תזכורת : מרחב הכתובות של תהליך 0x xFFFFFFFF address space code (text segment) static data (data segment) heap (dynamic allocated mem) stack (dynamic allocated mem) Program Counter Stack Pointer

מערכות הפעלה ( אביב 2006) חגית עטיה ©7 מרחב הכתובות של תהליך מרובה - חוטים 0x xFFFFFFFF address space code (text segment) static data (data segment) heap (dynamic allocated mem) Stack for thread 1 PC thread 2 SP thread 1 Stack for thread 2 SP thread 2 PC thread 1

מערכות הפעלה ( אביב 2006) חגית עטיה ©8 ייחודי לתהליך ייחודי לחוט  Program Counter  Registers  Execution Stack  Address Space  Open Files  File position חוטים לעומת תהליכים √ √ √ √ √ √ √ √ X X X √

מערכות הפעלה ( אביב 2006) חגית עטיה ©9 ושוב, שרת קבצים  התהליך מחזיר : מחרוזת תווים ( במקרה של קריאה ) סטאטוס ( הצלחה / כישלון ) אורך קריאה / כתיבה ( בפועל )  תהליך מקבל בקשות עם הפרמטרים הבאים : סוג : קריאה / כתיבה זיהוי קובץ מיקום בקובץ אורך חוצץ (buffer)

מערכות הפעלה ( אביב 2006) חגית עטיה ©10 שרת קבצים : מימוש עם חוט יחיד פשטות  ניצול משאבים לקוי, למשל בהמתנה לקלט / פלט ניתן ליעל ע " י קלט / פלט אסינכרוני וטיפול במספר בקשות בו זמנית do forever get request; execute request; return results; end;

מערכות הפעלה ( אביב 2006) חגית עטיה ©11 מימוש באמצעות חוטים  חוט מנהל מקבל בקשה מייצר חוט עבודה, ומעביר אליו את הבקשה.  חוט עבודה מבצע את הבקשה מחזיר תשובה תפוקה גבוהה יותר  תכנות מורכב יותר בקשה חוט עבודה תשובה

מערכות הפעלה ( אביב 2006) חגית עטיה ©12 יתרונות וחסרונות יצירת חוט יעילה יותר – רק יצירת thread control block והקצאת מחסנית – החלפת הקשר בין חוטים של אותו תהליך מהירה יותר ניצול טוב יותר של משאבים – חוט אחד נחסם ( למשל על IO), חוטים אחרים של אותו תהליך ממשיכים לרוץ – מקביליות אמיתית במערכות מרובות מעבדים תקשורת נוחה יותר בין חוטים השייכים לאותו תהליך – זיכרון משותף תכנות מובנה יותר  חוסר הגנה בין חוטים באותו תהליך – חוט עלול לדרוס את המחסנית של חוט אחר – גישה לא מתואמת למשתנים גלובליים

מערכות הפעלה ( אביב 2006) חגית עטיה ©13 חוטי משתמש וחוטי מערכת  חוט משתמש ( user threads ) מוגדרים ע " י סביבת התכנות  לא דורשים קריאות מערכת  זימון בשיתוף פעולה ( ע " י פקודה yield)  אין החלפת הקשר בגרעין מה קורה כאשר חוט נחסם ?  חוט מערכת ( kernel threads ) מוכרים למערכת ההפעלה נקראים lightweight processes חוטי משתמש מאפשרים לאפליקציה לחקות ריבוי חוטים גם במערכת הפעלה single-threaded. kernel process

מערכות הפעלה ( אביב 2006) חגית עטיה ©14 תמיכת מערכת הפעלה בחוטים  יצירת והריסת חוטים, לדוגמא thread_create(char *stack) thread_exit(…) thread_join(…) thread_kill(…)  מבני נתונים פנימיים thread control block Program counter, stack, registers  מנגנוני סנכרון למשל, תיאום גישה לזיכרון משותף

מערכות הפעלה ( אביב 2006) חגית עטיה ©15 דוגמא : חוטי POSIX  ממשק סטנדרטי IEEE c ) ) ליצירת וניהול חוטים. רק application program interface.  דומה מאוד לפעולות המתאימות עבור ניהול תהליכים : pthread_create pthread_exit pthread_join  כולל מנגנונים רבים לתיאום בין חוטים. בקרוב מאוד !  נתמך בהרבה מערכות “ UNIX ” בפרט, Pthreads ב Linux. מימושים שונים  נתמך גם ב Windows

מערכות הפעלה ( אביב 2006) חגית עטיה ©16 השוואת ביצועים זמן יצירה / סיום : במיקרו שניות, על 700MHz Pentium, עם Linux [Steve Gribble, 2001] תהליכים fork / exit251 חוטי גרעין pthread_create / pthread_join 94 חוטי משתמש pthread_create / pthread_join 4.5

מערכות הפעלה ( אביב 2006) חגית עטיה ©17 דוגמא : Windows NT  היחידה הבסיסית הינה תהליך.  תהליך יכול להכיל כמה חוטים – kernel threads.  חוט יכול להכיל כמה סיבים (fibers), שהם בעצם user threads  זימון נעשה ברמת החוטים  תהליך רק מגדיר את מרחב הזיכרון, ומהווה מיכל לחוטים

מערכות הפעלה ( אביב 2006) חגית עטיה ©18 כמה חוטים " שווה " ליצר ?  נחזור לדוגמת השרת נניח שזמן הריצה הממוצע שכל חוט מקבל בשניה הוא c, וזמן המעבד הממוצע שכל תהליך מקבל בשניה הוא p. כמה חוטים כדאי לייצר ? תשובה : אין טעם לייצר יותר מ -p/c חוטים.  כמות כזו מבטיחה ניצול מלא של זמן המעבד המוקצה לתהליך  יותר חוטים רק מגדילים את התקורה של החלפת ההקשר, ואת הזמן המבוזבז על פעולות סינכרון ( יותר פרטים, בשיעור הבא )  עודף חוטים מקטין את שטח המחסנית של כל חוט הפתרון : thread pooling

מערכות הפעלה ( אביב 2006) חגית עטיה ©19 Thread Pooling  נייצר רק כמות סופית של חוטים  החוט הראשי, במקום לייצר חוט עבודה עבור כל בקשה, יאכסן את הבקשות המגיעות בתור FIFO  כל חוט יריץ בלולאה אינסופית את הקוד הבא : 1. הבא את במשימה הבאה מהתור 2. בצע את המשימה 3. שלח תשובה ללקוח 4. חזור ל -1  מנגנון זה יתבצע במקביל ע " י כל החוטים העובדים

מערכות הפעלה ( אביב 2006) חגית עטיה ©20 Thread Pooling  בעיה כיצד נחשב את c ו -p? יתכן שבכלל אינם קבועים, ויתכן שערך c משפיע על p  פתרון : גודל pool דינמי מתחילים עם גודל pool מסויים אם לא מספק, כלומר, אורך תור המשימות גדל והתהליך לא מספיק לנצל את כל ה -quantum שלו, אזי מגדילים ב -k נוספים ( עד לסף עליון קבוע ) אם במשך הרבה זמן ישנם חוטים מובטלים, ניתן לבטל k חוטים