LAN Server 3.0 Entry Architecture


The Entry server runs at application privilege level. The Entry server uses OS/2 services to satisfy network file I/O requests, session setup, and resource sharing. Network file I/O requests and responses are sent by way of server message blocks (SMBs). The Entry server processes SMBs using internal network buffers. The IBMLAN.INI file parameters that define the size and number of network buffers on the server are sizreqbuf and numreqbuf. The IBMLAN.INI file parameters that define the size and number of network buffers on the requester are sizworkbuf and numworkbuf.

An SMB received from the network is copied into the adapter receive buffers by the network adapter. The NETBIOS device driver, using a global descriptor table (GDT) selector, copies the data from the adapter's receive buffers into an available server network buffer. The NETBIOS device driver can acknowledge the message or piggyback the acknowledgment on a subsequent network message. The PROTOCOL.INI file contains the configuration information for the NETBIOS device driver.

The SMB is passed through the redirector to the server. The redirector is a requester component that directs file system request traffic among the server, the file system, and the network. There are three types of SMB protocols that are used for transferring data between a requester and a server:

o

o o

LAN Server-Entry is designed to optimize the movement of file I/O from the server to the requester, and it supports both the file allocation table (FAT) file system and the high performance file system (HPFS). Both the FAT file system and the HPFS have cache that is used to improve performance by keeping frequently used data in memory. A cache is a high-speed storage buffer that contains frequently accessed instructions and data. Due to a 2MB cache size limit, the HPFS has a threshold of 2KB to characters (bytes) flushed by large file transfers.

The following table shows performance and functional comparisons between the FAT file system and the HPFS.

┌────────────────────────────────────────────────────────────────────────┐│ Comparison between the FAT File System and the HPFS                    │
├───────────────────────┬────────────────────────┬───────────────────────┤
│     Characteristic    │    OS/2 2.0 FAT File   │          HPFS         │
│                       │         System         │                       │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Maximum file-name     │ 11 (8.3 format)        │ 255 characters        │
│ length                │ characters (bytes)     │ (bytes)               │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ File attributes       │ Bit flags plus up to   │ Bit flags plus up to  │
│                       │ 64KB, text or binary   │ 64KB, text or binary  │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Maximum path length   │ 64 characters (bytes)  │ 260 characters        │
│                       │                        │ (bytes)               │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Average wasted space  │ 1/2 cluster (1KB)      │ 1/2 sector (256       │
│ per file              │                        │ bytes)                │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Allocation            │ Centralized in FAT     │ Located near each     │
│ information for files │ file system on home    │ file in its FNODE     │
│                       │ track                  │                       │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Free disk-space       │ Centralized in FAT     │ Located near free     │
│ information           │ file system on home    │ space in bit maps     │
│                       │ track                  │                       │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Directory structure   │ Unsorted linear list,  │ Sorted B-tree         │
│                       │ must be searched       │                       │
│                       │ exhaustively           │                       │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Directory location    │ Root directory on home │ Located near seek     │
│                       │ track, others          │ center of volume      │
│                       │ scattered              │                       │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Read-ahead            │ Optional               │ Cache reads in 8KB    │
│                       │                        │ blocks (Entry         │
│                       │                        │ package);             │
│                       │                        │ sensitive to data     │
│                       │                        │ type                  │
│                       │                        │ (Advanced package)    │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Cache replacement     │ Simple least recently  │ Modified LRU (Entry   │
│ strategy              │ used (LRU) algorithm   │ package);             │
│                       │                        │ sensitive to data     │
│                       │                        │ type                  │
│                       │                        │ (Advanced package)    │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Write-behind (lazy    │ Optional, can be       │ Optional, can be      │
│ write)                │ handled on a per-file  │ handled on a per-file │
│                       │ basis                  │ basis                 │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Caching program       │ DISKCACHE              │ CACHE.EXE (Entry);    │
│                       │ (in CONFIG.SYS file)   │ CACHE386.EXE          │
│                       │                        │ (Advanced);           │
│                       │                        │ (values specified for │
│                       │                        │ the IFS and RUN       │
│                       │                        │ statements in the     │
│                       │                        │ CONFIG.SYS file)      │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Maximum cache size    │ 14MB                   │ 2MB (Entry package);  │
│                       │                        │ physical memory       │
│                       │                        │ available             │
│                       │                        │ (Advanced package)    │
├───────────────────────┼────────────────────────┼───────────────────────┤
│ Cache threshold       │ Variable, up to 64KB   │ Variable, up to 64KB  │
│                       │ (3.5KB default)        │ (Entry package);      │
│                       │                        │ sensitive to data     │
│                       │                        │ type                  │
│                       │                        │ (Advanced package)    │
└───────────────────────┴────────────────────────┴───────────────────────┘

