|
Tech Tips Config.sys
Larry Sweat
Technical Support & Information Systems Manager
Once again, the topic of the CONFIG files has come up and I want to attempt to clarify the
guidelines for determining CONFIG settings for a computer. The settings are extremely
important and if they are not set right, you could have a number of different problems
with Reporting to the MAX including Point of Sale and Non-profit Versions products.
The difficulty is that the CONFIG settings depend on several of different variables and
combinations of variables. Each computer can have literally thousands of possible
combinations of drivers and applications to load into memory. Getting everything to load
so that the computer makes the best
use of its resources is the art of memory optimization. Memory optimization is more of an
art than a science and often involves varying the settings and monitoring the results to
determine what works best.
It would seem that with the huge banks of random access memory (RAM) on the motherboards
of the modern PC, memory configuration issues would go away, but that is not the case.
Windows operating systems and Windows applications are still heavily reliant on the first
megabyte of memory in a PC. The first 640 K of memory is known as conventional or lower
memory and the memory between 640 K and 1 Megabyte is called upper memory. It is in these
two areas that we are trying to load all the device drivers, FILES= statements, and DOS
applications. Reporting to the MAX including Point of Sale and Non-profit Versions Windows products (16-bit) also rely heavily on
these two areas of memory.
We have compiled and published our recommendations for the CONFIG file settings for all
Microsoft Windows operating systems (O/S) from Windows 95 through Windows 2000. We
have established recommendations for each O/S for use as a standalone, a workstation and a
server. These recommendations are found in our product manuals and installation guides.
The information in this
article is intended to help you understand where those recommendations come from and why
you might have to vary the settings in your or your customers' computers.
Memory managers began as third party products that were bought separately from the O/S
until DOS 5.0 shipped (1990) with HIMEM.SYS and EMM386.exe included. In a DOS computer, we
loaded HIMEM.SYS and EMM386.EXE, and then forced DOS to load into upper memory with the
command DOS=HIGH, UMB.
When WIN95 was released, Microsoft recommended that we do not load these memory managers
and let WIN95 handle memory allocation automatically. Sometimes this worked and sometimes
it didn't. For the most part, we comply with this recommendation, but if we encounter a
WIN95 computer that displays symptoms of memory contention, we load the old DOS memory
manager and see if it helps. So for WIN95, we usually just put a FILES= statement in the
CONFIG.SYS and leave the other statements out.
Windows NT 4.0 and Windows 2000 ignore the CONFIG.SYS file but refer to the CONFIG.NT
file. In the CONFIG.NT file, the DOS=HIGH, UMB and the HIMEM.SYS statements are already
created for you, (unless someone has deleted them). The FILES= statement is there too, but
is set to 20, which is too low for an accounting application. We change this to 100 on
workstations and 250 on servers.
When Windows 98 shipped, Microsoft reversed its position on letting the O/S do the memory
handling automatically and recommended that we put HIMEM.SYS, EMM386.EXE, and DOS=HIGH,UMB
back into the CONFIG.SYS file. They also recommended use of FILESHIGH= instead of FILES=.
The FILESHIGH= statement is supposed to try to allocate file handles in upper memory and
if not enough room to do so in lower memory. The file handles rarely are able to load high
and when they do, sometimes cause problems, so we recommend using the FILES= statement.
Windows ME ignores the CONFIG files and refers to the SYSTEM.INI file for the file handles
setting. So far we have found that the same settings used in Windows 98 work in Windows
ME. Refer to last week's newsletter for details on the correct syntax.
The FILES= or FILESHIGH= statements determine the number of files on the computer hard
drive that can be opened simultaneously by all applications combined. When the operating
system encounters a FILES or FILESHIGH= statement in the CONFIG file, it allocates a block
of memory designated for file
handles. A file handle is a page in memory that is used to keep track of an open file. A
file cannot be opened without a file handle. A file handle can open only one file at a
time and when the open file is closed, the file handle can be used to open a different
file. The file handle stores information about the file, including file name, size when
opened, date and time, and other information needed by the operating system.
Therefore, as the number of open files allowed at one time increases, the amount of memory
allocated to file handles increases and the amount of memory available to applications and
drivers decreases. So the optimum number of file handles is the number that is big enough
to allow opening
of a sufficient number of files to accomplish all combinations of tasks that will be
attempted simultaneously.This number varies from computer to computer.
The BUFFERS= or BUFFERSHIGH= statement is generally not needed with modern computers and
operating systems; however we encountered an NT 4.0 workstation on a Novell network that
would not print without the BUFFERS= statement.
| |
|