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

17
בבבב( בבבבבב בבבבב2004 ) © בבבב בבבב1 בבבבב:- בבבבבבב בבבבב בבבבבבבב בבבב בבבבב בבבבב בבבבב בבבבב בבבבב בבבבבב בבבבבבב
  • date post

    18-Dec-2015
  • Category

    Documents

  • view

    255
  • download

    9

Transcript of מערכות הפעלה ( אביב 2004) חגית עטיה © 1 תהליכים - דייאט :...

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

(2004מערכות הפעלה )אביב © חגית עטיה 1

תהליכים-דייאט: חוטים מוטיבציה

חוטי משתמש וחוטי מערכת תמיכת מערכת ההפעלה

דוגמאות

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

(2004מערכות הפעלה )אביב © חגית עטיה 2

עלות ריבוי תהליכיםתהליכים דורשים משאבי מערכת רבים

מרחב כתובות, גישה לקלט/פלט(file table)...

זימון תהליכים הינו פעולה כבדהcontext switch.לוקח הרבה זמן

תקשורת בין תהליכים עוברת דרך מערכת ההפעלה מערכת ההפעלה שומרת על ה"שערים" בחומות שבנתה

בין תהליכים שונים

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

(2004מערכות הפעלה )אביב © חגית עטיה 3

טבעי לי מקבילי...אך הרבה בעיות קל יותר לפתור באמצעות ריבוי תהליכים

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

בבקשה

פתרון: לבצעforkתהליך הבן מטפל בבקשה שהגיעההאב ממשיך להמתין לבקשה

...PCBלא-יעיל כי מחייב הקצאת מרחב כתובות,

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

(2004מערכות הפעלה )אביב © חגית עטיה 4

שומרי משקל:התהליכים שנוצרים לטיפול בבקשות דומים זה לזה

.אותו קוד.אותם משאבים ונתונים

:אבל לא זהים.מטפלים בבקשות שונות.נמצאים בשלבים שונים במהלך הטיפול

( אשר lightweight processes תהליכים-דייאט )משתפים מרחב כתובות, הרשאות ומשאבים

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

(2004מערכות הפעלה )אביב © חגית עטיה 5

תהליכים-דייאט = חוטים( חוטthread )( הינו יחידת ביצוע )בקרה

בתוך תהליך

במערכות הפעלה קלאסיות"חוט" יחיד בכל תהליך

במערכות הפעלה מודרניותתהליך הוא רק מיכל לחוטים

:לכל חוט דרושים המשאביםprogram counterמחסניתרגיסטרים

)Thread Control Block )TCBנמצאים ב

P1

P3

P2

P1

T1T2

T3

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

(2004מערכות הפעלה )אביב © חגית עטיה 6

תזכורת: מרחב הכתובות של תהליך

0x00000000

0xFFFFFFFF

address space

code)text segment(

static data)data segment(

heap)dynamic allocated mem(

stack)dynamic allocated mem(

Program Counter

Stack Pointer

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

(2004מערכות הפעלה )אביב © חגית עטיה 7

מרחב הכתובות של תהליך מרובה-חוטים

0x00000000

0xFFFFFFFF

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 2SP thread 2

PC thread 1

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

(2004מערכות הפעלה )אביב © חגית עטיה 8

ייחודי לתהליך ייחודי לחוטProgram CounterRegistersExecution StackAddress SpaceOpen FilesFile position

חוטים לעומת תהליכים

X

X

X

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

(2004מערכות הפעלה )אביב © חגית עטיה 9

ושוב, שרת קבצים:התהליך מחזיר

מחרוזת תווים )במקרהשל קריאה(

סטאטוס)הצלחה/כישלון(

אורך קריאה/כתיבה)בפועל(

תהליך מקבל בקשותעם הפרמטרים הבאים:

:קריאה / כתיבה סוגזיהוי קובץמיקום בקובץאורך חוצץ(buffer)

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

(2004מערכות הפעלה )אביב © חגית עטיה 10

שרת קבצים: מימוש עם חוט יחיד

פשטותניצול משאבים לקוי, למשל בהמתנה לקלט/פלט

ניתן ליעל ע"י קלט / פלט אסינכרוני וטיפול במספר בקשות בו זמנית

do forever get request; execute request; return results;end;

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

(2004מערכות הפעלה )אביב © חגית עטיה 11

מימוש באמצעות חוטיםחוט מנהל

מקבל בקשה.מייצר חוט עבודה, ומעביר אליו את הבקשה

חוט עבודהמבצע את הבקשהמחזיר תשובה

תפוקה גבוהה יותרתכנות מורכב יותר

בקשה

חוט עבודה

חוט עבודה

תשובה

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

(2004מערכות הפעלה )אביב © חגית עטיה 12

יתרונות וחסרונותיצירת חוט יעילה יותר

והקצאת מחסניתthread control blockרק יצירת –ניצול טוב יותר של משאבים

למשל, במערכות מרובות מעבדים–תקשורת נוחה יותר בין חוטים השייכים לאותו תהליך

זיכרון משותף–תכנות מובנה יותרחוסר הגנה בין חוטים באותו תהליך

חוט עלול לדרוס את המחסנית של חוט אחר–גישה לא מתואמת למשתנים גלובליים–

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

(2004מערכות הפעלה )אביב © חגית עטיה 13

חוטי משתמש וחוטי מערכת חוט משתמש(user threads)

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

?מה קורה כאשר חוט נחסם

חוט מערכת(kernel threads)מוכרים למערכת ההפעלה נקראיםlightweight processes

חוטי משתמש מאפשרים לאפליקציה לחקות ריבוי חוטים גם במערכת הפעלה single-threaded.

kernel

process

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

(2004מערכות הפעלה )אביב © חגית עטיה 14

תמיכת מערכת הפעלה בחוטיםיצירת והריסת חוטים, לדוגמא

thread_create(char *stack)thread_exit(…)thread_join(…)thread_kill(…)

מבני נתונים פנימייםthread control blockProgram counter, stack, registers

מנגנוני סנכרוןלמשל, תיאום גישה לזיכרון משותף

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

(2004מערכות הפעלה )אביב © חגית עטיה 15

POSIXדוגמא: חוטי ממשק סטנדרטיIEEE 1003.1c ).ליצירת וניהול חוטים )

רקapplication program interface.

:דומה מאוד לפעולות המתאימות עבור ניהול תהליכיםpthread_createpthread_exitpthread_join

.כולל מנגנונים רבים לתיאום בין חוטים!בקרוב מאוד

נתמך בהרבה מערכות“UNIX” ,בפרטPthreads ב Linux.מימושים שונים

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

(2004מערכות הפעלה )אביב © חגית עטיה 16

השוואת ביצועיםזמן יצירה / סיום:

Linux 2.2.16, עם 700MHz Pentiumבמיקרו שניות, על [Steve Gribble, 2001]

251fork / exitתהליכים

94pthread_create / pthread_join

חוטי גרעין

4.5pthread_create / pthread_join

חוטי משתמש

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

(2004מערכות הפעלה )אביב © חגית עטיה 17

Windows NTדוגמא: הינה תהליך. היחידה הבסיסית חוטיםתהליך יכול להכיל כמה – kernel threads. סיביםחוט יכול להכיל כמה (fibers) ,

user threadsשהם בעצם

זימון נעשה ברמת החוטים תהליך רק מגדיר את מרחב הזיכרון, ומהווה מיכל

לחוטים