Presentation is loading. Please wait.

Presentation is loading. Please wait.

מרץ 2002אלן אזאגורי ©1 חוטים Threads. מרץ 2002 אלן אזאגורי ©2עמוד נושאים הגדרות –חוטים –חוטים לעומת תהליכים תמיכת מערכת ההפעלה בחוטים דוגמאות –Mach –Windows.

Similar presentations


Presentation on theme: "מרץ 2002אלן אזאגורי ©1 חוטים Threads. מרץ 2002 אלן אזאגורי ©2עמוד נושאים הגדרות –חוטים –חוטים לעומת תהליכים תמיכת מערכת ההפעלה בחוטים דוגמאות –Mach –Windows."— Presentation transcript:

1 מרץ 2002אלן אזאגורי ©1 חוטים Threads

2 מרץ 2002 אלן אזאגורי ©2עמוד נושאים הגדרות –חוטים –חוטים לעומת תהליכים תמיכת מערכת ההפעלה בחוטים דוגמאות –Mach –Windows NT

3 מרץ 2002 אלן אזאגורי ©3עמוד מוטיבציה תהליכים דורשים משאבי מערכת רבים –מרחב כתובות, גישה לקלט/פלט (File Table), וכו' זימון תהליכים הינו פעולה כבדה –שינוי הקשר...אך הרבה משימות הן בעלות אופי "מקבילי" –תהליך שרת, פעולות מתימטיות, וכו'

4 מרץ 2002 אלן אזאגורי ©4עמוד הגדרה חוט הינו יחידת ביצוע (בקרה) נפרדת בתוך תהליך המשאבים הדרושים הם: –Program Counter –מחסנית –רגיסטרים P1P1 P3P3 P2P2 P1P1 T1T1 T2T2 T3T3

5 מרץ 2002 אלן אזאגורי ©5עמוד חוטים לעומת תהליכים  Program Counter Registers Execution Stack Address Space Open Files File position ערך כתובת וירטואלית ערך כתובת פיזית מנעול תהליךחוט 

6 מרץ 2002 אלן אזאגורי ©6עמוד דוגמא: שרת קבצים תהליך מקבל בקשות –קריאה (כתיבה) –זיהוי קובץ –מיקום בקובץ –אורך –חוצץ (Buffer) התהליך מחזיר –סטטוס (הצלחה/כישלון) –אורך (קריאה/כתיבה בפועל) –מחרוזת תווים (במקרה של קריאה)

7 מרץ 2002 אלן אזאגורי ©7עמוד דוגמא: שרת קבצים תהליך עם חוט בקרה יחיד המימוש יתרונות –פשטות חסרונות –ניצול משאבים, למשל בהמתנה לקלט/פלט הערה –ניתן ליעל ע"י ביצוע ק"פ אסינכרוני וטיפול במספר בקשות בו זמנית do forever get request; execute request; return results; end;

8 מרץ 2002 אלן אזאגורי ©8עמוד דוגמא: שרת קבצים ריבוי חוטים מימוש –חוט מנהל אחד מקבל בקשה מעביר את הבקשה לביצוע ע"י אחד מחוטי העבודה –חוטי עבודה מבצע את הבקשה מחזיר תשובה יתרונות –תפוקה גבוהה יותר חסרונות –תכנות מורכב יותר בקשה חוט מנהל העבודה חוט עבודה תשובה

9 מרץ 2002 אלן אזאגורי ©9עמוד יתרונות יצירת חוט יעילה (קלה) יותר –דרושה רק יצירת Thread Control Block והקצאת מחסנית ניצול טוב יותר של משאבים –למשל, במערכות מרובות מעבדים תקשורת נוחה יותר בין חוטים השייכים לאותו תהליך –זיכרון משותף תכנות מובנה יותר

10 מרץ 2002 אלן אזאגורי ©10עמוד חסרונות חוסר הגנה בין חוטים באותו תהליך –חוט עלול לדרוס את המחסנית של חוט אחר

11 מרץ 2002 אלן אזאגורי ©11עמוד חוטי משתמש לעומת חוטי מערכת חוט משתמש (user threads) –מוגדרים ע"י סביבת התכנות (לא מוכרים ע"י מערכת ההפעלה) –יעילים יותר לא דורשים קריאות מערכת לא מתבצעת החלפת הקשר –מה קורה כאשר חוט נחסם? חוט גרעין (kernel threads) –מוגדרים ע"י מערכת ההפעלה מבט היסטורי –מערכות עברו מתמיכה בחוט יחיד (single threaded) לתמיכה בחוטי משתמש (ללא שינויים במערכת ההפעלה), לתמיכה בחוטי גרעין kernel process

