Presentation is loading. Please wait.

Presentation is loading. Please wait.

אוקטובר 20021 מבנה מערכות הפעלה -236364 אוקטובר 2002 אסף שוסטר שקפים ע"פ אלן אזגורי/חגית עטיה.

Similar presentations


Presentation on theme: "אוקטובר 20021 מבנה מערכות הפעלה -236364 אוקטובר 2002 אסף שוסטר שקפים ע"פ אלן אזגורי/חגית עטיה."— Presentation transcript:

1 אוקטובר 20021 מבנה מערכות הפעלה -236364 אוקטובר 2002 http://webcourse.technion.ac.il/236364 אסף שוסטר שקפים ע"פ אלן אזגורי/חגית עטיה

2 אוקטובר 2002 2עמוד אדמיניסטרציה מתרגלים –ארז חדד (אחראי), רן, אלינה, נלה שעות קבלה –יום ד' – 14:30-15:30 קורס קדם –מבוא למערכות הפעלה חוברת הקורס – בסיס בלבד, הדפיסו שקפים!

3 אוקטובר 2002 3עמוד אדמיניסטרציה (המשך) מבנה ציון –תרגילים יבשים 3x4% –תרגילים רטובים 2x6% –בחינה סופית 76% –נדרש ציון עובר (55>) בכל תרגיל –ציוני התרגילים משמשים כמגן בלבד –יש לעיין בתקנות הגשת תרגילים באתר הקורס

4 אוקטובר 2002 4עמוד מבוא – למה עוד קורס במע' הפעלה? עקרונות מע' הפעלה מהווים בסיס למספר רב של מערכות –מערכות משובצות מחשב TV Set-Top Box, מע' אחסון נתונים,... –מערכות זמן-אמת (soft or hard) מע' אוויוניקה,... –סביבות תכנות Java Virtual Machine –Grid Computing

5 אוקטובר 2002 5עמוד לעומת הקורס "מבוא למע' הפעלה" מבט השוואתי / ביקורתי –בין מספר מע' הפעלה התיחסות למדדי ביצוע –תפוקה ( throughput ), זמן ביצוע ( latency ), ניצולת ( efficiency ) יותר תיאורטי –השוואת אלגוריתמים נושאים מתקדמים –מע' הפעלה מבוזרות –מע' קבצים מקביליות –...

6 אוקטובר 2002 6עמוד מדוע מערכות הפעלה? משאבים קיימים כח חישוב (מעבד) –ביצוע סידרתי של פקודות, מס' משתנה של מעבדים זיכרון –משאב סופי מוגבל קלט/פלט, למשל דיסקים (אחסון נתונים) –מערך גדול מאוד של בתים רשת –תשתיות שונות, עם הבטחות שונות של זמן, אמינות וכד'

7 אוקטובר 2002 7עמוד מדוע מערכות הפעלה? הפשטת משאבים כח חישוב –לכל משתמש ו/או אפליקציה, מעבד "פרטי" זיכרון –לכל תהליך זיכרון פרטי (גדול יותר מהמשאב הפיסי) דיסקים (אחסון נתונים) –מדריכים, מספר שרירותי של קבצים "אינסופיים" רשת –ערוץ "פרטי" בין שני תהליכים, הבטחת סדר, אמינות

8 אוקטובר 2002 8עמוד הפשטת משאבים (המשך) מחיר:ביצועים, ניצולת כח חישוב –זימון תהליכים זיכרון –ניהול זיכרון וירטואלי דיסקים (אחסון נתונים) –ניהול מע' קבצים, זמן גישה,... רשת –headers, יתירות, המרת פרוטוקולים

9 אוקטובר 2002 9עמוד הפשטת משאבים (המשך)... אבל זה כדאי... סדר, מודולריות ניצולת, ניהול יעיל של משאבים –מהי ניצולת המעבד במחשב אישי? הגנה –בין משתמשים, בין תהליכים הסתרת תקלות –סקטור מקולקל בדיסק, איבוד מנות תקשורת הבטחת מידע …

