+ All Categories
Home > Documents > מערכות הפעלה

מערכות הפעלה

Date post: 12-Jan-2016
Category:
Upload: tommy
View: 48 times
Download: 0 times
Share this document with a friend
Description:
מערכות הפעלה. Tutorial 10 – Processor Architecture and Protection. מה בתכנית?. הקדמה למנגנוני הגנה רמות פריבילגיה מיעון וירטואלי זיכרון וירטואלי - דיפדוף. מדוע צריך הגנה?. תוכנית אפליקציה עלולה לחבל במערכת הפעלה או תוכנית אפליקציה אחרת. - PowerPoint PPT Presentation
Popular Tags:
44
הההההה הההההTutorial 10 – Processor Architecture and Protection
Transcript
Page 1: מערכות הפעלה

מערכות הפעלה

Tutorial 10 – Processor Architecture and Protection

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

10מערכות הפעלה - תרגול 205:45

מה בתכנית?

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

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

דיפדוף

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

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

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

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

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

10מערכות הפעלה - תרגול 305:45

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

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

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

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

ההפעלה.

10מערכות הפעלה - תרגול 405:45

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

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

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

CPUה-

10מערכות הפעלה - תרגול 505:45

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

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

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

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

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

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

10מערכות הפעלה - תרגול 605:45

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

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

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

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

virtual addressing

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

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

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

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

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

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

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

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

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

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

10מערכות הפעלה - תרגול 705:45

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

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

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

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

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

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

10מערכות הפעלה - תרגול 805:45

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

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

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

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

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

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

10מערכות הפעלה - תרגול 905:45

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

10מערכות הפעלה - תרגול 1005:45

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

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

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

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

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

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

10מערכות הפעלה - תרגול 1105:45

EFLAGSאוגר הדגלים

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

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

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

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

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

.0ביט ה-

10מערכות הפעלה - תרגול 1205:45

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

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

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

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

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

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

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

10מערכות הפעלה - תרגול 1305:45

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

10מערכות הפעלה - תרגול 1405:45

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

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

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

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

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

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

. Offsetה-

10מערכות הפעלה - תרגול 1505:45

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

GDTמבנה טבלת

גודל כל כניסהbit = 8 bytes 64 32ביטים - כתובת הבסיס של הסגמנט 20ביטים – גודל הסגמנט 12ביטים – מאפיינים של הסגמנט

ישנו דגל מיוחדGranularity Flag שאומר באיזה אז 1, אם bytes אז ב-0יחידות אנחנו עובדים. אם הוא

עד 1b. לכן גודל הסגמנט יכול להיות מ-bytes 4ב-GB1 אם G 4 או מ-0 הואb עד GB4 אם G 1 הוא.

ביטים13לכן בחישוב האינדקס צריך רק 10מערכות הפעלה - תרגול 1605:45

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

10מערכות הפעלה - תרגול 1705:45

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 that describes the entry in GDT Base address and size of LDT is stored in GDT LLDT/SLDT – load/store the segment selector part of LDTR When segment selector part is updated, other parts are loaded automatically

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

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

10מערכות הפעלה - תרגול 1805:45

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

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

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

10מערכות הפעלה - תרגול 1905:45

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

10מערכות הפעלה - תרגול 2005:45

Global and Local Descriptor Tables

Optionally, one or more LDTs may be defined

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

10מערכות הפעלה - תרגול 2105:45

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 22: מערכות הפעלה

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

10מערכות הפעלה - תרגול 2205:45

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

10מערכות הפעלה - תרגול 2305:45

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

10מערכות הפעלה - תרגול 2405:45

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

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

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

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

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

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

10מערכות הפעלה - תרגול 2505:45

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

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

CS indexנבדק מול GDTR Limit

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

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

Type-הOffset נבדק אם

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

10מערכות הפעלה - תרגול 2605:45

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

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

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

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

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

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

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

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

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

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

10מערכות הפעלה - תרגול 2805:45

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

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

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

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

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

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

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

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

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

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

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

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

10מערכות הפעלה - תרגול 2905:45

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

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

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

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

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

10מערכות הפעלה - תרגול 3005:45

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

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

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

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

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

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

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

10מערכות הפעלה - תרגול 3105:45

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

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

10מערכות הפעלה - תרגול 3205:45

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

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

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

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

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

10מערכות הפעלה - תרגול 3305:45

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

?Pagingאיך מתבצע

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

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

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

Table .

10מערכות הפעלה - תרגול 3405:45

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

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

כך:

10מערכות הפעלה - תרגול 3505:45

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

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

10מערכות הפעלה - תרגול 3605:45

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

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

10מערכות הפעלה - תרגול 3705:45

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

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

...אחרת

10מערכות הפעלה - תרגול 3805:45

?Pagingאיך מתבצע

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

Paging Translation

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

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

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

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

10מערכות הפעלה - תרגול 3905:45

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

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

10מערכות הפעלה - תרגול 4005:45

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

10מערכות הפעלה - תרגול 4105:45

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

10מערכות הפעלה - תרגול 4205:45

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

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

10מערכות הפעלה - תרגול 4305:45

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

. נניח הערך שמצאנו הוא 6הרלוונטית, ובה ניגש לאינדקס 70209

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

10מערכות הפעלה - תרגול 4405:45

70209 = 0000 0000 0000 0001 0001 0010 0100 0001


Recommended