unix chapter 15

44
מערכות הפעלהUNIX מדריך15 - ארכיטקטורת מעבד והגנהShayke Bilu PhD Chapter 15 - Processor Architecture 1

Upload: sce

Post on 20-Apr-2023

3 views

Category:

Documents


0 download

TRANSCRIPT

UNIXמערכות הפעלה

ארכיטקטורת מעבד והגנה - 15מדריך

Shayke Bilu PhD Chapter 15 - Processor Architecture 1

Chapter 15 - Processor Architecture 2 Shayke Bilu PhD

?מה בתכנית

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

רמות פריבילגיה

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

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

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

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

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

.אחרת אפליקציה

זיכרון לשטחי גישה י”ע ,למשל

ביטול ,הפעלה מערכת של

.ועוד הפסיקות

Chapter 15 - Processor Architecture 3 Shayke Bilu PhD

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

מאזDOS כל מערכות ההפעלה מוגנות .

מערכת ההפעלה דואגת להעביר את המחשב : המשמעות

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

.התפקוד של מערכת ההפעלה

Chapter 15 - Processor Architecture 4 Shayke Bilu PhD

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

אמצעי המאפשר . 1

לקחת חזרה את

-השליטה של על ה

CPU

Chapter 15 - Processor Architecture 5 Shayke Bilu PhD

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

מניעת שימוש . 2

בפקודות מסוכנות

...CLI ,HLTכמו

מנגנון רמות . 2

פקודות –הפריווילגיה

מיוחסות

Chapter 15 - Processor Architecture 6 Shayke Bilu PhD

שליטה על . 3

הכתובות בזיכרון

שמהן תוכניות

יכולות לקרוא או

לכתוב

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

. לכתובת האמיתית

virtual addressing

תחת מנגנון המיעון -

הוירטואלי ערכי הפויינטרים

הם כתובות לוגיות ולא כתובות

.פיזיות

מערכת ההפעלה מתחזקת -

בין , טבלאות שבן מצויינות

כתובות פיזיות של ,היתר

.סגמנטים

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

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

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

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

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

.איכותה של ההגנה נקבעת על ידי איכות התוכנה, לכן

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

. של מנגנון ההגנה

Chapter 15 - Processor Architecture 7 Shayke Bilu PhD

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

CPLהנקראים CS -ביטים באוגר ה

שינוי רמת פריווילגיה אפשרית רק דרךCall Gates .תוכנית אינה , כלומר

.יכולה להעלות את רמת הפריווילגיה שלה ללא הסכמה של מערכת ההפעלה

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

.היא המיוחסת פחות 3

3תוכניות אפליקציה רצות כמעט תמיד ברמת פריבילגיה.

0רץ ברמת פריבילגיה "( גרעין"ה)החלק הפנימי של מערכת ההפעלה.

אבל קיימות למשל עבור , לא תמיד מנוצלות 2-ו 1רמותDevice Drivers –

.פלט\גישה לחומרה עבור קלט

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

Chapter 15 - Processor Architecture 8 Shayke Bilu PhD

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

( 0רמת פריווילגיה )פקודות מכונה שרק תוכניות מיוחסות

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

.'וכו LGDT ,LLDTלאוגרים מיוחדים כמו

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

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

נקבעת IOPLבשני ביטים באוגר הדגלים שנקראים .. ועוד

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

Chapter 15 - Processor Architecture 9 Shayke Bilu PhD

Chapter 15 - Processor Architecture 10 Shayke Bilu PhD

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

משמעות שונה לפקודות המכונה המשנות בבת אחת את כל

ביצוע . IRETאו POPFהביטים באוגר הדגלים כמו

הפקודות האלה בתוכנית שאינה מיוחסת תשאיר את הביטים

.ללא שינוי' וכו TF,IF,IOPLהמיוחסים כמו

מערכת ההפעלה יכולה להחליט שתוכניות מסויימות ניתנות

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

גבוהה יותר ושטחי זיכרון מסוימים נגישים לקריאה וכתיבה

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