12 מרץ 2002 אלן אזאגורי ©12עמוד איפיון מערכות הפעלה הרבה מרחבי כתובות מרחב כתובות יחיד Unix (traditional)DOS, MacOS (<8) חוט יחיד בכל מרחב כתובות Linux, Mach, Solaris, Windows NT Embedded Systems מספר חוטים בכל מרחב כתובות

13 מרץ 2002 אלן אזאגורי ©13עמוד שירותי תמיכה בחוטים יצירה והריסת חוטים, לדוגמא –thread_create(char *stack) –thread_exit(…), thread_join(…), thread_kill(…) מנגנוני סנכרון –למשל עבור תיאום בגישה לזיכרון משותף מבני נתונים פנימיים –Thread Control Block Program Counter, stack, registers

14 מרץ 2002 אלן אזאגורי ©14עמוד דוגמא: Remote Procedure Call Remote Procedure Call (RPC) מדמה את מנגנון קריאה לפרוצדורה –בהבדל שהפרוצדורה הקוראת והנקראת רצות (אולי) במכונות שונות –המנגנון מסתיר את העברת הפרמטרים והתוצאות RPC היא גם הפשטה נוחה לתקשורת בין תהליכים (או חוטים) על אותה מכונה

15 מרץ 2002 אלן אזאגורי ©15עמוד דוגמא: Remote Procedure Call פרטי מימוש תהליך קורא –אורז את ה-input parameters, שולח אותם לתהליך השרת, בתוספת זיהוי הפונקציה המבוקשת ונחסם תהליך נקרא –פותח את ה-input parameters –קורא לפרוצדורה (הלוקלית) לביצוע הבקשה –אורז את ה-output parameters, ושולח אותם חזרה –מחכה לבקשה הבאה תהליך קורא –פותח את ה-output parameters –חוזר

16 מרץ 2002 אלן אזאגורי ©16עמוד דוגמא: Remote Procedure Call מימוש באמצעות pop-up threads בהתחלה, בתהליך השרת יש חוט יחיד כאשר מתקבלת בקשה, החוט מקבל את הפרמטרים ומייצר חוט שמטפל בבקשה בקשה תוצאה

17 מרץ 2002 אלן אזאגורי ©17עמוד Mach מערכת הפעלה מבוססת הודעות היחידה הבסיסית: משימה (task) –יכולה להכיל מספר חוטים מנגנון בסיסי לתקשורת: תיבות דואר (ports) –תקשורת בין חוטים –תקשורת מ-/למערכת ההפעלה משימה נוצרת עם שתי תיבות דואר –Kernel mailbox מהתהליך למערכת ההפעלה –Notify mailbox להעברת signals ממערכת ההפעלה

18 מרץ 2002 אלן אזאגורי ©18עמוד Mach הודעות קריאות מערכת לתקשורת באמצעות הודעות –msg_send, msg_receive, msg_rpc, port_allocate הודעה מכילה –Header – אורך ההודעה, תיבות מקור ויעד –תוכן ההודעה (שדות עם type) באורך משתנה אם תיבת הדואר מלאה –החוט ממתין עד שיתפנה מקום, או –החוט ממתין עד חסם (time-out) מסוים –Caching של ההודעה Mach ממפה (לא מעתיקה) את ההודעה ממרחב התהליך השולח למרחב התהליך המקבל –Copy-on-write – אם אחד התהליכים משנה את תוכן ההודעה, ההודעה מועתקת

19 מרץ 2002 אלן אזאגורי ©19עמוד Windows NT היחידה הבסיסית הינה תהליך –תהליך יכול להכיל כמה חוטים – kernel threads –חוט יכול להכיל כמה סיבים (fibers) – user threads –זימון נעשה ברמת חוטים –תהליך מגדיר בעיקר את מרחב הזיכרון תקשורת בין חוטים –באמצעות pipes ותיבות דואר

20 מרץ 2002 אלן אזאגורי ©20עמוד Windows NT תקשורת חוט נוצר עם message queue –לקבלת הודעות מחוטים אחרים (כולל מעצמו) מבנה הודעה –שדה סוג (32 bits) –שדה נתונים (64 bits) קריאות –חוסמות / לא חוסמותלשליחת או קבלת הודעות


Download ppt "מרץ 2002אלן אזאגורי ©1 חוטים Threads. מרץ 2002 אלן אזאגורי ©2עמוד נושאים הגדרות –חוטים –חוטים לעומת תהליכים תמיכת מערכת ההפעלה בחוטים דוגמאות –Mach –Windows."

Similar presentations


Ads by Google