תוכנית TSR

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

במערכת ההפעלה DOS, תוכנית TSR (ראשי תיבות באנגלית: Terminate and Stay Resident) היא תוכנית שנשארת בזיכרון לאחר סיומה. תוכנית רגילה מסיימת את פעולתה על ידי ביצוע קריאת מערכת שמשחררת את הזיכרון שהוקצה לה ומחזירה את השליטה למערכת ההפעלה. תוכנית TSR, לעומת זאת, משתמשת בקריאת מערכת מיוחדת, שמסיימת את פעולת התוכנית אך מותירה חלק מוגדר מהזיכרון מוקצה עבורה. קריאת המערכת המקורית (פסיקת תוכנה 27H - ‏Terminate but Stay Resident) אפשרה להקצות לתוכנית עד 64K של זיכרון. החל מגרסה 2.0 של MS-DOS, הוצגה קריאת מערכת משופרת (קריאה Keep Process - 31H) שהסירה את המגבלה הזו וכן אפשרה לתוכנית להחזיר קוד יציאה למערכת או ליישום שהפעיל אותה (parent process).

תוכנית TSR טיפוסית תחולק לשניים: חלק אתחול וחלק שוכן זיכרון (resident). חלק האתחול יכיל את כל הקוד שאיננו נחוץ לפעילות התוכנית כאשר היא מתפקדת "ברקע", כלומר לאחר החזרת השליטה ל-DOS באמצעות Keep Process. כשחלק זה מסיים את תפקידו הוא משחרר את הזיכרון שהוקצה עבורו, ובכך חוסך מקום בזיכרון. מאחר ש-DOS איננו תומך בריבוי משימות, ברגע שהתוכנית מסתיימת הקוד שלה חדל להיות פעיל. כדי לחזור לפעולה, על התוכנית לממש שגרת טיפול בפסיקה. באופן זה ניתן להעביר אליה את השליטה באמצעות פסיקת תוכנה או חומרה.

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

טכניקת ה-TSR זכתה אומנם לפופולריות רבה, אך היו לה כמה חסרונות בולטים. מנקודת מבטם של המשתמשים, החיסרון המשמעותי ביותר היה המקום שהתוכניות תפסו בזיכרון הראשי (מתחת למחסום ה-640K). מנקודת מבטם של המתכנתים, התכנות בשיטה זו היה מורכב למדי, וחייב רמה גבוהה של היכרות עם מערכת המחשב ושליטה בשפת סף. הקושי נבע בעיקר בשל הצורך לממש את החלפת ההקשר ברמת היישום, כמעט ללא תמיכה של מערכת ההפעלה. הטכניקה זכתה לתמיכה רשמית בסיסית בלבד מצד מערכת ההפעלה, ויישום יעיל שלה חייב שימוש בקריאות מערכת בלתי מתועדות.‏[1] כך למשל, ללא שימוש בקריאות מערכת בלתי מתועדות, לא ניתן היה לממש את האפשרות להסיר (uninstall) תוכנית TSR מהזיכרון מבלי לאתחל את המערכת.

לקריאה נוספת[עריכת קוד מקור | עריכה]

  • Tischer, Michael. PC System Programming. Abacus, 1990
  • Duncan, Ray. Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers. 2nd Ed. Microsoft Press, 1990

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

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