1 / 42

מערכות הפעלה

מערכות הפעלה. תרגול 1 - מבוא. ברוכים הבאים לקורס מערכות הפעלה!. אדמיניסטרציה מערכת ההפעלה שתודגם בקורס היא XINU : הכנה לעבודה ב- XINU הרצת ישומים תהליכים קריאות מערכת הפעלה. אדמיניסטרציה. מתרגלת: נועה פריבמן חורש תרגולים: יום ד', 12:00-14:00 יום ה', 18:00-20:00

roscoe
Download Presentation

מערכות הפעלה

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מערכות הפעלה תרגול 1 - מבוא

  2. ברוכים הבאים לקורס מערכות הפעלה! • אדמיניסטרציה • מערכת ההפעלה שתודגם בקורס היא XINU: • הכנה לעבודה ב-XINU • הרצת ישומים • תהליכים • קריאות מערכת הפעלה מערכות הפעלה - תרגול 1

  3. אדמיניסטרציה • מתרגלת: נועה פריבמן חורש • תרגולים: יום ד', 12:00-14:00 יום ה', 18:00-20:00 • שעות קבלה: יום ד',10:00-11:00 (לתאם מראש במייל) • אתר הקורסhttp://sci.haifa.ac.il/courses/oscourse/: • תרגילי בית: הגשה בזוגות מערכות הפעלה - תרגול 1

  4. איך מתקינים XINU • באתר לינק ל: - התקנת מערכת הפעלה XINU. - התקנת ערכת פיתוח Turbo C. • להוסיף מסלול TCלמשתנה סביבה PATH (למשל c:\tc\bin) מערכות הפעלה - תרגול 1

  5. תכנית ראשונה – с.ex1 • xmain - הפונקציה הראשית ב-XINU • מה התכנית עושה? #include <conf.h> xmain() { putc(CONSOLE, ‘h’); putc(CONSOLE, ‘i’); putc(CONSOLE, ‘\n’); } מערכות הפעלה - תרגול 1

  6. איך להריץ ex1.c? • לפתוח command line(cmd.exe) • להריץ Turbo Cכדי לקבל קובץ exe tcc -I.. ex1.c ..\xinu.lib > errs • קובץ errsמכיל את תוצאות הקומפילציה. כדי לפתוח אותו: type errs • לפתוח קובץ exeשהתקבל כדי להריץ ישום ( ex1.exeבדוגמה) • הערה: Ctrl-F1מאפשר לראות את הנתונים הפנימיים של מערכת מערכות הפעלה - תרגול 1

  7. מערכות הפעלה – מבוא Linux Unix Novell - NetWare MS Windows Mac OS X מערכות הפעלה - תרגול 1

  8. מערכות הפעלה – נעים להכיר! • מהי מערכת ההפעלה? • שכבת תוכנה לניהול והסתרת פרטים של חומרת המחשב. • מנהלת את משאבי המערכת ומשתפת אותם בין תהליכים, תוכניות, ומשתמשים. אפליקציה 2 אפליקציה 3 אפליקציה 4 אפליקציה 1 מערכת הפעלה Printer controller Device Disk controller CPU memory מערכות הפעלה - תרגול 1

  9. סוגי מערכות הפעלה • עם תהליך יחיד (MS DOS) • ריבוי תהליכים (MS Windows, UNIX) • ריבוי מעבדים (HYDRA) • מערכות מבוזרות (Amoeba) • מערכות (VxWorks, Windows CE) real time מערכות הפעלה - תרגול 1

  10. מערכות הפעלה ומבנה המחשב • התנהגות מערכת ההפעלה מוכתבת (חלקית) על-ידי החומרה שעליה היא רצה • סט פקודות, רכיבים מיוחדים • החומרה יכולה לפשט / לסבך משימות מערכת ההפעלה • מחשבים ישנים לא סיפקו תמיכה לזיכרון וירטואלי מערכות הפעלה - תרגול 1

  11. מנגנוני חמרה לתמיכה במערכת ההפעלה • שעון חומרה • פעולות סנכרון אטומיות • פסיקות • קריאות מערכת-הפעלה • פעולות בקרת קלט / פלט • הגנת זיכרון • אופן עבודה מוּגן (protected) מערכות הפעלה - תרגול 1

  12. רכיבי מערכת הפעלה • מנהל תהליכים • מנהל זיכרון • מנהל קלט / פלט • מנהל קבצים • הגנה • ניהול חשבונות משתמשים • ממשק משתמש (shell) זאת ועוד... • אתחול • גיבוי • ... • דפדפן? מערכות הפעלה - תרגול 1

  13. קריאות מערכת הפעלה • קריאת מערכת הפעלה היא פונקציה המהווה ממשק בין המשתמש ושירותי מערכת ההפעלה • קריאות מערכת הפעלה מבצעות בדיקות תקינות הפרמטרים המועברים (מזהה תהליך קיים, פרמטר בתחום המותר, ועוד) מערכות הפעלה - תרגול 1

  14. קריאות מערכת הפעלה • משתמש יכול לגשת רק לקריאות מערכת הפעלה • פונקציות פנימיות של מערכת הפעלה מוגנות מפני המשתמש תכניות משתמש קריאות מערכת הפעלה מערכת ההפעלה חומרה מערכות הפעלה - תרגול 1

  15. קריאות מערכת הפעלה XINU • קריאות מערכת יחזירו SYSERR (ערך 1-) עבור קריאה לא תקינה • בסיום ביצוע תקין קריאות מ"ה מחזירות ערך מספרי. חלקן מחזירות OK (ערכו 1) • עבור קריאות מערכת הפעלה מובטח שביצוע בו-זמני יהיה תקין מערכות הפעלה - תרגול 1

  16. תהליכים תהליך הוא ביצוע של תכנית • תהליכים יוצרים אשליה של הרצת מספר אפליקציות במקביל • לכל תהליך – תכנית אחת, לתכנית אחת יכולים להיות תהליכים רבים מתבצעים בו זמנית מערכות הפעלה - תרגול 1

  17. תהליכים • לתהליך אין השתקפות בחומרה, תהליכים הם מושג הממומש בתוכנה • נקרא גם job, task, sequential process • הערה: התכניות שכתבתם עד עתה בקורסים קודמים רצו כולן כתהליכים בודדים מערכות הפעלה - תרגול 1

  18. תהליכים • תהליכים יכולים לשתף פעולה עם תהליכים אחרים, ובכך מתאפשרת כתיבה של תכניות המורכבות מכמה תהליכים, שכל אחד מהם מבצע חלק מהעבודה • במקרים רבים קל יותר ותחזוקתי יותר לכתוב תכניות המורכבות מכמה תהליכים מאשר לכתוב תכנית בעלת תהליך יחיד המבצעת את אותה העבודה מערכות הפעלה - תרגול 1

  19. ריבוי תהליכים תהליכים מקבילים תהליכים עוקבים A A B t A+B t A + t B B זמן ריצה קצר יותר זמן מערכות הפעלה - תרגול 1

  20. חלוקת זמן • במערכת מרובת תהליכים פועל כל תהליך כאילו הוא יחיד במערכת, ואינו נדרש לתאם את פעולותיו עם תהליכים אחרים (אלא אם כן רצונו לתאם) • מ"ה אחראית לאפשר לכל התהליכים להתבצע, אך בכל רגע נתון, בדיוק אחד התהליכים מבוצע במעבד מערכות הפעלה - תרגול 1

  21. חלוקת זמן תזמון בפועל אבסטרקציה A תכנית A תכנית A תכנית B 1 A 2 מחכה לקלט B מחכה למעבד מ 1 2 3 3 מחכה למעבד A 2 A מחכה לקלט 1 A 2 B 3 זמן מערכות הפעלה - תרגול 1

  22. חלוקת זמן תהליך יכול לוותר על המעבד בכמה דרכים: • בקשות קלט/פלט בהן עליו לחכות לסיום ביצוע הבקשה • בקשה לחכות לאירוע כלשהו (למשל קבלת הודעה מתהליך אחר) • בקשה להפסיק ביצוע למשך זמן נתון (sleep) מערכת הפעלה יכולה ליזום החלפת תהליך מערכות הפעלה - תרגול 1

  23. מ"ה ללא תהליכים (MS-DOS) יתרונות: • פשטות • תכניות יכולות לנצל את כל משאבי המחשב • תהליכים אחרים אינם מפריעים • התכניות מסתיימות בזמן הקצר ביותר • זמן הביצוע תלוי רק בתכנית עצמה • תכניות יכולות להסתמך על אי יציאתן מהמעבד מערכות הפעלה - תרגול 1

  24. מ"ה ללא תהליכים (MS-DOS) חסרונות: • לא ניתן להשתמש במעבד ובאמצעי קלט/פלט בו זמנית בצורה יעילה • תכנית הצורכת את המעבד לפרק זמן ארוך מונעת מתכניות אחרות כל שימוש במחשב • אין תמיכה במישתמשים אינטראקטיביים • לא מאפשרות תקשורת בין תהליכים מערכות הפעלה - תרגול 1

  25. מאפייני תהליך pid = 1215 pid = 1216 pid = 1221 • קוד התוכנית • נתונים • מספר תהליך (process id) • עדיפות • מחסנית זמן-ביצוע • program counter Open Office מחשב מסך מסך מסך מערכות הפעלה - תרגול 1

  26. sleep wake up SLEEPING resched resched CURRENT READY SUSPENDED suspend suspend resume Create תהליך - דיאגרמת מצבים מערכות הפעלה - תרגול 1

  27. שרשרת המצבים של תהליך דוגמה • Suspended • Ready • Current • Ready • Current • Ready • Suspended • Ready • Current • Sleep • Ready • Current • … • END התהליך נוצר, הועבר לביצוע, הושעה, הועבר לביצוע, הלך "לישון", הועבר לביצוע, הושעה... מערכות הפעלה - תרגול 1

  28. יצירת תהליכים - create XINUתומכת בריבוי תהליכים. יצירת תהליך מתבצעת באמצעות קריאת מערכת הפעלה create сreate( <שם הפונקציה הראשית>, <גודל מחסנית לתהליך>, <עדיפות>, <שם התהליך>, <מס' פרמטרים>, <פרמ' 1>, <פרמ' 2>, …, < n פרמ' > ); מערכות הפעלה - תרגול 1

  29. יצירת תהליכים - create • קיימים 2 קבועים: • INITSTK – גודל מחסנית של 512 בתים • INITPRIO – עדיפות 20 התהליך xmainנוצר עם גודל המחסנית והעדיפות הנ"ל • createמחזירה מזהה תהליך ייחודי (pid) עבור התהליך הנוצר • תהליך הנוצר באמצעות createיווצר במצב מושעה(SUSPENDED) מערכות הפעלה - תרגול 1

  30. הכנסת תהליך מושעה לריצה תהליך מושעה (לדוגמא: תהליך חדש שנוצר כרגע) עובר למצבבו הוא מוכן (READY) לריצה ע"י קריאת מערכת הפעלה .resume resume ( <מזהה תהליך> ); התהליך עובר למצב READYומהרגע הזה מחכה בתור לכניסה למעבד מערכות הפעלה - תרגול 1

  31. דוגמה 1 #include <conf.h> #include <kernel.h> xmain() { int prA(), prB(); resume( create(prA, INITSTK, INITPRIO, “proc 1”, 0) ); resume( create(prB, INITSTK, INITPRIO, “proc 2”, 0) ); } prA() { while(1) putc(CONSOLE, ‘A’); } prB() { while(1) putc(CONSOLE, ‘B’); } מערכות הפעלה - תרגול 1

  32. מהו הפלט של התכנית? 1 AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBB 2 BBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAA 3 1111111111111111111111111111112222222222222222222222222222 4 2222222222222222222222222222222222221111111111111111111111 5 AAAAABBBBBBBAAAAAAAAAAAAAAAAAAABBBBAAAAAAAAAAAAAA מערכות הפעלה - תרגול 1

  33. דוגמה 2 #include <conf.h> #include <kernel.h> xmain() { int prnter(); resume( create(prnter, INITSTK, INITPRIO, “proc 1”, 1, ‘A’) ); resume( create(prnter, INITSTK, INITPRIO, “proc 2”, 1, ‘B’) ); } prnter(int ch) { while(1) putc(CONSOLE, ch); } מערכות הפעלה - תרגול 1

  34. השעיית תהליך ניתן להשעות תהליך מריצה באמצעות קריאת מערכת הפעלה . suspend( <מזהה תהליך> ); ניתן להשעות תהליך רק אם הוא רץ כרגע או מוכן לריצה. מערכות הפעלה - תרגול 1

  35. סיום תהליך סיום נורמלי של תהליך מתבצע כאשר מסתיימת הפונקציה הראשית שלו. ניתן לגרום לסיום התהליך לפני כן (להרוג אותו) על ידי קריאת מ"ה kill kill( <מזהה תהליך> ); תהליך יכול להרוג את עצמו. קריאת התאבדות: kill(getpid()); getpid() – מחזיר את המזהה של התהליך מערכות הפעלה - תרגול 1

  36. עדיפויות העדיפות מגדירה את מיקומו של התהליך בתור המתנה של CPU. ניתן לקבל עדיפות של התהליך באמצעות קריאה ל-getprio getprio( <מזהה תהליך> ); שינוי עדיפות של תהליך: chprio( ,<מזהה תהליך><עדיפות חדשה>); chprioמחזירה את העדיפות הישנה (לפני השינוי) מערכות הפעלה - תרגול 1

  37. שינה תהליך יכול לבקש ללכת לישון לזמן קצוב. את הזמן מבטאים בשניות ניתן ללכת לישון למספר שלם של שניות בלבד. sleep( <מספר שניות שלם> ); sleep(0)גורם להחלפת תהליכים ללא כניסה למצב שינה. מערכות הפעלה - תרגול 1

  38. שינה - דוגמה #include <conf.h> #include <kernel.h> long counter; /* global shared counter */ xmain() { int proc(int), count_proc(); int pid; counter = 0; pid = create(count_proc, INITSTK, INITPRIO-1, “counter process”, 0); resume( create(proc, INITSTK, INITPRIO, “my process”, 1, pid)); } מערכות הפעלה - תרגול 1

  39. דוגמה - המשך /* counter – increase global counter */ count_proc() { while(1) counter++; } /* proc - wake up counting process and go to sleep, print counter when waked up */ proc(int other_id) { printf(“going to sleep for 10 seconds”); resume(other_proc); /* let counter process to run */ sleep(10); suspend(other_proc); /* stop counter process */ printf(“while I was sleeping other process increased the counter %d times”, counter); kill(other_proc); } מערכות הפעלה - תרגול 1

  40. דוגמה - המשך • לתהליך counterעדיפות נמוכה. מדוע? • counterמסתיים בעת ש-procמבצעkill • procמסתיים בצורה טבעית • counter הוא משתנה משותף מערכות הפעלה - תרגול 1

  41. בשעור הבא... • קריאות מערכת הפעלה - המשך • דוגמאות לשימוש בקריאות מערכת ההפעלה מערכות הפעלה - תרגול 1

  42. מערכות הפעלה - תרגול 1

More Related