10 אוקטובר 2002 10עמוד מערכות הפעלה הפשטת משאבים כסל שרותים זיכרון –זיכרון וירטואלי, הקצאת זיכרון, איסוף אשפה מע' קבצים –ניהול קבצים, ספריות, יחידות אחסון רשתות תקשורת –תקשורת בין קצוות –ניצול משאבים מרוחקים מקביליות –תהליכים וחוטים תיאום –Semaphores, מנעולים קלט/פלט –הפשטה ע"י Device Drivers

11 אוקטובר 2002 11עמוד היסטוריה חומרה יקרה ואיטית, כח-אדם זול –Batch jobs, ניצול החומרה 24x7: IBM S/360 חומרה יקרה ומהירה, כח-אדם זול –Interactive time-sharing: Unix, TSO חומרה זולה ואיטית, כח-אדם יקר –מחשב אישי לכל משתמש: MS-DOS חומרה זולה מאוד, כח חישוב רב –ריבוי משימות: Windows NT, OS/2, –שיתוף משאבים בסיסי: דיסקים, מדפסות,... רשתות מהירות –הרשת היא המחשב: SETI@home, Grid Computing

12 אוקטובר 200212 תקשורת בין תהליכים 1. ניהול תהליכים (חזרה) Process Management 2. תקשורת בין תהליכים (העברת הודעות) Interprocess communication (message passing)

13 אוקטובר 2002 13עמוד מבוא לניהול תהליכים תהליכים מאפשרים הפרדה נקיה בין משימות שמתבצעות "בו-זמנית" –ביצוע סדרתי של פקודות –מצב תהליך משתנה ומשפיע על ביצוע התכנית מצב כולל: קוד, רגיסטרים, זיכרון, רגיסטר בקרה, מצב קבצים פתוחים (מיקום), וכו' תהליך לעומת תוכנית –תוכנית היא חלק ממצב התהליך –תוכנית יכולה ליצר מספר תהליכים

14 אוקטובר 2002 14עמוד ביצוע תהליכים – דוגמא “vi myfile.txt” Keyboard Device Driver –אוגר ב-buffer את התווים שמתקבלים, עד להקשת “Enter” Command Line Interpreter –מיצר תהליך חדש (קריאה ל-fork) File Manager –מזהה גישה לקובץ “vi” –פונה דרך ה-Disk Device Driver לדיסק כדי להביא את הקובץ לזיכרון Loader –מאתחל את מצב התהליך, ומעביר לו ארגומנטים (מחרוזת “myfile.txt ”)

15 אוקטובר 2002 15עמוד ביצוע תהליכים – דוגמא “vi myfile.txt” (המשך) Memory Manager –מקצה מקום לקובץ ומעדכן את טבלאות המיפוי של הזיכרון Process Manager –התהליך מסומן כמוכן לביצוע (Ready) Scheduler –עם הזמן, התהליך נבחר לביצוע ומקבל את המעבד File Manager –פותח וטוען לזיכרון את תוכן הקובץ “myfile.txt” בשיתוף עם ה-Memory Manager

16 אוקטובר 2002 16עמוד מעקב אחר תהליכים תזמון תהליכים –מתבצע ע"י מערכת ההפעלה –מערכת ההפעלה מבטיחה הוגנות טבלת תהליכים –מכילה Process Control Block עבור כל תהליך משגר (Dispatcher) הוא לולאה –מקבל שליטה; בוחר תהליך לביצוע; משגר את תהליך; מקבל שליטה;... –בהמשך נראה איך נבחר תהליך איך תהליכים מתקשרים זה לזה Process State Registers Memory Limits File Descriptor Table Priority Program Counter

17 אוקטובר 2002 17עמוד אופן פעולה כפול (UNIX) Dual Mode Operation תהליך יכול להימצא באחד משני מצבים –גרעין (Kernel Mode) עם זכויות יתר (Privileged Mode), למשל גישה ישירה לקלט/פלט הקוד והנתונים של הגרעין נמצאים כל הזמן בזיכרון (non-pageable) מתבצע בהקשר של תהליך המשתמש –משתמש (User Mode) עם זכויות מוגבלות, למשל ללא גישה לכל הזיכרון או התקני קלט/פלט מעבר ממשתמש לגרעין – נעשה ע"י קריאת מערכת (System Call)