Chapter 15 - Processor Architecture 11 Shayke Bilu PhD

EFLAGSאוגר הדגלים

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

אוגרים 4ישנם 286-ב

Controlמיוחדים הנקראים

Registers :CR0, CR1 ,

CR2 ,CR3 . השאלה האם

המחשב נמצא במצב מוגן או לא

-י ביט ה"ע CR0נקבע באוגר

0.

Chapter 15 - Processor Architecture 12 Shayke Bilu PhD

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

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

offset+16*segmentבכתובת

תחת מיעון וירטואלי(Protected Mode) הפויינטר מפורש

.כמעין הנחיה היכן למצוא את הכתובת הפיזית

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

Descriptor Tables.

תחת מיעון וירטואלי הפוינטרsegment ינחה את החומרה

מאיזו כניסה באיזו טבלה לשלוף את כתובת ההתחלה של

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

Chapter 15 - Processor Architecture 13 Shayke Bilu PhD

Chapter 15 - Processor Architecture 14 Shayke Bilu PhD

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

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

:באופן הבא (LDT) לוקלית או

ה- System Table Register מהווה את כתובת הבסיס לתחילת

.הרלוונטית הטבלה

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

.הסגמנט האמיתי – Segment Descriptor -מהטבלה נשלף ה

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

Chapter 15 - Processor Architecture 15 Shayke Bilu PhD

GDTמבנה טבלת

גודל כל כניסהbit = 8 bytes 64

32 כתובת הבסיס של הסגמנט -ביטים

20 גודל הסגמנט –ביטים

12 מאפיינים של הסגמנט –ביטים

ישנו דגל מיוחדGranularity Flag שאומר באיזה יחידות אנחנו

לכן גודל . bytes 4-אז ב 1אם , bytes-אז ב 0אם הוא . עובדים

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

GB4 אםG 1הוא.

ביטים 13לכן בחישוב האינדקס צריך רק

Chapter 15 - Processor Architecture 16 Shayke Bilu PhD

Chapter 15 - Processor Architecture 17 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 18 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 19 Shayke Bilu PhD

Chapter 15 - Processor Architecture 20 Shayke Bilu PhD

Global and Local Descriptor Tables

Optionally, one or more

LDTs may be defined

Chapter 15 - Processor Architecture 21 Shayke Bilu PhD

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

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

Chapter 15 - Processor Architecture 22 Shayke Bilu PhD

Chapter 15 - Processor Architecture 23 Shayke Bilu PhD

Chapter 15 - Processor Architecture 24 Shayke Bilu PhD

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

שדה ה-Attribute מכיל בין היתר :

2 ביטים הנקראיםDPL (Descriptor Privilage

Level) ,ה. המקנות לכניסה בטבלה רמת פריווילגיה-

RPL או ה-CPL יושוו עם ה-DPL לבדיקת חוקיות

.הפויינטר

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

.את הנושא בהמשך

Chapter 15 - Processor Architecture 25 Shayke Bilu PhD

?מהו פויינטר חוקי

ביצוע קוד: 1מקרה

CS index נבדק מול

GDTR Limit

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

DPL-ל

בדיקה אם השימוש

מותר על ידי השדה

Type

ה-Offset נבדק אם

-הוא קטן שווה לשדה ה

Limit של הכניסה.

Chapter 15 - Processor Architecture 26 Shayke Bilu PhD

?מהו פויינטר חוקי

גישה למידע : 2מקרה–

עם 1כמו במקרה

:השינויים הבאים

ה-CPL צריך להיות לא

בהכרח שווה אלא קטן שווה

DPL-מה

אם הגישה היא דרך סגמנט

אזי גם ( DSנניח )מידע

DSשל RPL-שדות ה

חייבים להיות קטנים או

.הכניסה DPL-שווים ל

Chapter 15 - Processor Architecture 27 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 28 Shayke Bilu PhD

זיכרון וירטואלי הוא מצב שבו לא כל הזיכרון הוא זיכרון אלקטרוני

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

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

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

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