The LAN Server-Entry design is optimized to handle three typical file accesses:

o

o o

For the Entry server, I/O requests to the file system are made using OS/2 APIs. Once the API call finishes, the server returns the SMB to the requester as an SMB response.

The following figure shows the components that may influence the performance of OS/2 LAN Servers (Entry package) and OS/2 LAN Requesters. This figure also provides a reference for discussing individual performance-related elements.

System Architecture of the OS/2 Entry Server and OS/2 LAN Requester

                                             │
<─────────────Server────────────────────────>│<───────Requester─────────>
                          ┌─────────────┐    │     ┌─────────────┐
                          │    Local    │    │     │    Local    │
                          │ application │    │     │ application │
                          └──────────┬──┘    │     └──────┬──────┘
┌────────────────────────┐           │       │            │
│ LAN Server 3.0 - Entry ├─────┐     │       │            │
├────────────┬───────────┤     │     │       │            │
│ Request    │     Big   │   ┌─┴─────┴──┐    │     ┌──────┴──────┐
│ buffers    │   buffers │   │ OS/2 API │    │     │   OS/2 API  │
└───┬────────┴───────────┘   └───┬──────┘    │     └──────┬──────┘
    │                            │           │            │ Application
    │                            │           │            │ privilege
────│────────────────────────────│───────────┼────────────│─────────────
    │                            │           │            │ System
    │                            │           │            │ privilege
    │      ┌─────────────────────┴─┐         │     ┌──────┴──────┐
    │      │      OS/2 kernel      │         │     │ OS/2 kernel │
    │      ├──────────┬────────────┤         │     ├─────────────┤
    │    ┌─┤   IFS    │     FAT    │         │     │     IFS     │
    │    │ └──────┬───┴──────────┬─┘         │     └──────┬──────┘
┌───┴────┴──┐     │              │           │    ┌───────┴─────────┐
│ Redirector│     │              │           │    │   Redirector    │
└─────┬─────┘  ┌──┴───┐          │           │    │                 │
      │        │ File │          │           │    ├─────────┬───────┤
      │        │system├───┐      │           │    │  Work   │ Work  │
      │        │system├───┐      │           │    │  Work   │ Work  │
      │        │driver│   │      │           │    │ buffers │ cache │
      │        ├──────┤   │      │           │    └───┬─────┴───┬───┘
      │        │      │   │      │           │        └───┬─────┘
      │        │ HPFS │   │      │           │            │
      │        │ cache│   │      │           │            │
      │        └──────┘   │      │           │            │
┌─────┴──┐            ┌───┴──────┴┐          │         ┌──┴─────┐
│NETBIOS │            │Disk driver│          │         │NETBIOS │
│protocol│            ├───────────┤          │         │protocol│
│ driver │            │ DISKCACHE │          │         │ driver │
└───┬────┘            └────┬──────┘          │         └──┬─────┘
┌───┴───────────────┐      │                 │   ┌────────┴──────────┐
│  Network adapter  │      │                 │   │  Network adapter  │
│      driver       │      │                 │   │      driver       │
├────────┬──────────┤      │                 │   ├────────┬──────────┤
│Receive │  Transmit│      │                 │   │Receive │  Transmit│
│buffers │  buffers │      │                 │   │buffers │  buffers │
└────┬───┴────┬─────┘      │                 │   └────┬───┴──┬───────┘
     └───┬────┘            │                 │        └───┬──┘   PS/2 Processor
