Program Segment Prefix
במערכת ההפעלה DOS, תחילית מקטע התוכנית (באנגלית Program Segment Prefix, ובקיצור PSP) היא מבנה נתונים בגודל של 256 (100h) בתים, המשמש את מערכת ההפעלה לשמירת נתונים שונים על התוכניות המופעלות בה. כאשר תוכנית נטענת לזיכרון לשם הרצה, המערכת יוצרת עבורה את טבלת ה-PSP ומעדכנת בה את השדות השונים. התוכנית עצמה נטענת לזיכרון מיד לאחר הטבלה. בקובץ COM מקטע ה-PSP הוא מקטע הבסיס של התוכנית וטבלת ה-PSP נטענת בתחילתו, כך שהתוכנית עצמה נטענת תמיד בהיסט של 100h בתים.
מבנה
עריכההיסט | גודל (בבתים) | תוכן |
00-01 | 2 | INT 20h - קוד לסיום התוכנית |
02-03 | 2 | קצה הזיכרון הזמין ביחידות של 16 בתים |
04 | 1 | שמור |
05-09 | 5 | קוד לקריאה בין-מקטעית (far call) למנגנון ביצוע קריאות המערכת (לצורכי תאימות עם CP/M) במקביל, עבור קובצי COM:[דרוש מקור] זיכרון זמין בבתים בתוך מקטע התוכנית (היסט 6-7) |
0Ah-0Dh | 4 | כתובת שגרת היציאה של התוכנית הקודמת (INT 22h הקודם) |
0Eh-11h | 4 | כתובת שגרת ה-Break של התוכנית הקודמת (INT 23h הקודם) |
12h-15h | 4 | כתובת שגרת הטיפול בשגיאה קריטית של התוכנית הקודמת (INT 24h הקודם) |
16h-2Bh | 16h | שמור לשימוש פנימי |
2Ch-2Dh | 2 | מקטע סביבת העבודה |
2Eh-4Fh | 22h | שמור לשימוש פנימי |
50h-52h | 3 | INT 21h; RETF - קוד לביצוע קריאות מערכת באמצעות far call (לצורכי ניידות)[דרוש מקור] |
53h-5Bh | 9 | שמור לשימוש פנימי |
5Ch-6Bh | 10h | טבלת בקרה (אנ') לקובץ שטרם נפתח (Unopened FCB) עבור הפרמטר הראשון בשורת הפקודה |
6Ch-7Bh | 10h | טבלת בקרה לקובץ שטרם נפתח (Unopened FCB) עבור הפרמטר השני בשורת הפקודה - תידרס עם פתיחת הקובץ הראשון |
7Ch-7Fh | 4 | שמור לשימוש פנימי |
80h | 1 | מספר התווים ב"זנב" שורת הפקודה (כלומר לא הפקודה עצמה אלא הפרמטרים), לא כולל I/O redirections (אנ') |
81h-FFh | 7Fh | זנב שורת הפקודה (מסתיימת ב-0Dh (אנ'), שלא נכלל במניין התווים) |
שימושים
עריכהכתובת מקטע ה-PSP של תוכנית משמשת כמזהה ייחודי[1] שלה (Process ID) עבור מערכת ההפעלה בפעולות של ניהול משאבים (זיכרון וקבצים).
הנתונים השמורים ב-PSP משמשים בעיקר את מערכת ההפעלה. השימוש הנפוץ ביותר בתוכנה הוא קבלת הפרמטרים שבשורת הפקודה.
לקריאה נוספת
עריכה- MS-DOS Programmer's Reference: Version 5.0 (Redmond, WA: Microsoft Press, 1991), pp. 65−66, 84−85.
- Ray Duncan, Advances MS-DOS Programming, 2nd ed (Redmond, WA: Microsoft Press, 1988), pp. 23−25.
הערות שוליים
עריכה- ^ במסגרת המופע היחיד של DOS במצב real mode, או במסגרת מופע מסוים של DOS המופעל באמצעות מכונה וירטואלית.