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

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.
תיאום בין תהליכים: שיטות מתקדמות
מערכות הפעלה תרגול 7 – ק/פ ותקשורת תהליכים ב-Linux.
מערכות הפעלה ( אביב 2008) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם הבנקאי להתחמקות.
מערכות הפעלה קורס מס ' מבוא  אדמיניסטרציה.  מהי מערכת הפעלה.  ארגון מערכות הפעלה.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 מערכות קבצים מבוזרות  מבוא : שקיפות ושמירת מצב.  דוגמה : Network File System.
מערכות הפעלה תרגול 10 – זיכרון וירטואלי ב- Linux.
נובמבר ניהול תהליכים במערכת מרובת מעבדים Process Management in Multiprocessor Systems.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 אפליקציות שרת - לקוח  פרדיגמת שרת לקוח  מושג ה socket  מבנה שרת - לקוח  קצת יותר על רשתות.
אוקטובר מבנה מערכות הפעלה אוקטובר אסף שוסטר שקפים ע"פ אלן אזגורי/חגית עטיה.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
מערכות הפעלה תרגול 6 – חוטים ב-Linux.
ינואר 2003אלן אזאגורי ©1 Object Storage אלן אזאגורי.
מערכות הפעלה ( אביב 2009) חגית עטיה © 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 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות ושימושים.
מערכות הפעלה ( אביב 2008) חגית עטיה © 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.
מרץ 2002אלן אזאגורי ©1 זיכרון משותף מבוזר Distributed Shared Memory.
מרץ 2002אלן אזאגורי ©1 ניהול דיסקים Disk Management.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
מערכות הפעלה ( אביב 2009) חגית עטיה © 1 וירטואליזציה.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה מרץ אלן אזאגורי (מרצה אחראי) ארז חדד.
טיפול בקיפאון בעיית הקיפאון הימנעות מקיפאון
מרץ 2002אלן אזאגורי ©1 זימון תהליכים Process Scheduling.
מערכות הפעלה תרגול 6 – חוטים ב-Linux. מערכות הפעלה - תרגול 62 (c) ארז חדד 2003 תוכן התרגול מבוא לחוטים ב-Linux כיצד גרעין Linux תומך בחוטים עבודה עם חוטים.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
מרץ 2002אלן אזאגורי ©1 סנכרון תהליכים וחוטים Process and Thread Synchronization חלק ראשון.
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
תהליכים - דייאט : חוטים  מוטיבציה  חוטי משתמש וחוטי מערכת  תמיכת מערכת ההפעלה  דוגמאות.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. חלוקת זכרון קבועה מול דפדוף.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
אביב 2004 מערכות הפעלה מערכות הפעלה קורס מס '
מערכות הפעלה תרגול 6 – חוטים ב-Linux. מערכות הפעלה - תרגול 62 (c) ארז חדד 2003 תוכן התרגול סינכרוניזציה בגרעין של Linux מבוא לחוטים ב-Linux כיצד גרעין.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 טיפול בקיפאון  בעיית הקיפאון  הימנעות מקיפאון  זיהוי קיפאון באמצעות מציאת מעגלים  אלגוריתם להתחמקות מקיפאון.
מערכות הפעלה קורס מס' מערכות הפעלה (אביב 2009) חגית עטיה ©
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
תיאום בין תהליכים : יסודות  דוגמאות לבעיות תיאום  הגדרות : קטע קריטי, מנעולים  אלגוריתם קופת - חולים.
מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
ניהול זיכרון  מבוא : מטרות ניהול הזיכרון.  מנגנונים : מרחב כתובות וירטואלי / פיזי. ניהול טבלת הדפים. מדיניות החלפת דפים.
(C) Yohai Devir January מבנה מחשבים ספרתיים זכרון וירטואלי מבוסס על תרגול של מורן גביש.
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
שיתוף PDT בין חוטים PDT Thread A Process Descriptor File Object 1 File Object 2 File 1 File 2 pthread_create Thread B Process Descriptor ה PDT משותף לכל.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
SQL בסיסי – הגדרה אינדוקטיבית
תרגול 3 קלט פלט בסיסי תקשורת בין תהליכים
הנעה חשמלית.
תרגול 12 – ניהול זיכרון ב-Linux: המשך
תקשורת ומחשוב תרגול סוקטים.
תהליכים-דייאט: חוטים מוטיבציה חוטי משתמש וחוטי מערכת
Shell Scripts בסביבת UNIX
פרק 3 - תהליכים.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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