1 / 27

מערכות הפעלה

מערכות הפעלה. תרגול 12: הגנה - המשך. מה בתכנית?. מיעון וירטואלי – תמונה מפורטת יותר שימושים נוספים של טבלאות המרה. תפקידי טבלאות המרה. כניסות בטבלאות המרה המיועדות לביצוע פקודות מכונה ברמת אפליקציה. תפקידים שכבר ראינו:

adila
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. מערכות הפעלה תרגול 12: הגנה - המשך

  2. מה בתכנית? • מיעון וירטואלי – תמונה מפורטת יותר • שימושים נוספים של טבלאות המרה מערכות הפעלה - תרגול 10

  3. תפקידי טבלאות המרה כניסות בטבלאות המרה המיועדות לביצוע פקודות מכונה ברמת אפליקציה. תפקידים שכבר ראינו: משמשות לקביעת הערכים החוקיים של כתובות לוגיות של תוכניות הרצות במערכת. משמשות להמרת כתובות לוגיות חוקיות לכתובות שהמערכת מקצה. משמשות לממש כתובות לוגיות בעלי אפיונים שונים: מוגבלים לרמות פריבילגיה גבוהות, קוד ביצוע בלבד, לקריאה בלבד. קובעות גודל מירבי לסגמנטים המקבילים לכתובות לוגיות חוקיות. מערכות הפעלה - תרגול 10

  4. תפקידי טבלאות המרה תפקידים נוספים: לשמש שערים Gates עבור פסיקות – Interrupt Gates. לשמש שערים עבור לכידת חריגות – Trap Gates. לשמש שערים למעבר בין משימות – Task State Segment Descriptor. לשמש שערים עבור קריאה לקוד בעל רמת ייחוס גבוהה יותר למרות רמת הייחוס הנמוכה של הקוד הקורא – Call Gates. מימוש תוכן האוגר ה-LDTR שהוא כניסה בתוך טבלת ה-GDT מערכות הפעלה - תרגול 10

  5. תיאור תוכן כניסה בטבלת GDT • ע"י ביט ה-S נעשה הבחנה בין סוגי Descriptors: • S=0: מסוג System • S=1:מסוג Application, סגמנט Data או Code. מערכות הפעלה - תרגול 10

  6. כניסות לאפליקציה הבחנה בין Descriptor מסוג Data או Code נעשית ע"י ביט מס' 11: אם הוא 0, מדובר ב-Descriptor מסוג Data, אם הוא 1 מדובר ב- Descriptor מסוג Code. שני סוגי ה- Descriptors מפרשים את שלושת הביטים של שדה ה- TYPE אחרת. מערכות הפעלה - תרגול 10

  7. מבנה כניסתDescriptor Data Writable- האם ניתן לכתיבה? Present – האם הסגמנט בזיכרון? Granuality- האם היחידות של ה- Limit הן 4k? Expand Down- האם הסגמנט גדל מעלה או מטה Accessed – האם כרגע ניגשים לסגמנט מערכות הפעלה - תרגול 10

  8. מבנה כניסת Code Descriptor Conforming- מתיר לקוד להסתעף גם כאשר ה-CPL שלו מיוחס פחות Present – האם הסגמנט בזיכרון? Readable- מאפשר לסגמנט להיות קריא Accessed – מסמן שניגשו לסגמנט מערכות הפעלה - תרגול 10

  9. ביט ה-Conforming ביט ה-Conforming מתיר לקוד המסתעף להסתעף לסגמנט קוד זה גם כאשר ה-CPL שלו מיוחס פחות. קוד מיוחס, נניח CPL=0, יכול להריץ ישירות קוד רק ברמת פריווילגיה מיוחסת (אין לו אפשרות להריץ קוד לא מיוחס). לכן, לקוד משותף לרמות פריווילגיה שונות יש לתת רמת פריווילגיה גבוהה ולעשות אותו Conforming. מערכות הפעלה - תרגול 10

  10. מבנה כניסות System Segment Descriptor ביט ה-S, כאמור, הוא 0. מערכות הפעלה - תרגול 10

  11. מבנה LDT מערכות הפעלה - תרגול 10

  12. System Level Registers and Data Structures מערכות הפעלה - תרגול 10

  13. שערים - Gates • שער הוא אמצעי המאפשר המרה בין הזוג CS:EIP לביצוע קוד ברמת פריווילגיה גבוהה יותר, אבל בצורה מבוקרת, על ידי מערכת ההפעלה. • תוכנית יכולה להסתעף לקוד בעל רמת פריווילגיה גבוהה מהתוכנית הקוראת על ידי הפקודות INT ו- CALL (פויינטר לפונקציה), אבל אך ורק ליעדים שנקבעו על ידי מערכת ההפעלה. • זו נקראת הסתעפות עקיפה. מערכות הפעלה - תרגול 10

  14. Call Gate כאשר מדובר בהסתעפות דרך Call Gate, בהכרח התבצעה פקודת Call נוסח: CALL Mem48, כלומר, ההסתעפות היא דרך משתנה\הפניה לזיכרון כמידע בגודל 48 ביט. ה- CPU טוען את הערכים ל-CS ו- EIP וניגש לטבלת המרה לפיענוח, אבל אז מגלה שמדובר לא בסגמנט קוד אלא ב-Call Gate, ואז טוען מהכניסה ערכים חדשים ל-CS ו-EIP. הערך EIP של הפוינטר לפונקציה Mem48 נשכח ולא בא לידי ביטוי בפעולת המרה כלל. מערכות הפעלה - תרגול 10

  15. מבנה Call Gate מערכות הפעלה - תרגול 10

  16. Call Gate Mechanism מערכות הפעלה - תרגול 10

  17. דוגמא למעבר דרך Call Gate התבצעה הפקודה הבאה: Call Mem48 Mem48 DP 0023????????h ידוע שהכניסה הרלוונטית בטבלת ההמרה נראת כך: New CS=0008, DPL=11, STYPE=01100 מהי הכניסה שאליה מסתעף הקוד ובאיזו טבלת המרה היא נמצאת? לאן מתבצעת הסתעפות משם ומה אנו יודעים על כניסה נוספת בטבלת המרה מסויימת? מערכות הפעלה - תרגול 10

  18. דוג' למעבר דרך Call Gate - תשובות מערכות הפעלה - תרגול 10 כאשר מבצעים את הפקודה Call Mem48 מסתעפים לכניסה 4 ב-GDT. כניסה זו היא Call Gate(s=0,type=1100). ממנה אנו מקבלים CS ו-EIP חדשים. לפי ה-CS החדש(0008), אנו ניגשים לכניסה 1 ב-GDT שבה DPL=00 ו-STYPE=110??

  19. טבלת הפסיקות במצב מוגן כאשר ה-CPU נמצא במצב מוגן, טבלת הפסיקות נמצאת היכן שהאוגר המיוחד IDTR מצביע עליו, ועקרונית יכול להיות בכל מקום בזיכרון. כמו ב- Real Mode, בטבלה יש 256 כניסות, אלא שבניגוד ל-Real Mode כל כניסה היא 8 בתים והמבנה והתפקוד שלה מאוד דומים לזה של Call Gate. ההבדל העיקרי בין כניסות בטבלת הפסיקות לבין שערי CALL הוא, ששדה ה-STYPE יכול להיות 00101 ((Task Gate, 01110 (Interrupt Gate), או 01111 (Trap Gate). מערכות הפעלה - תרגול 10

  20. מבנה ה-IDTR המבנה של IDTR דומה לזה של GDTR: מערכות הפעלה - תרגול 10

  21. טבלת הפסיקות במצב מוגן מערכות הפעלה - תרגול 10 ההבדל בין Interrupt Gate ל- Trap Gate הוא שהסתעפות דרך Interrupt Gate גם מאפסת את ה-IF. כאשר אנו מנסים להסתעף לקוד של פסיקה (פסיקת חומרה או פסיקת תוכנה ביוזמת התוכנית ע"י פקודת המכונה INT) ה-CPU ניגש לפי מספר פסיקה k לכניסה מספר k בטבלת הפסיקות, שם הוא ימצא ערכים חדשים ל-CS ו-EIP. המבנה הזה מאפשר למערכת להגביל את השימוש בפקודת המכונה INT k לפי רמות פריווילגיה. פסיקות תוכנה נחשבות לחריגות – יעברו דרך Trap Gate.

  22. מבנה Interrupt Gate מערכות הפעלה - תרגול 10

  23. מבנה Trap Gate מערכות הפעלה - תרגול 10

  24. Interrupt Procedure Call מערכות הפעלה - תרגול 10

  25. פסיקות במצב מוגן - דוגמא • מבצעים את פקודת המכונה INT 3 מתוכנית אפליקציה. • נניח שבכניסה המתאימה ב-IDT מופיע הערך הבא: new CS=0018h. • באיזו כניסה מדובר?מה עוד תוכל להגיד על הערכים המופיעים בה? • מה תוכל להגיד על כניסה נוספת בטבלאות ההמרה? מערכות הפעלה - תרגול 10

  26. תשובה לדוגמא • מדובר בכניסה מספר 3 ב-IDT.נוכל לדעת עליה דברים נוספים: DPL=11, STYPE=01111. • מכניסה 3 ב-IDT נסתעף לכניסה 3 ב-GDT. על כניסה זו נוכל לדעת: DPL=00, STYPE=110?? מערכות הפעלה - תרגול 10

  27. לסיכום... מערכות הפעלה - תרגול 10

More Related