מערכות הפעלה

43
הההההה הההההTutorial 10 – Processor Architecture and Protection

Upload: pearl

Post on 15-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

מערכות הפעלה. Tutorial 10 – Processor Architecture and Protection. מה בתכנית?. הקדמה למנגנוני הגנה רמות פריבילגיה מיעון וירטואלי זיכרון וירטואלי - דיפדוף. מדוע צריך הגנה?. תוכנית אפליקציה עלולה לחבל במערכת הפעלה או תוכנית אפליקציה אחרת. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: מערכות הפעלה

מערכות הפעלה

Tutorial 10 – Processor Architecture and Protection

Page 2: מערכות הפעלה

10מערכות הפעלה - תרגול 210:40

מה בתכנית?

הקדמה למנגנוניהגנה

רמות פריבילגיהמיעון וירטואלי - זיכרון וירטואלי

דיפדוף

Page 3: מערכות הפעלה

מדוע צריך הגנה?

תוכנית אפליקציה עלולהלחבל במערכת הפעלה או

תוכנית אפליקציה אחרת. למשל, ע”י גישה לשטחי זיכרון

מערכת הפעלה, ביטול שלהפסיקות ועוד.

10מערכות הפעלה - תרגול 310:40

Page 4: מערכות הפעלה

מה קורה בפועל במערכות הפעלה?

מאזDOS .כל מערכות ההפעלה מוגנות המשמעות: מערכת ההפעלה דואגת להעביר

את המחשב למצב מוגן ולנצל תכונות של מצב זה לשמירה על תקינות התפקוד של מערכת

ההפעלה.

10מערכות הפעלה - תרגול 410:40

Page 5: מערכות הפעלה

מנגנוני הגנה – שלושה עיקריים:

. אמצעי המאפשר 1לקחת חזרה את השליטה של על

CPUה-

10מערכות הפעלה - תרגול 510:40

. מנגנון הפסיקות1

. מניעת שימוש 2בפקודות

מסוכנות כמו CLI, HLT...

. מנגנון רמות 2הפריבילגיה –

פקודות מיוחסות

Page 6: מערכות הפעלה

10מערכות הפעלה - תרגול 610:40

. שליטה על 3הכתובות

בזיכרון שמהן תוכניות יכולות

לקרוא או לכתוב

. מנגנון המיעון הוירטואלי 3המרה לכתובת האמיתית.

- תחת מנגנון המיעון הוירטואלי ערכי הפויינטרים

הם כתובות לוגיות ולא כתובות פיזיות.

- מערכת ההפעלה מתחזקת שבם מצויים, בין טבלאות

כתובות פיזיות של היתר, סגמנטים.

Page 7: מערכות הפעלה

איך זה ממומש? בחומרה ובתוכנה

החומרה מבצעת הליך ידוע וצפוי מראש על פיפרמטרים שהיא מוצאת באוגרים מיוחדים ובזכרון

ההליך שהחומרה המוצבים שם על ידי התוכנה.מבצעת אינו תלוי במערכת הפעלה , אבל

הפרמטרים שהוא פועל עליהם כן. לכן, איכותה של ההגנה נקבע על ידי איכות התוכנה.

בד"כ הגרעין של מערכת ההפעלה הוא האחראיליישום של מנגנון ההגנה.

10מערכות הפעלה - תרגול 710:40

Page 8: מערכות הפעלה

רמות פריבילגיה כל תוכנית או רוטינה רצה ברמת פריבילגיה מסויימת, הבאה לידי ביטוי בשני

CPL הנקראים CSביטים באוגר ה- שינוי רמת פריבילגיה אפשרית רק דרךCall .Gates כלומר, תוכנית אינה

יכולה להעלות את רמת הפריווילגיה שלה ללא הסכמה של מערכת ההפעלה. – היא המיוחסת ביותר, רמה 0(. רמה 3 ל-0 רמות פריבילגיה )בין 4 יש 386ב

