ציוצים אחרונים ב-@MetachNet
"אלפבת - מילון סלנג עברי" ( http://metach.net/2009/אלפבת-מילון-סלנג-עברי/ ) מאת דור צוברי 2009-11-22
ברוכים הבאים ל-מתכ.נט, גלישה נעימה!
"אלפבת - מילון סלנג עברי" ( http://metach.net/2009/אלפבת-מילון-סלנג-עברי/ ) מאת דור צוברי 2009-11-22
בימים הקרובים, אנחנו נלמד אתכם אודות שיטות ניהול הזיכרון במחשב ( זיכרון ה-RAM ). סדרת כתבות אלו תעזור לכם להבין איך עובד ניהול הזיכרון במחשב.
שיטת ניהול הזיכרון זו דוגלת בחלוקת הזיכרון למקטעים באורכים שונים, ניתן לתאר את חלוקת הזיכרון למטריצה לא סימטרית.
מיפוי הסגמנטים נמצא בטבלה מיוחדת שנקראת segments table לכל תוכנית המתבצעת יש טבלה משלה, כאשר כל כניסה \ שורה \ entry בטבלה מתארת segment אחר.
כל תהליך מקושר ל-segment map שלו ( השתקפות של תהליך ).
טבלת הסגמנטים מורכבת מ-3 עמודות:
כאשר תוכנית רוצה לגשת לכתובת בזיכרון, היא מספקת כתובת מהסוג הבא:
<# seg, offset>
מקרא:
המעבד ניגש לטבלת הסגמנטים, אם היא בפוקוס, אחרת הוא מתפקסס עליה ולוקח משם את הכניסה המתאימה.
המעבד בודק האם ה-offset נמצא בתוך הסגמנט או שיש חריגה אסורה.
דבר נוסף שעושה המעבד הוא בדיקת הזכויות, לאחר הבדיקות, המעבד מוסיף את ההיסט ( offset ) לכתובת ההתחלתית של הסגמנט וכך נקבל את הכתובת הפיזית.
לכל תוכנית יש טבלת סגמנטים משלה בזיכרון והכתובת שלה נמצאת ב-PCB ( ר"ת: Process Control Block ), כאשר התוכנית מתחילה לרוץ, מערכת ההפעלה מעבירה למעבד את הכתובת של טבלת הסגמנט שלה.
פעולות באחריות מערכת ההפעלה:
ייתכן מצב שלמספר תהליכים יהיה אותו הסגמנט, המצב הזה מכונה code sharing. אם תהליכים משתמשים באותה תוכנית, אז לכל תוכנית יוקצו נתונים שונים אך בפועל הם ישתמשו באותו עותק של התוכנה ( לדוגמא: פתיחת מספר מסמכי WORD ).
לפרק הקודם: ניהול זיכרון, פרק 1 – הקדמה
לפרק הבא: ניהול זיכרון, פרק 3 – Paging
מה זה סגמנט ?
דור צוברי, 20-10-2009 ב-18:33סגמנט = קטע זיכרון
רק כדי שאני יהיה בעניינים: הטבלה הזאת נוצרת *במהלך* פעילות של תכנית?
דור צוברי, 21-10-2009 ב-6:04לא במהלך, ברגע שהתהליך נכנס לביצוע ראשוני