─────────│─────────────────│─────────────────┼────────────│──────────────
  ┌──────┴────────┐     ┌──┴─────────┐       │   ┌────────┴──────────┐
  │Network adapter│     │Disk adapter│       │   │  Network adapter  │
  │     card      │     │   card     │       │   │       card        │
  └───────────────┘     └────────────┘       │   └───────────────────┘

The next figure shows the components that may influence the performance of OS/2 LAN Servers (Entry package) and DOS LAN Requesters. This figure also provides a reference for discussing individual performance-related elements.

System Architecture of the OS/2 Entry Server and DOS LAN Requester

                                             │
<─────────────Server────────────────────────>│<───────Requester─────────>
                          ┌─────────────┐    │ ┌────────────┬───────────┐
                          │    Local    │    │ │   Local    │Application│
                          │ application │    │ │application │  memory   │
                          └──────────┬──┘    │ └──────────┬─┴───────────┘
┌────────────────────────┐           │       │            │
│ LAN Server 3.0 - Entry ├─────┐     │       │            │
├────────────┬───────────┤     │     │       │            │
│ Request    │     Big   │   ┌─┴─────┴──┐    │     ┌──────┴──────┐
│ buffers    │   buffers │   │ OS/2 API │    │     │   DOS API   │
└───┬────────┴───────────┘   └───┬──────┘    │     └──────┬──────┘
    │                            │           │            │
    │ Application privilege      │           │            │
────│────────────────────────────│───────────┤            │
    │ System privilege           │           │            │
    │                            │           │            │
    │      ┌─────────────────────┴─┐         │            │
    │      │      OS/2 kernel      │         │         Interrupt 2F
    │      ├──────────┬────────────┤         │            │
    │    ┌─┤   IFS    │     FAT    │         │            │
    │    │ └──────┬───┴──────────┬─┘         │            │
┌───┴────┴──┐     │              │           │    ┌───────┴─────────┐
│ Redirector│     │              │           │    │   Redirector    │
└─────┬─────┘  ┌──┴───┐          │           │    │                 │
      │        │ File │          │           │    ├─────────┬───────┤
      │        │system├───┐      │           │    │ Network │  Big  │
      │        │driver│   │      │           │    │ buffers │buffers│
      │        ├──────┤   │      │           │    └───┬─────┴───┬───┘
      │        │      │   │      │           │        └───┬─────┘
      │        │ HPFS │   │      │           │            │
      │        │ cache│   │      │           │         Interrupt 5C
      │        └──────┘   │      │           │            │
┌─────┴──┐            ┌───┴──────┴┐          │       ┌────┴──────┐
│NETBIOS │            │Disk driver│          │       │LAN Support│
│protocol│            ├───────────┤          │       │  Program  │
│ driver │            │ DISKCACHE │          │       │   driver  │
└───┬────┘            └────┬──────┘          │       └────┬──────┘
┌───┴───────────────┐      │                 │   ┌────────┴──────────┐
│  Network adapter  │      │                 │   │  Network adapter  │
│      driver       │      │                 │   │      driver       │
├────────┬──────────┤      │                 │   ├────────┬──────────┤
│Receive │  Transmit│      │                 │   │Receive │  Transmit│
│buffers │  buffers │      │                 │   │buffers │  buffers │
└────┬───┴────┬─────┘      │                 │   └────┬───┴──┬───────┘
     └───┬────┘            │                 │        └───┬──┘   PS/2 Processor
─────────│─────────────────│─────────────────┼────────────│──────────────
  ┌──────┴────────┐     ┌──┴─────────┐       │   ┌────────┴──────────┐
  │Network adapter│     │Disk adapter│       │   │  Network adapter  │
  │     card      │     │   card     │       │   │       card        │
  └───────────────┘     └────────────┘       │   └───────────────────┘


[Back: Preface]
[Next: LAN Server 3.0 Advanced Architecture]