היא המיוחסת פחות.3 3תוכניות אפליקציה רצות כמעט תמיד ברמת פריבילגיה. 0החלק הפנימי של מערכת ההפעלה )ה"גרעין"( רץ ברמת פריבילגיה. לא תמיד מנוצלות, אבל קיימות למשל עבור 2 ו-1רמות Device Drivers –

גישה לחומרה עבור קלט\פלט. כשמדברים על“rings”.מתכוונים לרמות פריבילגיה

10מערכות הפעלה - תרגול 810:40

Page 9: מערכות הפעלה

רמות פריבילגיהצורות שימוש ברמות פריבילגיה:

פקודות מכונה שרק תוכניות מיוחסות )רמת פריבילגיה, פקודות הטוענות HLT( יכולות לבצע. דוגמאות: 0

וכו'.LGDT, LLDTערכים לאוגרים מיוחדים כמו פקודות מכונה שמערכת ההפעלה מחליטה לגביהן איזו

,CLIרמת פריבילגיה נחוצה כדי לבצע אותן, לדוגמא: OUT, IN ועוד.. בשני ביטים באוגר הדגלים שנקראים

IOPL נקבעת רמת הפריבילגיה הנחוצה לביצוע פקודות אלה.

10מערכות הפעלה - תרגול 910:40

Page 10: מערכות הפעלה

10מערכות הפעלה - תרגול 1010:40

צורות שימוש ברמות פריבילגיה - המשך: משמעות שונה לפקודות המכונה המשנות בבת אחת את

. ביצוע IRET או POPFכל הביטים באוגר הדגלים כמו הפקודות האלה בתוכנית שאינה מיוחסת תשאיר את

וכו' ללא שינוי.TF,IF,IOPLהביטים המיוחסים כמו מערכת ההפעלה יכולה להחליט שתוכניות מסויימות

ניתנות להרצה על ידי תוכניות בעלות רמות פריבילגיה מסויימת או גבוהה יותר ושטחי זיכרון מסויימים נגישים

לקריאה וכתיבה רק עבור תוכניות ברמת פריבילגיה מסוימת או גבוהה יותר.

Page 11: מערכות הפעלה

10מערכות הפעלה - תרגול 1110:40

EFLAGSאוגר הדגלים

Page 12: מערכות הפעלה

?Protected Modeאיך עוברים ל-

-אוגרים 4 ישנם 286ב מיוחדים הנקראים

Control Registers: CR0, CR1, CR2, CR3 .השאלה האם המחשב

נמצא במצב מוגן או לא ע"י CR0נקבע באוגר

.0ביט ה-

10מערכות הפעלה - תרגול 1210:40

Page 13: מערכות הפעלה

Descriptor Tablesטבלאות המרה –

– בreal mode בהינתן זוג segment:offset ידענו שמדובר offset+16*segmentבכתובת

תחת מיעון וירטואלי(Protected Mode) הפויינטר מפורש כמעין הנחיה היכן למצוא את הכתובת הפיזית.

מערכת ההפעלה מתחזקת טבלאות המרה שנקראותDescriptor Tables.

תחת מיעון וירטואלי הפוינטרsegment ינחה את החומרה מאיזו כניסה באיזו טבלה לשלוף את כתובת ההתחלה של

יתווסף לכתובת זו.offsetהסגמנט. ה-

10מערכות הפעלה - תרגול 1310:40

Page 14: מערכות הפעלה

10מערכות הפעלה - תרגול 1410:40

Page 15: מערכות הפעלה

טבלאות המרה גלובלית ולוקלית

גישות לזיכרון נעשות או דרך טבלת המרה גלובלית(GDT( או לוקלית )LDT):באופן הבא

-הSystem Table Register מהווה את כתובת הבסיס. הרלוונטיתלתחילת הטבלה

הSegment Selector- מספק אינדקס לטבלה Segment Descriptor מהטבלה נשלף ה- הרלוונטית.

– הסגמנט האמיתי. כדי לגשת למקום ספציפי בסגמנט, יש לספק גם את

. Offsetה-

10מערכות הפעלה - תרגול 1510:40

Page 16: מערכות הפעלה

10מערכות הפעלה - תרגול 1610:40

GDTR )Global Descriptor Table Register ( The base address )32 bits in protected mode; 64 bits in IA-32e mode( – a linear

address of byte 0 of GDT The 16-bit table limit for the GDT – the number of bytes in the table LGDT/SGDT – load/store GDTR

LDTR )Local Descriptor Table Register ( The 16-bit segment selector The base address )32 bits in protected mode; 64 bits in IA-32e mode( – a linear

address of byte 0 of LDT segment The 16-bit table limit for the LDT segment – the size of segment LLDT/SLDT – load/store the segment selector part of LDTR When segment selector part is updated, other parts are loaded automatically

– טבלאות המרה גלובלית ולוקליתSegment Descriptors

Page 17: מערכות הפעלה

10מערכות הפעלה - תרגול 1710:40

Base Address Table limit – a size of active entries )a number of active entries *

