home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
- Chapter 2
- RAM Requirements
-
-
-
- The NetWare 386 operating system runs on a computer with
- an 80386 CPU that can address up to 4GB of RAM. A NetWare
- 386 server requires at least 2MB of RAM divided among
- DOS, the NetWare 386 operating system, and units of cache
- buffers. Since the memory needs of DOS and the initial
- NetWare OS are relatively constant, this chapter deals
- primarily with how the cache buffers are used. It
- includes the following sections:
-
- ■ Cache Buffers
- ■ Dynamic Configuration
-
-
-
- Cache Buffers
-
- The NetWare operating system requires a portion of the
- 386 RAM for itself and a portion for cache buffers. The
- default cache buffer size is 4KB. When booting the
- computer with the NetWare operating system, a supervisor
- can specify a cache buffer size of 4KB, 8KB, or 16KB. The
- server uses these cache buffers in a variety of ways:
-
- ■ The server loans cache buffers to NetWare Loadable
- Modules (NLMs) such as LAN drivers, disk drivers,
- the INSTALL utility, and the VREPAIR utility. When
- a loadable module such as the INSTALL utility is
- removed from server memory, the module returns the
- borrowed memory to the cache buffer pool.
-
- ■ The server allocates sufficient cache buffers to
- cache each volume's entire FAT in memory.■The server allocates enough cache buffers to cache
- parts of each volume's Directory Table.
-
- ■ The server uses cache buffers as needed to cache
- parts of files that users want to access.
-
- ■ The server allocates cache buffers to build a hash
- table for all directory names.
-
- ■ The server allocates cache buffers to build Turbo
- FAT Indexing Tables for all open files that have 64
- FAT entries or more and are randomly accessed.
-
- Dynamic Configuration
-
- In earlier versions of NetWare, a supervisor installing
- NetWare on a server had to allocate a certain amount of
- server memory for features such as directory cache blocks
- and routing buffers. However in NetWare 386, the
- following features allocate memory for themselves
- dynamically, based on need and available memory:
-
- ■ Directory cache buffers
- ■ File service processes
- ■ Turbo FAT index tables
- ■ FAT tables
- ■ Routing buffers
- ■ Disk elevator size
- ■ Directory hash tables
- ■ Router/server advertising memory
- ■ Maximum number of open files
- ■ File locks
- ■ Kernel processes
- ■ Kernel semaphores
- ■ TTS transactions
- ■ Memory for loadable modules
-
- However, this self-configuration in which a process
- allocates memory according to its need is somewhat
- restricted. To prevent memory allocation because of
- sudden, infrequent peaks of server activity, the server
- waits a few seconds after a need arises. Then, if an
- existing process becomes available to service the need,
- further memory allocation is unnecessary.Dynamic memory allocation can be done in five ways, two
- that are nonreturnable and three that are returnable.
-
- NonReturnable Memory
-
- Nonreturnable memory is not returned to the file cache
- buffer after it is deallocated, unless the server is
- brought down. However, with one exception (Permanent
- Memory Alloc Pool), nonreturnable memory can be returned
- to the memory pool from which it is allocated.
-
- Alloc Pool
-
- ■ Allocates memory quickly, efficiently
- ■ Allocates memory in sizes smaller than 4KB cache
- block
- ■ Allocates memory needed for a short time
- (For example, time to service a single request,
- the duration of a user session)
- ■ Allocates exact size of memory requested
- ■ Does NOT return memory to the file cache buffer pool
- ■ Returns memory to memory pool
- ■ Does NOT move memory
-
- Permanent Memory Alloc Pool
-
- ■ Allocates memory in any size
- ■ Allocates exact size of memory requested
- ■ NEVER returns memory to the file cache buffer pool
- (NLMs cannot
- use this allocater)
- ■ NEVER returns memory to memory pool
- ■ Does NOT move memory
-
- Permanent Returnable
-
- ■ Allocates memory in size smaller than 4KB cache
- block
- ■ Allocates memory needed for a long time
- ■ Allocates exact size of memory requested
- ■ Does NOT return memory to the file cache buffer pool
- ■ Returns memory to memory pool
- ■ Does NOT move MemoryReturnable Memory
-
- Memory that is returnable is returned to the file cache
- buffer pool after it is deallocated. All returnable
- memory is also returned to the memory pool after it is
- deallocated.
-
- NonMovable Memory (Used by NLMs)
-
- ■ Allocates memory in large cache blocks of 4KB,
- 8KB, or 16KB
- ■ Allocates memory for any period of time
- ■ Returns memory to the file cache buffer pool
- ■ Returns memory to memory pool
- ■ Does NOT move Memory
-
- Movable Memory
-
- ■ Allocates memory in large cache blocks of 4KB, 8KB,
- or
- 16KB that may need to be expanded (Used for system
- tables
- that can grow because of dynamic configuration.)
- ■ Allocates memory for any period of time
- ■ Returns memory to the file cache buffer pool
- ■ Returns memory to memory pool
- ■ Moves memory (Special routines must be provided to
- adjust
- pointers to this memory. Pointers used to access
- this memory
- must be reloaded into registers any time the code
- makes a call
- to a function that could cause the process to
- block.)
- ■ Causes no fragmentation of cache buffer memory pool
-
-
- Dynamic memory allocation allows the number of cache
- buffers needed for Directory Table blocks to grow
- according to demand. The number of Turbo FATs also grows
- when another file needs to be indexed.