מהי כתובת מחייבת?

מסך שטוח ומקלדת למחשב - מבט מהצד

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

קרדיט תמונה: Ryan McVay/Photodisc/Getty Images

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

ניהול זיכרון

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

סרטון היום

זמן קומפילציה

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

זמן טעינה

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

זמן ביצוע

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