你了解TSR吗?

Author: 方新沪 Date: 1997-01-01

  TSR(TERMINATE AND STAY RESIDENT)全译是“中止并驻留内存的程序”,一般简称为“驻留程序”。这类程序运行结束后并不退出内存,而是留在内存中处于休眠状态,并可再次激活进行工作。和驻留程序不同,CCED、NC、MOVE等程序运行完毕后,会立即将所用内存释放,因而称作瞬时应用程序。
  设备驱动程序也驻留内存,但不是TSR。
  TSR不尽相同,各具特色。
  一、有的TSR一身兼二任:
  1.有些程序既可用作TSR,也可用作瞬时程序,其功能不完全相同。例如UNDELETE.EXE,可用自动批文件将它驻留内存以设置删除保护级别,也可直接用它来恢复被删文件。
  在内存中有UNDELETE的情况下,如将硬盘上的UNDELETE.EXE删掉,再以UNDELETE为程序名恢复文件,屏幕提示“BAD COMMAND OR FILE NAME”,但若反过来将内存中的UNDELETE卸掉而保留硬盘上的UNDELETE,却能正常进行各种恢复操作,而且程序运行后并不驻留内存,可见恢复文件时运行的是硬盘上的而不是内存中的UNDELETE,使用的是瞬时程序方式。
  2.一部分程序可由用户选择是按STR还是按瞬时程序使用,两者功能相同。如PCTOOLS9.0,执行PCTOOLS.BAT时参数/R即驻留内存,不加参数则不驻留。
  二、默认占用内存区域不同。在有足够大的上位内存的条件下,主要有两种情况:
  1.多数TSR默认装入常规内存,但可用LH(LOADHIGH)命令将其装入上位内存。
  2.有的TSR默认装入上位内存,如UCDOS 6.0系统各模块都能自动装入上位内存。当然,必要时也能用LH的指定区域功能,改变TSR的装入地址,如用“LH/L:0 C:\UCDOS\TX”命令将特显模块TX.COM装入常规内存。
  三、激活方法不同。常见的有:
  1.热键激活。如UCODOS6.0的双向英汉辞典以CTRL+F11/F12激活。很多TSR还允许用户自己设定热键。
  2.按用户设置条件激活。例如由MARK HARRIS编写的闹钟程序ALARM.COM的蜂鸣功能,一到预先设定的时间,即激活启动。
  3.按默认条件激活。例如用自动批文件装入的UNDELETE,每当有文件被DEL命令删除,即被激活而进行删除保护操作。但与上述两点不同,它采用的是隐性激活方式,即没有任何屏幕提示。
  四、从内存中撤出的方法不同。越来越多的TSR允许用户在需要时将它从内存中撤出。主要方法有:
  1.加参数执行TSR。最常用的参数是/U或/UNLOAD。
  2.使用程序。例如以驻留方式装入的PCTOOLS9.0,其撤出程序是该软件所带的KILL.EXE。
  3.使用热键。如王码汉字系统用CTRL+F5卸载。
  4.程序或热键可选。例如撤出UCDOS。既可执行QUIT.COM也可按CTRL+F5,再选“4.终止UCDOS”。