18 אוקטובר 2002 18עמוד אופן פעולה כפול (UNIX) איזורי זיכרון מרחב הכתובות של תהליך מחולק ל- –User Space ניתן לגישה כל הזמן –Kernel Space ניתן לגישה רק כאשר התהליך נמצא ב- Kernel Mode טבלאות ניהול הזיכרון לא חייבות להימצא בזיכרון כל הזמן (Memory Resident) Virtual Address Page table Address 0x0 0x1000 0x2000 0x3000 Process Page Tables Kernel Page Tables

19 אוקטובר 2002 19עמוד אופן פעולה כפול (UNIX) קריאות מערכת (System Calls) קריאות מערכת מוגדרות כספריה של פונקציות “C” כאשר יש קריאת מערכת מתבצע Operating System Trap –העתקת פרמטרים ל- Kernel Space –שמירת מצב התהליך –מעבר ל- Kernel Mode –קריאה לפונקציה המתאימה בספריה Open() Read() Write() Close() Fork() Wait() Malloc() Free() Lock() …

20 אוקטובר 2002 20עמוד תקשורת בין תהליכים מטרה –העברת מידע –תיאום כיצד –באמצעות pipes ו- signals (תיסקר בתרגול) –באמצעות זיכרון משותף (shared memory) –באמצעות העברת הודעות (message passing) –תקשורת ישירה ע"י זיהוי מפורש של התהליכים Send / Receive

21 אוקטובר 2002 21עמוד בעית היצרן / צרכן Producer/Consumer תהליך היצרן מכין מידע הנצרך ע"י הצרכן –תקשורת סימטרית שני התהליכים מזהים זה את זה –תקשורת אסימטרית שליחת הודעה לתהליך ספציפי קבלת הודעה מתהליך כלשהו repeat nextp = new item; send(consumer, nextp); until false; repeat receive( producer, nextp); consume nextp; until false; producer: consumer: P1: send(Q, id, msg);P2: send(Q, id, msg); Q: receive(id, msg);

22 אוקטובר 2002 22עמוד תיבות דואר Mailboxes מאפשרות תקשורת עקיפה –זוג תהליכים יכול להתקשר דרך כמה תיבות-דואר –כמה תהליכים יכולים לגשת לאותה תיבה –אם כמה תהליכים מתחרים, מי זוכה? send(mb, msg) receive(mb, msg)

23 אוקטובר 2002 23עמוד תיבות דואר Mailboxes תיבת-דואר בבעלות תהליך –רק התהליך יכול לגשת לתיבה –כאשר התהליך מסתיים, התיבה נעלמת תיבת-דואר בבעלות המערכת –יש פקודות ליצור/להשמיד אותה, ולשלוח/לקבל הודעות –התהליך היוצר מקבל בעלות והרשאת קריאה –ניתן להעביר בעלות, להעניק זכויות קריאה/כתיבה למשל בעזרת קריאות מערכת ו/או יצירת תהליך בן –במימושים מסוימים, כאשר מסתיימים כל התהליכים המשתמשים, מערכת ההפעלה משמידה אותה (למשל כאשר use-count=0)

24 אוקטובר 2002 24עמוד חוצצים Buffers הגבלה על מספר ההודעות –קיבולת אפס תקשורת סינכרונית חוסמת עם Rendez-vous למשל Remote Procedure Call –קיבולת חסומה השולח נחסם כאשר החוצץ מלא –קיבולת אינסופית השולח לא נחסם –בתקשורת אסינכרונית, מתי ההודעה מגיעה למקבל? אפשרויות: שליחת אישור (ack) – לפעמים כולל זיהוי המקבל } תקשורת אסינכרונית

25 אוקטובר 2002 25עמוד טיפול בחריגים כאשר תהליך מסתיים, יתכן... –שתהליך אחר מחכה (או יחכה) להודעה ממנו –שישנן הודעות שנשלחו אליו שלא נקראו הודעות אבודות –למשל בגלל שחוצץ התמלא –המערכת או השולח יכולים לשלוח אותן מחדש למשל, זיהוי ע"י time-out הודעות משובשות –למשל בגלל רעש בקו –זיהוי ע"י קודים (checksum, message digest)


Download ppt "אוקטובר 20021 מבנה מערכות הפעלה -236364 אוקטובר 2002 אסף שוסטר שקפים ע"פ אלן אזגורי/חגית עטיה."

Similar presentations


Ads by Google