.של המחשב( RAM)כ הזיכרון הפיזי "מאשר סה

מגודל ה 4או פי 3כ מרחב כתובות פי "בד-RAM נחשב

(.RAM-מה 3או 2פי swapשטח )לאופטימלי

אפשר לממש מיעון וירטואלי ללאPaging , אך איןPaging

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

Paging – האם זה טוב?

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

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

. או על הדיסק יהיה תלוי בשימוש RAM-נמצא פיזית ב

תוכניות שהשמוש בהן נדיר לא חייבות שהזיכרון , למשל

. בפועל RAM-שלהן יישמר ב

מעיט את ביצועי תוכניות אפליקציה בכך : חיסרון עיקרי

, בנוסף. מחייבות גישה לדיסק" זיכרון"שחלק מהגישות ל

יש גישות נוספות לזיכרון בגלל הצורך לקרוא טבלאות

.Page Table-ה, נוספות

Chapter 15 - Processor Architecture 29 Shayke Bilu PhD

Pagingמימוש

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

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

הורדה של סגמנטים יאיטו את המערכת \די גדולים והעלאה

.באופן בלתי מתקבל על הדעת

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

Virtual Memory)הנקראות דפי זיכרון וירטואלי

Pages .)ואילך גודל הדפים האלה הוא תמיד בדיוק 386 -ב

4k-4096 בתים .

Chapter 15 - Processor Architecture 30 Shayke Bilu PhD

המשך - Pagingמימוש

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

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

.הוירטואלי

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

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

Page Fault שבמסגרת הטיפול בה מערכת ההפעלה מוצאת את הדך על

.הדיסק ומעלה אותו חזרה לזיכרון

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

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

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

Chapter 15 - Processor Architecture 31 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 32 Shayke Bilu PhD

במערכת שיש בה רק מיעון וירטואלי ללאPaging המערך יתפוס

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

.מיקומו בזיכרון הפיזי

במערכת שיש בהPaging וגודל כלPage 4הוא נניחk , כל רצף של

. או בכלל לא בזיכרון, בתים יכול להיות החל מכתובת מסויימת 4096

:מימוש אפשרי של המערך, לדוגמא

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

Chapter 15 - Processor Architecture 33 Shayke Bilu PhD

?Pagingאיך מתבצע

תחתPaging , תוצאת ההמרה של המיעון הוירטואלי

.וירטואליאו כתובת לינאריתנקראת

הכתובת הוירטואלית עוברת המרה נוספת דרך טבלה

לצורך הפשטות אפשר לומר . Page Tableשנקראת

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

. Page Table-הוירטואלי כניסה ב

Chapter 15 - Processor Architecture 34 Shayke Bilu PhD

?Pagingאיך מתבצע

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

Chapter 15 - Processor Architecture 35 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 36 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 37 Shayke Bilu PhD

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

: הביטים מפורשים בצורה הבאה

אחרת...

Chapter 15 - Processor Architecture 38 Shayke Bilu PhD

?Pagingאיך מתבצע

Paging Translation

בזיכרון אין . תרגום הכתובות נעשה בשני שלביםPage

Table יחיד אלא סדרה של טבלאותPage Table.

הטבלאות האלה מוצבעות על ידי טבלה נוספת הנקראת

Page Directory.

האפקט הסופי של שילוב הטבלאות האלה זהה לזה של

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

Chapter 15 - Processor Architecture 39 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 40 Shayke Bilu PhD

Chapter 15 - Processor Architecture 41 Shayke Bilu PhD

Chapter 15 - Processor Architecture 42 Shayke Bilu PhD

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

Chapter 15 - Processor Architecture 43 Shayke Bilu PhD

במערכת עםPage Directory ב 0ניגש לכניסה מספר-Page

Directory , בה נקבל כתובת לתחילתPage Table ובה ניגש , הרלוונטית

70209נניח הערך שמצאנו הוא . 6לאינדקס

Chapter 15 - Processor Architecture 44 Shayke Bilu PhD

70209 = 0000 0000 0000 0001 0001 0010 0100 0001