SMARTDRV
(smart drive)
使用SMARTDrive可在扩展内存中创建一个磁盘缓冲。磁盘缓冲能有效地加速磁盘操作。要使用磁盘缓冲时,可在AUTOEXEC.BAT文件中或命令提示符下使用SMARTDRV命令装载SMARTDrive驱动程序。
SMARTDrive还能完成双重缓冲,为在EMM386提供的内存或Windows 386增强方式中不能正常运行硬盘控制器提供兼容性。在CONFIG.SYS文件中使用DEVICE命令装载<SMARTDRV.EXE>驱动程序就可实现双重缓冲。
在Windows启动后不能使用SMARTDRV命令。
从AUTOEXEC.BAT文件或在命令提示符下启动SMARTDrive时,使用下列语法:
[drive:][path]SMARTDRV [/X] [[drive[+|-]]...] [/U][/C|/R][/F|/N][/L]
[InitCacheSize][WinCacheSize]][/E:ElementSize] [/B:<BufferSize>]
SMARTDrive正在运行时,使用如下列语法:
SMARTDRV [/X][[drive[+|-]]...]] [/C|/R] [/F|/N][/Q|/S]
在装入SMARTDrive后,若要察看当前状态,可使用下列语法:
SMARTDRV
[drive:][path] 指定SMARTDRV.EXE文件的位置。
[[drive+|-] 指定要控制缓冲的磁盘驱动器字母。+号表示允许对指定的驱动器进行缓冲;-号表示对指定的驱动器不进行缓冲。可指定多个驱动器。
若指定驱动器时未指定加号(+)或减号(-),则允许读缓冲而不允许写缓冲。
若指定的驱动器后随一个(+)号,则读缓冲和写缓冲都被允许。
若指定的驱动器后随一个(-)号,则读缓冲和写缓冲都被禁止。
如果未指定驱动器名,对软盘驱动器、CD-ROM驱动器、以及用InterLnk创建的驱动器只允许读缓冲,而不允许写缓冲;对硬盘则同时允许读缓冲和写缓冲;对网络驱动器和Microsoft Flash存贮卡不作处理(有关DriveSpace如何对压缩的驱动器进行缓冲的信息,请参阅SMARTDRV的注解)。
InitCacheSize 以K字节为单位指定当SMARTDrive启动时的缓冲区大小(Windows不运行时)。磁盘缓冲区大小影响到SMARTDrive运行的效率。通常,缓冲区越大,SMARTDrive从磁盘上读取信息的次数越少,这样就能加快系统的运行速度。如果未指定InitCacheSize的值,则SMARTDrive根据系统内存的多少来设置此值(参看随后的列表)。
WinCacheSize 指定SMARTDrive为Windows减少的缓冲区大小(以K字节为单位)。当启动Windows时,SMARTDrive减少缓冲区的大小以恢复内存给Windows使用。退出Windows时,缓冲区大小会恢复到正常值。WinCacheSize指定SMARTDrive要减少缓冲区的最小值。默认值取决于系统的可用内存大小(参看下表)。若指定的InitCacheSize值
小于WinCacheSize值,则InitCacheSize被设置为WinCacheSize的值。
下表列出了与计算机可用的扩展内存数量对应的InitCacheSize和WinCacheSize的默认值:
扩展内存 InitCacheSize WinCacheSize
<= 1 MB 所有扩展内存 0 (无CACHE)
<= 2 MB 1 MB 256K
<= 4 MB 1 MB 512K
<= 6 MB 2 MB 1 MB
<= 6 MB 2 MB 2 MB
开关 :
/X 禁止对所有驱动器进行写后缓冲。之后,可用drive+|-参数对单个驱动器指定开放缓存。
/U 不装入SMARTDrive的CD-ROM缓存处理模块(即使有CD-ROM驱动器)。若SMARTDrive带开关/U装入,则可用drive+|-参数对单个驱动器指定开放或禁止CD-ROM缓存处理。
/C 将内存中的所有缓存信息写到被缓冲盘中。当其它磁盘的活动缓慢时,SMARTDrive将内存中的缓存信息写到被缓冲盘中。若正准备关机或要确保内存中的所有缓存信息均已写到被缓冲盘中时,可使用此选项。(若按CTRL+ALT+DELETE重启计算机,而非直接关机或复位,则SMARTDrive会将内存中的所有缓存信息写到被缓冲盘中)。
/R 清除现有缓存区的内容, 包括写到磁盘中的缓存信息, 并重新启动SMARTDrive。
/F 每个命令执行完毕后写入缓存的数据。此为默认值。
/N 系统空闲时后写入缓存的数据。当命令提示符返回时,部分缓存的数据可能尚未写入。若要保证写入全部缓存的数据,应使用/C开关。
/L 防止SMARTDrive自动地装入上端内存块(UMB)。若正在使用SMARTDrive的双缓存功能,而系统的运行速度低下,可在AUTOEXEC.BAT的SMARTDrive命令行中加上/L开关。
/V 指令SMARTDrive在启动时显示状态和错误信息(默认时,SMARTDrive不会显示任何信息,除非遇到错误)。/V开关不能与/Q开关联用。
/Q 指令SMARTDrive在启动时不显示状态和错误信息(默认时,SMARTDrive启动时不会显示任何信息,但做其它操作时会显示信息)。若SMARTDrive在启动时遇到错误,它显示一条错误信息,不管是否带/Q选项。/Q开关不能与/V开关联用。
/S 显示有关SMARTDrive状态的附加信息。
/E:ElementSize指定SMARTDrive一次缓存的大小(单位为字节)。合法值为1024、2048、4096和8192。默认值为8192。此值越大。则SMARTDrive占有的常规内存越多。
/B:BufferSize 指定预读入缓冲区的大小(单位为字节)。预读入缓冲区指的是:当应用程序要从磁盘读取信息时,SMARTDrive从磁盘读入的更多的信息。例如,若应用程序从文件中读入512K信息,则SMARTDrive读入由BufferSize指定的信息量,并保存到内存中。下次应用程序还要从该文件读入信息时,则先从内存中读入上次写入的信息。预读入缓冲区的默认大小为16K (16384字节)。其值可为ElementSize的任何整数倍。BufferSize越大,则SMARTDrive占有的常规内存越多。
注意:在重启或关闭计算机之前应检查SMARTDrive是否已经完成了所有的写缓冲操作(按CTRL+ALT+DELETE重启计算机时可不必检查)。为了让SMARTDrive所有的缓冲信息写到磁盘,可以在命令提示符下输入SMARTDRV /C。在所有活动的磁盘任务停止后,才能安全地重启或关闭计算机。
★★★★★实例★★★★★:
要创建一个省缺大小的SMARTDrive磁盘缓冲区,在AUTOEXEC.BAT文件中加入以下命令即可:
c:\DOS\smartdrv
例子:一个典型的SMARTDrive命令
若要创建一个2048K的磁盘缓冲区并且要保证该程序不能将缓冲区的空间减少到1024K以下,同时SMARTDRV.EXE文件在驱动器C的DOS目录中。为此,在AUTOEXEC.BAT文件增加以下命令:
c:\dos\smartdrv 2048 1024
例子:打开和关闭对指定驱动器的缓冲假设已启动SMARTDrive,且希望启动驱动器C的写缓冲,在命令提示符下键入以下命令:
smartdrv c+
若要禁止对所有软盘驱动器的缓冲,及允许对Interlnk驱动器D的写缓冲(Interlnk驱动器类似于软盘驱动器,最好不要写缓冲。因为在所有缓冲的数据从内存写到驱动器的过程中可能丢失对驱动器的访问)。为此,在AUTOEXEC.BAT文件中加入以下命令:
c:\dos\smartdrv a- b- d+
例子:将缓冲信息保存到硬盘在按计算机的复位键或是关闭计算机之前,应使SMARTDrive将内存中的所有缓冲信息写到磁盘上。为此,在命令提示下输入以下命令:
smartdrv /c
按CTRL+ALT+DELETE键启动计算机之前,不需要使用这一命令。SMARTDrive能检测到CTRL+ALT+DELETE键的扫描码并自动在允许系统重启之前将所有的信息写到磁盘上。