Presentation is loading. Please wait.

Presentation is loading. Please wait.

מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה -236364 מרץ 2002 אלן אזאגורי (מרצה אחראי) ארז חדד.

Similar presentations


Presentation on theme: "מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה -236364 מרץ 2002 אלן אזאגורי (מרצה אחראי) ארז חדד."— Presentation transcript:

1 מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה -236364 מרץ 2002 http://www.cs.technion.ac.il/~cs236364 אלן אזאגורי (מרצה אחראי) ארז חדד

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

3 מרץ 2002 אלן אזאגורי ©3עמוד אדמיניסטרציה (המשך) מבנה ציון –תרגילים יבשים 2x4% –תרגילים רטובים 2x6% –בחינה סופית 80% –נדרש ציון עובר (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 מרץ 2002אלן אזאגורי ©12 תקשורת בין תהליכים 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 "מרץ 2002אלן אזאגורי ©1 מבנה מערכות הפעלה -236364 מרץ 2002 אלן אזאגורי (מרצה אחראי) ארז חדד."

Similar presentations


Ads by Google