1 / 27

מערכות הפעלה

מערכות הפעלה. תרגול 10 –אתחול מערכת. מה בתכנית?. אתחול המערכת. אתחול המערכת. שלבים: אתחול המכונה בזמן ההדלקה ( boot , לא קיים ב- XINU ) אתחול מבנה הנתונים מעבר למוד של ריצה - מטמורפוזה מתוכנית אחת למערכת הפעלה שמסוגלת להריץ מספר תהליכים במקביל!

talasi
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. מערכות הפעלה תרגול 10 –אתחול מערכת

  2. מה בתכנית? • אתחול המערכת מערכות הפעלה - תרגול 8

  3. אתחול המערכת • שלבים: • אתחול המכונה בזמן ההדלקה (boot, לא קיים ב-XINU) • אתחול מבנה הנתונים • מעבר למוד של ריצה - מטמורפוזה מתוכנית אחת למערכת הפעלה שמסוגלת להריץ מספר תהליכים במקביל! • קוד האתחול נמצא בפונקצית main שמתחילה לרוץ כיישום רגיל, משתלטת על פסיקות והופכת למערכת תהליכים מערכות הפעלה - תרגול 8

  4. אתחול מבנה נתונים • חישוב זכרון פנוי ואיתחול מנהל הזכרון • אתחול טבלאות תהליכים, תורים, סמפורים • אתחול מבני נתונים של שעון • וכו' (שלא דנו בקורס) • השתלטות על פסיקות, כולל אתחול טבלת הפסיקות מערכות הפעלה - תרגול 8

  5. מעבר לשלב ריצה מצב שיכול היה להיות שלב ביניים בריצה של מערכת • הצבת ערכי אתחול במבנה נתונים עבור תהליך NULL פעיל • הוספת תהליכי מערכת, butler ו-xmain (במקום command line) מערכות הפעלה - תרגול 8

  6. initialize.c מערכות הפעלה - תרגול 8

  7. initialize.c מערכות הפעלה - תרגול 8

  8. initialize.c מערכות הפעלה - תרגול 8

  9. הפונקציה main • מתודה האחראית על אתחול המערכת – קוראת ל-Sysinit שמבצעת את האתחול בפועל. • תהליך המבצע את המתודה main הופך לתהליך ה-NULL בסוף המתודה Sysinit. כלומר, עם החזרה מ-Sysinit, תהליך ה-NULL הוא שמבצע את הקוד. בשלב זה הפסיקות מכובות ולא קיימים תהליכים נוספים. מערכות הפעלה - תרגול 8

  10. הפונקציה main - המשך • לאחר הדפסות אתחול, main מאפשרת פסיקות, יוצרת את תהליך ה-Butler וקוראת ל-create על מנת להתחיל תהליך שיריץ את קוד האפליקציה - Xmain. • לאחר מכן פונקצית ה-main מתנהגת כפונקציה של תהליך ה-NULL (לולאה אינסופית). בשלב זה, מאחר ונוצר תהליך ה-Xmain עם עדיפות גבוהה יותר מזו של ה-NULL, הקוד של main ימשיך להתבצע רק כשלא יהיה תהליך נוסף עם עדיפות גבוהה מ-0 בתור ה-ready. מערכות הפעלה - תרגול 8

  11. main - initialize.c מערכות הפעלה - תרגול 8

  12. main - initialize.c מערכות הפעלה - תרגול 8

  13. הרוטינה –Sysinit אתחול רשימת memlist • הקצאת בלוק של זיכרון פנוי – שימוש בפונקציה malloc לקבלת בלוק הזיכרון הגדול ביותר האפשרי. הגודל של הבלוק שהוקצה מוקטן מעט כדי לאפשר הקצאות malloc נוספות כל ידי פונקציות ספרייה של C. • עדכון המשתנים end ו- maxaddr תוך עיגול לכפולה של 4. מערכות הפעלה - תרגול 8

  14. הרוטינה –Sysinit המשך • אתחול מבני נתונים של XINU • הפיכת הקוד הרץ כרגע לתהליך NULL. ברגע שמבצעים השמה ל-state של התהליך כ-PECURR ומעדכנים משתנה גלובלי currpid, resched יכולה להתבצע. • אתחול טבלת intmap מערכות הפעלה - תרגול 8

  15. sysinit מערכות הפעלה - תרגול 8

  16. sysinit מערכות הפעלה - תרגול 8

  17. sysinit מערכות הפעלה - תרגול 8

  18. sysinit מערכות הפעלה - תרגול 8

  19. sysinit מערכות הפעלה - תרגול 8

  20. אתחול השעון ותור הרדומים מערכות הפעלה - תרגול 8

  21. פונ' mapinit - ארגומנטים • הרוטינה מקבלת: • וקטור הכולל את סוג הפסיקה (LSB) ו-iflag (MSB). כזכור, משמעות ה- iflagהיא האם לבצע את ה-isr מקורי. • כתובת newisr • Minor device number (יועבר לשגרת הטיפול בפסיקה). מערכות הפעלה - תרגול 8

  22. mapinit – פעולת האתחול • אתחול השדות ב- intmap • Oldisr segment:offset נשלף דרך הוקטור(הארגומנט הראשון). • Call intcom נשטלת בטבלת IV במקום המתאים בהתאם לסוג הפסיקה (vec) במקום ה-segmen:offset של oldisr. מערכות הפעלה - תרגול 8

  23. מערכות הפעלה - תרגול 8

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

  25. xdone.c מערכות הפעלה - תרגול 2

  26. maprestore – שחזור ה-IV • המטרה: להחזיר את oldisr למקום המתאים ב-IV. • לשם כך, נעבור על כל הפסיקות ש-XINU השתלטה עליהן בפועל, ודרך ה-ivec ניגש למקום המתאים ב-IV ונציב בו את oldisr. מערכות הפעלה - תרגול 8

  27. מערכות הפעלה - תרגול 8

More Related