8( Segment Selector Segment limit )a size of segment( Attributes

Page 18: מערכות הפעלה

10מערכות הפעלה - תרגול 1810:40

Page 19: מערכות הפעלה

10מערכות הפעלה - תרגול 1910:40

Global and Local Descriptor Tables

Optionally, one or more LDTs may be defined

Page 20: מערכות הפעלה

10מערכות הפעלה - תרגול 2010:40

Segment Register – Interpreted as Segment Selector

Requested Privilege Level (RPL) )Bits 0 and 1( — Specifies the privilege level of the selector. The privilege level can range from 0 to 3, with 0 being the most privileged level

For the CS register, RPL is called CPL – Current Privilege Level.

TI – Table indicator

Page 21: מערכות הפעלה

טבלאות המרה – תיאור פשטני

10מערכות הפעלה - תרגול 2110:40

Page 22: מערכות הפעלה

10מערכות הפעלה - תרגול 2210:40

Page 23: מערכות הפעלה

10מערכות הפעלה - תרגול 2310:40

Page 24: מערכות הפעלה

– תיאור פשטניAttributeשדה ה-

-שדה הAttribute :מכיל בין היתר 2 ביטים הנקראים DPL )Descriptor Privilage

level( המקנות לכניסה בטבלה רמת , DPL יושוו עם ה-CPL או ה-RPLפריבילגיה. ה-

לבדיקת חוקיות הפויינטר.5( ביטים הקובעים את הסוג Type של )

הכניסה. נפרט את הנושא בהמשך.

10מערכות הפעלה - תרגול 2410:40

Page 25: מערכות הפעלה

מהו פויינטר חוקי? ביצוע קוד1מקרה :

CS indexנבדק מול GDTR Limit

CPL חייב להיות DPLל-שווה

בדיקה אם השימושמותר על ידי השדה

Type-הOffset נבדק אם

הוא קטן שווה לשדה של הכניסה.Limitה-

10מערכות הפעלה - תרגול 2510:40

Page 26: מערכות הפעלה

מהו פויינטר חוקי? גישה למידע 2מקרה :

עם 1– כמו במקרה השינויים הבאים:

-הCPL צריך להיות לא בהכרח שווה אלא קטן

DPLשווה מה- אם הגישה היא דרך

( DSסגמנט מידע )נניח של RPLאזי גם שדות ה-

DS חייבים להיות קטנים DPLאו שווים ל-

הכניסה.10מערכות הפעלה - תרגול 2610:40

Page 27: מערכות הפעלה

Pagingזיכרון וירטואלי - דפדוף -

10מערכות הפעלה - תרגול 2710:40

זיכרון וירטואלי הוא מצב שבוא לא כל הזיכרון הוא זיכרוןאלקטרוני )פיזי( – ה"זיכרון" ממומש בחלקו על דיסק.

Paging -ב x86 הוא מנגנון שגורם לכך שגם הכתובות הנשלפות מהטבלאות הן כתובות לוגיות העוברות המרה

נוספת.Paging מאפשר להגדיר את מרחב הכתובות הוירטואלי

( של המחשב.RAMליותר מאשר סה"כ הזיכרון הפיזי ) מגודל ה-4 או פי 3בד"כ מרחב כתובות פי RAM נחשב

(.RAM מה-3 או 2 פי swapלאופטימלי )שטח אפשר לממש מיעון וירטואלי ללאPaging אך אין ,

Paging .ללא מיעון וירטואלי

Page 28: מערכות הפעלה

Paging?האם זה טוב – ניצול יעיל של זיכרון פיזי . הוא מאפשר ייתרון עיקרי :

לנו להקצות שטחי זיכרון רבים יותר, והשאלה האם או על הדיסק יהיה תלוי RAMהזיכרון נמצא פיזית ב-

בשימוש. למשל, תוכניות שהשמוש בהן נדיר לא בפועל. RAMחייבות שהזיכרון שלהן יישמר ב-

מעיט את ביצועי תוכניות אפליקציה חיסרון עיקרי :בכך שחלק מהגישות ל"זיכרון" מחייבות גישה לדיסק. בנוסף, יש גישות נוספות לזיכרון בגלל הצורך לקרוא

.Page Tableטבלאות נוספות, ה-

10מערכות הפעלה - תרגול 2810:40

Page 29: מערכות הפעלה

Pagingמימוש :'לציין לכל סגמנט\כניסה בטבלת המרה אפשרות א

אם הוא בזיכרון או לא. הבעיה: איטיות- הסגמנטים עלולים להיות די גדולים והעלאה\הורדה של סגמנטים

יאיטו את המערכת באופן בלתי מתקבל על הדעת. :חלוקת הזיכרון הוירטואלי ליחידות קטנות פיתרון

Virtual Memory)הנקראות דפי זיכרון וירטואלי Pages -ואילך גודל הדפים האלה הוא תמיד 386(. ב בתים. 4k-2096בדיוק

10מערכות הפעלה - תרגול 2910:40

Page 30: מערכות הפעלה

- המשךPagingמימוש כל דף יכול להיות בדף זיכרון פיזי או על דיסק. כאשר מחושבת

, היא נופלת לתוך אחד הדפים Offsetכתובת וירטואלית, כולל ה-של הזכרון הוירטואלי.

אם הדף נמצא בזיכרון, המעבד מוצא את הכתובת הפיזית ומבצעגישה לשם. במידה והדף אינו נמצא בזיכרון, מתרחשת חריגה

שבמסגרת הטיפול בה מערכת Page Faultמיוחדת הנקראת ההפעלה מוצאת את הדך על הדיסק ומעלה אותו חזרה לזיכרון.

במידה וכל הדפים מנוצלים, העלאת דף מהדיסק כרוכה בהוצאתושל דף אחר. הוצאה של דף מהזיכרון יכולה להתרחש גם בעקבות

הקצאת זיכרון כשאין עליו מקום יותר.

10מערכות הפעלה - תרגול 3010:40

Page 31: מערכות הפעלה

דוגמא למיקום מערך בזיכרון

10מערכות הפעלה - תרגול 3110:40

במערכת שיש בה רק מיעון וירטואלי ללאPaging המערך בתים רצופים, אבל התוכנית לא תוכל לדעת 16384יתפוס

את מיקומו בזיכרון הפיזי.c_arrמהערך של במערכת שיש בהPaging וגודל כל Page 4 הוא נניחk כל ,

בתים יכול להיות החל מכתובת מסויימת, או 4096רצף של בכלל לא בזיכרון. לדוגמא, מימוש אפשרי של המערך:

Page 32: מערכות הפעלה

?Pagingמתי המחשב מממש גם

10מערכות הפעלה - תרגול 3210:40

Page 33: מערכות הפעלה

?Pagingאיך מתבצע

תחתPaging תוצאת ההמרה של המיעון ,.וירטואלי או כתובת לינאריתהוירטואלי נקראת

הכתובת הוירטואלית עוברת המרה נוספת דרך. לצורך הפשטות Page Tableטבלה שנקראת

אפשר לומר שקונספטואלית יש לכל דף אפשרי . Page Tableבמרחב הזיכרון הוירטואלי כניסה ב-

בהינתן מרחב זיכרון בגודלM מספר הדפים ,.4096במרחב זה הוא

10מערכות הפעלה - תרגול 3310:40

Page 34: מערכות הפעלה

?Pagingאיך מתבצע באופן סכמטי )ופשטני מעט(, תהליך ההמרה יראה

כך:

10מערכות הפעלה - תרגול 3410:40

Page 35: מערכות הפעלה

סכמה פשטנית להמרת כתובת לינארית

10מערכות הפעלה - תרגול 3510:40

Page 36: מערכות הפעלה

?Page Tableאיך נראת כניסה ב-

10מערכות הפעלה - תרגול 3610:40

-אומר לנו אם הדף נמצא בזיכרון. אם הוא 0ביט ה , שאר הביטים מפורשים בצורה הבאה: 1

Page 37: מערכות הפעלה

...אחרת

10מערכות הפעלה - תרגול 3710:40

?Pagingאיך מתבצע

Page 38: מערכות הפעלה

Paging Translation

תרגום הכתובות נעשה בשני שלבים. בזיכרון יחיד אלא סדרה של טבלאות Page Tableאין

Page Table. הטבלאות האלה מוצבעות על ידי טבלה נוספת

.Page Directoryהנקראת האפקט הסופי של שילוב הטבלאות האלה זהה

אחת גדולה. Page Tableלזה של טבלת

10מערכות הפעלה - תרגול 3810:40

Page 39: מערכות הפעלה

?Page Directoryכיצד נגיע לטבלת ה-

10מערכות הפעלה - תרגול 3910:40

Page 40: מערכות הפעלה

10מערכות הפעלה - תרגול 4010:40

Page 41: מערכות הפעלה

10מערכות הפעלה - תרגול 4110:40

Page 42: מערכות הפעלה

1נחזור לדוגמא

10מערכות הפעלה - תרגול 4210:40

אם היינו במערכת עםPage Directory אזי היינו ניגשים ,, בה היינו מקבלים Page Directory ב-0לכניסה מספר

הרלוונטית, ובה היינו Page Tableכתובת לתחילת . 6ניגשים לאינדקס

Page 43: מערכות הפעלה

10מערכות הפעלה - תרגול 4310:40