home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / w4-paper.txt < prev    next >
Text File  |  1997-10-07  |  348KB  |  5,476 lines

  1.                                     
  2.                                     
  3.                                     
  4.                                     
  5.                                     
  6.                                                           OS/2 Warp 4
  7.                                                 Capacity Planning and
  8.                                              Performance Tuning Guide
  9.                                                                      
  10.                                                                      
  11.                                                                      
  12.                                                                      
  13.                                                                      
  14.                                                                      
  15.                                             Document Number: WARP4TTT
  16.                                                                      
  17.                                                      December 5, 1996
  18.                                                                      
  19.                                                                      
  20.                                                                      
  21.                                                                      
  22.                                                                      
  23.                                                                      
  24.                                            Personal Software Products
  25.                                                                      
  26.                                                                      
  27.                             Duc J. Vianney, Ph. D., Senior Programmer
  28.                                 OS/2 External Performance, Austin, TX
  29.                                                                      
  30.                               Tony White, OS/2 Performance Consultant
  31.                         Personal Systems Solutions Center, Dallas, TX
  32.                                                                      
  33.                                                               Preface
  34.                                                                        
  35.   
  36.   
  37.   
  38.   This paper was produced to assist you in improving the performance of your OS/2 system by providing
  39.   information on OS/2 Warp 4, its various subsystems, and practical performance tuning tips and
  40.   techniques.  It begins by familiarizing you the new features and enhanced functions of OS/2 Warp 4. It
  41.   will then introduce you to the concepts and terminology needed to successfully tune an OS/2 system. 
  42.   You will learn to recognize the symptoms of many common performance problems.  You will also learn
  43.   how to create and use a repeatable process for analyzing a system's performance problem and
  44.   understand the many tuning parameters and techniques used to fully optimize your system. The tuning
  45.   tips and techniques are divided into 3 sections targeted to different levels of complexity: basic OS/2
  46.   tuning, advanced OS/2 tuning, and tuning tips for a networked OS/2 workstation.
  47.   
  48.   This paper documents the procedures used and knowledge obtained from performance evaluation and
  49.   measurement activities. Some procedures have been recorded in documents previously published by
  50.   OS/2 development and support groups within IBM. It should be considered a working document subject
  51.   to forthcoming changes without notice as additional information is obtained.
  52.   
  53.   The information contained in this paper represents the interpretation of IBM on the issues discussed
  54.   based on the measurement results as of the date of publication. Since the results are applicable only to
  55.   the system under test, IBM makes no commitment nor guarantees the accuracy of any data measured
  56.   after the date of publication.
  57.   
  58.   The authors wish to express their sincere thanks to the comments, suggestions and reviews made by
  59.   Michael Martino, Cyndi Kubich, Rich Wahl, Robert Paulsen, Jimmy DeWitt, Ivan Eisen, Bob Russell,
  60.   Steve Woodward, Lannes Robinson, Valerie Jackson, and many others that have involved with OS/2
  61.   Warp products.   
  62.   
  63.   For further references, please refer to the following documents.
  64.       1  OS/2 Warp 4 Readme
  65.       2  OS/2 Warp 4 Reference and Commands
  66.       3  OS/2 Warp 4 Tasks
  67.       4  "Performance Tuning OS/2 Warp," Ron Cadima, ISV Development Assistance, IBM Boca
  68.   Raton, FL, 1995.
  69.       5  "OS/2 2.1 Performance Tuning for End Users," IBM,  May 1993.
  70.       6  "OS/2 Warp Performance Pentium Pro P6 Performance Benchmark Guide," Duc Vianney,
  71.   IBM TR54.915.
  72.       7  "OS/2 Client Tuning Worksheet," Tony White, IBM, Personal Systems Competency Center,
  73.   May 1996.
  74.   
  75.   
  76.     
  77.   
  78.   
  79.   Trademarks
  80.   
  81.   The following terms are trademarks or registered trademark of the IBM Corporation in the United States
  82.   or other countries 
  83.   OS/2, OS/2 Warp, OS/2 Warp Connect, OS/2 Warp Server, OS/2 LAN Server, DB/2, LAN Server 4.0,
  84.   Bonus Pak, Personal Communications/3270 , Visual Age and Visual Builder, ThinkPad, NetFinity,
  85.   OpenDOC, WebExplorer, SOM/DSOM, DIVE, System Performance Monitor/2 (SPM/2)
  86.   
  87.   The following terms are trademarks of other companies:
  88.   
  89.      TRADEMARK                          OWNER
  90.      DOOM                                    id Software
  91.      Intel                         Intel Corporation
  92.      Master of Orion                         MicroProse
  93.      Myst                                    Cyan, Inc.
  94.      NetWare                                 Novell, Inc.
  95.      Pro AudioSpectrum                       Media Vision, Inc.
  96.      QuickTime                               Apple Computer, Inc.
  97.      Sound Blaster                           Creative Labs, Inc.
  98.      THE 7th GUEST                           Virgin Interactive Entertainment, Inc.
  99.      TIE Fighter                             Lucasfilm, Ltd.
  100.      Western Digital                         Western Digital Corporation
  101.      Windows, Win32s               Microsoft Corporation
  102.      Windows NT Server, Windows 95      Windows for Workgroups
  103.      TME, TME 10                             Tivoli Systems, Inc., an IBM Company
  104.      OpenGL                                  Silicon Graphics
  105.      Amipro, L 1-2-3                    Lotus Corp.
  106.      BRender                  Argonaut Technologies Ltd.
  107.      BYTEmark                      Byte Magazine.
  108.      ColorWorks                    SPG Inc.
  109.      Describe                 Describe Corp.
  110.      MicroStation                  Bentley Systems, Inc.
  111.      Pentium  and Pentium  Pro          Intel Corp.
  112.      SAS                      SAS Institute Inc., Cary, NC, USA. 
  113.      LANtastic                     Artisoft  
  114.      JAVA                          Sun Microsystems 
  115.      HyperACCESS                   Hilgraeve
  116.      FaxWorks                 Keller Group Inc.
  117.      CompuServe Information Manager     CompuServe
  118.      Pegasus Resource Monitor for OS/2  OnDEMAND Software, Inc.
  119.      OS/2 Resource Monitor              C.O.I. Consulting, Ltd.
  120.      CPU Monitor                   BonAmi Software Corp.
  121.      Performance 2.1                    Clear and Simple, Inc.
  122.   
  123.   All other marks are the property of their respective companies.
  124.   
  125.   
  126.   
  127.   
  128.   Notices
  129.   
  130.   References in this publication to IBM products, programs, or services do not imply that IBM intends to make these available in all
  131.   countries in which IBM operates. Any reference to an IBM product, program or service is not intended to state or imply that only
  132.   IBM's product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe
  133.   any of IBM's intellectual property rights or other legally protectable rights may be used instead of the IBM product, program, or
  134.   service. Evaluation and verification of operation in conjunction with other products, programs, or services, except those expressly
  135.   designeated by IBM, are the user's responsibility.
  136.   
  137.   IBM may have patents or pending patent applications covering subject matter in this document.  The furnishing of this document
  138.   does not give you any license to these patents.  You can send license inquiries, in writing, to the IBM Director of Licensing, IBM
  139.   Corporation, 500 Columbus Avenue, Thornwood NY 10594, U.S.A. 
  140.   
  141.   The following paragraph does not apply to the United Kingdom  or any other country where such provisions are inconsistent with
  142.   local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS DOCUMENT "AS IS" WITHOUT
  143.   WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED
  144.   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  Some states do not allow
  145.   disclaimers of express or implied warranties in certain transactions; therefore, this statement may not apply to you.
  146.   
  147.   This publication could include technical inaccuracies or typographical errors. Changes are periodically made to the information
  148.   herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the
  149.   product(s) and/or the program(s) described in this paper at any time.
  150.   
  151.   It is possible that this publication may contain reference to, or information about, IBM products (machines and programs),
  152.   progamming, or services that are not announced in your country. Such references or information must not be construed to mean
  153.   that IBM intends to announce such IBM products, prograaming, or services in your country.
  154.   
  155.   Requests for technical information about IBM products should be made to your IBM authorized reseller or IBM marketing
  156.   representative.    
  157.   
  158.   (C) Copyright International Business Machines Corporation 1996. All rights reserved.
  159.   Note to U.S. Government Users.  Documentation and programs related to restricted rights - Use, duplication or disclosure is
  160.   subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corporation.
  161.   
  162.   
  163.                                                                                                                                           Table of Contents
  164.   
  165.   
  166.   
  167.   
  168.   1   Introduction 
  169.      1.0  Why OS/2 Warp 4?                                             7
  170.      1.1  OS/2 Warp 4 features and functions                                7
  171.      1.2  Performance differences from previous OS/2 versions                         9
  172.      1.3  Software prerequisites                                 
  173.      10   
  174.      1.4  The software configuration menu                             
  175.      10
  176.   
  177.   2   Capacity Planning  
  178.      2.0  Capacity planning                                           12
  179.      2.1  OS/2 Warp 4 resource requirements                                12
  180.      2.2  Main reasons for causing system performance bottlenecks in OS/2 Warp 4               13
  181.      2.3.  Hardware issues                                            13
  182.           2.3.1  CPU                                             13
  183.           2.3.2  Memory                                          16
  184.           2.3.3.  Disk drive                                          17
  185.           2.3.4  Video subsystem                                      20
  186.           2.3.5  COM port                                             20
  187.      2.4  Software issues                                             21
  188.           2.4.1  Planning for growth                                  21
  189.   
  190.   3   Performance Monitoring and Tuning
  191.      3.0  Response time                                          22
  192.      3.1  Performance monitoring                                      22
  193.      3.2  Benchmarking                                           22
  194.      3.3  OS/2 Warp 4 performance tools                               23
  195.           3.3.1  CHKDSK                                          23
  196.           3.3.2  Hard Disk Drive Monitor                                   23
  197.           3.3.3.  PROFILER                                       24
  198.           3.3.4  PSTAT                                           25
  199.           3.3.5  SYSLEVEL                                        25
  200.           3.3.6  RMVIEW                                          26
  201.           3.3.7  TRACE                                           26
  202.      3.4  OS/2 external monitoring tools
  203.           3.4.1  System Performance Monitor/2 (SPM/2)                      27
  204.           3.4.2  Simple CT                                            27
  205.           3.4.3  CPU Monitor                                     28
  206.           3.4.4  OS/2 Resource Monitor                                28
  207.      3.5  Performance tuning                                          28
  208.           3.5.1  Problem definition                                        28
  209.           3.5.2  Identifying bottlenecks                                   28
  210.      3.6  Tuning Methodology                                          29
  211.           3.6.1  Define the problems                                  29
  212.           3.6.2  Hypothesize solutions                                29
  213.           3.6.3  Design tests                                    30
  214.           3.6.4  Set values and run tests                                  30
  215.           3.6.5  Analyze the results                                       30
  216.   
  217.   4   Basic OS/2 Tuning Procedures
  218.      4.0  Introduction                                                31
  219.      4.1  General system changes                                      31
  220.           4.1.1  The OS/2 Warp Center                                 31
  221.           4.1.2  The OS/2 Warp Guide                                  31
  222.           4.1.3  Animation                                            32
  223.           4.1.4  Changing display drivers                                  32
  224.           4.1.5  Minimize applications and folders                              32
  225.           4.1.6  Starting applications                                33
  226.           4.1.7  Use startup folder                                        33
  227.           4.1.8  Multitasking considerations                               33
  228.           4.1.9  Schemes and color palette                                 33
  229.           4.1.10  Sounds                                         33
  230.           4.1.11  Font palette                                        33
  231.           4.1.12  System logo                                    34
  232.           4.1.13  Mouse                                          34
  233.           4.1.14  Desktop utilization
  234.   
  235.   5   Advanced OS/2 Tuning 
  236.      5.0  Introduction                                                35
  237.      5.1  Tuning tips for the Workplace Shell                                   35
  238.           5.1.1  The PMSHELL environment                                   35
  239.      5.2  Task scheduling                                             35
  240.      5.3  The CONFIG.SYS file                                    36
  241.      5.4  Single input queue                                          49
  242.      5.5  The AUTOEXEC.BAT file                                       49
  243.   
  244.   6   Improving Application Performance
  245.      6.0  Application software                                             51
  246.      6.1  Tuning tips for OS/2 applications                                51
  247.           6.1.1  SOMobjects                                      52
  248.           6.1.2  VisualAge C++ performance                                 52
  249.      6.2  Tuning tips for Windows applications                                  53
  250.           6.2.1  Win-OS/2 environment                                 53
  251.           6.2.2  Windows groups and Windows programs folders                    53
  252.           6.2.3  Win-OS/2 virtual DOS sessions - common Vs. separate                 53
  253.           6.2.4  Win-OS/2 standard and enhanced compatibility modes                  53
  254.           6.2.5  Settings for Windows applications                         
  255.      54
  256.           6.2.6  Win32s support                                       55
  257.           6.2.7  Win-OS/2 setup                                       55
  258.           6.2.8  Win-OS/2 specific settings                                56
  259.           6.2.9  General Win-OS/2 tips                                57
  260.           6.2.10 Tuning tips for games                           
  261.      58
  262.      6.3  Tuning tips for DOS applications                                 60
  263.           6.3.1  DOS environment                                      60
  264.           6.3.2  Full screen vs. windowed                                  60
  265.           6.3.3  Multitasking DOS sessions                                 60
  266.           6.3.4  Tuning the DOS settings                                   61
  267.           6.3.5  Video settings                                  
  268.      68
  269.           6.3.6  Mouse and touch sensitive settings                        
  270.      71
  271.           6.3.7  Settings affecting communications applications            
  272.      72
  273.   
  274.   7   Performance Exploitation of the Underlying Hardware 
  275.      7.0  Introduction                                                75
  276.      7.1  Video display resolutions                                        75
  277.      7.2  Tuning tips for printing performance                                  76
  278.           7.2.1  Printer object settings                                   76
  279.           7.2.2  Fonts impact print speed                                  77
  280.           7.2.3  PRINTMONBUFSIZE                                 78
  281.           7.2.4  OS/2 spooled printing                                78
  282.           7.2.5  Printing from DOS                                    79
  283.           7.2.6  Printing from WIN-OS/2                               79
  284.           7.2.7  Printing from OS/2 applications                           80
  285.      7.3  Tuning tips for speech performance                               81
  286.           7.3.1  Hardware requirements                                81
  287.   
  288.   8   Tuning Tips for a Networked OS/2 Workstation  
  289.      8.0  Introduction                                                82
  290.      8.1  Multi-protocol transport service                                 82
  291.           8.1.1  SOCKS support                                        83
  292.      8.2  OS/2 LAN Server/Requester                                        83
  293.      8.3  OS/2 Netware Requester                                      84
  294.      8.4  TCP/IP client tuning                                             85
  295.      8.5  DB2 client tuning -- SQL database performance                              85
  296.      8.6  Lotus Notes client tuning                                        86
  297.   
  298.   Appendix 1 - CONFIG.SYS File Insights                     
  299.           87
  300.   
  301.   
  302.                                                                      Cha                                                          pter 1
  303.   
  304.                                                                                                                                           Introduction 
  305.   
  306.   
  307.   
  308.   
  309.   1.0  Why OS/2 Warp 4?
  310.   
  311.   IBM's goal is to provide a more responsive OS/2 that is simpler and more intuitive to use, and provides
  312.   easy connectivity.  To achieve that end, OS/2 Warp 4 addresses three major issues:  
  313.         Ease of use - changes to the Workplace Shell interface
  314.         Voice Navigation and Dictation
  315.         Ease of connecting to whatever networked environment you wish
  316.   
  317.   1.1  OS/2 Warp 4 features and functions
  318.   
  319.   OS/2 Warp 4 contains the following new features and functions:
  320.         Voice Navigation and Dictation - Combining speaker independence and continuous
  321.           speech, OS/2 Warp voice-enabled the operating system to navigate OS/2 and macros can
  322.           be created to simplify repetitive tasks.
  323.         Internet-Aware Desktop - New desktop objects for HTML, URL, Java class and FTP
  324.           servers.  These objects enable drag-and-drop from the Internet to the desktop and vice
  325.           versa.  The FTP object provides a folder view of a FTP directory.
  326.         256-color Exploitation - Visuals use more colors to give the user a 3D experience
  327.           using texture, shadowing and curved edges.
  328.         More System Fonts - A new condensed font style is added that uses less desktop real
  329.           estate while improving legibility. 
  330.         File and Print Services Client - Converge LAN Requester and Peer for OS/2 to provide
  331.           a single administration workstation. Users can share peer resources and administer peer and
  332.           LAN resources. Objects on the desktop will inherit peer functionality in their context
  333.           menus.  The File and Print Client can connect to IBM-compatible networks such as:
  334.              OS/2 Warp Server
  335.              OS/2 LAN Server
  336.              Windows NT Server
  337.              PC LAN Program
  338.              OS/2 Warp Connect
  339.              Windows NT Workstation
  340.              Windows 95
  341.              Windows for Workgroups
  342.              LANtastic for OS/2
  343.              LANtastic for DOS
  344.         PCOM Lite - Personal Communications/3270 (PC/3270) and Personal
  345.           Communications/5250 (PC/5250)-- TCP/IP Entry Level 4.1 are replacements for TN3270,
  346.           TN5250 and PMANT.  The new emulators feature 32-bit code, full font set and automatic
  347.           font sizing, custom color palette, improved cut and paste, APL support, command line
  348.           (IND$FILE) file transfer, context sensitive help, popup keyboard, hot spots, PCMCIA and
  349.           support problem determination aids.  Users are limited to two sessions.
  350.         Support for JAVA(tm) Applications - Full support for the Java language, Java runtime
  351.           and Java applets.
  352.         TrueType Engine - New support for TrueType, a ready source of inexpensive fonts.
  353.         OpenDoc(tm) - Runtime support for cross-platform compound documents. 
  354.         Open32 Support - Support for subset of a Win32 APIs and messages to ease the
  355.           porting of Windows applications.
  356.         OpenGL - A high quality, portable 3D graphics API that will primarily enable
  357.           technical and engineering applications (CAD/CAM) to be ported to OS/2 Warp.
  358.         DPMI 1.0 Subset - Enablement for support of Win32s 1.25a compatibility and support
  359.           of Borland 4 tools.
  360.         Plug-and-Play (PnP) Support - Automatic detection and resource allocation for enabled
  361.           devices as well as legacy ISA devices.  An application is provided to view resource
  362.           assignments. The framework has been established for more sophisticated operations in
  363.           future releases.  OS/2 Warp's PnP support does not include dynamic installation and
  364.           configuration.
  365.         Warm Plug/Warm Docking - Support for docking/undocking and the swapping of
  366.           diskette drive and CDROM drive in specific models of IBM ThinkPad 755 series.
  367.         Infra-red (IR) Support - ThinkPad-specific support for IR supporting the IrDA
  368.           interface.
  369.         Graphics Device Driver Model (GRADD) - New device driver model that reduces the
  370.           IHV development effort and improves time-to-market.
  371.         Device Driver Pak (DDPak) - A collection of OS/2 device drivers available from IBM
  372.           and third-parties offered as-is for customer convenience.
  373.         Display Data Channel (DDC) Support - DDC2 support for automatic enabled-display
  374.           recognition and refresh rate setting.
  375.         Realtime Musical Instrument Digital Interface (MIDI) - Framework and API for
  376.           delivering high quality, realtime relative MIDI applications.
  377.         Security Enabling Services (SES) - Enablement for operating system security services.
  378.         System Dump Formatter - Utility to read and format system dump information.
  379.         First Failure Support Technology (FFST) Probes - Capture all data relevant to the error
  380.           at the time it occurs.
  381.         DMI Interface - Support for the Desktop Management Interface, an industry standard
  382.           way to manage Pcs.
  383.         TME NetFinity - Software to allow administrators to view, monitor and initiate actions
  384.           to ensure the smooth operation of PCs.
  385.         Software Registration (ART) - Online registration tool to encourage customers to
  386.           register the software electronically via a modem or the Internet, FAX, mail or even the
  387.           telephone. Users are gently reminded periodically until registration is completed.
  388.         Retrieve Software Updates - Automatic software retrieval and install of fixes and
  389.           upgrades via the Internet.
  390.         XPG4/ULS Support - Provide ability for easier application adaptation of international
  391.           requirements such as native languages, local customs and coded character sets.
  392.         Bonus Pak Changes - Collection of personal productivity applications including word
  393.           processor, spreadsheet, charting, report writer, database, calendar, monthly planner,
  394.           appointment book and phone book. IBM Works 3.0 contains fixes, memory management
  395.           improvements, updated help, HTML support, updated word processor and graphics filters
  396.           and a button bar for commonly used features.  
  397.              Remote Support for OS/2 - Allows IBM service representative to dial into
  398.                your system to assist with problem determination and resolution.
  399.              HyperACCESS Lite - Async communications program to access bulletin
  400.                board services.  The update includes maintenance and other refinements such as
  401.                user-defined modem strings and more colorful icons.
  402.              CompuServe Information Manager - Provides access to the CompuServe
  403.                online service.  CIM 2.03 includes fixes and removes the OS/2 registration
  404.                requirement.
  405.              HP JetAdmin and MarkVision for OS/2 delivers an advanced network printing
  406.                solution that enables you to easily install, configure, query, and troubleshoot
  407.                network-attached printers from your OS/2 Desktop.
  408.              FaxWorks - Allows FAXes to be sent and received.  Includes features of a
  409.                basic answering machine.  Supports drag-and-drop. FAX/data integration through a
  410.                new interface for data applications to pass answered call to FaxWorks.
  411.              AskPSP - AskPSP consists of an expert system with a natural language
  412.                interface. It can be used to resolve customer problems on OS/2 Warp. This tool is
  413.                also used by IBM Service and Support.  The technical database, updated monthly,
  414.                is available by subscription to the OS/2 Technical Connection CDROM.
  415.   
  416.   The following features and functions have been updated in OS/2 Warp 4:
  417.         Integrated install - Updated for OS/2 Warp, the install program gives the user an easy
  418.           and an advanced path.  The user can also selectively install, re-install or uninstall
  419.           components.
  420.         Controls and Visuals 
  421.              Visuals - Use more colors to give the user a 3D experience using texture,
  422.                shadowing, and curved edges.
  423.              Dialogs - File Open and Close dialogs provide tree views of directories and
  424.                allow for filetype selection.
  425.              Horizontal Style Notebook - Notebook settings add a horizontal tab option.
  426.                This new style allows information to be presented more concisely without taking
  427.                up much space.
  428.              Close Button - Close applications with a single click.
  429.              Folder Menu Bars - Menu bar access for common operations within folders.
  430.                Users can also utilize the context menu (Mouse Button 2) for these same
  431.                operations.
  432.         User Interface Redesign 
  433.              Background Bitmaps - Bitmaps with texture and color schemes. Exploit use of
  434.                more colors for higher degree of texture and depth.
  435.              Arrange Options - Desktop and folder icon alignment according to user
  436.                preferences.
  437.              Pointers - Greater selection of pointers for user customization.
  438.              Font Palette - System-defined or user-defined selection of fonts for text
  439.              Color Palette - System-defined or user-defined selection of colors for visual
  440.                controls.
  441.              Scheme Palette - System-defined or user-defined selection of fonts and colors.
  442.              Sound Schemes - System-defined or user-defined selection of sounds for
  443.                system events.
  444.         System Tutorials Update - Designed to help users get up-to-speed, with a focus on
  445.           getting connected.  Also includes a section on speech.
  446.         Help System Updates - Enhancements to give the help author more control over
  447.           content, presentation, and navigation.
  448.         Migration Database - Database of optimal settings for popular OS/2, DOS and
  449.           Windows applications. The database is used during install to migrate previously installed
  450.           applications.  Includes additional Windows and new Win32s applications.
  451.         Async Read-Ahead - File system studies disk read patterns, anticipates a disk read and
  452.           makes it available in memory to improve system throughout.
  453.         Network Transports - NDIS device driver support for a variety of LAN adapters.
  454.         Netware Client 2.11+ for OS/2 - This is the same level of code that was shipped in
  455.           OS/2 Warp Connect 3.0 and OS/2 Warp Server 4 with fixes.
  456.         TCP/IP 
  457.                DHCP/DDNS Client - Dynamic Host Configuration Protocol eases network
  458.             administration by dynamically allocating and reusing IP addresses.  Dynamic Domain
  459.             Name Service simplifies network access, operation and change with dynamic resolution
  460.             of IP addresses to IP hosts.
  461.           Socks Security - Permits TCP/IP applications to access the Internet through
  462.             many standard firewalls.
  463.           FTP and TFTP Client and Server - File transfer to and from a remote host.
  464.           Telnet Client and Server - Logon to and from a remote host.  Client is now
  465.             based on PC/3270.
  466.           REXEC and RSH Client and Server - Execute command on and from a
  467.             remote host.
  468.           SNMP Agent and Manager - Communicate and obtain status information and
  469.             manage network resources.
  470.         WebExplorer - WebExplorer 1.1a supports HTML 3.0 and contains numerous fixes
  471.           and updates.
  472.         Remote Access Client - The Remote Access Client provides LAN access via dial
  473.           connections (asynchronous, synchronous, ISDN or X.25). The Remote Access Client can
  474.           dial into either a LAN Distance Connection Server or OS/2 Warp Server.  In addition, a
  475.           Remote Access Client can dial directly to another Remote Access Client to establish a
  476.           virtual network.
  477.         Mobile Office Services - Mobile Office Services transparently caches files while
  478.           connected to an IBM-compatible or NetWare network and allows the user to continue using
  479.           these files even when disconnected.  When the network connection has been re-established,
  480.           Mobile Office Services detects the differences between the cache and the files on the
  481.           network and prompts the user for resolution.
  482.         Win32s 1.25a Support - Win32s 1.25a application support.
  483.         SOM/DSOM - Provides a language independent, cross platform architecture for
  484.           sharing objects.
  485.         Device Driver Update - Updates of many device drivers shipped in previous versions
  486.           of OS/2.
  487.         PCMCIA Enhancements - The latest level of code that supports IBM PCC and other
  488.           OEMs.  This consists of card and sockets services, cardbus and multi-function card
  489.           support, an enhanced user interface as well as updates to warm docking.
  490.         Advanced Power Management 1.1- Update to support suspend, resume and device
  491.           management and control.
  492.         Enhanced IDE Support - Enhanced to support the SMART standard for hardware
  493.           failure alert and DMA capabilities for PCI IDE hard drives.
  494.         Printer Support - New printer device drivers included.
  495.         Multimedia Support - Direct Audio Routines (DART) used by speech navigation and
  496.           dictation.
  497.         DIVE Enhancements - Enhancements for hardware video accelerators, video capture,
  498.           MPEG playback and full-screen support for applications needing high frame rates.
  499.   
  500.                                                                                                                                           1.2  Performance differences from previous OS/2 versions
  501.   
  502.   Some of the changes that gave OS/2 Warp 3 better performance than previous OS/2 versions are as
  503.   follows.
  504.         A new link parameter, /EXEPACK, which was used on many system files when OS/2
  505.           Warp was compiled, compresses resource and message files by 20 to 30%. These files load
  506.           2 to 3% faster, on average.
  507.         Some page frames are "zero compressed" (similar to PKZIP) and put in areas of
  508.           memory that is already allocated but that has extra space. This allows a page frame to be
  509.           swapped from RAM to RAM (which happens in nanoseconds) versus swapping from RAM
  510.           to the hard disk (which takes milliseconds). Up to 250 of these pages can be moved to
  511.           different areas of RAM instead of the SWAPPER.DAT file.
  512.         Many system DLLs (dynamic link libraries) are now being swapped out to the hard
  513.           disk. This makes it much quicker to recall them. A lot of overhead is required to load a
  514.           shared DLL from the file system versus saving it and its associated system data in the
  515.           SWAPPER.DAT file.
  516.         The SWAPPER.DAT file, when initialized, is put in the largest contiguous space of
  517.           the FAT file system. Previously the system was not concerned with swapper fragmentation.
  518.         The internal file system in the SWAPPER.DAT file now has a 4 KB cluster size
  519.           instead of 2 KB. This change makes swapping a 4 KB page more efficient.
  520.         Some system DLLs have been merged, so less overhead is needed to load them into
  521.           memory and notify all tasks of their locations.  For example, PMMERGE.DLL contains
  522.           three old system DLLs: PMGRE.DLL, PMSHAPI.DLL, and PMWIN.DLL. Although these
  523.           DLLs are still in OS/2 Warp, their function is simply to forward their calls to
  524.           PMMERGE.DLL. Some other DLLs that are merged are DOSCALL1.DLL and
  525.           MMPM.DLL.
  526.         A method of addressing called basing puts some system DLLs at an absolute address
  527.           to reduce the overhead of finding them in memory.
  528.   
  529.   OS/2 Warp 4 contains all of the aforementioned changes as well as enhancements to the FAT file
  530.   system (FAT deserialized and optimized asynch read ahead), CD-ROM asynch read ahead, page tuning
  531.   many system DLLs, single input queue, as well as changes to the memory caching default size and
  532.   system loader fixup scheme. Furthermore, there are changes made to improve TCP/IP throughput and
  533.   faster response time for network administration commands.
  534.   
  535.   1.3  Software prerequisites
  536.   
  537.   OS/2 Warp 4 can be installed over the following systems.
  538.         OS/2 1.3 
  539.         OS/2 2.0 and 2.1
  540.         OS/2 for Windows
  541.         OS/2 for Windows plus Service Pak
  542.         DOS 3.1 or greater with Windows 3.1, 3.11
  543.         DOS 3.1 or greater with Windows for Workgroups 3.10 or 3.11
  544.         OS/2 Warp V3.0
  545.         OS/2 Warp with WIN-OS/2 V3.0
  546.         OS/2 Warp Connect V3.0
  547.         OS/2 Warp Connect with WIN-OS/2 V3.0
  548.         over itself
  549.         in a totally empty partition
  550.   
  551.      TIP:
  552.         OS/2 Warp 4 shipped at the equivalent of OS/2 Warp 3 with Fixpak 20 level. 
  553.   
  554.   1.4  The software configuration menu  
  555.   
  556.   Many OS/2 parameters can be modified during or after installation.  This section overviews those
  557.   paramters that can be modified during the installation process.  Each of these tunable parameters will be
  558.   discussed in greater detail later in this document.  From the OS/2 Setup and Installation panel, there will
  559.   be three menus: Options, Software Configuration, and Help. 
  560.   
  561.      NOTE:
  562.         From the Options menu bar choice, you can:
  563.              Install the selected features
  564.              Format other drives
  565.              Access an OS/2 command
  566.         From the Software Configuration menu bar, you can specify the location for the swap
  567.           file. You can also change the OS/2 and DOS configuration settings of your system. 
  568.         The OS/2 parameters that you can change are:
  569.              Printer monitor buffer size
  570.              Buffers
  571.              Disk cache
  572.              Maxwait
  573.              Swap Minfree
  574.              Threads
  575.              Memman Protect
  576.              Memman Swap
  577.              Priority
  578.         The DOS parameters that you can change are:
  579.              Break
  580.              Open FCBS
  581.              Protected FCBS
  582.              RMSize
  583.   
  584.   
  585.                                                                                                                                           
  586.   
  587.                                                                      Chapter 2                                                          
  588.   
  589.                                                                                                                                           Capacity Planning
  590.   
  591.   
  592.   
  593.   
  594.   2.0  Capacity planning
  595.   
  596.   The OS/2 operating systems, in particular OS/2 Warp 4, have evolved to take advantage of new
  597.   technologies and strategies, such as client/server, voice navigation and dictation, internet aware desktop,
  598.   JAVA support, etc. The resulting changes in the software infrastructure and system platforms require
  599.   careful system planning to ensure OS/2 Warp 4 performs as a cost-effective information technology
  600.   platform.
  601.   
  602.   Personal computers have limited resources to handle increasingly complex operating systems and
  603.   applications.  Resources such as CPU, disk, and memory must perform well together and deliver
  604.   adequate response times to satisfy a user's requirements. Hence, capacity planning becomes an important
  605.   issue when determining the impact of OS/2 Warp 4 on your system.  To ensure the correct level of
  606.   resource to meet and support your computing needs, you need to: 
  607.   
  608.      1.Assess the current performance levels of your system.
  609.      2.Identify any additional computing needs you will have in the near future.
  610.      3.Determine the performance impact these needs will have on the existing configuration.
  611.      4.If the performance impact is not acceptable, tune the current configuration for optimal
  612.           performance and perform step 3 again.
  613.      5.If performance is still unacceptable, a more detailed performance analysis becomes necessary
  614.           to determine where the performance bottleneck is occurring.  Additional hardware may be
  615.           required.
  616.   
  617.   By employing validated performance analysis and tuning methodologies and systems tools, you can
  618.   accurately measure the utilization of your computer resources.  This will the smooth integration of OS/2
  619.   Warp 4 into your existing environment.
  620.   
  621.   2.1  OS/2 Warp 4 resource requirements 
  622.   
  623.   Your system performance depends largely on how OS/2 Warp 4 and the underlying hardware work
  624.   together. The 32-bit OS/2 Warp 4 operating system exploits the Intel 32-bit X-86 architecture through
  625.   the flat memory model, native protected mode and virtual 8086 mode though paging and multiple virtual
  626.   DOS machine sessions. The flat memory model allows for a very large (4 GB) single address space
  627.   referred to as flat memory. Call/return times are reduced by eliminating the need to switch segments
  628.   manifested in a typical 16-bit application. 
  629.   
  630.   While all previous 16-bit APIs are still completely supported, the remaining OS/2 Warp 4 APIs are now
  631.   32-bit, thus improving performance and enhancing function. In addition, OS/2 also provides support for
  632.   advanced disk hardware, Direct Memory Access for its parallel port, and many industry standard audio
  633.   and video devices. Like previous versions of OS/2, OS/2 Warp 4 supports all existing 16-bit and 32-bit
  634.   OS/2 applications, most DOS applications including those that use EMS, XMS or DMPI memory in the
  635.   full screen or windowed virtual DOS machine session. Windows application support is also included in
  636.   OS/2 Warp by providing both Windows 3.1 and Win32s environments for running Windows
  637.   applications seamlessly on the OS/2 workplace shell, in concurrence with DOS and OS/2 applications. 
  638.   
  639.   Several of OS/2 Warp 4's new features and enhanced functions require a powerful processor, more
  640.   physical memory, and a larger hard drive. If you experience sluggish response time after installing OS/2
  641.   Warp 4 you can use some of the performance tools shipped with OS/2 Warp 4 to determine the cause of
  642.   the problem and apply the following guidelines to obtain the best performance out of OS/2 Warp.
  643.   
  644.   Without Voice Navigation and Dictation:
  645.         Intel 486 DX 33MHz or higher processor
  646.         12MB to 16MB of RAM
  647.         Installation by selecting options requires 100MB-300MB disk space
  648.         Easy Installation (OS/2 Warp preselected options) requires 200MB disk space
  649.         640x480 resolution display with 256 colors recommended (SVGA monitor)  
  650.         IBM compatible mouse is required
  651.         OS/2 compatible CDROM drive and 1.44MB 3.5" diskette drive "A"
  652.         14.4K or higher modem or network connection for Internet access
  653.         OS/2 supported sound card for multimedia
  654.   
  655.   With Voice Navigation and Dictation, OS/2 Warp 4 requires
  656.         For speech navigation, Intel Pentium 75MHz or higher with 4MB additional memory
  657.         For speech navigation and dictation, Intel Pentium 100MHz or higher with 8MB-12MB
  658.           additional memory
  659.         Installation by selecting options requires 100MB-300MB disk space
  660.         Easy Installation (OS/2 Warp preselected options) requires 200MB disk space
  661.         640x480 resolution display with 256 colors 
  662.         IBM compatible mouse is required 
  663.         diskette drive A and CDROM driver 
  664.         14.4K or higher modem or network connection for Internet access 
  665.         Sound card for multimedia or speech 
  666.         High quality microphone for speech (requires Active Noise Cancellation feature, ANC,
  667.           for optimal performance.) 
  668.   
  669.   2.2  Main reasons for causing system performance bottlenecks in OS/2 Warp 4
  670.   
  671.   There are three areas where performance can be constrained: memory, disk, and processor.
  672.         Memory constraints occur when you attempt to run more programs in memory than
  673.           there is actual memory. The hardware allows OS/2 to execute beyond the real memory by
  674.           allowing paging or swapping, i.e., to allow code and data to be moved from memory to
  675.           disk. As memory becomes scarce, system performance degrades as access time to code or
  676.           data written to disk now includes the disk access time required to read back into memory
  677.           information that was moved out. It probably also required moving off to disk some
  678.           information to make room for the returning information. This activity can cause extremely
  679.           poor performance.
  680.         Disk constraints occur when your application requires large number of disk accesses
  681.           quickly. Since the hard disk must complete one I/O request before starting the next request,
  682.           multiple requests can start to queue, causing poor performance. Between I/O requests, the
  683.           hard disk must move the head from one location to the next. Thus a hard drive with slow
  684.           seek time will become a major bottleneck if the support for high I/O rate is required.
  685.         The processor constraints occur when processor-bound instructions and multiple
  686.           concurrent tasks require heavy processor time. Since OS/2 is a true multitasking system,
  687.           the likelihood of becoming CPU constrained is increased as the number of concurrent task
  688.           execution increases.       
  689.   
  690.   In the following sections, we will examine the functions of major system components and how each
  691.   would contribute to the overall system performance.
  692.   
  693.   2.3  Hardware issues
  694.   
  695.   2.3.1  CPU
  696.   
  697.   The CPU plays a vital role in system performance.  It is responsible for processing the millions of
  698.   instructions necessary to produce work.  The speed of the microprocessor (and also the amount of
  699.   installed memory) typically has the largest effect on the performance of the computer system.  The
  700.   microprocessors system clock rate, measured in millions of clock steps per second, or Megahertz (MHz)
  701.   dictates the speed at which the system runs.  The faster the clock rate, the faster the performance.
  702.   
  703.   Most CPU's in today computer systems are at least 80486 chips.  The 80386SX, SL and SLC, as well
  704.   as the 486SLCx have an external data path of 16 bits while 80386DX and 486DX and above processors
  705.   have an external data path of 32 bits.  This distinction becomes significant as the shift towards 32-bit
  706.   software begins to proliferate the market.  32-bit instructions, processing on a 16-bit CPU must become
  707.   two 16-bit instructions in order to be processed.  The processor with a 16-bit external data path can
  708.   result in about 10% lower performance than an identical processor of the same speed with a 32-bit data
  709.   path.  The following charts illustrate the various processor chips, their respective speeds and their cache
  710.   option.
  711.   
  712.   Comp                arison of 386 Processors
  713.                                  
  714.   Feature 386SX     386SL     386SLC    386DX     
  715.   Speeds available (MHz) 16 20     20 25     16 20     16 20 25 33    
  716.   Internal Processor Cache    N/A  N/A  8K   N/A  
  717.   Internal Processing (bits)  32   32   32   32   
  718.   External Data Path (bits)   16   16   16   32   
  719.   
  720.   
  721.   Comparison of 486 Processors
  722.               
  723.   Feature 486SLC 486SLC2 486SLC3   486SX 486SX2   486SL     486DX     486DX2    486DX4
  724.      
  725.   Speeds available (MHz)  Numbers represent both internal and external processor speeds.  25 
  726.   40/20 50/25  60/20 66/33 75/25 100/33      20 25 33 50/25      25  33    25  33 50 50/25      66/33
  727.      75/25        100/33 100/50    
  728.   Internal Processor Cache    16K  8K   8K   8K   8K   16K  
  729.   Internal Processing (bits)  32   32   32   32   32   32   
  730.   External Data Path (bits)   16   32   32   32   32   32   
  731.   
  732.   
  733.   Note:   The 486SLC2 processor runs internally at twice the speed of the rest of the system, such as
  734.   40/20MHz producing performance faster than a 25MHz 486DX, but less than a 50MHz 486DX.  It is up
  735.   to 271% better than a 20MHz 386SX, up to 99% faster than a 20MHz 386SLC, up to 53% faster than a
  736.   20MHz 486DX and up to 20% faster than a 25MHz 486DX.  The 50/25MHz 486SLC2 is faster than an
  737.   Intel 33MHz 486DX.
  738.   
  739.   The 75/25MHz 486SLC3 processor is up to 40% faster than the 50/25MHz 486SLC2, 187% faster than
  740.   a 20MHz 386SLC and up to 424% faster than a 33MHz 386SX.
  741.   
  742.   The 486SLC is identical to the 486SLC2 in all respects, except clock doubling.  It is approximately
  743.   equivalent in performance to a 486DX, but adds power management features the 486DX lacks.
  744.   
  745.   The 486DX2 processor runs internally at twice the speed of the rest of the system, such as 50/25MHz or
  746.   66/33MHz, producing performance faster than a 33MHz 486DX, but less than a 50MHz 486DX.
  747.   
  748.   The 486DX4 processor runs internally at three times the speed of the rest of the system, such as
  749.   75/25MHz or 100/33MHz, producing performance in excess of a 486DX2.
  750.   
  751.   
  752.   Compa              rison of Pentium Processors
  753.                                   
  754.   Feature Pentium P5 Desktop  Pentium P54C Desktop     Pentium P54LM Notebook   
  755.   Speeds Available (MHz) Numbers represent both internal and external processor speeds.   60 66
  756.        75 90 100 120 133 150 166 200      75 90 100 120 133 150  
  757.   Clock Multipliers (e.g., 2X = 133/66MHz)   1X   1.5X, 2X, 2.5X, 3X  1.5X, 2X  
  758.   Internal Processor Cache    16K  16K  16K  
  759.   Internal Processing (bits)  32   32   32   
  760.   External Data Path (bits)   64   64   64   
  761.   
  762.   
  763.   The Pentium Pro processor (also known as the P6 processor) is the latest generation processor family
  764.   from Intel.   The Pentium Pro processor includes significant architectural innovations and enhancements,
  765.   like Dynamic Execution, multiple branch prediction capabilities, 256K L2 cache in the package, etc. 
  766.   The result is a significant boost in system performance -- especially with 32-bit software. Since OS/2
  767.   and especially OS/2 Warp 4 is a 32-bit operating system, the Pentium Pro processor delivers optimal
  768.   performance with 32-bit OS/2 applications.
  769.   
  770.   Summary of performance data for P6-150 and P5-133
  771.   A summary of the performance data between P6 and P5 is given below. The experiment was done on a
  772.   P6 processor running at 150 MHz, 256 KB Level 2 cache, 32MB of physical memory, 1.28 GB IDE
  773.   hard drive, Matrox PCI display adapter card. All measurements were done with the display resolution
  774.   set at 1024x768x256 except where it is noted. The P5 system is from Micron Technologies. It has a P5
  775.   processor running at 133 MHz, 256 KB Level 2 cache, 32 MB of physical memory, 1 GB SCSI hard
  776.   drive, and Matrox PCI display adapter card. Again, all measurements were done at 1024x768x256
  777.   resolution except where it is noted. OS/2 Warp Connect was used on both systems with no special
  778.   options or setup. OS/2 Warp was installed with multimedia support using the default installation options.
  779.   The FAT file system was used in the study with default dynamic disk cache size.       
  780.   
  781.   There are five types of benchmarks used in the study: 
  782.      1.Trade magazines benchmarks such as BYTEmark from BYTE Magazine
  783.      2.Industry Standard benchmarks such as the OPENGL CDRS and DX from the Graphics
  784.           Performance Council
  785.      3.32-bit OS/2 applications benchmarks such as VisualAge from IBM, SAS from SAS Institute
  786.           Inc., MicroStation from Bentley Systems, and ColorWorks from SPG Inc.
  787.      4.Multimedia benchmarks such as software MPEG playback, direct video APIs interface DIVE
  788.           and 3-D driver interface BRender from Argonaut Technologies Inc., and finally 
  789.      5.The mix 32- and 16-bit OS/2 business applications such as Describe, Amipro, Lotus 1-2-3
  790.           and IBM C++ used in OS/2 program development. 
  791.   
  792.   In general, the average ratio of performance improvement for P6 over P5 is 1.63. In particular, the
  793.   ColorWorks and DIVE benchmarks seem to gain the most, more than 2X improvement, while others
  794.   tend to gain somewhere around 50%. The BRender 3-D library from Argonaut Tech which is built upon
  795.   DIVE seems to take the full advantage of the P6 floating-point performance. Its ratio of performance is
  796.   around 1.88, almost twice of that P5. It is also observed that applications that are computational
  797.   intensive such as 3-D graphics rendering in the MicroStation benchmark gain about 1.5X on the P6
  798.   platform. The industry standard graphics test from GPC using the CDRS and DX viewsets also scores
  799.   well on the P6, around 1.5 times over P5. The legacy OS/2 applications benchmark which is a mix of
  800.   32- and 16-bit code ran only 30% faster on the P6. The chart below illustrates the average
  801.   measurements and the performance ratio between the two systems.   
  802.   
  803.   
  804.   
  805.   Processor:        P6-150    P5-133    P6/P5     
  806.   Manufacturer:          Intel     Micron     Ratio    
  807.   Memory Configuration:       32MB 32MB      
  808.   Display Resolution:         1024x768x256        Improvement    
  809.   Display Adapter:       Matrox    Matrox    for P6    
  810.   Applications Metrics                  
  811.   BYTEmark 2.0 iterations/sec           1.49 
  812.   OPENGL - CDRS     frames/sec     2.23 1.51 1.47 
  813.   OPENGL - DX  frames/sec     0.89 0.58 1.53 
  814.   VISUAL AGE - Visual Builder seconds   80.4 104.4     1.3  
  815.   MOVIE PLAYER - Bundy   seconds   13.78     20.01     1.45 
  816.   SAS     seconds   16.4 27.84     1.7  
  817.   Argonaut - Robot  frames/sec     64   34   1.88 
  818.   ColorWorks   seconds   14.06     31.02     2.21 
  819.   MicroStation seconds   31.55     46.94     1.49 
  820.   Legacy Apps (Describe, Amipro, L123, IBM C++)   seconds   61.5 80.5 1.31 
  821.   DIVE    frames/sec     273  128  2.13 
  822.   Average                1.63 
  823.   Geometric Mean                   1.61 
  824.   NOTES:  1. ColorWorks was run at display resolution 1024x768x16M                   
  825.   
  826.   System bus
  827.   The bus is the internal pathway along which signals are sent from one part of the computer to another. 
  828.   Personal computers typically have one of three bus architectures:
  829.   
  830.           Industry Standard Architecture (ISA) bus, often referred to as "AT bus".  This bus is
  831.        the 16-bit bus initially developed for IBM's AT (Advanced Technology) computers.  The bus
  832.        includes 8-bit slots for downward compatibility with earlier adapters, but includes 16-bit slots
  833.        for improved, AT-compatible adapters such as 16-bit VGA adapters. It supports data rates of
  834.        8MB/sec.
  835.      Micro Channel Architecture (MCA) bus.  A proprietary 32-bit bus used in IBM PS/2
  836.        computers.  This bus operates at 10MHz with burst data rates of up to 80MB/sec.
  837.      Enhanced Industry Standard Architecture (EISA) bus.  A 32-bit bus that, unlike the
  838.        MCA bus, is backward compatible with ISA adapters.
  839.      Peripheral Component Interconnect (PCI) bus. A 32-bit bus standard used in most new
  840.        computers.  This bus provides the greatest performance of all the above, operating at 33MHz
  841.        with burst data rates of up to 132MB/sec.
  842.   
  843.   The system bus plays an important role in balancing system performance.  If you have a high speed
  844.   CPU and video adapter on an ISA bus system, this system is not well balanced.  The CPU is a great
  845.   deal faster than the system bus.  For example, if your processor is a 486DX 33MHz CPU and you have
  846.   an ISA bus VGA video adapter (remember, ISA is 16-bit), the system has the capability to transfer data
  847.   at speeds greater than 33MB/second but the ISA bus can only transfer data at 8.33MB/second.  While
  848.   this isn't a very practical example, it illustrates the potential for an imbalanced system caused by a
  849.   system bus that is slower than the processor, particularly when running I/O intensive applications such
  850.   as databases.
  851.   
  852.   2.3.2  Memory
  853.   
  854.   Memory, often referred to as random-access memory (RAM), is the computer's primary storage space
  855.   used to execute instructions.  Memory is generally available on the system board and/or on adapter
  856.   cards.  The speed of the memory is expressed in nanoseconds, with the lower the value the better.
  857.   
  858.   Memory speed is important in that faster memory provides faster access to the information stored there. 
  859.   Memory location is also important.  Memory on the system board (motherboard) can generally be
  860.   accessed by the processor faster than memory located on an adapter card.  The adapter card memory
  861.   requires access through the system bus, slowing down the time from processor to memory.
  862.   
  863.   Having adequate memory in a system will also reduce the disk access because paging or swapping is
  864.   decreased.  If the operating system does not have to handle paging I/O requests, system performance
  865.   will improve.  If the swap file is large, and changing from one application to another results in I/O
  866.   requests, the system would benefit from additional memory or performance tuning.
  867.   
  868.   A cache is a small group of very high speed memory chips and the support circuitry that manages them. 
  869.   Some microprocessors have a built-in cache while others have it residing outside the microprocessor on
  870.   the system board.  Others have extended the cache built into the microprocessor with a second-level
  871.   cache designed to feed information into the microprocessors internal cache more efficiently.  This is
  872.   called a "level 2" cache.  The memory cache increases the overall performance of the computer system
  873.   by automatically gathering commonly needed information, such as program instructions and data, and
  874.   then very quickly providing it to the microprocessor the next time the data is requested.  Since the
  875.   memory cache can respond much more quickly than the system's memory, the system's performance is
  876.   improved every time the information contained in the cache is used.  A small internal cache is faster
  877.   than a larger external cache, due to the delay in accessing an external cache.   
  878.   
  879.   OS/2 Warp 4 memory working set
  880.   The working set for OS/2 Warp 4 is defined as the set of memory (pages) referenced in the last n time
  881.   of certain measurement intervals. The working set includes both resident and locked pages. The
  882.   following data represent the working set of different OS/2 Warp systems running under different
  883.   environments, connected (with TCP/IP and NetBIOS installed) and not connected (base operating system
  884.   only). The test was performed on a 486/33 system with 16MB of memory, 1.6GB IDE hard drive, FAT
  885.   file system, and Tseng SVGA ET4000 display adapter.  
  886.   
  887.      OS/2 Warp 3              3,996KB
  888.      OS/2 Warp 3 Connected         6,212KB
  889.      OS/2 Warp 4              4,996KB
  890.      OS/2 Warp 4 Connected         6,860KB
  891.   
  892.   It is important to note that the number of unique pages accessed during a sliding window of 12
  893.   snapshots (1 minute) taken on the same system but with 40MB of memory (unconstrainted memory
  894.   scenario) is as follows.  
  895.      
  896.      OS/2 Warp 3              12.68MB
  897.      OS/2 Warp 3 Connected         19.97MB
  898.      OS/2 Warp 4 Connected         25.27MB
  899.   
  900.   2.3.3  Disk drive
  901.   
  902.   Fixed disk performance is important to the overall performance of a computer.  The performance of a
  903.   fixed disk refers to the rate at which information can be located and transferred between the fixed disk
  904.   and the memory.  The disks average seek time, average latency and data transfer rate determine how the
  905.   disk subsystem will contribute to or hinder overall system performance.  These disk performance
  906.   statistics are generally available from the disk manufacturer.  
  907.   
  908.   Data on a fixed disk is stored in concentric rings, or tracks, on the disk surface.  To read from a fixed
  909.   disk, the actuator must first move the read/write head to the proper track.  The average time it takes for
  910.   the actuator to move the read/write head over the proper track is called the average seek time - usually
  911.   expressed in milliseconds.  
  912.   
  913.   Once the read/write head is located over the right track, it must wait until the disk rotation brings the
  914.   right part of the track under the read/write head.  The average time it takes for this to happen is the
  915.   average latency2 of the drive - also expressed in milliseconds.  
  916.   
  917.   Finally, after the proper track and proper part of the track are positioned under the read/write
  918.   head, the information is transferred between the disk and the disk controller circuitry, one bit at
  919.   a time in a continuous stream as the disk surface passes underneath the read/write head.  The
  920.   speed at which this is done is called the data transfer rate and is expressed in millions of bytes per
  921.   second (MB/second).  
  922.   
  923.   It is important to consider the disk drives performance statistics when purchasing a computer system. 
  924.   These statistics play an key role in the overall performance of the system.  The shorter the seek time
  925.   and latency the better.  The higher the data transfer rate the better.  All of these factors determine how
  926.   the disk subsystem will contribute to or hinder overall system performance.
  927.   
  928.   OS/2 Warp 4 provides significant new function compared to OS/2 Warp Connect.  Depending on the
  929.   selections you make during installation, this version will require a maximum of 350 megabytes of hard
  930.   disk space.  The following table indicates how much disk space is consumed by each selectable
  931.   component.  It will be very useful in planning your installation.
  932.   
  933.      NOTE:
  934.         If you have a very large partition (> 1 GB) formatted for FAT, the install will require
  935.           550 MB due to the large cluster size required by the FAT file system.
  936.         Failure to provide sufficient hard disk space will result in installation failures and will
  937.           require re-installation.
  938.      
  939.           ===> DO NOT ATTEMPT INSTALLATION WITH BARELY ENOUGH
  940.             SPACE.
  941.   
  942.   During the installation process, you will be asked to select which of the following install options:
  943.   Advanced Install or Easy Install.
  944.   
  945.   If you selected the Advanced installation option then you would see the OS/2 Setup and Installation
  946.   screen which enables you to configure the software. The list of software that you can select in OS/2
  947.   Warp 4 is as follows.
  948.   
  949.                          Disk Space     Default   
  950.   Assistance Center                     10.03 MB       
  951.      OS/2 Tutorial                 4039 KB        
  952.      OS/2 Command Reference                  825 KB    Yes  
  953.      REXX Information                   768 KB    Yes  
  954.      OS/2 Warp Guide User Interface Agent                   4,367 KB  Yes
  955.      
  956.   Fonts                       2.42 MB   Yes  
  957.      Courier                  273 KB    Yes  
  958.      Helvetica                629 KB    Yes  
  959.      System Mono-Spaced                 86 KB     Yes  
  960.      Times Roman                   596 KB    Yes  
  961.      Courier (outline)                  320 KB    Yes  
  962.      Times New Roman (outline)                    259 KB    Yes  
  963.   Optional System Utilities                       2.29 MB   Yes  
  964.      Backup Hard Disk                   27 KB     Yes  
  965.      Change File Attributes                  36 KB     Yes  
  966.      Display Directory Tree                  33 KB     Yes  
  967.      Manage Partitions                  233 KB    Yes  
  968.      Label Diskettes                    33 KB     Yes  
  969.      Link Object Modules                450 KB    NO   
  970.      Picture Viewer                122 KB    Yes  
  971.      PMREXX                   146 KB    Yes  
  972.      Recover Files                 45 KB     Yes  
  973.      Restore Backed-up Files                 35 KB     Yes  
  974.      Sort Filter                   31 KB     Yes  
  975.      Installation Utilities                  419 KB    NO   
  976.      Create Utility Diskettes                192 KB    Yes  
  977.      Service/Diagnostic Aids                 542 KB    Yes  
  978.   Optional System Components                      2.30 MB   Yes  
  979.      OpenDoc                  5,842 KB  NO   
  980.      Voice Type                    23,753 KB NO   
  981.      Security                 496 KB    NO   
  982.   Bonus Pak                        36.42 MB  NO   
  983.      CompuServe                    2,736 KB  NO   
  984.      HyperAccess Lite                   656 KB    NO   
  985.      IBM Works                14,411 KB NO   
  986.      Fax Works                1,266 KB  NO   
  987.      VideoIn                  467 KB    NO   
  988.      AskPSP                   4,008 KB  NO   
  989.      Remote Support Tool                1,441 KB  NO   
  990.      Printer Utilities                            
  991.      JetAdmin                 560 KB    NO   
  992.      JetAdmin Port Driver                    1,645 KB  NO   
  993.      MarkVision                    4,879 KB  NO   
  994.      MarkNet Port Driver                5,238 KB  NO   
  995.   Tools and Games                       24.19 MB       
  996.      Enhanced Editor                    1,933 KB  Yes  
  997.      Search and Scan Control                 68 KB     Yes  
  998.      OpenGL 1.0 3D Library                   4,905 KB  NO   
  999.      Optional Bitmaps                   10,073KB  NO   
  1000.      Solitaire-Klondike                 2,762 KB  Yes  
  1001.      Pulse                    43 KB     Yes  
  1002.      Chess                    2,828 KB  Yes  
  1003.      Mahjongg Solitaire                 2,151 KB  Yes  
  1004.   OS/2 DOS Support                      1.54 MB        
  1005.      DOS Protected Mode Interface                 29 KB     N/A  
  1006.      Virtual Expanded Memory Management                19 KB          
  1007.      Virtual Extended Memory Support                   9 KB N/A  
  1008.   WIN-OS/2 Support                      6.11 MB        
  1009.      Readme Files                  136 KB    Yes  
  1010.      Accessories                   1,039 KB  Yes  
  1011.      Screen Savers                 73 KB     Yes  
  1012.      Sound                    115 KB    Yes  
  1013.   Multimedia Support                         22.41 MB       
  1014.      Base Multimedia Support                 19,294 KB Yes  
  1015.      Multimedia OpenDoc Support                   2,929 KB  NO   
  1016.      Software Motion Video                   728 KB    Yes  
  1017.   High Performance File System                         470 KB    Yes  
  1018.   Network Services                                
  1019.      File and Print Client                   13 MB          
  1020.      TCP/IP Services                    28 MB          
  1021.      Remote Access Client                    4 MB      
  1022.      System Management Client                7 MB      
  1023.      Netware Client                6 MB      
  1024.      Mobile Office Services                  3 MB      
  1025.   
  1026.   
  1027.      TIP: 
  1028.         Selecting All Features During Advanced Install - A Full install requires approximately 275
  1029.           megabytes for code and data, 25 megabytes for SWAPPER.DAT, and 50 megabytes for
  1030.           any additional programs and applications.
  1031.         Deselecting Features During Advanced Install - A single 350 megabyte partition is the
  1032.           least complex environment. You can deselect some features or install some features to
  1033.           partitions other than the OS/2 boot partition.  The following features allow partition
  1034.           selection during install:
  1035.              Speech
  1036.              BonusPak
  1037.              Connect
  1038.              Java
  1039.              Multi-Media
  1040.              Windows Emulation
  1041.         Using Easy Install - Easy install selects a subset of OS/2 features for installation on the C:
  1042.           partition.  This selection is based on the hardware configuration. For example, Multi-Media
  1043.           is installed if a sound device is detected.  Some features that are not installed during Easy
  1044.           Install are:
  1045.              Opendoc
  1046.              Java Toolkit and Samples
  1047.              BonusPak
  1048.              Security
  1049.              Some optional BITMAPS
  1050.              Some documentation for Command Reference and REXX
  1051.         The selection panel for Connect allows installation of features consistent with the
  1052.           connection hardware and software.  Easy install requires between 150 and 200 megabytes
  1053.           depending on your selections and hardware configuration.
  1054.   
  1055.   2.3.4  Video subsystem
  1056.   
  1057.   Computers can provide video support on the system board or on an adapter.  Video support is identified
  1058.   by the mode and resolutions that they can support.  The greater the resolution and number of colors, the
  1059.   better the picture.  Unfortunately, better resolution and more colors usually translate into slower system
  1060.   performance.
  1061.   
  1062.   VGA (Video Graphics Array) was introduced in 1987 and soon became a popular video standard. VGA
  1063.   systems are capable of displaying 16 colors at a resolution of 640x480.
  1064.   
  1065.   SVGA (Super VGA) refers to a group of high-resolution analog video adapters.  SVGA provides higher
  1066.   resolutions and more colors than VGA adapters.  Most SVGA adapters with 1MB of video memory are
  1067.   capable of displaying 256 colors in a resolution of 1024x768.
  1068.   
  1069.   XGA (Extended Graphics Array) was introduced by IBM in 1990.  It is an accelerated analog video
  1070.   adapter which uses a coprocessor to provide hardware-assisted drawing functions.  XGA-2 is a newer
  1071.   version of XGA which includes performance improvements, higher refresh rates, non-interlaced mode
  1072.   and support for resolutions of 1360x1024 with 16 colors.
  1073.   
  1074.   Many new video adapters are coming available that can't be classified as VGA, SVGA or XGA.  They
  1075.   are using new and more powerful chipsets that show improved performance over SVGA by using on-
  1076.   board processors for some graphics functions.  These chipsets are called accelerators.  They include
  1077.   previously discussed XGA chipsets, as well as new accelerated SVGA chipsets such as S3, Weitek
  1078.   P9100, Mach 8/32 and Tseng W32i. 
  1079.   
  1080.   Two main features on your graphics card affect video performance the first, the card's onboard memory,
  1081.   and the other the card's accelerator chip and bandwidth.
  1082.   
  1083.   There are three common types of onboard memory found on graphics cards, Dynamic RAM (DRAM),
  1084.   Window RAM (WRAM), and Video RAM (VRAM).  DRAM is cheap, but its single-ported design
  1085.   requires a system clock cycle to reset the chips before each refresh of screen data.  VRAM is dual-
  1086.   ported, able to deliver data and reset in a single clock cycle for inherently faster performance. It's also
  1087.   more expensive than DRAM.  WRAM is a form of VRAM that does faster fills and accellerates video
  1088.   playback and animation.  WRAM is not only dual-ported, but also requires fewer transistors than
  1089.   VRAM, hence lowering costs while providing a few graphics-specific speed-ups such as support for
  1090.   aligned bit-block transfers (BitBlts).
  1091.   
  1092.   The type of graphics memory you choose is almost as important as the amount. DRAM is the least
  1093.   expensive, but its single-ported design makes it relatively slow; dual-ported VRAM is more costly, but
  1094.   much quicker for true-color work. A variety of other single-ported (such as EDO DRAM and SDRAM)
  1095.   and dual-ported (such as WRAM) variations fall between the two on
  1096.   the price/performance scale.
  1097.   
  1098.   The graphics accelerator cards architecture, or more specifically, it's bandwidth also plays a crucial role
  1099.   in graphics subsystem performance.  Bandwidth is defined as the amount of information that can move
  1100.   along the cards data path.  The bandwidth between the graphics card's accelerator chip and its display
  1101.   memory can be as wide and quick as graphics card manufacturers care to make it.  Over the last several
  1102.   years, 32-bit graphics accelerators have yielded largely to 64-bit accelerators, with 128 bit cards
  1103.   becoming more and more common.  To keep refresh rates high, team a fast 64-bit or 128-bit accelerator
  1104.   with dual-ported display memory to handle the volume of data that true-color and multimedia
  1105.   applications demand.
  1106.   
  1107.   2.3.5  COM Port
  1108.   
  1109.   Machines with a buffered UART (Universal Asynchronous Receiver/Transmitter), for example the
  1110.   16550A will have better communications performance than machines without buffering, for example the
  1111.   16450.  The performance of DOS communications programs is particularly impacted by using systems
  1112.   with these buffered communications chips on their COM ports.  The MODE command can be used to
  1113.   determine whether your system has this buffered UART.  A buffered UART at level 16550A or
  1114.   equivalent is nearly essential for high speed communications.  Use the command:  MODE COMx,
  1115.   where x is the communications port number.  If you see "BUFFER=N/A" then you do not have a
  1116.   buffered UART for that port.
  1117.   
  1118.   2.4  Software issues
  1119.   
  1120.   2.4.1  Planning for growth
  1121.   
  1122.   File systems
  1123.   OS/2 Warp supports two file systems for use on your hard disks: FAT and HPFS (High Performance
  1124.   File System). The HPFS file system supports file and directory structures different from the FAT file
  1125.   system.  The OS/2 Warp HPFS file system is much better than the old FAT system used in DOS,
  1126.   although FAT is retained for backwards compatibility reasons and is used for diskettes.  HPFS is faster,
  1127.   allows long file-names, is less likely to lose data and uses disk-space more efficiently than does FAT.
  1128.   Another advantage of HPFS over FAT is in the area of Extended Attributes (EAs).  EAs are data
  1129.   attached to a file and used to provide information about the file they are attached to.  For example, the
  1130.   name of an object that appears in an OS/2 folder or on the OS/2 Desktop is stored in EAs.  In HPFS,
  1131.   EAs are part of the HPFS file control block which is read when the file is opened.  In FAT, EAs are
  1132.   stored in a separate file in separate clusters and require additional I/O to access them, and are therefore
  1133.   slower. 
  1134.   HPFS has two limitations.  Native DOS applications can't see HPFS formatted disks (although DOS
  1135.   programs running in OS/2 Warp can and there exists a driver to read HPFS disks from plain DOS), and
  1136.   the HPFS driver takes approximately 264KB of memory.
  1137.   
  1138.      TIP:
  1139.         Install only the file system needed by the operating system accessing  your
  1140.           data.  If you plan to boot a DOS or Windows system natively (via the dual boot option),
  1141.           then any data that will be accessed must exist on a FAT disk partition.  However, If you
  1142.           will only be running DOS and Windows applications in an OS/2 Warp VDM (Virtual DOS
  1143.           Machine), then the file system can be either HPFS or FAT.  Also, when accessing a file on
  1144.           a server, and the server file system is HPFS, you do not need to install HPFS on your local
  1145.           client machine.  HPFS only needs to be installed on a computer when a partition on a local
  1146.           hard disk is formatted as HPFS. 
  1147.         FAT is best suited for disk partitions that are 80 MB or less in size or that have a
  1148.           limited number of files installed.  Usually, 256 files is a good target, with up to 500
  1149.           acceptable.  The number of files become important because FAT files are allocated based
  1150.           on a cluster size.  The cluster size is determined by the size of the disk partition and can
  1151.           be 2K, 4K, 8K or higher.  Since most file sizes are not an exact multiple of the cluster
  1152.           size, disk space is not optimally used. For example, installing DOS, Windows and OS/2
  1153.           Warp on a 100MB partition resulted in 2.2 MB of disk space that could not be used.  A
  1154.           100MB partition will use a 2K cluster size.  If you were to use a 540MB partition size,
  1155.           then your cluster size would be increased to 16K and a significantly greater amount of disk
  1156.           space will be lost. 
  1157.         HPFS files are allocated based on a 512 byte granularity instead of a cluster size,
  1158.           therefore fragmentation is greatly reduced.  Also HPFS is especially efficient when
  1159.           handling large partition sizes, > 100 MB, and large numbers of files, > 500.  One thing
  1160.           you should look out for is to not allocate more than 5000 files in a sub-directory or
  1161.           directory.  Allocating more than 5000 files can lead to degraded performance.  The HPFS
  1162.           file system shipped with the OS/2 Warp product has a cache limit of 2 MB.
  1163.         It is recommended that HPFS be installed on systems with 16MB of memory or more
  1164.           and large disk partitions. If HPFS is not being used, you should remark the HPFS driver
  1165.           from the CONFIG.SYS file.  This driver uses 264KB of RAM.  If the HPFS statement
  1166.           configures a HPFS cache, the maximum amount of RAM consumed by the cache and the
  1167.           driver could be at much as 2312KB (264KB for the file system driver + 2048KB for the
  1168.           max cache size = 2312KB).  Even if there is no HPFS partition on your system, it will cost
  1169.           between 200 and 250K in working set memory, as well as the space for the HPFS cache. 
  1170.           If you are installing OS/2 Warp on an existing DOS and or Windows system, you should
  1171.           not install HPFS. When your system is up and running, you can check the working set of
  1172.           your system.  If there is enough free memory and you wish to create a HPFS partition,
  1173.           then you can use selective install to install the HPFS support.  Remember that any data
  1174.           stored in the HPFS partition can not be accessed if you boot your machine under DOS. 
  1175.         Use HPFS if your application uses many small files or a very large data file like in
  1176.           database applications.
  1177.         Both FAT and HPFS file systems have disk caching, lazy writing and read-ahead. File
  1178.           system parameters can be changed after installation. The default values set by the
  1179.           installation procedure are good for average users.
  1180.         It is recommended that when you set up your hard disk, you create a minimum of 3
  1181.           partitions.  One will be for the operating system(s), one for your applications and static
  1182.           data files, and another for dynamic data files and temporary files.  Decide whether you
  1183.           want to use Boot Manager or Dual Boot.  If you select Dual Boot, then OS/2 must be
  1184.           installed with the FAT file system. 
  1185.   
  1186.   Chap                                                          ter 3
  1187.   
  1188.                                                                                                                                           Performance Monitoring and Tuning
  1189.   
  1190.   
  1191.   
  1192.   
  1193.   3.0  Response time
  1194.   
  1195.   Response time is the key indicator used in measuring and tuning a system.  It can be defined as the time
  1196.   interval from when a user initiates a process until that process has completed.  For example, response
  1197.   time can  be measured as the interval of time from when a user presses the enter key to initiate a
  1198.   database query until the data is displayed on the screen.
  1199.   
  1200.   The productivity of a OS/2 Warp 4 user is largely dependent on adequate system response time.  The
  1201.   user should be able to interact freely with the application without having to wait for the system to
  1202.   respond.  Response time requirements may vary among users and even among applications.  A three to
  1203.   fifteen second response time may be adequate for a complex inquiry application that is only run
  1204.   occasionally, but a sub-second response time may be required for more frequently used applications
  1205.   such as word processors or spreadsheets.
  1206.   
  1207.   This section introduces the concept of performance monitoring, measurement, and tuning. It also covers
  1208.   performance tools shipped with OS/2 Warp 4 as well as tools available from external sources.  
  1209.    
  1210.   3.1  Performance monitoring
  1211.   
  1212.   Monitoring the performance of critical system resources is invaluable in identifying the cause of
  1213.   performance problems.  Performance monitoring is the first step to take in solving performance-related
  1214.   issues.  There are numerous performance monitoring tools that measure response time, disk activity and
  1215.   other variables that impact the performance of the system.  These tools will assist in understanding
  1216.   possible causes and subsequent resolution of the problem.  Once the problem has been identified, the
  1217.   process for alleviating it can begin.  This process, or tuning methodology, needs to be well thought out
  1218.   and documented through to resolution.
  1219.   
  1220.   3.2  Benchmarking
  1221.   
  1222.   A benchmark is a test that measures the performance of a system or subsystem on a well-defined task or
  1223.   set of tasks. Test scenarios, or benchmarks, are designed to achieve consistent repeatable results during
  1224.   the tuning process.  Benchmarks are necessary for creating an effective, systematic approach to
  1225.   performance tuning your system.  The benchmark should represent a work environment very similar to
  1226.   the one being tuned.  Benchmarking is essential for measuring progress while tuning a system.
  1227.   
  1228.   Characteristics of a good benchmark include:
  1229.         Each test is repeatable.
  1230.         Each iteration of a test is started in the same system state.
  1231.         There are no functions or applications active in the system outside the ones being
  1232.           measured unless the scenario includes some amount of other activity going on in the
  1233.           system.  Do not even have them started and sitting idle, since this will use up RAM
  1234.           resources and increase the likelihood of swapping. 
  1235.   
  1236.   Benchmarks can also be used as monitoring and diagnostic tools. By running a benchmark and
  1237.   comparing the results against a known configuration, you can potentially pinpoint the cause of poor
  1238.   performance. Similarly, a developer can run a benchmark after making a change that might impact
  1239.   performance to determine the extent of the impact.    
  1240.   
  1241.   3.3  OS/2 Warp 4 performance tools
  1242.   
  1243.   The OS/2 WarpCenter provides a CPU monitor utility that shows the system activity and a disk space
  1244.   monitor program that shows the amount of disk space available in all partitions. In addition, there are
  1245.   many other operating system utilities that you can use to check your system integrity if you perceive a
  1246.   performance degradation has occurred. They are as follows.
  1247.         CHKDSK - disk integrity checking
  1248.         HDMON - hard disk monitoring
  1249.         PROFILER - file repairing
  1250.         PSTAT - process monitoring
  1251.         RMVIEW - resource allocation monitoring
  1252.         SYSLEVEL - operating system and corrective service level analyzing
  1253.         TRACE - events tracing
  1254.   
  1255.   3.3.1  CHKDSK 
  1256.   
  1257.   CHKDSK can detect lost clusters on your disk.  These are parts of files that the system did not save
  1258.   completely and that take up space on your disk.  If CHKDSK finds these, it prompts you with a
  1259.   message asking if you want to convert lost chains to files.  If you type a Y (yes), CHKDSK converts
  1260.   these parts into files that you can examine and delete to save space on your disk.  If you type an N
  1261.   (no), CHKDSK deletes these parts of files from your disk.  The files CHKDSK creates from lost chains
  1262.   follow this naming convention: FILEnnnn.CHK (nnnn is a sequential number starting with 0000). 
  1263.   
  1264.      TIP:
  1265.         To start chkdsk, type the following command in any OS/2 window.
  1266.           CHKDSK /x where x = F or V or C or F:n
  1267.           The /C and /F:n parameters shown at the end of the CHKDSK command syntax are
  1268.             only used with the High Performance File System. 
  1269.         Type this command at a DOS command prompt to produce a memory storage report. 
  1270.         CHKDSK gives accurate information only when a hard disk is not in use. 
  1271.         CHKDSK does not work in DOS sessions on drives that have an ASSIGN, JOIN, or
  1272.           SUBST command in effect.  Also, CHKDSK does not work on network drives. 
  1273.         You should run CHKDSK occasionally on each disk to check for errors. If errors are
  1274.           found, CHKDSK displays the error messages and produces a status report.  If you enter a
  1275.           file name after CHKDSK, the OS/2 operating system displays a status report that gives the
  1276.           number of noncontiguous areas occupied by the file.  CHKDSK also produces a storage
  1277.           report. 
  1278.         To search for and recover lost file clusters on the drive that is the hard disk from
  1279.           which you normally start the OS/2 operating system, follow these steps: 
  1280.              1.Insert the system installation diskette in diskette drive A. 
  1281.              2.Restart the system.  When the Logo panel appears, remove the installation
  1282.                  diskette and insert diskette 1. Press Enter to continue.
  1283.              3.Insert diskette 2 when requested. 
  1284.              4.At the first text panel that appears (Welcome to OS/2), press Esc. 
  1285.              5.If the drive to be searched is a drive formatted for HPFS, the file UHPFS.DLL
  1286.                  has to exist on the same diskette as CHKDSK, or UHPFS.DLL has to exist in
  1287.                  a directory in the LIBPATH statement. To display the LIBPATH statement,
  1288.                  enter TYPE \CONFIG.SYS in the drive of the disk that the system started
  1289.                  from. 
  1290.              6.In order for the system to display error messages, the file OSO001.MSG has to
  1291.                  be on the same disk as CHKDSK or it has to exist in a directory in your
  1292.                  DPATH statement.  To display your DPATH statement, enter DPATH at the
  1293.                  command line. 
  1294.              7.Run CHKDSK from drive A, specifying drive C as the drive to be checked. 
  1295.         To recover lost clusters on the drive that contains CHKDSK, you can also copy
  1296.           CHKDSK to another drive and run it from that drive by specifying the drive and path. 
  1297.         If the /F parameter is not specified and there are open files, CHKDSK may report lost
  1298.           clusters on the disk.  This happens when open files have been written to but the file
  1299.           allocation table (FAT) is not updated. If many clusters are reported as lost, use the /F
  1300.           parameter to search the disk. 
  1301.   
  1302.   3.3.2  Hard Disk Drive Monitor 
  1303.   
  1304.   The Hard Disk Drive Monitor uses Self-Monitoring, Analysis, and Reporting Technology (SMART) to
  1305.   monitor the status of physical drives in the system. A hard disk drive must be SMART-compatible for
  1306.   the Hard Disk Drive Monitor to be able to detect potential failures in that drive. 
  1307.   
  1308.      NOTE:
  1309.         To start the monitor, type the following command in an OS/2 window.
  1310.           HDMON
  1311.      TIP:
  1312.         The Hard Disk Drive Monitor program periodically checks the status of the
  1313.           SMART-compatible drives being monitored. In the Configuration screen, you can specify
  1314.           how frequently the status is checked. To view the Configuration screen, click on Options
  1315.           from the menu bar, and then click on Configuration. The value shown in the Configuration
  1316.           screen is the monitoring interval, in minutes. Click on the up-arrow or down-arrow button,
  1317.           or type a new value, to change the monitoring interval to any value from 1 to 60. 
  1318.         The Hard Disk Drive Monitor checks status only if disk activity has occurred during
  1319.           the monitoring interval. The APM Scan option, which is enabled and disabled in the
  1320.           Configuration screen, allows the Hard Disk Drive Monitor to monitor drives while the
  1321.           computer is in an Advanced Power Management (APM) reduced-power state. If the APM
  1322.           Scan option is enabled, the Hard Disk Drive Monitor will check the drives every four
  1323.           hours, even if the computer is in a reduced-power state and no disk activity has occurred.
  1324.           If the APM Scan option is disabled, monitoring will occur only if disk activity has
  1325.           occurred during the monitoring interval. To enable the option, click on the radio button that
  1326.           reads, "Enabled." 
  1327.         If the Hard Disk Drive Monitor indicates that a drive has a potential failure condition,
  1328.           you should back up that drive immediately, to avoid losing valuable software and data if
  1329.           the drive actually fails. However, the Hard Disk Drive Monitor is not to be used as a
  1330.           substitute for regular backups of the drive and may not detect all predictable failure
  1331.           conditions. Hard drives will also fail for reasons that are not predictable through use of
  1332.           SMART. In some situations, the Hard Disk Drive Monitor will not detect a potential
  1333.           failure condition soon enough to allow you to back up the drive before it fails. 
  1334.         The main Hard Disk Drive Monitor screen displays a Drive icon for each hard disk
  1335.           drive being monitored. The colored indicator on each Drive icon indicates the status of that
  1336.           drive, as follows: 
  1337.   
  1338.              Green indicator - OK 
  1339.           The Hard Disk Drive Monitor has not detected any degrading or potential fault
  1340.             conditions in the drive. 
  1341.              Flashing red indicator - Alert 
  1342.           The Hard Disk Drive Monitor has detected a degrading or potential fault condition in
  1343.             the drive. In this case, you should back up the information on the disk immediately. 
  1344.              Grayed-out indicator - Not SMART-compatible 
  1345.           The drive is not SMART-compatible. The Hard Disk Drive Monitor can return basic
  1346.             information (in the Drive Information screen) about drives that are not SMART-
  1347.             compatible, but it cannot detect degrading or potential fault conditions in these drives. 
  1348.   
  1349.   3.3.3  PROFILER 
  1350.   
  1351.   Analyzes files on the specified drive and displays information about unusually fragmented files that do
  1352.   not meet the multimedia format requirements. You can use the PROFILER utility to correct files that do
  1353.   not meet multimedia requirements. 
  1354.   
  1355.   A fragmented file, although logically intact, is divided into blocks that are stored in different physical
  1356.   locations on the disk. Fragmentation is often necessary for the efficient use of disk space, but unusually
  1357.   fragmented files (those divided into small, scattered blocks) are not well suited for multimedia
  1358.   applications. 
  1359.   
  1360.      TIP:
  1361.         To start the utility, type the following command in an OS/2 window.
  1362.           PROFILER /x d:/pathname where
  1363.                x=C       corrects file that do not meet the multimedia requirements
  1364.                x=Q  turns off the display of progress information
  1365.                x=R  analyzes all files in the subdirectory tree below the specified path
  1366.                  name
  1367.                x=V       displays fragmentation information about every file analyzed
  1368.         The PROFILER utility fixes a file that fails to meet the multimedia format
  1369.           requirements by copying it to a temporary file, deleting the original file, and then renaming
  1370.           the temporary file. This process reduces the amount of fragmentation in the file. The
  1371.           amount of fragmentation that is reduced depends upon the fragmentation of the drive's free
  1372.           space. 
  1373.         If the 386 HPFS Local Security is installed, ADMIN privilege is required to execute
  1374.           the PROFILER utility. 
  1375.         To capture all of the information displayed by the PROFILER utility, redirect its
  1376.           output to a file (for example, PROFILER /V D:\DIR > C:\PROFILER.OUT). 
  1377.   
  1378.   3.3.4  PSTAT      
  1379.   
  1380.   PSTAT displays process status information, such as current processes and threads, system semaphores,
  1381.   dynamic-link libraries, and shared memory.  PSTAT helps you determine which threads are running in
  1382.   the system, along with their current status and current priorities. 
  1383.   
  1384.      TIP:
  1385.         This command also aids you in determining why a given thread is blocked (waiting for
  1386.           a system event), or why the thread's performance is slow (low priority compared to other
  1387.           threads.)  Moreover, it displays the process ID that has been assigned from each process. 
  1388.           The process ID can then be used as input to the TRACE utility  program for tracing on a
  1389.           per-process basis. 
  1390.         To start PSTAT, type the following command in an OS/2 window
  1391.           PSTAT /C       displays the current process  and thread -related information
  1392.           PSTAT /S       displays system semaphores information for each thread
  1393.           PSTAT /L       displays DLL libraries for each process
  1394.           PSTAT /M       displays shared information for each thread
  1395.           PSTAT /P:id    displays information related to the ID of the specified process
  1396.         Enter this command without a parameter to display information about the following: 
  1397.           Current processes and threads 
  1398.           System semaphores 
  1399.           Shared memory for each process 
  1400.           Dynamic-link libraries 
  1401.     
  1402.   3.3.5  SYSLEVEL
  1403.   
  1404.   This utility displays operating-system service level 
  1405.   
  1406.      TIP:
  1407.         To start the program, type the following command in an OS/2 window.
  1408.           SYSLEVEL
  1409.         The following message will appear while SYSLEVEL checks the current corrective
  1410.           service level of your system 
  1411.           Please wait...
  1412.         Once the corrective service level has been determined the following will be displayed
  1413.           on your monitor. 
  1414.           C:\OS2\INSTALL\SYSLEVEL.OS2
  1415.           IBM OS/2 Base Operating System
  1416.           Version 3     Component ID 562107701
  1417.           Type 0
  1418.           Current CSD level: XR00000
  1419.           Prior   CSD level: XR00000
  1420.         An example of the information displayed and an explanation of the displayed items
  1421.           follows: 
  1422.           C:\OS2\INSTALL\SYSLEVEL.OS2 
  1423.                The subdirectory and file containing the information. 
  1424.           IBM OS/2 Base Operating System 
  1425.                The system name. 
  1426.           Version 3, Component ID: 
  1427.                The version, release, and modification number, followed by the Component
  1428.                  ID of the system. 
  1429.           Current CSD Level: nnnnnnn 
  1430.                The current corrective service level. 
  1431.           Prior CSD Level: nnnnnnn 
  1432.                The prior corrective service level. 
  1433.   
  1434.   3.3.6  RMVIEW
  1435.   
  1436.   This utility displays the allocation of the hardware resources in your computer. 
  1437.   
  1438.      TIP:
  1439.         This is useful when resolving resource conflict or when installing a new piece of
  1440.           hardware on your computer. 
  1441.         Type this command at an OS/2 prompt followed by any of its optional parameters.  If
  1442.           no parameters are entered, RMVIEW defaults to the physical view which can also be
  1443.           specified with the /P parameter.  This is useful when resolving resource conflict or when
  1444.           installing a new piece of hardware on your computer. 
  1445.         RMVIEW Command: /P Parameter 
  1446.           Displays the physical view.  If no parameters are entered, this is the default view. 
  1447.           This view displays the physical components in your computer, such as adapters, along
  1448.             with the resources claimed the physical component. 
  1449.         RMVIEW Command: /P1 Parameter 
  1450.           Displays the physical view with planar chip set devices. 
  1451.         RMVIEW Command: /D Parameter 
  1452.           Displays the device drivers that have registered with the Resource Manager along with
  1453.             the physical resources and logical devices that they claim. 
  1454.         RMVIEW Command: /DA Parameter 
  1455.           Displays the driver view with snoopers. 
  1456.         RMVIEW Command: /D1 Parameter 
  1457.           Displays the device drivers with planar chip set devices. 
  1458.         RMVIEW Command: /DC Parameter 
  1459.           Displays the detected view of the current boot tree only. 
  1460.         RMVIEW Command: /DP Parameter 
  1461.           Displays the detected view of the previous boot tree only. 
  1462.         RMVIEW Command: /L Parameter 
  1463.           Displays the logical view of your computer resources. 
  1464.         RMVIEW Command: /IRQ Parameter 
  1465.           Displays the claimed interrupt levels (IRQ) sorted by value. 
  1466.         RMVIEW Command: /IO Parameter 
  1467.           Displays the claimed IO ports above hex 100 sorted by value. 
  1468.         RMVIEW Command: /IOA Parameter 
  1469.           Displays all claimed IO ports sorted by value. 
  1470.         RMVIEW Command: /DMA Parameter 
  1471.           Display the claimed memory regions sorted by value. 
  1472.         RMVIEW Command: /MEM Parameter 
  1473.           Displays the claimed memory regions sorted by value. 
  1474.         RMVIEW Command: /HW Parameter 
  1475.           Displays the hardware tree showing the hardware configuration of your computer. 
  1476.         RMVIEW Command: /SO Parameter 
  1477.           Displays /IO, /IOA, /IRQ, /DMA, /MEM sorted by owner. 
  1478.         RMVIEW Command: /R Parameter 
  1479.           Displays raw data.  When this switch is used with /P, /P1, /D, /D1, or /L, the Resource
  1480.             Manager data is displayed in a lower level format. 
  1481.   
  1482.   3.3.7  TRACE
  1483.   
  1484.   The System Trace facility is used to record a sequence of system events, function calls, or data.  The
  1485.   record is usually produced for debugging purposes.  After the trace data is recorded, the System Trace
  1486.   Formatter is used to retrieve it from the system trace buffer and format the data to your display, printer,
  1487.   or file. 
  1488.   
  1489.      NOTE:
  1490.         This command is intended to be used with the assistance of your technical
  1491.           coordinator.
  1492.   
  1493.      TIP:
  1494.         The OS/2 operating system processes TRACE statements in the order in
  1495.           which they appear in the CONFIG.SYS file; the effects of the statements are cumulative. 
  1496.           If any part of a statement is incorrect, the OS/2 operating system ignores the statement. 
  1497.         If you do not specify TRACE in the CONFIG.SYS file, events are not traced. 
  1498.           However, if you have a TRACEBUF statement in CONFIG.SYS, this allocates a trace
  1499.           buffer.  Then, you can trace events by entering the TRACE command at the OS/2
  1500.           command prompt. 
  1501.         If TRACE=OFF or TRACE=ON appears in the CONFIG.SYS file without a
  1502.           TRACEBUF statement, the system allocates a 4KB trace buffer. 
  1503.         If you do not specify TRACE or TRACEBUF statements in the CONFIG.SYS file,
  1504.           OS/2 does not allocate a trace buffer and system tracing is not available. 
  1505.         If a system problem can be duplicated without a system failure, the TRACE OFF
  1506.           function allows tracing to be stopped after the problem has been re-created.  This allows
  1507.           the state of the trace buffer to be preserved from the time the TRACE OFF command is
  1508.           processed. 
  1509.         The tracing mechanism is performance critical; therefore, no statistical processing of
  1510.           recorded data is performed by the tracing routines. 
  1511.         If you need to use the System Trace facility, your technical coordinator will provide
  1512.           the buffer size.  When the trace is complete, you can use the trace formatter (TRACEFMT)
  1513.           to organize the data into a report.  This helps you isolate causes of problems in the OS/2
  1514.           system by formatting the information placed in the trace buffer by the Trace facility. 
  1515.         An OS/2 enhancement to the Trace utility program allows you to trace a given process
  1516.           or set of processes, so that you can focus on the events of the specified process without
  1517.           intermixing events from other processes in the system.  This reduces the possibility of
  1518.           trace-buffer overflow by minimizing the number of events which are recorded.  Analyzing
  1519.           the formatted trace data is quicker and easier because only events of the specified process
  1520.           are recorded and displayed. 
  1521.         You use the TRACEFMT utility program to format the information placed in the trace
  1522.           buffer by system trace. TRACEFMT is a Presentation Manager application running in a
  1523.           window. TRACEFMT can capture the current contents of the trace buffer, or can read an
  1524.           unformatted trace file.  This trace entries can be searched, or a subset can be chosen to
  1525.           narrow the displayed entries to only those of interest. The TRACEFMT application
  1526.           provides choices on the menu bar. Your technical coordinator will analyze the formatted
  1527.           data to help diagnose your problem.  You can use TRACEFMT as many times as required
  1528.           to diagnose a problem without having to restart the system. 
  1529.   TRACEGET is used to capture the contents of the trace buffer into a file.  This file can then be loaded
  1530.   into the trace formatter, or sent to your service coordinator.  A technical coordinator will analyze the
  1531.   formatted data to help you diagnose problems.
  1532.   
  1533.   3.4  OS/2 external monitoring tools
  1534.   
  1535.   There are several useful external tools for monitoring and tuning the performance of an OS/2 system
  1536.   some of which are discussed in the following.
  1537.   
  1538.   3.4.1  System Performance Monitor/2 (SPM/2) - IBM Corp.  
  1539.   
  1540.   SPM/2 2.0 is an integrated package of powerful facilities that enable you to monitor resources such as
  1541.   CPU, RAM and disk on your local and remote OS/2 systems.  SPM/2's ability to graph this resource
  1542.   information enables you to look at real-time data as well as saved data for any monitored workstation on
  1543.   the LAN.  SPM/2 performs the following tasks:
  1544.   
  1545.         Collects critical resource utilization data from the CPU, memory, file I/O, swap file,
  1546.           FAT and HPFS cache, physical disk, printer, and communication ports.
  1547.         Records performance data to disk for processing at a later time.
  1548.         Provides a real-time or historical graphical representation of how system resources are
  1549.           being used (CPU, disk, RAM,and swap activity); it also has the ability to play back
  1550.           previously recorded data.
  1551.         Produces detailed resource utilization reports from recorded data that can be
  1552.           summarized by workstation, application, process or thread.
  1553.         Provides in-depth OS/2 memory analysis information that includes the working set and
  1554.           a view of OS/2 control blocks. 
  1555.         Monitors remote OS/2 LAN Requesters and servers.
  1556.   
  1557.   3.4.2  SimpleCT - Clear and Simple, Inc.  
  1558.   
  1559.   This tool, excellent for novice users, is a simple aid for tuning your system.  It provides a way to
  1560.   change the CONFIG.SYS file and remove unnecessary files to free disk space.
  1561.   
  1562.   3.4.3  CPU Monitor - BonAmi Software Corp. 
  1563.   
  1564.   CPU Monitor offers a selection of performance and analysis tools for OS/2 users.  Using Presentation
  1565.   Manager graphics, CPU Monitor displays real-time information for estimated CPU utilization, OS/2
  1566.   process relationships, and more.  CPU Monitor enables you to dynamically suspend and resume
  1567.   execution for individual threads and helps you detect and stop runaway, invisible, and background
  1568.   programs.
  1569.   
  1570.   3.4.4  OS/2 Resource Monitor (OSRM/2)- C.O.L. Consulting, Ltd.  
  1571.   
  1572.   This integrated group of applications is designed for real-time tracking and performing capacity planning
  1573.   functions for system resources including CPU, disk, memory, and applications.  OSRM/2 monitors most
  1574.   of the paramters that SPM/2 does but it also works on symmetric multiprocessor (SMP) systems.
  1575.   
  1576.   3.5  Performance tuning
  1577.   
  1578.   In general, performance tuning consists 4 steps: 
  1579.      1.define the performance problem
  1580.      2.identify the bottlenecks by using monitoring and measurement tools
  1581.      3.remove bottlenecks by applying a tuning methodology, and finally 
  1582.      4.repeat steps 2 and 3 until a satisfactory resolution is found. 
  1583.   
  1584.   3.5.1  Problem definition
  1585.   
  1586.   A sound understanding of the problem is critical in monitoring and tuning the system.  You should
  1587.   understand the problem in detail rather than at a high level like "the system is slow".  Ask specific,
  1588.   pointed questions, like: 
  1589.   
  1590.         If the system is slow, how slow is it?  
  1591.         What activity is slow?     
  1592.         How long does the activity usually take? 
  1593.         Does the problem occur when using a particular application, when accessing a disk, or
  1594.           communicating remotely?  
  1595.         What performance do you expect or believe is reasonable?
  1596.      
  1597.   Be able to quantify the problem and when possible, obtain supporting data.  As you are obtaining
  1598.   additional data, your problem description should become more focused.
  1599.   
  1600.   You should also find out all you can about what has recently been done to this system that may have
  1601.   affected its performance.  You may find that additional software has been installed,  additional
  1602.   communications sessions were defined, or even that some of the memory has been removed.
  1603.   
  1604.   Also consider the environment this system is working in.  Environmental factors that can affect
  1605.   performance might include:
  1606.   
  1607.         Stand-alone or LAN environment
  1608.         Communication links
  1609.         Hardware configuration (memory, disk space, CPU, coprocessor)
  1610.         Applications running concurrently
  1611.   
  1612.   Once you understand the problem, you should define a realistic goal for improvement.  How will you
  1613.   know when the performance is acceptable?  It may be easy to identify your desired goal, but you might
  1614.   not immediately know whether this goal is realistic.  
  1615.   
  1616.   3.5.2  Identifying bottlenecks
  1617.    
  1618.   After you have identified the problem and the environmental factors that affect it, you can narrow down
  1619.   possible causes and solutions.  This involves identifying possible bottlenecks, verifying whether they are
  1620.   indeed bottlenecks, and devising possible solutions to alleviate them.  Be aware that once a bottleneck is
  1621.   identified and steps are taken to relieve it, another bottleneck may suddenly appear.  This may be caused
  1622.   by several variables in the system running near capacity.
  1623.   
  1624.   Bottlenecks occur at points in the system where requests are arriving faster than they can be handled, or
  1625.   where resources, such as buffers, are insufficient to hold adequate amounts of data.  Finding a
  1626.   bottleneck is essentially a step-by-step process of narrowing down the causes of the problem:
  1627.   
  1628.         Identify the hardware component
  1629.         In a networked environment, try to determine whether the bottleneck is occurring on
  1630.           the client or the server.  If neither system seems to have a problem, check the physical
  1631.           network and all connectivity devices.
  1632.         Identify the resource that is affected
  1633.         A performance monitoring tool can be used to monitor system resources and indicate
  1634.           which resource is being overused.
  1635.         Consider what is happening internally when the function is performing poorly
  1636.         Consider all the steps undertaken by the poorly performing function.  For example, if
  1637.           the system is sorting a remote database file, there should be heavy CPU and memory
  1638.           utilization.  If you see a lot of disk activity this may indicate excessive memory paging
  1639.           and/or poor cache utilization.
  1640.   
  1641.   3.6  Tuning methodology
  1642.   
  1643.   Now that you have identified potential bottlenecks and have selected a performance monitoring tool, you
  1644.   need to have a plan to move forward into the tuning process.  There are five basic components in a
  1645.   performance tuning methodology that apply to all cases:
  1646.   
  1647.         Define the problem
  1648.         Hypothesize solutions
  1649.         Design tests
  1650.         Set values and run tests
  1651.         Analyze the results
  1652.   
  1653.   3.6.1  Define the problem
  1654.   
  1655.   Use the process described earlier in this chapter to ensure a complete and thorough understanding of the
  1656.   problem.
  1657.   
  1658.   3.6.2  Hypothesize solutions
  1659.   
  1660.   Narrowing in on the cause of a performance problem is an iterative process, involving identification of
  1661.   possible bottlenecks and verification of whether they are indeed bottlenecks.  It is important to make
  1662.   sure the correct  bottleneck has been identified before pouring in resources to alleviate it.  If not,
  1663.   unnecessary expense may be incurred by adding resources that do nothing to improve performance.  For
  1664.   example: 
  1665.   
  1666.         RAM could be added to a database server in order to increase the size of the buffer
  1667.           pool, only to find out that the problem is inappropriate indices, not a small buffer pool.  
  1668.         A faster CPU could be purchased, hoping to improve response time.  Although
  1669.           response time may indeed improve slightly with a faster CPU, it might later be discovered
  1670.           that the real bottleneck is insufficient buffer space on the adapter card or a slow fixed disk
  1671.           (in the case of an I/O intensive application).  Hence, it is important to think through
  1672.           several possibilities and test them out.  Once a bottleneck is identified, and resources have
  1673.           been applied to relieve it, another bottleneck may suddenly surface.  This may be because
  1674.           several things in your system are running near capacity.  Note however that there will
  1675.           always be something in the system that is the gating performance factor.  Depending on the
  1676.           workload, this factor may or may not be an actual bottleneck. 
  1677.   
  1678.   To increase the capacity at a bottleneck, think of ways to offload the work arriving there or improve its
  1679.   capacity, through hardware or software.  From there, come up with hypotheses of things that may
  1680.   relieve bottlenecks and improve performance.  Possible examples follow, though in no particular order. 
  1681.   Note that changing the values of system parameters may only be one avenue to pursue. 
  1682.   
  1683.         Faster hardware - e.g. CPU, DASD, communications medium (i.e. adapter or
  1684.           connection) 
  1685.         Parameter tuning 
  1686.         Additional RAM or disk space 
  1687.         Changing the topology - i.e. how many workstations are going through (or to) what
  1688.           servers, controllers, etc. 
  1689.         Using or increasing a memory cache 
  1690.         In a swapping system, perhaps reducing the size of buffers or numbers of active
  1691.           applications. 
  1692.           Application redesign
  1693.   
  1694.   3.6.3  Design tests 
  1695.   
  1696.   Given the possible solutions, design tests to try them out.  Make sure that these tests are repeatable. 
  1697.   Approach the testing effort methodically, testing each hypothesis one at a time. 
  1698.   
  1699.         Prioritize your ideas from "most likely to have an impact with minimal effort" to "least
  1700.           likely to have an impact with great effort". 
  1701.         Start with a single hypothesis and decide what you are going to do to prove whether it
  1702.           is true or false.  For example, if your hypothesis is to "add more buffer space," then only
  1703.           change the parameter needed to accomplish this.  
  1704.         If the hypothesis is proven false, restore the parameter and move to the next
  1705.           hypothesis and start the cycle again. 
  1706.   
  1707.   3.6.4  Set values and run tests 
  1708.   
  1709.   Setting new variable values and running tests is probably the most iterative part of the entire process. 
  1710.   In this stage, response time should be measured for specific, repeatable events, both before and after
  1711.   changing a value. 
  1712.   
  1713.           Change only ONE thing at a time.  Changing more than one variable will cloud
  1714.        results, since it will be difficult to determine which variable has had what effect on system
  1715.        performance.  The general rule may perhaps be better stated as "change  the minimum number
  1716.        of related things."  In some situations, changing "one thing at a time" may mean changing
  1717.        multiple parameters, since changes to the parameter of interest may require changes to related
  1718.        parameters.  (For example, in Database Manager, changing the BUFFPAGE parameter may
  1719.        require an increase to the SQLENSEG parameter.) 
  1720.      Start in the same state.  Start each iteration of your test with your system in the same
  1721.        state. For example, if you are doing database benchmarking, make sure that the values in the
  1722.        database are reset to the same setting each time the test is run. 
  1723.      Check for Control.  You can never control your testing too much.  This mainly
  1724.        involves carefully documenting each step in your tests - to the point of being scientific.  This
  1725.        will ensure that you're not doing things differently from run to run, and that you're not
  1726.        introducing new variables that could cloud the results.  Writing things down is also essential for
  1727.        going back and recalling exactly what you have and have not tested since it is easy to forget! 
  1728.      Work on one problem at a time.  It is easy to lose control and focus when working
  1729.        with a large number of parameters and components.  Additionally, it is likely that anomalies or
  1730.        problems will come up during testing, such as functional problems.  While it will be necessary
  1731.        to resolve problems that obstruct your goal of identifying bottlenecks and improving
  1732.        performance, problems that are not directly related to this may need to be put aside for a while,
  1733.        or given to another group to work on in parallel.  The point here is to maintain your focus. 
  1734.     
  1735.   3.6.5  Analyze the results 
  1736.   
  1737.   Analyzing the results of your tests involves being able to interpret and explain the data you obtain in
  1738.   order to understand what's going on in the system.  Information explaining the results should be
  1739.   available with the software tools used for the testing.  SPM/2 has very detailed help screens that explain
  1740.   all the parameters it monitors.
  1741.   
  1742.   Ch                                                          apter 4
  1743.   
  1744.                                                                                                                                           Basic OS/2 Tuning Procedures
  1745.   
  1746.   
  1747.   
  1748.   
  1749.   4.0  Introduction
  1750.   
  1751.   After installation, there are changes that you can make to improve the performance of OS/2 Warp 4. 
  1752.   Some of these changes like changing desktop settings are general in nature and will make slight
  1753.   improvements in the overall system performance. These changes can be done by any user and are listed
  1754.   in this section. Other changes are more specific for certain system components such as the system swap
  1755.   file, file systems, the CONFIG.SYS file, etc. These changes require certain knowledge of how various
  1756.   OS/2 components interact with each other. Such changes are listed in the next section, "Advanced OS/2
  1757.   Tuning."
  1758.   
  1759.   4.1  General system changes
  1760.   
  1761.   4.1.1  The OS/2 WarpCenter
  1762.   
  1763.   The OS/2 WarpCenter is a customizable, object-based status bar that can remain on top of all
  1764.   maximized windows. You can use the OS/2 WarpCenter to perform OS/2 desktop operations and
  1765.   display information about your system. You can display battery usage, system activity, and disk space
  1766.   monitors. OS/2 WarpCenter monitors the CPU activity on your computer and displays it through the
  1767.   system activity pulse. It indicates periods of low, medium, and high activity. 
  1768.   
  1769.      TIP:
  1770.         The system activity monitor program runs at a very low priority level, therefore, it
  1771.           does compete with your application for CPU cycles. For optimal system performance, you
  1772.           can turn the monitor program off.
  1773.         To turn the system activity monitor program off: 
  1774.           1.Select "OS/2 System" -> "WarpCenter"
  1775.           2.Click on the right mouse button and select "Properties"
  1776.           3.Click "Monitors"
  1777.           4.Remove the check from Show system activity pulse
  1778.           5.Exit
  1779.   
  1780.   4.1.2  The OS/2 Warp Guide
  1781.   
  1782.   OS/2 Warp 4 provides the OS/2 WarpGuide folder which contains guidance objects for selected
  1783.   computer tasks. Some objects have cue cards available to assist you with each step of the task. 
  1784.   
  1785.      NOTE:
  1786.         OS/2 WarpGuide is a task-mentor who uses cue cards or wizards to help you complete
  1787.           a task. As a result, anytime you start a task that OS/2 WarpGuide knows about, a OS/2
  1788.           WarpGuide button appears on the title bar of the window you are using. If your profile
  1789.           indicates you are a novice for the current task, OS/2 WarpGuide automatically shows you
  1790.           cue cards and shades unneeded parts of the window. The shading does not change the way
  1791.           a window works. You can still click on the areas under the shading. If your skill level is
  1792.           intermediate, OS/2 WarpGuide shows only cue cards. If you are an expert, cue cards are
  1793.           not shown, but you can access a cue card for the current task by clicking on the OS/2
  1794.           WarpGuide button. 
  1795.   
  1796.      TIP:
  1797.         The appearance of the cue cards will affect your system performance because it
  1798.           requires processing time. Therefore, you should turn the cue cards off if you feel you don't
  1799.           need the OS/2 WarpGuide assistance.  
  1800.         To permanently turn cue cards off: 
  1801.           1.Display the pop-up menu for the OS/2 WarpGuide folder. 
  1802.           2.Click Properties, and then click Appearance. 
  1803.           3.Remove the check from Assist Me with selected tasks. 
  1804.   
  1805.   4.1.3  Animation
  1806.   
  1807.   Animation is the process of drawing boxes on the screen that appear to grow in size culminating in an
  1808.   open folder or session. This gives a nice appearance when drawing the screen objects. Disabling
  1809.   animation will save a small amount of system resource that would otherwise be used to expand and
  1810.   contract graphical brackets around folders as they are opened or closed
  1811.   
  1812.      TIP:
  1813.         On memory constrained systems, the performance when opening folders and starting
  1814.           sessions can be improved by disabling animation.
  1815.         To disable desktop animation:
  1816.           1.Select "OS/2 System" -> "System Setup" -> "System" -> "Window"
  1817.           2.Select "animation" -> "Disabled" 
  1818.           3.Exit
  1819.   
  1820.   4.1.4  Changing display drivers
  1821.   
  1822.   During installation, OS/2 Warp detects your system display adapter hardware and installs the appropriate
  1823.   display drivers and resolutions. However, the higher the resolution, the more memory that is used.  Very
  1824.   high resolution and color support can require 100 to 200K of physical memory.  Since the display
  1825.   drivers and resolutions have great impact on your system performance, you can tune your display
  1826.   subsystem as follows.
  1827.   
  1828.         To change the display resolution:
  1829.              1.Select "OS/2 System" -> "System Setup" -> "System" -> "Screen"
  1830.              2.Select the desired resolution
  1831.              3.Exit
  1832.              4.Shutdown and reboot the system
  1833.      
  1834.         To change the display driver:
  1835.              1.Select "OS/2 System" -> "System Setup" -> "Install/Remove" -> "Selective
  1836.                  Install"
  1837.              2.Click on Primary Display -> Click OK
  1838.              3.Chose the desired display type
  1839.              4.Follow remaining selections
  1840.              5.Shutdown and reboot the system
  1841.      
  1842.      TIP:
  1843.         If you are changing from one type of SVGA hardware to another type, it is best if you
  1844.           change the display driver to VGA before you change hardware, then change back again to
  1845.           the correct display driver type. This will keep you from having a display/hardware
  1846.           mismatch that could necessitate reinstalling OS/2. You can also revert to VGA during
  1847.           system boot.
  1848.   
  1849.   4.1.5  Minimize applications and folders
  1850.   
  1851.   The OS/2 system responsiveness may be better if you minimize frequently used applications between
  1852.   use since accessing a minimized application is always faster than starting the same application. This is
  1853.   also true when frequently working with the same folders.
  1854.   
  1855.      TIP:
  1856.         When you have applications or folders that you use often, leaving them open at
  1857.           shutdown (or placing them in the startup folder) will cause them to be loaded at system
  1858.           boot time, thus allowing you to access them much faster. However, placing the application
  1859.           in the startup folder will prolong the system boot time because it has to start the
  1860.           application.
  1861.         You can use the Minimized Window Viewer to view the applications and folders that
  1862.           have been minimized.
  1863.   
  1864.   4.1.6  Starting applications
  1865.   
  1866.   Performance when starting applications can be improved by reducing the application load time.
  1867.   
  1868.      TIP:
  1869.         To reduce the search time for OS/2 to locate the application, start the application from
  1870.           its own directory or call the application with a fully qualified path.
  1871.         Using the icon to start the application is optimal because the icon will have the exact
  1872.           path for the executable file if properly installed.
  1873.   
  1874.   4.1.7  Use startup folder
  1875.   
  1876.   Applications and folders can be opened several ways. You can open your application faster if you know
  1877.   how to take advantage of the Startup Folder and the OS/2 multitasking feature. 
  1878.   
  1879.      TIP:
  1880.         Applications that were left open at shutdown will reopen at boot time after the
  1881.           Workplace Shell is started. 
  1882.         Applications placed in a STARTUP.CMD file will also be processed at boot time, after
  1883.           the Workplace Shell is started. 
  1884.         Applications and folders placed in the Startup Folder will be opened with the
  1885.           processing overlapping the startup of the Workplace Shell. 
  1886.   
  1887.   4.1.8  Multitasking considerations 
  1888.   
  1889.   OS/2 is true multitasking operating system. It manages multiple applications running concurrently by
  1890.   sharing system resources. If your resource is limited, e.g., memory, processing power, then you would
  1891.   see performance degradation when executing multiple applications. To alleviate these problems, you can
  1892.   use the following tips.
  1893.   
  1894.      TIP:
  1895.         Run only programs that are necessary. Close all applications that are not needed.
  1896.         Verify that the settings are correct for the application, especially DOS applications that
  1897.           may poll, so that useful tasks are always processing.
  1898.         Limit background processing to improve foreground performance by increasing or
  1899.           reducing the application's session priority.
  1900.   
  1901.   4.1.9  Schemes and color palette
  1902.   
  1903.   You should use solid colors and  avoid the use of bitmaps for desktop and folder backgrounds. These
  1904.   particular options use more memory and require more processing time to display them.  
  1905.   
  1906.   4.1.10  Sounds
  1907.   
  1908.   Deselect the System Sounds options, unless you like the sounds when opening and closing your folders.
  1909.   It costs between 250 and 300K in working set just to hear the sound.  An additional 40K or so of
  1910.   working set can be saved by executing DINSTSND.CMD in an OS/2 command session.  This will
  1911.   unhook the system sounds  from the OS/2 desktop. To get them back, you would execute
  1912.   INSTSND.CMD.  
  1913.   
  1914.   4.1.11  Font palette
  1915.   
  1916.   There are many fonts supplied with OS/2 and even more supplied with various word processing and
  1917.   graphics applications.  Avoid the temptation of installing more fonts than are necessary by installing
  1918.   only the ones that you will use.  You can always install others later if you should need them.  This
  1919.   simple exercise of restraint will improve performance when loading applications that use fonts.  Each
  1920.   installed font uses at least 2KB of memory, even if it is not being used.  This number increases
  1921.   significantly when you actually use the font in an application.
  1922.   
  1923.   When you have a choice of choosing which kind of fonts to install on your system, remember that
  1924.   outline fonts are more efficient than bitmapped fonts because the characters are cached into memory. 
  1925.   With bitmapped fonts, the entire character rendering is loaded into memory.  Bitmapped fonts are
  1926.   defined for a specific screen resolution and display type, whereas outline fonts are scaleable and tailored
  1927.   to the specific device installed on the system.
  1928.   
  1929.   4.1.12  System logo 
  1930.   
  1931.   Setting the System Logo option to none can save some time when loading applications that check this
  1932.   parameter to see how long to display their applications logo.
  1933.   
  1934.   4.1.13  Mouse
  1935.   
  1936.   Mouse pointers are basically bitmaps. The amount of memory used will be affected by which mouse
  1937.   pointer style you choose. If you activate the comet cursor, this will cost additional memory and
  1938.   processing time whenever the mouse is being used.  
  1939.   
  1940.   4.1.14  Desktop utilization
  1941.   
  1942.   It is important to close folders and applications when they are no longer being used.  Although a large
  1943.   portion of unused programs will be swapped out, some portion of every program is non-swappable and
  1944.   will use memory for as long as the program is active.  The more active programs in the system, the
  1945.   more memory will be used.  
  1946.   
  1947.   As placed ( or Flowed) icon views offer faster performance than Gridded views for folders containing
  1948.   multiple objects.  The operating system has to retrieve an objects coordinates from the OS2.INI if a
  1949.   Gridded view is being used.  Flowed views display one object after another without keeping track of
  1950.   specific coordinates.
  1951.   
  1952.   You should also restrict the use of programs which, as a class are more decorative than useful.  That is,
  1953.   the amount of function they provide is low compared to the memory they use.  These programs, like
  1954.   screen savers, clocks and animated icons should not be used on systems with a limited amount of
  1955.   memory.
  1956.   
  1957.   
  1958.   Chap                                                          ter 5
  1959.   
  1960.                                                                                                                                           Advanced OS/2 Tuning
  1961.   
  1962.   
  1963.   
  1964.   
  1965.   5.0  Introduction
  1966.   
  1967.   There are many more tuning parameters for an OS/2 system than discussed in the previous section. 
  1968.   This section will detail advanced tuning parameters and explain how they can be used to further
  1969.   improve your system performance.  This chapters focus will be on tuning parameters that optimize the
  1970.   Workplace Shell, task scheduling, CONFIG.SYS and AUTOEXEC.BAT files.
  1971.   
  1972.   5.1  Tuning tips for the Workplace Shell 
  1973.   
  1974.   This section discusses the workplace shell and its tuning tips. 
  1975.   
  1976.   5.1.1  The PMSHELL environment
  1977.   
  1978.   The Workplace Shell starts automatically when OS/2 is booted. The Workplace process is the one under
  1979.   which all the Workplace Shell classes are loaded and initialized. Therefore, objects representing
  1980.   Workplace Shell classes and their subclasses must run on this process. The Workplace process is
  1981.   actually launched from the Shell process, which is the process indicated in the SET PROTSHELL=
  1982.   statement in the CONFIG.SYS file. Once the Shell process is running, it starts the Workplace process.
  1983.   The Shell process is responsible for restarting the Workplace process in the event that it is ended as a
  1984.   result of a trap. 
  1985.   
  1986.      NOTE:
  1987.         The PROTSHELL= statement in the CONFIG.SYS file indicates which process is to
  1988.           be launched as the Shell process. 
  1989.         The SET RUNWORKPLACE= statement in the CONFIG.SYS file indicates which
  1990.           process is to be the Workplace process. 
  1991.         In the default configuration, both the PROTSHELL and RUNWORKPLACE
  1992.           environment variables are set to PMSHELL.EXE. 
  1993.         PMSHELL.EXE is designed to distinguish between being started as the Shell process
  1994.           versus being started as the Workplace process. 
  1995.   
  1996.   5.2  Task scheduling 
  1997.   
  1998.   The OS/2 operating system performs prioritized, preemptive, multitasking. Prioritized means that the
  1999.   operating system does not divide CPU time equally among all threads. All programs do not get equal
  2000.   access to the CPU. A prioritizing, time-slicing strategy is used to allocate access to the CPU among
  2001.   competing threads. Each thread has a priority and the operating system executes the highest priority
  2002.   thread that is ready to run. Programs with higher priorities (a real-time robotics application, for
  2003.   example), are given access to the CPU before programs with lower priorities. If a thread with a higher
  2004.   priority than the currently running thread becomes ready to run, the current thread is stopped
  2005.   immediately, or preempted, and the higher priority thread is given the CPU. The lower priority thread
  2006.   does not get to complete its time slice until later. Threads of equal priority are given CPU time in a
  2007.   round-robin manner. 
  2008.   
  2009.   Preemptive means that the multitasking activity needs no cooperation from the executing programs. The
  2010.   operating system maintains control over executing programs, and stops, or preempts, them when their
  2011.   time slice with the CPU is over or when a higher priority program is ready to run. 
  2012.   
  2013.   CPU scheduling is based on the following four priority classes, ranked in order from lowest priority to
  2014.   highest: 
  2015.         Idle-time (priority 1)
  2016.         Regular (priority 2)
  2017.         Server (priority 4)
  2018.         Time-critical (priority 3)
  2019.   
  2020.   Each class has 32 levels of execution ordering. Scheduling parameters are user-selectable at the time the
  2021.   system is started or can be varied dynamically based on system load. 
  2022.   
  2023.   Depending on a thread's priority class and level, the operating system periodically gives each thread in
  2024.   each process a small slice of CPU time. Threads with higher priorities always run before threads having
  2025.   lower priorities. A thread runs until its time is up or until a thread with a higher priority is ready to run.
  2026.   At that time, the operating system preempts the thread and starts another thread. Threads can also
  2027.   voluntarily relinquish the CPU (for example, by calling DosSleep). 
  2028.   
  2029.   The amount of time in each time slice is defined by the TIMESLICE command in the CONFIG.SYS
  2030.   file. The TIMESLICE command can be used to customize the size of the time slices that a thread gets.
  2031.   The default is for the operating system to dynamically vary the size of the time slice based on the
  2032.   activity of the thread and the overall system load. 
  2033.   
  2034.   When a thread is created (using DosCreateThread), it inherits the priority of the thread that started it.
  2035.   DosSetPriority enables threads to change their priority classes and levels in response to changes in their
  2036.   execution environments. DosSetPriority enables a thread to change its own priority, or the priority of
  2037.   any thread within its process. DosSetPriority also enables changing priorities for the entire process and
  2038.   for descendant processes. Within each class, the priority level of a thread can vary because of a
  2039.   DosSetPriorty request or, if dynamic priority variation is being used, because of action taken by the
  2040.   operating system. 
  2041.   
  2042.      TIP:
  2043.         The TIMESLICE command in CONFIG.SYS sets the minimum and maximum amount
  2044.           of processor time allocated to processes and programs for both OS/2 and DOS sessions. 
  2045.         The first parameter selects the minimum TIMESLICE value in milliseconds. This
  2046.           value is the minimum amount of time a thread is to be processed before yielding the
  2047.           processor to a thread of the same priority level. This value must be an integer greater than
  2048.           or equal to 32. 
  2049.         The second parameter selects the maximum TIMESLICE value in milliseconds. The
  2050.           value of this parameter is the maximum amount of time a thread can be processed before
  2051.           yielding processor time. This value must be an integer greater than or equal to the
  2052.           minimum value, and less than 65536. 
  2053.         The default is dynamic time slicing, which varies the size of the time slice depending
  2054.           on system load and paging activity. Dynamic time slicing is designed to give the best
  2055.           performance in most situations. 
  2056.   
  2057.   5.3  The CONFIG.SYS file
  2058.   
  2059.   OS/2 provides a considerable amount of flexibility in the settings in the CONFIG.SYS file. You can
  2060.   change these settings for exploration and exploitation of OS/2 performance. If properly done,
  2061.   customizing the CONFIG.SYS file will improve OS/2 Warp 4 performance and reduce memory
  2062.   requirements significantly.
  2063.   
  2064.      NOTE:
  2065.         After making your change and before rebooting the system, make sure you save three
  2066.           files CONFIG.SYS, OS2SYS.INI, and OS2.INI. You need those files to recover to the last
  2067.           saved setup.
  2068.         If the system fails to reboot after changes were applied, use the ALT-F1 feature to get
  2069.           back to the OS/2 prompt for recovery.
  2070.   
  2071.   The following is a list of statements in the CONFIG.SYS file that you can change to impact
  2072.   performance. 
  2073.   
  2074.   BASEDEV=
  2075.   The BASEDEV statement is used to load base device drivers.  Device support for disks, diskettes,
  2076.   printers connected to the workstation, and other devices, is loaded with the BASEDEV statement. A
  2077.   device driver is a file that contains the code that the OS/2 operating system needs to recognize a device
  2078.   and correctly process information received from or sent to that device.  A base device driver is one that
  2079.   is needed when the OS/2 operating system is first started. 
  2080.   
  2081.      NOTE:
  2082.         Unlike the DEVICE statement, the BASEDEV statement cannot contain either drive or
  2083.           path information because the OS/2 operating system cannot process such information at the
  2084.           stage of the startup sequence when the BASEDEV statements are processed. The root
  2085.           directory of the startup partition is first searched for the specified file name, then the
  2086.           \OS2\BOOT directory of the startup partition.  If drive or path information is included in a
  2087.           BASEDEV statement, an error is generated. 
  2088.         In addition, BASEDEV statements are not necessarily processed in the order in which
  2089.           they appear in your CONFIG.SYS file.  The extensions of the file names specified in the
  2090.           BASEDEV statements are examined; the statements are then processed in the following
  2091.           order of file name extensions: 
  2092.              SYS 
  2093.              BID 
  2094.              VSD 
  2095.              TSD 
  2096.              ADD 
  2097.              I13 
  2098.              FLT 
  2099.              DMD 
  2100.         Files with other file-name extensions will not be loaded. 
  2101.      
  2102.      TIP:
  2103.         If several BASEDEV statements load file names with the same extension, those files
  2104.           will be loaded in the order in which they appear in the CONFIG.SYS file. 
  2105.         Remark any BASEDEV statements that supports devices that are no longer used on the
  2106.           system being tuned.
  2107.   
  2108.   Swap file tuning
  2109.   Applications consist of groups of segments that can be either loaded into physical memory at the same
  2110.   time or called when needed. Memory over commitment occurs when a program requires more memory
  2111.   than is actually available in the computer.  The operating system handles memory over commitment by
  2112.   moving some of the information stored in memory off to a file known as the swap file located on the
  2113.   hard drive. This activity is called swapping or paging.  Swapping makes it possible for applications to
  2114.   overcommit the amount of physical memory in the system.  In OS/2, the file where the data is written
  2115.   to is the SWAPPER.DAT file.  Although an application cannot control swapping, you can specify
  2116.   whether the system can swap memory by  including the MEMMAN command in the CONFIG.SYS file. 
  2117.   
  2118.      NOTE:
  2119.         If the system is started from a hard disk, swapping (SWAP) is the system default;
  2120.           from a diskette, the default is no swapping (NOSWAP). 
  2121.   
  2122.      TIP:
  2123.         Be aware that disabling swapping will severely limit the number of
  2124.           applications that the user will be able to run concurrently; if there is not enough physical
  2125.           memory present, the operating system might not even boot. 
  2126.   
  2127.   The following discusses the two commands MEMMAN and SWAPPATH in the CONFIG.SYS file that
  2128.   you can use to tune the swap file.
  2129.    
  2130.   MEMMAN=
  2131.   If the MEMMAN command specifies SWAP, the operating system writes selected memory pages to the
  2132.   SWAPPER.DAT file whenever insufficient physical memory exists to satisfy an allocation request. This
  2133.   is the default choice. If the MEMMAN command specifies NOSWAP, the operating system does not
  2134.   swap memory. 
  2135.   
  2136.      TIP:
  2137.         To permit swapping, type the following in the CONFIG.SYS file: 
  2138.           MEMMAN=SWAP
  2139.         To run a time-dependent application and prevent the OS/2 operating system from
  2140.           swapping the contents of storage to disk, type the following in the CONFIG.SYS file: 
  2141.           MEMMAN=NOSWAP
  2142.         To permit swapping and enable a program to receive an error return code when there
  2143.           is not enough space in the swap file for the program to run, type the following in the
  2144.           CONFIG.SYS file: 
  2145.           MEMMAN=SWAP,COMMIT
  2146.         To permit swapping and enable APIs to allocate and use protected memory, type the
  2147.           following in the CONFIG.SYS file: 
  2148.           MEMMAN=SWAP,PROTECT
  2149.   
  2150.   SWAPPATH=
  2151.   The exact amount of memory available to an application depends on the amount of physical memory in
  2152.   the machine and the amount of free disk space on the partition that contains the SWAPPER.DAT file.
  2153.   The location of the SWAPPER.DAT file can be specified by including the SWAPPATH command in
  2154.   the CONFIG.SYS file. 
  2155.   
  2156.      NOTE:
  2157.         With the SWAPPATH command, you can specify the location of the SWAPPER.DAT
  2158.           file, the amount of free disk space to reserve in  the partition which will contain
  2159.           SWAPPER.DAT, and the initial size of SWAPPER.DAT. The  operating system adjusts
  2160.           the size of SWAPPER.DAT as necessary, leaving other files on the drive and the requested
  2161.           free space untouched. 
  2162.           SWAPPATH=drive:\path minfree initial
  2163.   
  2164.      TIP:
  2165.         To store the swap file in the C:\OS2\SYSTEM directory, type the following in the
  2166.           CONFIG.SYS file: 
  2167.           SWAPPATH=C:\OS2\SYSTEM
  2168.         To specify 512KB (minfree) as the amount of free space left for other applications,
  2169.           type the following statement in your CONFIG.SYS file: 
  2170.           SWAPPATH=C:\OS2\SYSTEM  512
  2171.         To specify 18MB as the initial size of a swapper file on a partition with 20MB of free
  2172.           space and a minfree value of 2MB, type the following in the CONFIG.SYS file: 
  2173.           SWAPPATH=C:\OS2\SYSTEM 2048 18432
  2174.   
  2175.   Minfree value
  2176.   There are two parameters in the swappath statement: minfree and initial. Both are expressed in KB, and
  2177.   the system rounds them to megabytes at boot time. The minfree value determines at what time you will
  2178.   receive a warning message that disk space has been reduced too low. If the remaining amount of free
  2179.   space after the swapper.dat file extension, is less than the amount (in megabytes) of the minfree value, a
  2180.   warning message is displayed. 
  2181.   
  2182.      TIP:
  2183.         The default minfree value is 2048 KB.
  2184.         The best minfree value for a system running several concurrent applications is
  2185.           generally 4096KB. If you are working with large databases, increase the value to 6144 KB
  2186.           or larger. This value gives you plenty of time to handle warning for a shortage of DASD
  2187.           space for the SWAPPER.DAT.
  2188.   
  2189.   Initial value
  2190.   The initial swap file size is preallocated to a minimum size during system boot up, depending on the
  2191.   amount of physical memory installed in the system. This helps prevent the excessive overhead of
  2192.   growing the swap file during paging operations.
  2193.   
  2194.      TIP:
  2195.         The default initial value is 2048 KB  
  2196.   
  2197.   When your applications are being executed, a larger swap file might be needed than what has been
  2198.   preallocated. The OS/2 kernel will increase the size of the swap file in 1 MB increments if more swap
  2199.   space is needed. When one or more pages need to be swapped out from memory, the kernel will
  2200.   determine if these pages already have swap space allocated in the swap file. If yes, the swap manager
  2201.   will simply write them into the allocated swap space. If not, then new swap space will be allocated in
  2202.   the swap file. If there is no space left in the swap file, the swap file has to grow. The swap manager
  2203.   then writes the pages to their new swap space. Swap space in the swap file is normally not freed up
  2204.   until the corresponding memory is deallocated. When the swap file grows beyond the initial size, then
  2205.   the system must manage the swap file to determine when compaction can take place. This additional
  2206.   overhead will cause a performance penalty.
  2207.   
  2208.      TIP:
  2209.         To keep system performance optimal, make sure the initial swap file size is large
  2210.           enough to handle your applications.
  2211.         To determine the correct size of your swap file, check the size of the SWAPPER.DAT
  2212.           file occasionally. The size specified in the CONFIG.SYS should be at least 1 or 2 MB
  2213.           larger.       
  2214.         The following data taken on a 486/33 with 16MB of physical memory represents the
  2215.           size of the SWAPPER.DAT file after OS/2 Warp is booted:
  2216.   
  2217.           OS/2 Warp 3              2,048KB
  2218.           OS/2 Warp 3 Connected         6,144KB
  2219.           OS/2 Warp 4              12,288KB
  2220.           OS/2 Warp 4 Connected         18,432KB
  2221.   
  2222.         To create a contiguous swap file - If you are using the FAT file system, IPL your
  2223.           system under DOS, delete the SWAPPER.DAT file, defragment the disk partition where
  2224.           the swap file will be located, and then  IPL your OS/2 system. This should keep your swap
  2225.           file from getting fragmented.
  2226.   
  2227.   The swap file begins compaction when the amount of free swap space in the swap file exceeds 1.5 MB.
  2228.   The compaction is done at system idle time. During compaction, free swap space will be moved to the
  2229.   end of the swap file. After compaction, when the amount of free space at the end of the swap file is
  2230.   greater than 1 MB, the swap file will be decreased, in 1 MB decrements.
  2231.   
  2232.      NOTE:
  2233.         The swap file never gets smaller than the initial size.
  2234.   
  2235.   
  2236.   BREAK=
  2237.   BREAK instructs the system to check if you pressed the Ctrl and Break keys together before the system
  2238.   carries out a program request. Pressing and holding the Ctrl and Break keys together stops a command
  2239.   from completing its task. 
  2240.   
  2241.   
  2242.      NOTE:
  2243.         BREAK can be entered in the CONFIG.SYS file, in a batch file, or at the command
  2244.           prompt.  If BREAK is ON, processing might be slower, but the operating system will
  2245.           probably intercept Ctrl+Break faster.  Setting BREAK=ON allows you to leave a program
  2246.           even if it produces few or no standard device operations (such as a compiler).  For
  2247.           example, if a program is being compiled and it meets an error or loop, it is important to
  2248.           have a way to stop compilation. 
  2249.         The default is OFF 
  2250.         To have the system check for Ctrl+Break when you request it, enter the following
  2251.           statement in your CONFIG.SYS file: 
  2252.           BREAK=ON
  2253.   
  2254.   BUFFERS=
  2255.   Sets the number of disk buffers that the system uses. 
  2256.   
  2257.      NOTE:
  2258.         The disk buffer is a 512-byte block of storage the system uses to read and write blocks
  2259.           of data that do not occupy an entire sector.  You can increase the speed of your system by
  2260.           increasing the value specified for BUFFERS.  However, when you increase the number of
  2261.           disk buffers, you decrease your available memory. You might want to experiment with the
  2262.           number of buffers to get maximum performance.  Additional buffers can cause some
  2263.           applications to run more slowly because there is less memory available for the application
  2264.           to keep data.  More frequent read and write requests than are otherwise necessary might
  2265.           then result. 
  2266.         By using the disk buffer, the operating system can read and write blocks of
  2267.           information into the buffer in preparation for processing the information.   While the
  2268.           information is in the buffer or being processed, the input device can begin reading new
  2269.           pieces of information so the processor does not have to wait unnecessarily to process
  2270.           information and program instructions.  The processor can complete its operation, because
  2271.           the next block of information to process is already in the buffer area. 
  2272.         Some other situations might also occur.  For example, suppose the processor completes
  2273.           its work and there is no information in the buffer to process.  The processor must wait
  2274.           until the next block of information is read into memory by the input device.  Similarly, if
  2275.           the input device reads information into the buffer before the system has time to process the
  2276.           records, the buffer might reach its capacity and have to wait until the system accepts more
  2277.           information to process. 
  2278.      
  2279.      TIP:
  2280.         Depending on how many programs you work with at a given time, you might want to
  2281.           experiment with this number the number of disk buffers to maximize performance on your
  2282.           system. 
  2283.         If you run many programs in OS/2 sessions, you can increase the speed of your system
  2284.           by increasing the value specified for BUFFERS (for example, BUFFERS=70).  However,
  2285.           remember that when you increase the number of disk buffers, you decrease your available
  2286.           memory by 512 bytes for each buffer specified.  Additional buffers might cause some
  2287.           programs to run more slowly because there is less memory available for the program to
  2288.           keep information.  This can result in more frequent memory swapping, which will slow
  2289.           down performance. 
  2290.         Buffers is also considered as a cache for FAT entries. It should not be reduced below
  2291.           60, even on low memory systems because it will, as a result, increase the number of disk
  2292.           reads that are done to the FAT directory  entries and therefore bring down your system
  2293.           performance.
  2294.   
  2295.   CODEPAGE=
  2296.   Selects the system code pages (defined character sets) to be prepared by the OS/2 operating system for
  2297.   code-page switching.  You must include the appropriate DEVINFO statements (for keyboard and video
  2298.   display) for both code pages in the CONFIG.SYS file. 
  2299.   
  2300.      NOTES:
  2301.         The display and printers each default to a native device character set.  The keyboard
  2302.           and country information default to the national language code page supported by the
  2303.           country code specified in the COUNTRY statement. 
  2304.         When your computer displays output, the characters used are defined by a specific
  2305.           code page.  Each code page contains letters, numbers, symbols, and other characters
  2306.           common to a particular country.  Each character has a number (1 to 255) assigned to it.
  2307.           For example, character number 212 might display one character in the U.S. code page
  2308.           (437), but a different one in the Portuguese code page (860). Therefore, you should use
  2309.           your default national-language code page unless you are working with files that were
  2310.           created using another code page or unless you are planning to send files to other countries. 
  2311.         When using a file that was created in another code page, you can switch to that code
  2312.           page or to the multilingual code page. We recommend you use the multilingual code page
  2313.           (850) whenever possible because it supports many languages. For example, suppose you
  2314.           create a file using code page 850 and send it to someone in another country.  When that
  2315.           file is viewed or printed using code page 850, it is identical to your copy. If, however, the
  2316.           file you send was not created using the multilingual code page, the receiver will need to
  2317.           switch to the code page that it was created with. Once code pages are defined on your
  2318.           system, you can switch back and forth between the prepared code pages. 
  2319.         In the OS/2 operating system, a program or user can change the active code page. 
  2320.           Two pages can be active simultaneously.  Code pages for the keyboard and display can be
  2321.           set independently; however, code-page switching can take place only in displays that
  2322.           support code-page switching, including the following products: 
  2323.              IBM Enhanced Color Display 
  2324.              IBM Personal System/2 Displays 
  2325.              IBM Enhanced Graphics Adapter 
  2326.              IBM Personal System/2 Video Graphics Array 
  2327.              IBM Personal System/2 Display Adapter 
  2328.              IBM Personal System/2 8514/A 
  2329.         If you plan to switch code pages and are using a code page other than 850, we
  2330.           recommend that you do not name your files or subdirectories with accented characters. 
  2331.         To ensure you will be able to access files prepared with another code page, be sure to
  2332.           use only the characters A-Z and 0-9 when naming files and directories.  This prevents file
  2333.           access problems when switching between code pages that have different character
  2334.           capitalization rules. 
  2335.   
  2336.      TIP:
  2337.         Incorrect, partial, or mismatched setup of statements for code-page selections,
  2338.           country code, keyboard layout, display, or printer can cause ineffective switching between
  2339.           code pages. This will in turn cause performance degradation.  If your printer is correctly
  2340.           set up for code-page switching, print jobs started in a DOS session or in the current OS/2
  2341.           session, after a successful CHCP command is issued, will print in the new code page. 
  2342.   
  2343.   DEVICE=
  2344.   Installs a device driver by specifying the path and complete file name of the device driver in your
  2345.   CONFIG.SYS file. 
  2346.   
  2347.      NOTE:
  2348.         A device driver is a file that contains the code needed so that the OS/2 operating
  2349.           system can recognize the device and correctly process information received from or sent to
  2350.           that device. It loads standard default drivers that support standard system display terminals,
  2351.           keyboards, printers, diskette drives, hard disk drives, and serial devices.  You can,
  2352.           however, replace these or add other devices by coding and loading a device driver using
  2353.           DEVICE statements in the CONFIG.SYS file.  DEVICE statements are processed in the
  2354.           order in which they appear in the CONFIG.SYS file. The default device drivers are: 
  2355.              ANSI.SYS - Allows extended screen and keyboard support for DOS sessions. 
  2356.              COM.SYS - Allows OS/2 application programs or system programs, such as
  2357.                SPOOL, to use serial devices. 
  2358.              EGA.SYS - Allows DOS programs that require Enhanced Graphics Adapter
  2359.                support to be run. 
  2360.              EXTDSKDD - SYS Allows access to an external diskette drive referencing a
  2361.                logical drive letter. 
  2362.              LOG.SYS - Allows system error logging using the SYSLOG utility program. 
  2363.              MOUSE.SYS - Provides support for pointing devices. 
  2364.              OS2ASPI.DMD - Supports existing device drivers written to Adaptec's ASPI
  2365.                interface. 
  2366.              OS2CDROM.DMD - Provides CD-ROM support for OS/2 sessions. 
  2367.              PMDD.SYS - Provides pointer draw support for OS/2 sessions 
  2368.              POINTDD.SYS - Provides mouse pointer draw support. 
  2369.              TOUCH.SYS - Provides support for touch devices. 
  2370.              VDISK.SYS - Installs a simulated disk called a virtual disk. 
  2371.              VEMM.SYS - Provides DOS Expanded Memory Manager. 
  2372.              VXMS.SYS - Provides DOS Extended Memory Specification. 
  2373.     
  2374.      TIP:
  2375.         Install only device drivers that are needed. For example, if you do not plan to
  2376.           run DOS and Windows applications, you can remove VEMM.SYS and VXMS.SYS. The
  2377.           following are potential candidates for removal from the CONFIG.SYS file.
  2378.              VDISK 
  2379.              COM and VCOM
  2380.              CDROM and VCDROM 
  2381.              PCMCIA
  2382.              BASEDEV=IBM2FLPY.ADD 
  2383.              BASEDEV=IBM1FLPY.ADD 
  2384.              BASEDEV=IBM1S506.ADD 
  2385.              BASEDEV=IBM2ADSK.ADD 
  2386.              BASEDEV=IBM2SCSI.ADD
  2387.              BASEDEV=OS2SCSI.DMD 
  2388.              BASEDEV=PRINT01.SYS 
  2389.              BASEDEV=PRINT02.SYS 
  2390.              APM.SYS and VAPM.SYS 
  2391.              EGA.SYS 
  2392.              EXTDISKDD.SYS.
  2393.              TOUCH.SYS 
  2394.         Change the DEVICE=\OS2\MDOS\VEMM.SYS statement to VEMM.SYS 0.  This
  2395.           statement loads a driver that provides Expanded Memory Support (EMS) for DOS sessions. 
  2396.           Adding a 0 variable causes OS/2 to not allocate EMS to a DOS session unless you
  2397.           override the setting in that session's DOS Settings.  Most programs do not require EMS, so
  2398.           disabling EMS by default will save RAM.
  2399.         Change the DEVICE=\OS2\MDOS\VXMS.SYS statement to DEVICE
  2400.           =\OS2\MDOS\VXMS.SYS /XMMLIMIT=4096,0 /UMB.  This will allocate a maximum of
  2401.           4MB of SMS for the entire system, but it will not give any XMS memory to a DOS
  2402.           session unless you override the setting in an individual session's DOS Settings.  DOS
  2403.           sessions won't get XMS by default, which will save memory (since most DOS programs
  2404.           can run without XMS).  If you replace /UMB with /NOUMB, no DOS session will be able
  2405.           to use upper memory blocks.  If you want DOS=HIGH to be the default, use
  2406.           /XMMLIMIT=4096,64 /UMB instead.  Each session will need at least 64KB of XMS.
  2407.   
  2408.   DEVICEHIGH=
  2409.   Loads a specified DOS device driver into an available upper memory block (UMB) for a DOS session. 
  2410.   
  2411.      NOTE:
  2412.         DOS device drivers are normally loaded into low memory (below 640KB) in DOS
  2413.           sessions.  However, when you type the DEVICEHIGH= statement into your CONFIG.SYS
  2414.           file, the operating system will attempt to load the specified DOS device driver into an
  2415.           available upper memory block (UMB).  If a UMB is not available, the device driver will
  2416.           be loaded into low memory as is done for a DEVICE= statement.  To enable UMBs, type
  2417.           the DOS=UMB statement in the CONFIG.SYS file. 
  2418.   
  2419.      TIP:
  2420.         You should load DOS device drivers onto UMB to preserve low memory for DOS
  2421.           applications. 
  2422.   
  2423.   DISKCACHE=
  2424.   The disk cache has the potential for dramatic performance gains.  The disk cache allows a portion of
  2425.   system storage to be used as an additional hard-disk buffer. DISKCACHE speeds up application
  2426.   programs that read hard disks by keeping hard disk data frequently accessed in a cache buffer. When an
  2427.   application program requests hard disk data that is already in the cache buffer, the disk cache sends the
  2428.   data directly to the application program.  This method of accessing data is much faster than if the data
  2429.   had to be read from the disk each time.  A disk-cache size is preselected by the system based on
  2430.   installed memory, disk size, and file systems installed.  Any memory set aside for the disk cache is
  2431.   memory that is taken away from the free memory available for programs.  Therefore, it is recommended
  2432.   that you determine the amount of memory required for normal operation of your system, then dedicate
  2433.   as much of the remaining memory to a disk cache.  This requires that you have a good understanding of
  2434.   the working set requirements of your system.  For example, a computer with 6MB or more of RAM
  2435.   should use a disk-cache size of 256KB. 
  2436.   
  2437.   The DISKCACHE default sizes for FAT are as follows: 
  2438.         For systems with 4MB or less of memory, the value d is set to 48KB. 
  2439.         For system memory above 4MB and up to 5MB, the value d is set to 64KB if more
  2440.           DASD is formatted for HPFS than for FAT.  If more DASD is formatted for FAT than for
  2441.           HPFS, the value d is set to 48KB. 
  2442.         For system memory above 5MB and up to 6MB, the value d is set to 128KB. 
  2443.         For system memory above 6MB and up to 8MB, the value d is set to 512KB. 
  2444.         For systems with more than 8MB of memory, the value d is set to 5% of the memory
  2445.           size up to a limit of 14MB. 
  2446.   
  2447.      NOTE:
  2448.         Default sizes for DISKCACHE are set up by the installation program.  The
  2449.           dependencies are the amount of physical memory and the number of partitions formatted
  2450.           for either file system. 
  2451.         The minimum disk cache size for the FAT file system is 0KB (you can select not to
  2452.           use a cache). The maximum is xxKB.  The maximum cache size fo FAT is 14.4MB.
  2453.         You need to select Shut down from the menu of the desktop before turning off your
  2454.           system.  Failure to do so can cause loss of data if the contents of the cache buffers have
  2455.           not been erased and written to disk. 
  2456.         The amount of storage required for control information is determined by the total size
  2457.           of one or more hard disks.  When the amount of storage you specify in the DISKCACHE
  2458.           statement is not available, the system displays an error message.  When the amount of
  2459.           storage you specify in the DISKCACHE statement is not sufficient to support the total hard
  2460.           disk size, the disk cache does not work.  
  2461.         The disk cache is allocated at system startup, and there is no dynamic adjustment of its
  2462.           size.  It is recommended that the threshold size be set at 32 unless the software product
  2463.           you are using is disk intensive and the manufacturer supplies information on the block size
  2464.           required.  If the block size is defined in terms of byte count, divide the byte count by 512
  2465.           and round up the quotient to the nearest whole number to determine the threshold value. 
  2466.         There are four parameters in DISKCACHE=D,T,LW,AC: to specify the amount of real
  2467.           memory used for caching disk data. D specifies the cache size, T specifies the cache
  2468.           threshold, i.e., the largest data block placed in the cache. LW means Lazy Write, i.e., write
  2469.           data to disk only when system is not busy as opposed to right away. AC: tells the system
  2470.           to run checkdisk if the machine encounters power failure or otherwise is not shut down
  2471.           correctly.
  2472.      
  2473.      TIP:
  2474.         Modifying this statement can increase the speed of your system.  If no DISKCACHE
  2475.           statement is specified, no cache storage is allocated.  When you increase the size of your
  2476.           disk cache, you also decrease the size of available memory for other usage.  For this
  2477.           reason, you may want to experiment with the cache size to get maximum performance. 
  2478.         When disk cache is set to dynamic, sizes are based on the amount of memory that is
  2479.           available in the system and how many partitions are formatted for the FAT file system, not
  2480.           on the disk size. 
  2481.         You need to select Shut down from the menu of the desktop before turning off your
  2482.           system.  Failure to do so can cause loss of data if the contents of the cache buffers have
  2483.           not been erased and written to disk. 
  2484.         The DISKCACHE default cache sizes for FAT are as follows: 
  2485.              For systems with 4MB or less of memory, the value d is set to 48KB. 
  2486.              For system memory above 4MB and up to 5MB, the value d is set to 64KB if
  2487.                more DASD is formatted for HPFS than for FAT.  If more DASD is formatted for
  2488.                FAT than for HPFS, the value d is set to 48KB. 
  2489.              For system memory above 5MB and up to 6MB, the value d is set to 128KB. 
  2490.              For system memory above 6MB and up to 8MB, the value d is set to 512KB. 
  2491.              For systems with more than 8MB of memory, the value d is set to 5% of the
  2492.                memory size up to a maximum size of x. 
  2493.         When the amount of storage you specify in the DISKCACHE statement is not
  2494.           available, the system displays an error message.  The disk cache is allocated at system
  2495.           startup, and there is no dynamic adjustment of its size. 
  2496.         Reduce the diskcache size when running applications that provide their own caches
  2497.           like AutoCAD, Foxpro, or DB2.
  2498.         It is recommended that the threshold size be set at 32 unless the software product you
  2499.           are using is disk intensive and the manufacturer supplies information on the block size
  2500.           required. If the block size is defined in terms of byte count, divide the byte count by 512
  2501.           and round up the quotient to the nearest whole number to determine the threshold value.
  2502.           The default threshold value is 4. 
  2503.         Enable LAZYWRITE (LW) whenever possible.  This allows disk writes to be
  2504.           temporarily held in memory to increase throughput.  Without LW, disk writes are done
  2505.           immediately.  LW will increase disk performance, but an unexpected power outage may
  2506.           cause data loss.
  2507.      
  2508.   DOS=
  2509.   You can load a DOS TSR program into an upper memory block (UMB) by typing the LH or
  2510.   LOADHIGH command at the DOS command prompt.  If no UMB is available, the TSR program will
  2511.   be loaded into low memory (below 640KB).  To enable UMBs, type the DOS=UMB statement in the
  2512.   CONFIG.SYS file
  2513.   
  2514.      NOTE:
  2515.         Specifies whether the DOS kernel will reside in the high memory area (HMA) and
  2516.           whether the operating system or DOS applications will control upper memory blocks.
  2517.         Upper memory blocks are provided by the XMS device driver. It also is necessary to
  2518.           include a VXMS.SYS statement in the CONFIG.SYS file to have upper memory blocks
  2519.           available.
  2520.       
  2521.      TIP:
  2522.         With a DOS=HIGH/LOW,UMB statement, the operating system controls the upper
  2523.           memory blocks.  This means that DOS applications can be loaded into upper memory but
  2524.           cannot allocate UMBs.
  2525.         With a DOS=HIGH/LOW,NOUMB statement, the operating system will not control
  2526.           any UMBs.  DOS applications can allocate UMBs but cannot be loaded there.
  2527.   
  2528.   FCBS=
  2529.   FCBS allows you to alocate File Control Blocks for DOS sessions.  Most new DOS programs do not
  2530.   use FCBS so these values can often be lowered to save memory.
  2531.   
  2532.      NOTE:
  2533.         This statement has no effect in OS/2 sessions. 
  2534.         A file control block (FCB) is a record that contains all of the information about a file
  2535.           (for example, its structure, length, and name).  If a program tries to open more than the
  2536.           number of files specified in the FCBS statement, the system closes the least-recently used
  2537.           file control block and opens the new file. Some application programs use file control
  2538.           blocks to create, open, delete, read, and write to files.  New programs written for the
  2539.           operating system usually use internal file IDs (handles) for file input/output. 
  2540.         If a program tries to open more than the number of file control blocks specified in the
  2541.           FCBS statement, the system closes the least-recently used FCB and opens a new file.  The
  2542.           files that are protected from being closed are not included in the list of least-recently used
  2543.           FCBs.  If a program tries to read or write to a file that has been closed because it is the
  2544.           least-recently used FCB, the system displays an error message. 
  2545.      
  2546.   FILES=
  2547.   Determines the maximum number of files available in DOS sessions. 
  2548.   
  2549.      NOTE:
  2550.         This statement has no effect in OS/2 sessions. 
  2551.         When a DOS session is started, 20 files are available to be used by all programs
  2552.           running in that DOS session.  A file is in use when a program is processing some kind of
  2553.           operation in it.  When a program is using a file for its operation, that file is unavailable to
  2554.           another program.  The file is returned to availability when the program has finished its
  2555.           operation and the file is closed. 
  2556.      
  2557.      TIP:
  2558.         Regardless of the FILES= setting, all DOS programs are initialized to a maximum of
  2559.           20 files.  It is the responsibility of an application to increase the number of files up to the
  2560.           maximum set by the FILES= statement. 
  2561.         Placing a FILES= statement in the CONFIG.SYS file increases the default value for all
  2562.           DOS sessions.  Each session can also be customized by changing the appropriate DOS
  2563.           setting. 
  2564.         To specify a maximum of 40 files to be open at the same time in a DOS session, type
  2565.           the following in the CONFIG.SYS file: 
  2566.           FILES=40
  2567.      
  2568.   IFS=
  2569.   Installs a file system (IFS) by specifying the path and complete file name of the file system driver in
  2570.   your CONFIG.SYS file. 
  2571.   
  2572.      NOTE:
  2573.         A file system driver is a file that contains code needed to manage disks and diskettes
  2574.           formatted for file systems other than the file allocation table (FAT). 
  2575.      
  2576.      TIP:
  2577.         Use this command to replace the FAT file system with a file system of your choice. 
  2578.           An example of an IFS driver is HPFS.IFS. 
  2579.         To install the High Performance File System in a system with 128 KB cache and 4KB
  2580.           maximum record size,  you have to place the following statement in the CONFIG.SYS file: 
  2581.         IFS=C:\OS2\HPFS.IFS /CACHE:128 /CRECL:4 /AUTOCHECK:C
  2582.         If you select HPFS as your standard file system, the OS/2 installation procedure inserts
  2583.           an IFS statement as the first entry in the CONFIG.SYS file. 
  2584.         System installation automatically sets up the HPFS cache for you if you format the
  2585.           primary partition with HPFS (using the OS2.INI file).  If you format the primary partition
  2586.           for FAT instead, and then later want to format another partition with HPFS, you need to
  2587.           add an IFS statement to the CONFIG.SYS file. 
  2588.         Keep in mind that the IFS statement is device-dependent and must be included before
  2589.           any DEVICE statements. 
  2590.         If you start DOS (from outside the OS/2 operating system, that is, from a DOS
  2591.           partition or diskette), files on HPFS partitions are not accessible.  (This means that you
  2592.           cannot start your system from a DOS installation diskette while using HPFS).  If you start
  2593.           a Specific Version of DOS from within the OS/2 operating system (that is, a version of
  2594.           DOS running in a DOS session), then files on HPFS partitions are accessible. 
  2595.         If your system has no HPFS partitions defined, you should disable the loading of
  2596.           HPFS by adding a REM to the beginning of the IFS= line in your CONFIG.SYS.
  2597.         Lazy writing for HPFS defaults to ON.  A RUN=CACHE statement is required to
  2598.           change the state of lazy writing.  CACHE also can be executed from a command prompt.   
  2599.         Optimize the HPFS CACHE setting on systems using the HPFS file system or
  2600.           REMark it out if the system does not use this file system. The HPFS code and data space
  2601.           requirement is 200KB of memory plus the cache requirement (minimum cache size is
  2602.           64KB).  Removing this statement will save at least 264KB and as much as 2312KB.
  2603.         Optimize the CRECL value by experimenting with different threshold values while
  2604.           monitoring the HFFS cache utilization with SPM/2.  This will ensure the optimum value is
  2605.           determined.
  2606.   
  2607.   IOPL=
  2608.   Allows I/O privilege to be granted to requesting processes in OS/2 sessions. 
  2609.   
  2610.      NOTE:
  2611.         The privilege level assigned to a program determines what code segments and data
  2612.           segments it can access.  The privilege level also limits the machine instructions a program
  2613.           can process. 
  2614.         Application programs are usually assigned privilege level 3.  This means that they can
  2615.           call routines that run at any other privilege level. However, they can access only their own
  2616.           data segments and cannot issue any I/O instructions. 
  2617.         Programs that are granted I/O privilege run at privilege level 2.  When IOPL is YES, a
  2618.           program assigned privilege level 2, such as a subsystem that needs to communicate directly
  2619.           with a specific device, is then permitted to send or receive instructions to or from that
  2620.           device. 
  2621.      
  2622.      TIP:
  2623.         To permit I/O privileges to processing programs, type the following in the
  2624.           CONFIG.SYS file and restart your system: 
  2625.           IOPL=YES
  2626.         To prevent I/O privileges from processing programs, type the following in the
  2627.           CONFIG.SYS file and restart your system: 
  2628.           IOPL=NO
  2629.         To allow I/O privileges to be granted to programs named PROC2 and PROC3, type
  2630.           the following in the CONFIG.SYS file and restart your system: 
  2631.           IOPL=PROC2,PROC3
  2632.   
  2633.   PATH=
  2634.   Sets a search path for commands and programs. 
  2635.   
  2636.      NOTE:
  2637.         PATH searches specified directories for commands or batch files that the system did
  2638.           not find when it searched the current directory. PATH only finds files that can be run, such
  2639.           as files with the following extensions: .COM, .EXE, and .BAT (for DOS sessions), or
  2640.           .CMD (for OS/2 sessions). 
  2641.         PATH is a system environment variable.  If the system cannot find an external
  2642.           command or program in your current directory, it queries the environment for a value for
  2643.           PATH. Application programs can also query the environment for the value of PATH and,
  2644.           depending on what they find, change their behavior. 
  2645.         When you install the OS/2 operating system, the installation program places the
  2646.           following in the CONFIG.SYS file.
  2647.           SET PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS;C:\OS2\INSTALL;C:\;
  2648.         System installation also creates the following PATH statement in your
  2649.           AUTOEXEC.BAT file for use with DOS sessions: 
  2650.           PATH C:\OS2;C:\OS2\MDOS;C:\;
  2651.         Setting the PATH in the CONFIG.SYS and AUTOEXEC.BAT files lets you avoid
  2652.           having to set PATH from the command prompt each time you turn on your system. 
  2653.         As you create your own subdirectories, you can change the PATH statement in your
  2654.           CONFIG.SYS to reflect your new directory structure. For DOS sessions, you update the
  2655.           PATH statement in your AUTOEXEC.BAT file. 
  2656.   
  2657.      TIP:
  2658.         Directory names should be placed in the order of usage.  The most accessed
  2659.           directory should be listed first and the least accessed listed last.  
  2660.         If programs will be executed from an object on your desktop or folder, specify the
  2661.           path there and not in the PATH statement. Only place directories in the PATH statement
  2662.           for executables that will be called from other programs or commands.  
  2663.   
  2664.   DPATH=
  2665.   DPATH indicates what directories applications should search for their data files (if an application
  2666.   program uses the  DPATH directory list).
  2667.   
  2668.      NOTE:
  2669.         DPATH is a system environment variable, which means that application programs can
  2670.           query the environment for its value, and, depending on what they find, change their
  2671.           behavior. 
  2672.         Like the PATH command, the number of directories you can specify with DPATH is
  2673.           limited only by the length of the command line.  The length of a DPATH command can be
  2674.           up to six characters less that the maximum number of characters allowed on the command
  2675.           line.  Once you set a search path for data files with DPATH, the path remains in effect for
  2676.           the current command processor until you replace it with another DPATH command. 
  2677.      
  2678.      TIP:
  2679.         Directory names should be placed in the order of usage.  The most accessed directory
  2680.           should be listed first and the least accessed listed last.  .
  2681.   
  2682.   LIBPATH=
  2683.   Identifies the locations of dynamic link libraries for OS/2 programs. 
  2684.   
  2685.      NOTE:
  2686.         LIBPATH is used to identify a set of directories to be searched when the OS/2
  2687.           operating system loads dynamic link libraries. Because dynamic link library modules are
  2688.           shared globally, this command allows path searching to be defined globally rather than on
  2689.           a per-process basis (as done by the PATH command). 
  2690.         LIBPATH is not a part of the environment and therefore cannot be viewed with the
  2691.           SET command.  Also, unlike the PATH environment variable, the current directory is not
  2692.           searched first. 
  2693.         The installation program places this statement in your CONFIG.SYS file: 
  2694.           LIBPATH=.;C:\OS2\DLL;C:\OS2\MDOS;C:\;
  2695.           Note: The initial period indicates the current directory. 
  2696.   
  2697.      TIP:
  2698.         Directory names should be placed in the order of usage.  The most accessed directory
  2699.           should be listed first and the least accessed listed last.  
  2700.         Make sure that .; is the first directory in the LIBPATH.
  2701.         If possible, place the DLL used by a program in the same directory as the working
  2702.           directory when the program is running. Then, you do not need to add that directory to the
  2703.           LIBPATH statement.  Also, place all directories that are on a network at the end of your
  2704.           LIBPATH statement in case the network goes down and they cannot be accessed.
  2705.   
  2706.   MAXWAIT=
  2707.   Sets the amount of time a ready-to-run thread waits before the system assigns it a higher priority. 
  2708.   
  2709.      NOTE:
  2710.         When a regular-class thread is denied the processor for a defined number of seconds, it
  2711.           receives a temporary increase in priority for a period of time up to the minimum time slice. 
  2712.         MAXWAIT has no effect if the PRIORITY command is set to ABSOLUTE. 
  2713.         The system limits the time that a regular-class thread waits to be processed.  When the
  2714.           time limit is reached, the system raises the priority of the thread to give it a chance to be
  2715.           processed. 
  2716.      
  2717.      TIP:
  2718.         The most appropriate amount of time to set depends on the number of applications that
  2719.           must run concurrently and the kinds of activities the applications perform (the system
  2720.           default is three seconds). Experiment with this time to improve overall system
  2721.           performance. 
  2722.         To cause a thread to wait up to 5 seconds before it receives a temporary increase in
  2723.           priority, type the following in the CONFIG.SYS file: 
  2724.           MAXWAIT=5
  2725.         You can specify a number from 1 through 255.  The default value is 3. Use 2 for
  2726.           systems running lots of programs together or a program that runs at a higher priority with
  2727.           others that run at a lower priority.
  2728.   
  2729.   PRIORITY=
  2730.   Selects priority calculation in scheduling regular-class threads. 
  2731.   
  2732.      NOTE:
  2733.         The system assigns a thread based on its display status (background or foreground),
  2734.           recent input and output activity, and frequency of processor use.  Most threads are assigned
  2735.           Regular priority. 
  2736.         Applications can adjust priorities, but the system has a built-in method of handling
  2737.           access to the processor.  The default method is Dynamic.  Changing this to Absolute can
  2738.           help achieve predictable results by determining the order of priority strictly on the basis of
  2739.           class and level. 
  2740.         To change the PRIORITY statement so the OS/2 operating system varies the priorities
  2741.           of threads as they are running, type the following in the CONFIG.SYS file and restart your
  2742.           system: 
  2743.           PRIORITY=DYNAMIC
  2744.         To change the PRIORITY statement so the OS/2 operating system does not vary the
  2745.           priorities of threads as they are running, type the following in the CONFIG.SYS file and
  2746.           restart your system: 
  2747.           PRIORITY=ABSOLUTE
  2748.   
  2749.      TIP:
  2750.         DYNAMIC almost always offers the best performance.
  2751.         If DYNAMIC is not specified then each thread will receive a minimum and maximum
  2752.           time slice of 32 milliseconds with no additional time slices as specified in the
  2753.           TIMESLICE= statement. 
  2754.   
  2755.   PRIORITY_DISK_IO=
  2756.   Specifies disk input/output priority for applications running in the foreground. 
  2757.   
  2758.      NOTE:
  2759.         When PRIORITY_DISK_IO=YES is specified in the CONFIG.SYS file, an application
  2760.           running in the foreground will receive disk I/O priority over applications running in the
  2761.           background.  This means that the application in the foreground will have a better response
  2762.           time than applications running in the background. 
  2763.         To specify that applications in the foreground are to receive priority for disk access,
  2764.           type the following in the CONFIG.SYS file: 
  2765.           PRIORITY_DISK_IO=YES
  2766.         To specify that all applications (foreground and background) are to be treated equally
  2767.           with regard to disk access, type the following in the CONFIG.SYS file: 
  2768.           PRIORITY_DISK_IO=NO
  2769.      
  2770.      TIP:
  2771.         Changing PRIORITY_DISK_IO to NO in CONFIG.SYS will improve the performance
  2772.           of communications applications running in the background that are doing disk I/O, if there
  2773.           is foreground work being performed that is also doing disk I/O.    
  2774.   
  2775.   PRINTMONBUFSIZE=
  2776.   Sets parallel-port device-driver buffer size. 
  2777.   
  2778.      NOTE:
  2779.         The PRINTMONBUFSIZE= statement enables you to increase the size of the OS/2
  2780.           parallel-port device-driver buffer and thereby increase performance of data transfer to
  2781.           devices connected to the parallel port.  This device-driver monitor buffer is used only if a
  2782.           printer character monitor is active.  The parallel port device driver will allocate and register
  2783.           its monitor chain buffer based upon the value specified. 
  2784.   
  2785.      TIP:
  2786.         If you increase this value, additional system memory is used.
  2787.         To set the parallel-port device-driver buffer size for LPT1 as 2048 bytes, for LPT2 as
  2788.           134 bytes, and for LPT3 as 134 bytes, type the following in the CONFIG.SYS file: 
  2789.           PRINTMONBUFSIZE=2048,134,134
  2790.   
  2791.   RMSIZE=
  2792.   Specifies the highest storage address allowed for the DOS operating  environment. 
  2793.   
  2794.      NOTE:
  2795.         If you specify a number that exceeds the amount of memory allowable for your system
  2796.           configuration, the system sends you an error message and ignores the statement. It then
  2797.           automatically calculates the largest default value for your system. 
  2798.         If you do not have an RMSIZE statement in your CONFIG.SYS file, the default is the
  2799.           total amount of low memory installed (either 512KB or 640KB).  If this total is 640KB or
  2800.           less, then the default size is the total memory minus the minimum required for protect-
  2801.           mode operations.  If this total is 1024KB or greater, the default size is the amount of
  2802.           memory installed below 1024KB, either 512KB or 640KB.
  2803.         If you decided to specify PROTECTONLY=NO, you can further reduce the size of the
  2804.           DOS environment by specifying RMSIZE.  This allows you to make the size of the DOS
  2805.           environment smaller than the maximum amount available if all the remaining memory
  2806.           below 640KB were used for DOS sessions. 
  2807.         Specifies a number from 0 through 640, representing a multiple of 1024 bytes. 
  2808.         To set the size of the DOS environment to 256KB, type the following in the
  2809.           CONFIG.SYS file: 
  2810.           RMSIZE=256
  2811.      
  2812.      TIP:
  2813.         Leave the default for optimal performance in your DOS sessions.
  2814.   
  2815.   THREADS=
  2816.   Sets the maximum number of independent actions, known as threads, for OS/2 sessions. 
  2817.   
  2818.      NOTE:
  2819.         Applications consist of a series of instructions.  The processor reads each instruction
  2820.           and performs the associated activity.  The sequential execution of the instructions by the
  2821.           processor is called the thread of execution.  More than one thread of execution can exist
  2822.           within a single process.  Typically, OS/2 applications contain many threads. 
  2823.         Several threads can be ready to execute at the same time, but only one thread at a time
  2824.           can have access to the processor.  Access to the processor is managed by the system
  2825.           scheduler, which assigns each thread a priority.  The thread that has the highest priority,
  2826.           and that is ready to run, is allocated to the processor.  For example, if a thread is being
  2827.           processed, and another thread with a higher priority becomes ready to run, the system stops
  2828.           processing the thread with the lower priority and allocates the processor to the thread with
  2829.           the higher priority.  That thread is processed until it relinquishes control of the processor or
  2830.           until a thread of higher priority is ready to run. 
  2831.         The system supports a maximum of 4095 threads, which it allocates to itself and the
  2832.           applications running on it.  Reducing the number of threads while running complex
  2833.           applications or system extensions, can force activities that COULD be performed
  2834.           concurrently, to be performed serially, thus slowing performance.  If no THREADS
  2835.           statement is in the CONFIG.SYS file, the default number of threads is 64. 
  2836.         To have the system handle up to 512 active threads, type the following in the
  2837.           CONFIG.SYS file: 
  2838.           THREADS=512
  2839.         If there is no THREADS statement is in the CONFIG.SYS file, the system defaults to
  2840.           a value of 64.   
  2841.   
  2842.      TIP:
  2843.         Each thread requires a minimum of 4KB stack allocated by the system.
  2844.         OS/2 threads get priority boost when they have foreground focus.
  2845.         All DOS and Windows threads run at the same priority in a round robin manner.
  2846.         DOS and Windows disk I/O can execute on a separate thread.
  2847.         The basic thread priority is 200.
  2848.         Communications Manager and LAN server have threads that run at Time Critical and
  2849.           Server priority levels.
  2850.         Set THREADS to a value 50% larger than the actual number of threads expected to be
  2851.           used to avoid running out of threads.
  2852.   
  2853.   TIMESLICE= 
  2854.   Sets the minimum and maximum amount of processor time allocated to processes and programs for both
  2855.   OS/2 and DOS sessions. 
  2856.   
  2857.      NOTE:
  2858.         Unless a dispatching priority is explicitly defined by an application, the system assigns
  2859.           one to each thread of execution.  The system uses round-robin (that is, time-distribution)
  2860.           time slicing to ensure that threads of equal priority are given equal chances to be
  2861.           processed. 
  2862.         The first value (X) in the statement TIMESLICE=X,Y is the minimum amount of time
  2863.           a thread can be processed before yielding the processor to a thread of the same priority
  2864.           level; the second value (Y) is the maximum amount of time a thread can be processed
  2865.           before yielding processor time. 
  2866.      
  2867.      TIP:
  2868.         This statement is not found in the CONFIG.SYS file after you install OS/2 but is
  2869.           sometimes recommended to be added. This was okay to add for OS/2 2.0, 2.1 or 2.11
  2870.           systems, but not for OS/2 Warp. In OS/2 Warp, we dynamically modify a threads time
  2871.           slice based on actions that have occurred. For instance, if a thread took a page fault during
  2872.           it's time slice, we give it an extra time slice to process what is contained in the faulted
  2873.           page. We also give applications doing disk I/O extra time slices if the data they are reading
  2874.           is in the disk cache. When the TIMESLICE=   parameter is used, none of these actions
  2875.           will occur. Instead, each thread will be given the minimum time slice of X, and its time
  2876.           slice will not be allowed to go beyond value Y. 
  2877.         The default is dynamic time slicing based on system load and paging activity. 
  2878.           Dynamic time slicing gives the best performance in all situations. 
  2879.         To set the minimum TIMESLICE value to 32 and allow the maximum value to
  2880.           default, type the following in the CONFIG.SYS file: 
  2881.           TIMESLICE=32,
  2882.         To set the maximum TIMESLICE value to 32 and allow the minimum value to
  2883.           default, type the following in the CONFIG.SYS file: 
  2884.           TIMESLICE=,32
  2885.         To change the minimum and maximum time slice allowed to 45 milliseconds, type the
  2886.           following in the CONFIG.SYS file: 
  2887.           TIMESLICE=45
  2888.           Note:    This value must be an integer greater than or equal to the default value of 32. 
  2889.         To change the maximum time slice allowed to 125 milliseconds to support a
  2890.           communication program, and the minimum time slice to 40 milliseconds, type the
  2891.           following in the CONFIG.SYS file: 
  2892.           TIMESLICE=40,125
  2893.           Note:    This value must be an integer greater than or equal to the minimum default
  2894.             value of 32, and less than the maximum default value of 65536. 
  2895.         If you do not have a TIMESLICE statement in your CONFIG.SYS file, the minimum
  2896.           and maximum default values are set. 
  2897.   
  2898.   5.4  Single input queue
  2899.   
  2900.   The Single Input Queue (SIQ) allows the user to take focus away from an application that is
  2901.   monopolizing  the message queue. 
  2902.   
  2903.      NOTE:
  2904.         When you request a focus change, e.g., by clicking on another application or pressing
  2905.           the Ctl+Esc, the application that has the focus should respond to the message in a certain
  2906.           amount of time, say x milliseconds. If the application does not respond within that time,
  2907.           OS/2 flags the application queue as bad.  It will then switches focus to the desired
  2908.           application. 
  2909.      
  2910.         OS/2 will monitor the queue marked as bad to see when it does start responding
  2911.           messages. It will mark the queue as good when this occurs. 
  2912.   
  2913.      TIP:
  2914.         To enable the SIQ feature, place a SET PM_ASYNC_FOCUS_CHANGE statement in
  2915.           the CONFIG.SYS file and reboot.
  2916.         The parameters for the SIQ statement is:
  2917.           SET PM_ASYNC_FOCUS_CHANGE=ON  ON x  OFF
  2918.         The default is OFF (disabled). To turn SIQ on (enable), use
  2919.           SET PM_ASYNC_FOCUS_CHANGE=ON
  2920.         To change the timeout value, put the following statement:
  2921.           SET PM_ASYNC_FOCUS_CHANGE=ON x 
  2922.           where x is in milliseconds. The default value is 2000 milliseconds
  2923.   
  2924.   5.5  The AUTOEXEC.BAT file
  2925.   
  2926.   The AUTOEXEC.BAT file is specific to the DOS session and has no performance impact on OS/2
  2927.   applications. You can however customize your DOS session by having DOS system commands in the
  2928.   AUTOEXEC.BAT file. This will start your memory resident programs and set up environment variables
  2929.   as required by your DOS applications. 
  2930.   
  2931.      TIP:
  2932.         To make as much base memory as available to applications, remove all unnecessary
  2933.           commands from the AUTOEXEC.BAT file. 
  2934.         You can also create several AUTOEXEC.BAT files, each file corresponds to specific
  2935.           DOS commands needed by each specific application. 
  2936.         The specification of a specific AUTOEXEC.BAT file to a DOS session is done by
  2937.           selecting the setting DOS_AUTOEXEC in the DOS settings notebook for the application
  2938.           object.   
  2939.   
  2940.   
  2941.                                                                      Chap                                                          ter 6
  2942.   
  2943.                                                                                                                                           Improving Application Performance
  2944.   
  2945.   
  2946.   
  2947.   
  2948.   6.0  Application software
  2949.   
  2950.   Application software offers a great deal of flexibility in its ability to be tuned for improved
  2951.   performance.  Skilled programmers have tremendous control over the performance of their application as
  2952.   well as the performance of the entire system.  Applications can be written to use minimal amounts of
  2953.   memory and processor resources.  A poorly written application can cause major problems by using
  2954.   excessive amounts of memory and CPU cycles.  
  2955.   
  2956.   Applications usually do not have tunable options that allow a user to modify their performance.  If they
  2957.   do, the best way to discover and implement them is to read the documentation that comes with the
  2958.   program.  For example, Lotus Notes for OS/2 has a memory tuning parameter that when placed in the
  2959.   Notes.INI file, keeps the application from using all of the systems free memory.  Likewise, IBM's C Set
  2960.   compiler has an optional command that will cause the compiler to remain in memory after it has been
  2961.   loaded by the first compile action.  Subsequent compiles become faster because the compiler does not
  2962.   need to be re-loaded into memory.
  2963.   
  2964.   Under OS/2 Warp, application programmers have a great deal of control over the performance of both
  2965.   DOS and OS/2 programs.  Some general programming rules when programming OS/2 applications
  2966.   include using multiple threads, checking the linker map to place functions that call each other in the
  2967.   same code page, and keeping your DLLs in the working directory so OS/2 will not have to search to
  2968.   find them.  DOS programs should be designed to not poll hook interrupts, but try to limit far references
  2969.   and keep functions that call each other in the same segment.  These techniques and more are explained
  2970.   in the many books focused on programming for performance.  
  2971.   
  2972.   DOS application performance can be improved by maximizing the use of memory below 640KB. 
  2973.   Drivers such as EMM386 and HIGHMEM are designed to free as much memory as possible and
  2974.   provide disk caching to speed up hard drive access.  Since some DOS applications respond differently
  2975.   than others using these drivers, it is usually necessary to experiment with them and other parameters to
  2976.   find the optimal performance 
  2977.   configuration.
  2978.   
  2979.   6.1  Tuning Tips for OS/2 Applications
  2980.   
  2981.   OS/2 applications run natively on OS/2 Warp 4, therefore, no special settings nor configurations changes
  2982.   are required. That is, users do not need to make explicit changes to OS/2 applications. However, there
  2983.   are techniques that you can use to speed up the application loading or execution time. 
  2984.   
  2985.      TIP:
  2986.         The LIBPATH, which is set in CONFIG.SYS, specifies a search path which the OS/2
  2987.           operating system uses when searching for dynamic link libraries (DLLs). The LIBPATH is
  2988.           set during system startup and cannot be changed dynamically. 
  2989.         Always set the path for the most frequent accessed programs first in the LIBPATH.
  2990.         Do not change the order of the OS/2 components set in the LIBPATH. 
  2991.   
  2992.   6.1.1  SOMobjects
  2993.   
  2994.   When SOMobjects 2.0 is installed on OS/2 Warp, the LIBPATH, PATH, and DPATH environment
  2995.   variables in CONFIG.SYS might be changed to place the SOMobjects directories before the operating
  2996.   system directories in the search order for DLLs, EXEs, and data files. This will cause the Workplace
  2997.   Shell to encounter an unrecoverable error the next time the system is rebooted because it requires the
  2998.   SOM DLLs that are contained in the \OS2\DLL subdirectory, and the performance of your system could
  2999.   be severely degraded.
  3000.   
  3001.      TIP:
  3002.         In order to allow SOMobjects 2.0 Workstation applications to run successfully, you
  3003.           must edit CONFIG.SYS and change the LIBPATH, PATH, and DPATH statements before
  3004.           rebooting the system. These statements must be changed to place the operating system
  3005.           directories before the SOMobjects directories. 
  3006.           Note:   This only applies to SOMobjects Workstation applications, not Workgroup
  3007.             applications. 
  3008.   
  3009.      NOTE:
  3010.         The same problem will occur for any application that ships SOMobjects 2.0 DLLs if
  3011.           the application places its DLL directory first in the LIBPATH. Once again, the workaround
  3012.           is to assure that the \OS2\DLL subdirectory is before any other directory that contains
  3013.           earlier versions of the SOM DLLs. Any changes made to the PATH and DPATH
  3014.           environment variables by the application installation must also be reversed. 
  3015.   
  3016.   6.1.2  VisualAge C++ performance
  3017.      
  3018.   You can get faster compile times with Visual C++ by using some of the following techniques.
  3019.   
  3020.      TIP:
  3021.         Check the settings of your environment variables (LIBPATH, PATH, INCLUDE, and
  3022.           so on). If the VisualAge C++ directories are at the end of the paths, the compiler or linker
  3023.           must search through all of the other directories before it finds the required DLLs, header
  3024.           files, and so on. 
  3025.         Ensure you preload the compiler with the /Tl option (it is preloaded by default).  This
  3026.           option keeps the compiler components loaded in memory. 
  3027.         If you are statically linking to the VisualAge C++ libraries, try dynamic linking. 
  3028.         Use precompiled header files.  See the User's Guide for details on how to structure
  3029.           your files so the compiler can take full advantage of the precompiled headers. 
  3030.         Turn off all optimizations. 
  3031.         If you are using the HPFS file system, set the IFS statement in your CONFIG.SYS file
  3032.           to: 
  3033.           IFS=c:\os2\hpfs.ifs /cache:2048 /crecl:64
  3034.           
  3035.           This allows OS/2 to keep frequently-used files in memory between compilations,
  3036.             which can greatly reduce the amount of time it requires the compiler to process them. 
  3037.         Add more RAM to your system.  In a memory-constrained environment, OS/2 spends
  3038.           more time swapping data to disk, which increases compilation times tremendously.
  3039.           Additional RAM allows the compiler and its data to remain in memory, which can make
  3040.           your builds run more quickly. 
  3041.         Define a virtual disk (VDISK or RAM disk) with the OS/2 VDISK device driver.  It
  3042.           creates a disk from your system's RAM. For example, placing this statement in your
  3043.           CONFIG.SYS file: 
  3044.           DEVICE=C:\OS2\VDISK.SYS 2048,,256
  3045.           allocates a virtual disk of 2M with 256 directory entries. You can then copy all the
  3046.             library and header files you need for compiling and linking to this disk and set your
  3047.             LIB and INCLUDE variables to point to it before any other directory. Because these
  3048.             files are already in memory, your compile and link times will improve. (Do not put the
  3049.             compiler executable files there; the compiler preloads them into memory by default, so
  3050.             you would then have two copies in memory.) 
  3051.           However, there are drawbacks to using a VDISK. The data on it is lost when you
  3052.             reboot. Also, memory allocated for a VDISK is unswappable memory space, meaning
  3053.             it cannot be used as normal memory space by applications. Because C++ compilations
  3054.             can require a lot of memory, putting memory into a VDISK could cause excessive
  3055.             memory paging and slow down your compilation. If you have a large VDISK, it may
  3056.             be to your advantage to eliminate it or make it smaller to provide more available
  3057.             memory to the compiler 
  3058.         Minimize dependencies between source files so that changes made to one file don't
  3059.           require you to recompile all your files. 
  3060.   
  3061.   6.2  Tuning Tips for Windows Applications
  3062.   
  3063.   This section discusses the Win-OS/2 environment which supports the execution of Windows
  3064.   applications.
  3065.   
  3066.   6.2.1  WIN-OS/2 environment
  3067.   
  3068.   WIN-OS/2 is an environment that allows you run Windows programs under OS/2. There are two types
  3069.   available of WIN-OS/2 environments available: 
  3070.         WIN-OS/2 Full Screen 
  3071.         WIN-OS/2 Window (or seamless)
  3072.   
  3073.      TIP:
  3074.         Some DOS and Windows programs run correctly only in full-screen sessions.  Any
  3075.           Windows program that does not use the Windows application program interface (API)
  3076.           function to change the video mode should be run in a WIN-OS/2 full screen session. 
  3077.   
  3078.   6.2.2.  Windows groups and Windows programs folders
  3079.   
  3080.   During the installation of OS/2 Warp, if you had Windows programs already installed on your hard disk,
  3081.   these programs may have been automatically added to your OS/2 Desktop. Windows programs that were
  3082.   added during installation can be found on the Desktop in the following folders: 
  3083.         WIN-OS/2 Groups: 
  3084.           When you run Add Programs for existing Windows programs, the WIN-OS/2 Groups
  3085.             folder is created and placed on the Desktop.  The WIN-OS/2 Groups folder contains
  3086.             folders of Windows application programs that reside in the default groups, Windows
  3087.             Accessories and Windows Main.  A group is a set of Windows programs that are
  3088.             related. 
  3089.         Windows Programs and Additional Windows Programs 
  3090.   
  3091.   The Windows Programs folder and the Additional Windows Programs folder contain Windows programs
  3092.   that have settings optimized during the installation process to improve their performance. If these
  3093.   programs do not run correctly, you can specify other settings. Windows programs that do not belong to
  3094.   any group are added to these folders. 
  3095.   
  3096.   For example, if you have CorelDraw for Windows installed, when you run Add Programs, a folder for
  3097.   all the CorelDraw programs is created and placed in the Additional Windows Programs folder. Now you
  3098.   have access to all the CorelDraw programs in one folder. 
  3099.   
  3100.   6.2.3  WIN-OS/2 virtual DOS sessions - common Vs separate
  3101.   
  3102.   A Windows application can run in a common or separate (seamless) session. Common sessions share
  3103.   one WIN-OS/2 kernel regardless of the number of applications loaded. Separate sessions load a new
  3104.   copy of the WIN-OS/2 kernel each time an application (or session) is started. 
  3105.   
  3106.      TIP:
  3107.         If you launch an application from a separate seamless session, the time taken to load
  3108.           the application includes the time to load the WIN-OS/2 kernel as well. In general, it is
  3109.           always faster to load a Windows application in a common session because the WIN-OS/2
  3110.           kernel doesn't have to be loaded for each application.
  3111.   
  3112.   6.2.4  WIN-OS/2 standard and enhanced compatibility modes
  3113.   
  3114.   WIN-OS/2 can run in two operating modes: 
  3115.         Standard Mode is used to run programs written for Microsoft Windows Versions 3.0
  3116.           and 3.1 standard mode. 
  3117.         Enhanced Compatibility Mode is used to run programs that require Microsoft Windows
  3118.           Versions 3.0 and 3.1 enhanced mode. The Enhanced Compatibility Mode enables the user
  3119.           to run a number of Windows 3.1 enhanced mode applications.  It is important to realize
  3120.           that this is not an implementation of Windows 3.1 enhanced mode, but a mode specific to
  3121.           WIN-OS/2 that illustrates the flexibility of OS/2 and its power in blending different
  3122.           application environments into an integrated platform since the major benefit to Windows
  3123.           3.1 users of enhanced mode was virtual memory - something which OS/2 users already
  3124.           have.
  3125.   
  3126.      NOTE:
  3127.         All Windows Version 3.0 and 3.1 standard mode programs will run in a WIN-OS/2
  3128.           Enhanced Compatibility Mode session.  The default setting for these sessions is Enhanced
  3129.           Compatibility Mode.
  3130.      
  3131.      TIP:
  3132.         You may want to consider changing the WIN-OS/2 session mode to standard if you
  3133.           are running Windows programs that do not require enhanced compatibility. Performance of
  3134.           Windows programs running in standard mode could be faster than those running in the
  3135.           enhanced compatibility mode. 
  3136.   
  3137.   You can specify a mode for a WIN-OS/2 session or Windows program by changing the WIN-OS/2 run
  3138.   mode setting.  For Windows programs that require Microsoft Windows Version 3.1 enhanced mode, set
  3139.   the WIN_RUN_MODE setting to 3.1 Enhanced Compatibility. 
  3140.   
  3141.   6.2.5  Settings for Windows applications
  3142.   
  3143.   The following WIN-OS/2 and DOS Settings should be used for DOS and Windows Multimedia
  3144.   applications: 
  3145.                
  3146.      DOS/WIN        INT_DURING_IO            ON 
  3147.      DOS/WIN        HW_TIMER                 ON
  3148.      WIN            VIDEO_SWITCH_NOTIFICATION     ON 
  3149.      WIN            VIDEO_8514A_XGA_IOTRAP        OFF
  3150.      DOS/WIN        VIDEO_RETRACE_EMULATION  OFF 
  3151.      DOS            DPMI_MEMORY_LIMIT        8 
  3152.      
  3153.      TIP:
  3154.         To improve the performance of the device, you can change any of the settings: 
  3155.         1.Press the Tab key to move between the entry fields. 
  3156.         2.Click on the arrow next to each field to open a pull-down menu of possible, valid values. 
  3157.             Refer to the documentation that came with the device for information about what
  3158.             values you should use. 
  3159.         3.Select OK when you are done. Select Cancel to exit from the window without making
  3160.             any changes (the default values will remain). 
  3161.        
  3162.           Note:    To have the settings changes take effect, be sure to select Multimedia
  3163.             Software Support in the OS/2 Setup and Installation window and then select Install. 
  3164.      
  3165.         To enable audio support for most applications in DOS and Windows sessions, the
  3166.           following settings for DOS properties must be in effect: 
  3167.              INT_DURING_IO = On 
  3168.              VIDEO_RETRACE_EMULATION = Off 
  3169.              AUDIO_ADAPTER_SHARING = Required 
  3170.   
  3171.   AUDIO_ADAPTER_SHARING
  3172.   This setting  allows access to audio hardware for the DOS session.
  3173.   
  3174.      TIP:
  3175.         Two applications cannot use an audio adapter even if one is not required to run the
  3176.           program. This will allow you to minimize conflicts by defining audio specifications for
  3177.           each DOS session.
  3178.         Select Optional to indicate that a program in this DOS session should use an audio
  3179.           adapter if one is available.
  3180.         Select Required to indicate that a program in this DOS session must have access to an
  3181.           audio adapter.
  3182.         Select None to indicate that a program in this DOS session does not require an audio
  3183.           adapter.
  3184.         The default setting is None.
  3185.         You can set this setting anytime.
  3186.   
  3187.   
  3188.   
  3189.   6.2.6  Win32s  support
  3190.   
  3191.   WIN-OS/2 supports the following levels of Win32s:
  3192.         1.15
  3193.         1.20
  3194.         1.25
  3195.         1.25a
  3196.   
  3197.      NOTE:
  3198.         Of the Win32s applications IBM has tested, the following are not supported.
  3199.           Adobe PhotoShop
  3200.           EndNote2 Plus
  3201.   
  3202.      TIP:
  3203.         We recommend that you set the DOS setting DOS_FILES to 255 on sessions
  3204.           that run Win32s applications.
  3205.         If a Win32s application states that it has run out of memory, change the DOS setting
  3206.           for DPMI_MEMORY_LIMIT to DECREASE the amount of DPMI memory.  This will
  3207.           allow more room for Win32s memory.
  3208.         To run Visual FoxPro, change the DOS setting for DPMI_MEMORY_LIMIT to 16.
  3209.   
  3210.   6.2.7  WIN-OS/2 setup
  3211.   
  3212.   WIN-OS/2 settings allow you to make adjustments that will improve the performance of  your Windows
  3213.   programs. 
  3214.   The following list identifies the types of settings you can change and they will be discussed in
  3215.   corresponding sections.
  3216.         Keyboard settings 
  3217.         Memory settings 
  3218.         Mouse and touch-sensitive screen settings 
  3219.         Printer settings 
  3220.         Video settings 
  3221.         Hardware-related settings 
  3222.   
  3223.   OS/2 allows you to specify certain settings that can be globally applied to all Win-OS/2 sessions. These
  3224.   settings can be accessed from the folder System Setup -> WinOS/2 Setup. 
  3225.   
  3226.      NOTE:
  3227.         From the 3.1 Session bookmark, the Win-OS/2 setup settings notebook provides you
  3228.           buttons for selecting Win-OS/2 full screen or window environment.
  3229.         If you select Win-OS/2 window, you can further select Separate session or Common
  3230.           session. 
  3231.         If you do not select Separate session (i.e., you select Common session) then you can
  3232.           select the Fast load option.  This option if selected will create a common session and then
  3233.           preload it with a copy of the Win-OS/2 kernel. 
  3234.   
  3235.      TIP:
  3236.         Use the Fast load option to speed up the loading of all Windows applications running
  3237.           in a seamless and common Win-OS/2 session.
  3238.         The Fastload option will take effect immediately after the Win-OS/2 setup settings
  3239.           notebook is closed.
  3240.   
  3241.      NOTE:
  3242.         From the Data Exchange bookmark, you can specify how data are to be dynamically
  3243.           exchanged between Win-OS/2 and OS/2 sessions. When the DDE setting is On, dynamic
  3244.           data exchange (DDE) is public.  Windows programs that support DDE automatically
  3245.           update identical data in other Windows and OS/2 programs.  Otherwise, you can share
  3246.           information only with other Windows programs.  When this setting is set to Off, DDE is
  3247.           private and Windows programs cannot share DDE information with OS/2 programs. For
  3248.           further information, please see the tips for WIN_DDE below.
  3249.         Similarly, the clipboard can also be set to either public or private. When this setting is
  3250.           On, the clipboard is public. Windows programs can share data with other DOS, Windows,
  3251.           and OS/2 programs.  Otherwise, you can share information only with other Windows
  3252.           programs in that session.  When this setting is set to Off, the clipboard is private and
  3253.           Windows programs cannot share clipboard information with OS/2 programs.  For further
  3254.           information, please see the tips for WIN_CLIPBOARD below.
  3255.      
  3256.   6.2.8  WIN-OS/2-specific settings
  3257.   
  3258.   As mentioned above, the  Win-OS/2 settings can be set from System Setup -> WinOS/2 Setup or from
  3259.   the properties associated with each session object. The following list contains the available WIN-OS/2-
  3260.   specific settings.
  3261.         WIN_CLIPBOARD   
  3262.         WIN_DDE   
  3263.         WIN_RUN_MODE   
  3264.         WIN_ATM 
  3265.   
  3266.   WIN_CLIPBOARD
  3267.   This setting allows WIN-OS/2 to share clipboard information between WIN-OS/2 and OS/2 sessions.
  3268.   
  3269.      NOTE:
  3270.         Select WIN_CLIPBOARD; then select the On radio button to share clipboard
  3271.           information among OS/2, DOS (window), and Windows programs.
  3272.   
  3273.      TIP:
  3274.         For better performance this setting should be set to OFF for private data exchange
  3275.           between WIN-OS/2 applications.  However, if this setting is OFF then you will not be
  3276.           exchanging clipboard data between OS/2 applications and WIN-OS/2 applications.  The
  3277.           default value is OFF (private). 
  3278.         You can change this setting before you start the session or at any time after the WIN-
  3279.           OS/2 session is started. 
  3280.         If you are running multiple Windows programs in a single WIN-OS/2 session, it is
  3281.           possible to share clipboard information between these programs even when this setting is
  3282.           Off (private). 
  3283.      
  3284.   WIN_DDE
  3285.   This setting allows programs that support DDE to update their data automatically.
  3286.      
  3287.      NOTE:
  3288.         Select WIN_DDE; then select the On radio button to enable sharing of data among
  3289.           other OS/2 and Windows programs.
  3290.      
  3291.      TIP:
  3292.         If you are running multiple Windows programs in a single WIN-OS/2 session and the
  3293.           program supports the DDE feature, it is possible to share DDE information between these
  3294.           programs even when this setting is Off (private). 
  3295.         The default value is Off (private). 
  3296.         You can change this setting before you start the session or at any time after the WIN-
  3297.           OS/2 session is started. 
  3298.         This setting is only listed in the WIN-OS/2 Setting window and does not apply to
  3299.           DOS window or DOS full-screen sessions. As a result, this should be set to OFF for
  3300.           private data exchange between DOS applications.
  3301.         For better performance, this setting should be set OFF, but only if you are not
  3302.           exchanging data via DDE between OS/2 and WIN-OS/2 applications.
  3303.   
  3304.   WIN_RUN_MODE
  3305.   Use WIN_RUN_MODE (Run mode) if you want to specify a mode for your Windows programs.  To
  3306.   specify a particular mode, select either the 3.1 Standard or 3.1 Enhanced Compatibility radio button. 
  3307.      
  3308.      NOTE:
  3309.         The default value for this setting is 3.1 Enhanced Compatibility Mode. 
  3310.         You must change this setting before starting a WIN-OS/2 session (or starting one
  3311.           Windows program). 
  3312.         To set the mode: 
  3313.           1.Display the pop-up menu for the Windows program object. 
  3314.           2.Select Settings. 
  3315.           3.Select Session. 
  3316.           4.Select the WIN-OS/2 settings push button. 
  3317.           5.Select the WIN-OS/2 settings radio button; then select OK. 
  3318.           6.Select the WIN_RUN_MODE setting. 
  3319.           7.Select the 3.1 Enhanced Compatibility radio button. 
  3320.           8.Select Save. 
  3321.   
  3322.   WIN_ATM 
  3323.   This setting loads the Adobe Type Manager fonts for Win-OS/2. 
  3324.   
  3325.      NOTE:
  3326.         Select WIN_ATM; then select the On radio button to enable Adobe Type Manager
  3327.           font support for a WIN-OS/2 session.  When this setting is set to Off, Adobe Type
  3328.           Manager will not be loaded when the WIN-OS/2 session is started.  The default setting is
  3329.           Off. 
  3330.         WIN_ATM cannot be reset from within a WIN-OS/2 session.  To change this setting,
  3331.           you must end the WIN-OS/2 session, reset this setting, and restart the WIN-OS/2 session. 
  3332.   
  3333.      TIP:
  3334.         Loading the ATM will waste memory if it is not used later.  For better performance
  3335.           this setting should be set to OFF.
  3336.         Modifying the setting while the session is running will not dynamically load the ATM.
  3337.   
  3338.   6.2.9  General WIN-OS/2 tips
  3339.   
  3340.   The following are tips for using your computer more efficiently when running Windows programs in
  3341.   WIN-OS/2 sessions: 
  3342.      
  3343.         If you are running Windows programs in WIN-OS/2  windowed sessions, you cannot
  3344.           have any statement in the AUTOEXEC.BAT file that prompts the user for input (for
  3345.           example, "Press any key to continue"). 
  3346.         Do not use the SETUP.EXE file shipped with Windows 3.1.  Instead, use the
  3347.           SETUP.EXE file shipped with WIN-OS/2 to ensure your environment is properly
  3348.           configured for OS/2.  Use the Selective Install program in OS/2 to change video device
  3349.           drivers for CGA, EGA, SVGA, VGA, XGA, and 8514, and for mouse device drivers.  To
  3350.           start Selective Install, open OS/2 System, System Setup, then Selective Install. 
  3351.         If a Windows program does not work correctly in a WIN-OS/2 session, it is likely that
  3352.           the program files were not all migrated properly.  To fix the problem, you can reinstall the
  3353.           program using any WIN-OS/2 session.  (Select Run on the File menu of the Program
  3354.           Manager and follow the program's instructions.)  Or, if you know the specific files that are
  3355.           needed, you can copy them from the \WINDOWS directory to the \OS2\MDOS\WINOS2
  3356.           directory. 
  3357.         The value for VIDEO_SWITCH_NOTIFICATION should not be changed for an active
  3358.           WIN-OS/2 session. 
  3359.         You cannot use the WIN-OS/2 Control Panel to change mouse buttons in WIN-OS/2
  3360.           sessions.  Change mouse button settings from the OS/2 Desktop to affect the WIN-OS/2
  3361.           mouse buttons in the WIN-OS/2 environment. 
  3362.         If you install the US English version of OS/2, and you want to change the system
  3363.           configuration to another country or language, run Selective Install to make the changes
  3364.           effective for OS/2.  To make the changes effective for WIN-OS/2, start WIN-OS/2 in a
  3365.           full-screen session, open the Control Panel, and use the International choice to make your
  3366.           changes. 
  3367.         If you are running a WIN-OS/2 full-screen session with an XGA video device driver
  3368.           and your WIN-OS/2 objects are not clear, use the Control Panel to select another color
  3369.           scheme for the WIN-OS/2 Program Manager. 
  3370.         If you cannot paste a bitmap from the OS/2 clipboard to a WIN-OS/2 session, the
  3371.           program might not understand the device-independent bitmap (DIB) format of the file. For
  3372.           example, icons created using the Icon Editor are not understood by some Windows
  3373.           programs, such as Microsoft Paintbrush.  If your WIN-OS/2 session is started first, you can
  3374.           view the bit map in the OS/2 clipboard; however, you cannot paste it.  The Paste menu
  3375.           choice is dimmed (unavailable). 
  3376.         Metafiles in WIN-OS/2 and OS/2 are not compatible. If you copy a WIN-OS/2
  3377.           metafile to a public clipboard, it will be sent to PM and vice versa. 
  3378.         If you want to use dynamic data exchange (DDE) using the Paste Link choice on the
  3379.           File menu of a program, consider the following information. 
  3380.         The clipboard should be set to Public.  The client and server must negotiate the data
  3381.           format to initiate the DDE link.  If this negotiation fails, some applications do not display
  3382.           any error message and no further action is taken. If this happens, try another menu choice
  3383.           (for example, Link), if available. 
  3384.         To improve performance of Lotus Applications in WIN-OS/2, change the following
  3385.           settings to ON:
  3386.                WIN_DDE                       ON
  3387.                WIN_CLIPBOARD                 ON
  3388.                DOS_BACKGROUND_EXECUTION      ON
  3389.   
  3390.   6.2.10  Tuning tips for games
  3391.   
  3392.   OS/2 recognizes over 200 of the most popular games and educational programs.  Most games will run
  3393.   well under OS/2 if you use the customized DOS settings that are provided when you create a program
  3394.   object for your games using Add Programs from the System Setup folder or using the Program template
  3395.   from the Templates folder.  If OS/2 does not recognize a game, it assigns default settings to the game. 
  3396.   If the default settings are unsatisfactory, you can customize them to suit the requirements of the game. 
  3397.   
  3398.   You can use Add Programs to create program objects for games that are already installed on your
  3399.   system.  For each game that it recognizes, Add Programs assigns a set of customized DOS Settings to
  3400.   the program object, which is placed in the Games folder in the OS/2 System folder. 
  3401.   
  3402.      TIP:
  3403.         When you install a new game, use the default subdirectory whenever possible.  Then,
  3404.           make a note of the path and file name used to start the game.  Use the Program template
  3405.           from the Templates folder to create a program object for the new game.  Type the path and
  3406.           file name in the appropriate field in the Settings notebook of the new object.  OS/2 will
  3407.           attempt to match the file name to the list of games found in the recognition database.  If a
  3408.           match is found, OS/2 will automatically adjust all settings necessary to run the game. 
  3409.         If you have a game or educational program that is not recognized by Add Programs
  3410.           and that does not use the default DOS Settings, you can customize the settings for this
  3411.           program by doing the following: 
  3412.           1.Point to the game or program object. 
  3413.           2.Press mouse button 2. 
  3414.           3.Select Settings. 
  3415.           4.Select the Session tab. 
  3416.           5.Select DOS Full Screen. 
  3417.           6.Select DOS Settings. 
  3418.           7.Select All DOS Settings. 
  3419.           8.Select OK. 
  3420.           9.Change the DOS Settings according to the program documentation. 
  3421.         You might want to create another DOS full-screen session with the following settings
  3422.           to try running games that otherwise cause problems: 
  3423.              DOS_HIGH                                       ON 
  3424.              DOS_UMB                                        ON 
  3425.              EMS_MEMORY_LIMIT                          0 or 4096 
  3426.              HW_NOSOUND                                ON 
  3427.              HW_ROM_TO_RAM                             ON 
  3428.              HW_TIMER                                       ON 
  3429.              IDLE_SENSITIVITY                          100 
  3430.              INT_DURING_IO                             ON 
  3431.              KBD_ALTHOME_BYPASS                   ON 
  3432.              MOUSE_EXCLUSIVE_ACCESS               ON 
  3433.              VIDEO_8514A_XGA_IOTRAP               OFF 
  3434.              VIDEO_RETRACE_EMULATION              OFF 
  3435.              XMS_MEMORY_LIMIT                          0, 64, or 4096 
  3436.         Other settings that you should consider to enhance game play include: 
  3437.              DOS_BACKGROUND_EXECUTION 
  3438.              DOS_FILES 
  3439.              DOS_STARTUP_DRIVE 
  3440.              DPMI_DOS_API 
  3441.              DPMI_MEMORY_LIMIT 
  3442.              DPMI_NETWORK_BUFFER_SIZE 
  3443.              HW_NOSOUND 
  3444.              IDLE_SECONDS 
  3445.              KBD_CTRL_BYPASS 
  3446.         The following tips might help you play these popular games:
  3447.              Master of Orion - Add a SET BLASTER statement to your
  3448.                AUTOEXEC.BAT file
  3449.              Link386 Pro - Add a SET BLASTER statement to your AUTOEXEC.BAT
  3450.                file
  3451.              DOOM 1.2 - Direct sound effects and music to a PC speaker, or set up Doom
  3452.                I with no sound settings
  3453.              DOOM II - Set up the FX selection as a PC speaker and the MUSIC selection
  3454.                as your audio card
  3455.              TIE Fighter - The application might stop after about 30 minutes of play in the
  3456.                training session.  This occurs in the training session only.
  3457.              Myst and The Making of Myst - Do the following:
  3458.                1.  Edit the SYSTEM.INI file, which is located in the \OS2\MDOS\WINOS2
  3459.                  directory, and change the following statements from:
  3460.                     SET TIMERMax386Res=10
  3461.                     SET TIMERMax286Res=10
  3462.                to:
  3463.                     SET TIMERMax386Res=x
  3464.                     SET TIMERMax286Res=x
  3465.                where x is a variable between 8 and 20.
  3466.                2.  Save the file.
  3467.                3.  Restart the WIN32s session.
  3468.                4.  Get the latest version of QuickTime for Windows 3.1 from the World
  3469.                  Wide Web at address http:/www.quicktime.apple.com.
  3470.                5.  Follow the instructions to download QuickTime.
  3471.   
  3472.                Note:  If you have a partition with native DOS and Windows on it, you will
  3473.                  need to take out references in the AUTOEXEC.BAT file to the Windows
  3474.                  directories on other drives.  For example:
  3475.                     D:WINDOWS;D:\WINDOWS\SYSTEM
  3476.                After you have successfully installed the application you can put the
  3477.                  references back into the AUTOEXEC.BAT file.
  3478.                6.  Install QuickTime for Myst and The Making of Myst
  3479.   
  3480.                To enable audio for Myst and The Making of Myst, you must enable the
  3481.                  audio drivers.  For more information, see "Adding WIN-OS/2 Audio Support"
  3482.                  in the OS/2 Warp Desktop Guide online book located in the Assistance
  3483.                  Center.
  3484.   
  3485.                To display the OS/2 Warp Desktop Guide, do the following:
  3486.                        Open Assistance Center.
  3487.                        Open Information.
  3488.                        Open Tasks folder.
  3489.                        Open the OS/2 Warp Desktop Guide online book.
  3490.   
  3491.                To help ensure The Making of Myst works correctly under OS/2 Warp, run
  3492.                  The Making of Myst in a WIN-OS/2 full-screen session. 
  3493.              THE 7th QUEST      
  3494.                If this game does not work properly, contact the game manufacturer for the
  3495.                  up-to-date audio drivers or files for Sound Blaster and Pro AudioSpectrum.
  3496.                After you receive the up-to-date audio drivers or files, do the following:
  3497.                1.  Add audio drivers or files to the ID\T7G directory.
  3498.                2.  For the Pro AudioSpectrum, do the following:
  3499.                          Open the pop-up menu for the 7th QUEST object.
  3500.                     Click on  Settings.
  3501.                     Click on the Session tab.
  3502.                     Click on DOS Settings.
  3503.                     Click on OK.
  3504.                     Click on DOS_DEVICE.
  3505.                     In the Value window, change the path to ID\T7G.
  3506.                     Click on Save.
  3507.                     Close the notebook.
  3508.                3.  Restart the WIN-OS/2 session.
  3509.                4.  Start the game again.
  3510.                If the game still does not work properly, do the following:
  3511.                   Edit the ID\T7G\GROOVIE.INI file.
  3512.                   Under the section that lists your audio card, change the DMA address
  3513.                     from the default to your card's DMA setting.
  3514.   
  3515.   For new games (or games that will not work after using the steps above), try using the Dedicated
  3516.   DOS/Windows mode (session type). This requires that you have Dual Boot installed. Install the game
  3517.   using DOS or Windows and verify that it functions correctly, then create a program object on the OS/2
  3518.   Desktop and select the Dedicated DOS/Windows Session type.  Using this program object, you can now
  3519.   suspend OS/2 Warp to run the game and just as quickly resume your OS/2 Warp environment.
  3520.   
  3521.   6.3 Tuning Tips for DOS Applications
  3522.   
  3523.   This section discusses tuning tips for DOS applications.
  3524.   
  3525.   6.3.1  DOS environment
  3526.   
  3527.   OS/2 provides support for various DOS environments.  These environments include DOS, DOS sessions
  3528.   in the OS/2 operating system, and specific versions of DOS started from diskette. As noted earlier, when
  3529.   you are starting a specific version of DOS from diskette, DOS mouse, XMS, or EMS driver support
  3530.   must be replaced with the OS/2 version of the driver, supplied in the OS2\MDOS directory. 
  3531.   
  3532.   Some of the DOS properties are not processed in a DOS session started from the specific version of
  3533.   DOS.  The ignored DOS properties are those that configure parameters that are controlled by the
  3534.   CONFIG.SYS file on the DOS startup diskette.  These ignored properties include: 
  3535.         BREAK 
  3536.         DOS Device Drivers 
  3537.         DOS Memory Size (KB) 
  3538.         DOS Shell 
  3539.         Simulated DOS Version 
  3540.   
  3541.   Other differences include: 
  3542.         FCB values are restricted to the minimum of the two values in the DOS and OS/2
  3543.           configuration files. 
  3544.         The EXIT command does not work when issued from the top level prompt in a DOS
  3545.           session started from a specific version of DOS.  You need to use the EXIT_VDM
  3546.           command to successfully exit from a DOS session started from a specific version of DOS. 
  3547.         There is generally less memory available in a DOS session started from a specific
  3548.           version of DOS. 
  3549.         A DOS session started from a specific version of DOS will not support extended
  3550.           attributes on logical drives managed by the file system of that specific version of DOS. 
  3551.   
  3552.   6.3.2  Full screen vs. windowed
  3553.   
  3554.   DOS applications can be run in a full screen or windowed session. In a full screen session, data are
  3555.   directly written to video memory while the windowed session does not.
  3556.   
  3557.      TIP: 
  3558.         Non-graphical DOS applications like Foxpro 1.0 runs very well in a VDM windowed
  3559.           session. 
  3560.         DOS programs that are doing intensive text or graphical display will run slower in a
  3561.           windowed session compared to a fullscreen session.
  3562.   
  3563.   6.3.3  Multitasking DOS sessions
  3564.   
  3565.   The OS/2 multitasking feature allows you to run multiple DOS, Win-OS/2 or OS/2 sessions at any
  3566.   instance of time. However, DOS applications rarely block themselves. They consume CPU timeslices
  3567.   even if they are in the background or appear not to be doing anything (e.g., polling keyboards or other
  3568.   devices). You can control this behavior by adjusting the following DOS setting parameters:
  3569.   IDLE_SENSITIVITY, SESSION_PRIORITY, and DOS_BACKGROUND_EXECUTION. The tuning of
  3570.   DOS settings are explained as follows.
  3571.   
  3572.   6.3.4  Tuning the DOS settings 
  3573.   
  3574.   You can selectively configure a DOS session by changing the session's DOS settings. Most of the
  3575.   settings defaulted values were set based on extensive internal testing. However, some DOS applications
  3576.   require certain features that can be determined by experimenting with the following:
  3577.   
  3578.   DOS_AUTOEXEC
  3579.   This setting allows you to select an AUTOEXEC.BAT file. 
  3580.      
  3581.      TIP:
  3582.         Use DOS_AUTOEXEC (DOS AUTOEXEC.BAT file) if you want to specify the path
  3583.           and file name of a batch file other than the default AUTOEXEC.BAT file. The default
  3584.           AUTOEXEC.BAT file usually resides in the root directory of the startup drive.  This
  3585.           setting is useful for specifying specific environments for individual sessions. 
  3586.         The default is blank, which means that the AUTOEXEC.BAT file in the root directory
  3587.           of the startup drive is used. 
  3588.         You must change this setting before starting the session. 
  3589.         Specify a different AUTOEXEC.BAT for each DOS session will help reducing
  3590.           memory and optimize function.
  3591.         Overall system performance is improved when application specific AUTOEXEC.BAT
  3592.           files containing only the device drivers needed for that program.  If application specific
  3593.           drivers were loaded from the CONFIG.SYS file at each boot RAM is wasted if the
  3594.           application is not used. 
  3595.   
  3596.   DOS_BACKGROUND_EXECUTION 
  3597.   This setting allows DOS applications to run in the background.
  3598.      
  3599.      TIP:
  3600.         Select DOS_BACKGROUND_EXECUTION, then select the On radio button if you
  3601.           want to allow DOS programs to run in the background. Selecting On means that your DOS
  3602.           application will keep running when it is not in the foreground. 
  3603.         When this setting is Off, your program will be suspended when it is not in the
  3604.           foreground.  When your DOS program is suspended, it will no longer receive interrupts. 
  3605.           This means there will be no tasking overhead required to support this DOS session while it
  3606.           is suspended. Select On if you are running a DOS program that is communicating using a
  3607.           COM port or a network adapter.  You also should select On when running WIN-OS/2
  3608.           DDE or when running a Windows program on the desktop.  The default value is On. 
  3609.         You can change this setting before you start the session or at any time after the DOS
  3610.           session is started. 
  3611.   
  3612.   DOS_BREAK
  3613.   This setting is used when you want OS/2 to check for the Ctrl+Break or Ctrl+C key combinations when
  3614.   your application is running.
  3615.      
  3616.      TIP:
  3617.         Use DOS_BREAK (Break); then select the On radio button if you want the operating
  3618.           system to check for the keystrokes Ctrl+Break or Ctrl+C while a program is processing. 
  3619.           Then, you can press Ctrl+Break or press Ctrl+C to stop a process.  For example, if you
  3620.           have Break set to On, and you want to stop compiling a program, press Ctrl+Break. 
  3621.         Unless you specify otherwise during installation, the operating system places a
  3622.           BREAK=OFF statement in your CONFIG.SYS file.  With BREAK=OFF in CONFIG.SYS,
  3623.           the operating system checks for the Ctrl+keys only during standard input or output
  3624.           operations; it does not check for Ctrl+keys while the program processes information.  For
  3625.           example, if CONFIG.SYS has BREAK=OFF, the operating system checks for the Ctrl+
  3626.           keys when the program expects input from the keyboard or the program sends information
  3627.           to the screen or printer.  You cannot use Ctrl+Break or Ctrl+C to stop a process (such as a
  3628.           program compilation) if an error occurs or the process repeatedly loops through the same
  3629.           steps. 
  3630.         Programs run more slowly when you set Break On. The default for this setting is Off. 
  3631.         You must change this setting before starting the session. 
  3632.         If you want to have the option to interrupt a DOS batch file running in a VDM in a
  3633.           faster way then this setting should be turned on. 
  3634.   
  3635.   DOS_DEVICE 
  3636.   Use DOS_DEVICE to modify the set of DOS device drivers that is loaded into a particular DOS
  3637.   session. 
  3638.      
  3639.      TIP:
  3640.         When you select this setting, you see a list with the information about each DOS
  3641.           device driver specified in your CONFIG.SYS file.  The information consists of the path
  3642.           and file name and the current value (if available) of each DOS device driver.  For
  3643.           example: 
  3644.           c:\os2\mdos\connect.sys /a=10 /b=12
  3645.           
  3646.           You can: 
  3647.                     Add a DOS device driver by typing its name on a new line. 
  3648.                Remove a DOS device driver by deleting all information about it. 
  3649.                Add or change a value by typing the new value. 
  3650.         You must change this setting before starting the session. 
  3651.         Use this option to load only the DOS devices that you need. This will lower you boot
  3652.           time if you include the DOS device in the CONFIG.SYS file.
  3653.   
  3654.   DOS_FCBS
  3655.   This setting specifies the maximum number of file control blocks which may be opened by applications
  3656.   running in a VDM. 
  3657.      
  3658.      TIP:
  3659.         Use DOS_FCBS (FCB count) if you load a file-sharing module and want to change
  3660.           the maximum quantity of file control blocks (FCBs) that a DOS session can have open. 
  3661.           The field for this setting contains a range of values from 0 to 255 (FCBs).  To change the
  3662.           value, drag the box, select a button, or type into the entry field. 
  3663.         If you notice poor DOS session performance in a networking environment, use this
  3664.           setting to limit the number of FCBs.  If you set a value for this field and your DOS
  3665.           session opens the maximum FCBs you specify, DOS closes the least recently used FCB
  3666.           when it receives the next FCB open request.  You can use an additional DOS setting,
  3667.           DOS_FCBS_KEEP, to prevent DOS from closing one or more of the first FCBs it opens. 
  3668.         The default value is 16. 
  3669.         You must change this setting before starting the session. 
  3670.   
  3671.   DOS_FCBS_KEEP 
  3672.   This setting specifies the number of FCBs that will be protected against automatic closure. 
  3673.      
  3674.      TIP:
  3675.         Use DOS_FCBS_KEEP if you want to specify the number of file control blocks
  3676.           (FCBs) that DOS does not automatically close.  DOS closes FCBs to keep the number of
  3677.           open FCBs at, or below, the maximum allowed.  The field for this setting contains a range
  3678.           of values from 0 to 255 (FCBs).  To change the value, drag the box, select a button, or
  3679.           type into the entry field. 
  3680.         The default value is 8. 
  3681.         You must change this setting before starting the session. 
  3682.         Keeping a number of FCBs protected may improve your application performance. 
  3683.   
  3684.   DOS_FILES
  3685.   This setting specifies the maximum number of file handles which may be opened in a VDM.
  3686.      
  3687.      TIP:
  3688.         Use this setting to specify the maximum number of files that can be open at the same
  3689.           time in a DOS or WIN-OS/2 session. Specify a value of 20 to 255. The default value is
  3690.           20.  This setting has no effect in an OS/2 session. 
  3691.         When a DOS session is started, 20 file handles are available to all programs running in
  3692.           the session.  When a WIN-OS/2 session is started, the minimum number of available file
  3693.           handles is 48.  This number can be increased by the program.  A file is in-use when a
  3694.           program is processing an operation in it.  The file becomes available when the program
  3695.           finishes its operation and the file is closed. 
  3696.         You can change the setting for this session at any time. 
  3697.         Some applications may requires a large number of files. For example, dBASE IV
  3698.           requires at least 40. 
  3699.   
  3700.   IDLE_SECONDS 
  3701.   This setting specifies the length of time, in seconds, the operating system waits before applying idle
  3702.   detection in a DOS session.
  3703.      
  3704.      TIP:
  3705.         Use IDLE_SECONDS to specify the length of time the operating system waits before
  3706.           applying idle detection processing to a DOS session.  The field for this setting shows the
  3707.           amount of idle time allowed in seconds.  Values range from 0 to 60.  To change the value,
  3708.           drag the box, select a button, or type into the entry field. 
  3709.         If a program appears idle, DOS gives it less time to run so that other programs can
  3710.           make use of the time taken from the idle program.  You allow an idle period for a
  3711.           program, such as a game, that waits a brief time after prompting for your input but
  3712.           continues activity if you do not respond.  If a program appears to run slowly when waiting
  3713.           for input, increase the value in this field. 
  3714.         The default value is 0 seconds.  When IDLE_SECONDS is set to 0, the operating
  3715.           system immediately applies idle detection processing after a program prompts you for
  3716.           input. 
  3717.         You can change the setting for this session at any time. 
  3718.         This setting works with the IDLE_SENSITIVITY setting to help control polling DOS
  3719.           applications.  
  3720.         You can increase this value if you have an application that waits for input or at a
  3721.           prompt (like a game).
  3722.         Some programs periodically appear to be waiting for input, but then change their
  3723.           behavior and continue after a time. This setting disables the IDLE_SENSITIVITY function
  3724.           for a period of time after useful work has been detected. See also IDLE_SENSITIVITY
  3725.           below for more details on idle detection.
  3726.         If a program appears to run slowly when there is an option for the user to provide
  3727.           input, this value should be increased.
  3728.         Setting the value too high gives the DOS program more resources than it needs.
  3729.         A game might pause, for example, to wait for the user to make a choice, but then
  3730.           continues if the user does not react.
  3731.   
  3732.   IDLE_SENSITIVITY
  3733.   Specifies a threshold for judging when an application is considered idle.
  3734.      
  3735.      TIP:
  3736.         Use IDLE_SENSITIVITY if you want to specify a threshold for judging when a
  3737.           program is doing nothing but waiting for input.  The value in this field is a percentage of
  3738.           the maximum frequency with which a program repeatedly checks, or polls, for input.  To
  3739.           change the threshold, drag the box, select a button, or type into the entry field. 
  3740.         If a program polls at a rate greater than the percentage specified in this field, the
  3741.           program is likely to be idle, so the operating system reduces the amount of processor time
  3742.           allocated to the session.  By selecting a value in this field, you prevent the operating
  3743.           system from applying idle detection until the program reaches a percentage of this
  3744.           predetermined maximum. 
  3745.         Increase the percentage if your program can receive input while running and seems to
  3746.           run slower than you expect.  If you select 100 in this field, you turn idle detection off, and
  3747.           the program can poll as often as necessary without operating system intervention. 
  3748.         The default value is 75 (percent). 
  3749.         You can change the setting for this session at any time.
  3750.         Increase the percentage if the application can receive input while running and seems to
  3751.           run more slowly than expected.  Selecting 100 in this field turns idle detection off, and the
  3752.           application can poll as often as necessary without operating system intervention.
  3753.         Be aware that polling applications are detected quicker on fast systems than on slower
  3754.           systems.  This means that the value on different speed systems must vary -- decrease the
  3755.           value on faster systems.  Example: If a polling DOS application with idle_sensitivity set to
  3756.           50 on a 33 Mhz CPU is detected as exceeding the threshold and forced to yield its
  3757.           timeslice by OS/2, it may not be detected as exceeding the threshold on a 16 Mhz system
  3758.           with the same idle-sensitivity value.  The 16 Mhz system will need to set a lower value
  3759.           before OS/2 will consider the same application as exceeding the threshold and cause a
  3760.           yield.
  3761.         DOS programs often "poll" for input when they are waiting for a user response. For
  3762.           example, a program might wait for a response by repeatedly checking to see if the user has
  3763.           pressed a key. In a multitasking environment such as OS/2 2.x, this wastes time when other
  3764.           programs could be running instead. The operating system detects idle programs by looking
  3765.           for a high rate of polling for input. When programs are judged to be waiting for input, they
  3766.           are given less time to run.  For example, if idle sensitivity is set to 75%, an application
  3767.           repeatedly checking to see if input is available would have to do this checking at more than
  3768.           75% of the maximum possible rate before it would be judged idle. Idle detection is a "best
  3769.           guess" of what the program is doing. It could be that the program is polling at a very high
  3770.           rate, but is still doing useful work in between checking. It might be that the application
  3771.           checks at a fairly slow rate but still is doing nothing but waiting. The idle sensitivity
  3772.           threshold allows adjustment of the threshold for a particular application. Also see
  3773.           IDLE_SECONDS.
  3774.         If an application receives input while running, and seems to run slower than expected,
  3775.           the idle sensitivity should be set to a higher value. This lets the application poll at a higher
  3776.           rate without being judged idle. Setting the level to 100 turns idle detection off altogether.
  3777.           The application will be allowed to poll for input as often as it likes. If an application is
  3778.           waiting for input and other applications do not appear to be running, the idle sensitivity
  3779.           should be adjusted downward. This lowers the threshold for judging the application idle.
  3780.   
  3781.   INT_DURING_IO
  3782.   This setting allows interrupts to be handled during file I/O. When set to on, this creates a second thread
  3783.   for the application to use for interrupt handling when the primary thread is busy with I/O operations.
  3784.      
  3785.      TIP:
  3786.         Use INT_DURING_IO (Interrupt During I/O) to enable or disable interrupts during
  3787.           disk read and write operations. Select the On radio button to allow interrupts during disk
  3788.           I/O.  This allows programs to receive interrupts while waiting for the completion of the
  3789.           disk request.  Many multimedia programs need interrupts during disk read and write
  3790.           operations.  For example, while running Linkway programs on CD-ROM. 
  3791.         When this setting is set to Off, interrupts will be disabled until disk I/O is complete. 
  3792.           The default setting is Off. 
  3793.         You must change this setting before starting the session. 
  3794.         This setting is primarily designed for multimedia applications and should be turned on
  3795.           when running a multimedia application, MSCDEX applications, and many games.
  3796.         Creates extra overhead on the system for processing and memory requirements, and
  3797.           can cause degradation of performance for other applications.
  3798.         Unless your application is interrupt-sensitive, leave this setting Off.
  3799.   
  3800.   SESSION_PRIORITY 
  3801.   This setting allows you to set priority level for the execution of your application.
  3802.      
  3803.      TIP:
  3804.         Selecting SESSION_PRIORITY enables you to increase the priority of separate WIN-
  3805.           OS/2 sessions.  Change the value of priority either by entering a new value or by using the
  3806.           left or right arrows.  The setting ranges from 0 to 31 in increments of 1 with a default
  3807.           setting of 0. 
  3808.         SESSION_PRIORITY cannot be reset from within a WIN-OS/2 session.  To change
  3809.           this setting, you must end the WIN-OS/2 session, reset this setting, and restart the WIN-
  3810.           OS/2  session. 
  3811.   
  3812.   Memory Settings
  3813.   The following list contains the available memory settings that you can change to affect the performance
  3814.   of DOS applications..
  3815.         DOS_HIGH 
  3816.         DOS_RMSIZE (DOS memory size) 
  3817.         DOS_UMB (DOS owns UMBs) 
  3818.         DPMI_DOS_API (DOS API translation) 
  3819.         DPMI_MEMORY_LIMIT 
  3820.         DPMI_NETWORK_BUFF_SIZE 
  3821.         EMS_HIGH_OS_MAP_REGION 
  3822.         EMS_LOW_OS_MAP_REGION 
  3823.         EMS_MEMORY_LIMIT 
  3824.         EMS_FRAME_LOCATION 
  3825.         MEM_EXCLUDE_REGIONS 
  3826.         MEM_INCLUDE_REGIONS 
  3827.         XMS_HANDLES 
  3828.         XMS_MEMORY_LIMIT 
  3829.         XMS_MINIMUM_HMA 
  3830.   
  3831.   DOS_HIGH
  3832.   Use DOS_HIGH to load DOS outside the 640K low memory address space.
  3833.      
  3834.      NOTE:
  3835.         Select DOS_HIGH (Load DOS high); then select the Off radio button if your program
  3836.           requires that DOS is located below the 640KB address of DOS session memory.  Selecting
  3837.           Off is similar to the statement to DOS=LOW. 
  3838.         The default value for this setting is On, making all of the memory area from address 0
  3839.           to address 640KB available to user programs. 
  3840.         You must change this setting before starting the session. 
  3841.   
  3842.      TIP:
  3843.      Loading DOS into high memory allows more available memory for application code and data
  3844.        within the 640KB address space.
  3845.      
  3846.   DOS_RMSIZE
  3847.   Defines the amount of conventional memory available to WIN-OS/2.  
  3848.   
  3849.      NOTE:
  3850.         Use DOS_RMSIZE (DOS memory size) if you want to change the amount of memory
  3851.           available to DOS programs running in this session.  The field for this setting shows the
  3852.           amount of memory, in kilobytes (KB), that a DOS program has for its use.  Values range
  3853.           from 128 to 640.  If you want to decrease the amount of memory available to DOS
  3854.           programs running in this session, drag the box, select a button, or type into the entry field. 
  3855.         The maximum value, 640, is the default.
  3856.         You must change this setting before starting the session. 
  3857.   
  3858.      TIP:
  3859.         This setting is used to decrease the amount of available memory to less than 640 KB. 
  3860.           Do not decrease this value for WIN-OS/2 sessions.
  3861.         Decrease the amount of program memory if your video adapter requires some of the
  3862.           640KB normally allocated to programs, or if your program cannot run properly in an area
  3863.           of memory only as large as 640KB. 
  3864.   
  3865.   DOS_UMB
  3866.   Allows DOS TSRs and devices to control the upper memory blocks (UMBs).
  3867.   
  3868.      NOTE:
  3869.         Select DOS_UMB (DOS owns UMBs); then select the Off radio button when required
  3870.           to give ownership of upper memory blocks (UMBs) to certain types of terminate-stay-
  3871.           resident (TSR) programs and DOS device drivers. 
  3872.         Memory addresses from 640KB to 1MB can be divided into UMBs of 16KB or more. 
  3873.           When TSR programs and device drivers reside in UMBs, your other DOS programs can
  3874.           use all of memory address area 0 to 640KB.  The DOS kernel normally owns UMBs and
  3875.           manages the loading of TSR programs and device drivers into a UMB using the
  3876.           DEVICEHIGH= and LOADHIGH= statements in your DOS CONFIG.SYS file.  Some
  3877.           programs capable of loading into a UMB must own and manage the UMB.  Change this
  3878.           setting to Off for a DOS session if you want to run a program that must own a UMB in
  3879.           that session. 
  3880.         The default value for this setting is On. 
  3881.         You must change this setting before starting the session. 
  3882.   
  3883.   DPMI_DOS_API
  3884.   Allows you to control whether DOS API translation is enabled for DPMI applications in this session.
  3885.      
  3886.      NOTE:
  3887.         Select DPMI_DOS_API (DOS API Translation) if your program can use the DPMI
  3888.           (DOS Protected Mode Interface).  The field for this setting contains a list, and the selection
  3889.           you make in this list determines whether requests for DOS system services are translated
  3890.           by the system or by your DOS program. Translating means changing the memory address
  3891.           of the initial request from above 1MB (protected mode memory) to below it (real mode
  3892.           memory) where DOS can access and fill the request. 
  3893.                Select AUTO if some of your programs already perform this translation.  You
  3894.             can identify a program that translates between upper memory and the lower 1MB by
  3895.             documentation stating that the program comes with a DOS extender based on the
  3896.             DPMI specification. 
  3897.           Select ENABLED if you use programs that expect the operating system to
  3898.             perform the translation.  An example of a program that relies on the operating system
  3899.             to translate is a program written for Windows. 
  3900.           Select DISABLED if your programs do not use DPMI. 
  3901.         The default value is Program-selectable. 
  3902.         You must change this setting before starting the session. 
  3903.   
  3904.   DPMI_MEMORY_LIMIT 
  3905.   This setting allows you to specify the amount of DPMI memory, in megabytes, available for DOS
  3906.   session.
  3907.      
  3908.      NOTE:
  3909.         Use DPMI_MEMORY_LIMIT to define the amount of DPMI (DOS Protected
  3910.           Memory Interface) available to the DOS session.  The field for this setting contains values
  3911.           expressed in 1 megabyte (MB) intervals, ranging from 0 to 512MB.  To change the value,
  3912.           drag the box, select a button, or type into the entry field.  This setting enables you to
  3913.           specify the amount of DPMI memory needed for your DOS programs, on a per-session
  3914.           basis. 
  3915.         Select 0 if your DOS program does not use DPMI. 
  3916.         The default value is 16 (MB). However, the value set by the installation program is
  3917.           64. Increasing this setting for a WIN-OS/2 session enables more programs to run in this
  3918.           session. 
  3919.         A Windows application may not be able to start or would exhibit poor performance
  3920.           behavior if it doesn't have enough DPMI memory. For Win32s applications, make sure you
  3921.           have the DPMI_MEORY_LIMIT set to at least 64. Paradox 7 and AutoCAD 13 will need
  3922.           128MB of DPMI memory to run satisfactorily.  
  3923.         You must change this setting before starting the session. 
  3924.   
  3925.   DPMI_NETWORK_BUFF_SIZE
  3926.   Use this setting to control the size, in kilobytes (KB), of the network translation buffer for DPMI
  3927.   programs in this session.  
  3928.      
  3929.      NOTE:
  3930.         The default value is 8 KB. The range is from 1 to 64 KB. 
  3931.         This setting allows you to configure the size of the translation buffer for DPMI
  3932.           programs, for example, Windows programs that transfer data over a network.  If a
  3933.           network-specific Windows program does not run correctly under OS/2, increase this
  3934.           setting, then restart the session. 
  3935.         You must change this setting before starting the session. 
  3936.   
  3937.   EMS_FRAME_LOCATION
  3938.   Use EMS_FRAME_LOCATION to change the location of the Lotus/Intel/ Microsoft Expanded Memory
  3939.   Specification (LIM EMS) expanded-memory region.  Select the arrow to the right of the list to see all
  3940.   the choices. 
  3941.      
  3942.      NOTE:
  3943.         Use this setting if your DOS session addresses a device that requires an area of
  3944.           memory within an automatically determined expanded-memory region.  If you have a
  3945.           problem running a program that takes advantage of LIM EMS, change the
  3946.           EMS_HIGH_OS_MAP_REGION DOS setting to 0, then run your program.  If the problem
  3947.           continues, change this EMS_FRAME_LOCATION value. 
  3948.         Select NONE if you want to turn off the high EMS range.  The default is AUTO,
  3949.           which enables the session to locate expanded memory automatically. 
  3950.         You must change this setting before starting the session. 
  3951.   
  3952.   EMS_HIGH_OS_MAP_REGION
  3953.   This setting allows you to adjust the size of an additional EMS region.
  3954.      
  3955.      NOTE:
  3956.         Use EMS_HIGH_OS_MAP_REGION to select an amount of memory that a DOS
  3957.           program can add to the 64KB expanded-memory region accessed by Lotus/ Intel/ Microsoft
  3958.           Expanded Memory Specification (LIM EMS).  The field for this setting contains values in
  3959.           kilobytes units, ranging from 0 to 96
  3960.         To change the value, drag the box, select a button, or type into the entry field. 
  3961.         If you select values for the MEM_EXCLUDE_REGIONS and
  3962.           MEM_INCLUDE_REGIONS settings to avoid a conflict with addresses used by devices,
  3963.           you can set this EMS_HIGH_OS_MAP_REGION to an area that accommodates both your
  3964.           program and the device. 
  3965.         To resolve an expanded-memory address conflict with a device, set
  3966.           MS_HIGH_OS_MAP_REGION to 0. 
  3967.         The default value is 32. 
  3968.         You must change this setting before starting the session. 
  3969.   
  3970.   EMS_LOW_OS_MAP_REGION
  3971.   This setting allows you to use and to set the size of the remappable conventional memory.
  3972.      
  3973.      NOTE:
  3974.         Use EMS_LOW_OS_MAP_REGION to select an amount of re-mappable conventional
  3975.           memory.  This setting affects only DOS programs capable of remapping conventional
  3976.           memory.  The field for this setting contains values in kilobytes (KB) units, ranging from 0
  3977.           to 576.  To change the value, drag the box, select a button, or type into the entry field. 
  3978.         The default value is 384. 
  3979.         You must change this setting before starting the session. 
  3980.   
  3981.   EMS_MEMORY_LIMIT
  3982.   This setting allows you adjust the amount of EMS memory. 
  3983.   
  3984.      NOTE:
  3985.         Use EMS_MEMORY_LIMIT to define the amount of EMS (Expanded Memory
  3986.           Specification) available to the DOS session.  The field for this setting contains values
  3987.           expressed in 16-kilobyte (KB) units, ranging from 0 to 32768.  To change the value, drag
  3988.           the box, select a button, or type into the entry field. 
  3989.         Select 0 if your program cannot use EMS.  Select a value higher than the default for a
  3990.           program that requires a large amount of expanded memory. This setting enables you to
  3991.           limit the amount of EMS that a program reserves, which prevents a program from
  3992.           allocating more memory than necessary.  The system does not reserve any EMS for a
  3993.           program until that program requests EMS. 
  3994.         The default value is 2048. 
  3995.         You must change this setting before starting the session. 
  3996.   
  3997.   MEM_EXCLUDE_REGIONS
  3998.   This setting allows you to specify regions that EMS/XMS cannot use.
  3999.      
  4000.      NOTE:
  4001.         Use MEM_EXCLUDE_REGIONS to fill in any regions any regions between memory
  4002.           addresses 640KB and 1MB that you want to force the system to map to physical memory
  4003.           at the same address. EMS (Expanded Memory Specification), XMS (eXtended Memory
  4004.           Specification), or a copy of a ROM (read-only memory) program cannot use the areas you
  4005.           exclude.  Type addresses as hexadecimal numbers.  You can specify a range of memory, or
  4006.           you can supply a single address for the beginning address for a 4KB region. If you want to
  4007.           exclude several regions, separate them with commas.  For example: 
  4008.           C0000,D0000-D8000
  4009.         By default, this field is empty. 
  4010.         You must change this setting before starting the session. 
  4011.   
  4012.   MEM_INCLUDE_REGIONS
  4013.   This setting allows you to specify regions that EMS/XMS can use between RMSIZE and 1 MB..
  4014.      
  4015.      NOTE:
  4016.         Use MEM_INCLUDE_REGIONS to fill in any areas between memory addresses
  4017.           640KB and 1MB that you want to designate for EMS (Expanded Memory Specification),
  4018.           XMS (eXtended Memory Specification), or a copy of a ROM (read-only memory)
  4019.           program.  Type addresses as hexadecimal numbers.  You can specify a range of memory,
  4020.           or you can supply a single address for the beginning address for a 4KB region. If you want
  4021.           to include several regions, separate them with commas.  For example: 
  4022.           C0000,D0000-D7FFF
  4023.         The include region D0000-D8000 will include the entire memory area between D8000
  4024.           and D8FFF. 
  4025.         Assign addresses to the include region when you know your DOS session does not use
  4026.           device drivers or hardware adapters that use memory between 640KB and 1MB. Including
  4027.           regions can improve the performance of programs that use EMS or XMS memory. 
  4028.         By default, this field is empty. 
  4029.         You must change this setting before starting the session. 
  4030.   
  4031.   XMS_HANDLES
  4032.   This setting allows you to adjust the number of handles for XMS usage. 
  4033.      
  4034.      NOTE:
  4035.         Use XMS_HANDLES to change the number of XMS (eXtended Memory
  4036.           Specification) handles set aside for use by the DOS session.  The field for this setting
  4037.           contains values ranging from 0 to 128 (handles).  To change the value, drag the box, select
  4038.           a button, or type into the entry field. 
  4039.         Each XMS block has a handle (a unique number) associated with it, and the XMS
  4040.           facility allocates memory space to hold the quantity of handle numbers you specify.  Use
  4041.           this setting to limit the reserved spaces.  You can increase the value in this field if you
  4042.           expect your program to require a large number of handles.  Setting aside space for a large
  4043.           number of handles may slow your system. 
  4044.         The default value is 32. 
  4045.         You must change this setting before starting the session. 
  4046.      
  4047.   XMS_MEMORY_LIMIT
  4048.   This setting allows you to adjust the amount of XMS memory available.
  4049.      
  4050.      NOTE:
  4051.         Use XMS_MEMORY_LIMIT to specify the amount of memory any one DOS session
  4052.           can allocate to XMS (eXtended Memory Specification).  The field for this setting contains
  4053.           values in kilobyte (KB) units, ranging from 0 to 16384.  The value 16384KB is equivalent
  4054.           to 16 megabytes (MB).  To change the value, drag the box, select a button, or type into the
  4055.           entry field. 
  4056.         Specifying a large number for either the global or the per-session extended-memory
  4057.           limit can slow your system. 
  4058.         The default value is 2048. 
  4059.         You must change this setting before starting the session. 
  4060.   
  4061.   XMS_MINIMUM_HMA 
  4062.   This setting allows you to adjust the minimum allocation size of the High Memory Area (HMA).
  4063.      
  4064.      NOTE:
  4065.         Use XMS_MINIMUM_HMA to change the minimum of high memory area (HMA)
  4066.           available for use as conventional memory.  The field for this setting contains values in
  4067.           kilobyte (KB) units, ranging from 0 to 63.  To change the value, drag the box, select a
  4068.           button, or type into the entry field. 
  4069.         Only one program per session can use HMA.  You can use this setting to adjust the
  4070.           size of the minimum memory allocated to HMA.  This prevents a small program from
  4071.           allocating HMA and wasting any area between the program size and the HMA maximum
  4072.           of slightly less than 64KB. 
  4073.         Only a real-mode program can use HMA as conventional memory.  If your program
  4074.           can run in the protected mode specified by DPMI (DOS Protected Mode Interface), you do
  4075.           not need this setting. 
  4076.         The default value is 0, or no minimum, which causes the system to assign the entire
  4077.           HMA area to the first program requesting HMA. 
  4078.         You must change this setting before starting the session. 
  4079.   
  4080.   6.3.5  Video settings
  4081.   
  4082.   For a DOS or Win-OS2 session, OS/2 provides the following available video settings.
  4083.         VIDEO_8514A_XGA_IOTRAP 
  4084.         VIDEO_FASTPASTE 
  4085.         VIDEO_MODE_RESTRICTION 
  4086.         VIDEO_ONDEMAND_MEMORY (On-demand memory allocation) 
  4087.         VIDEO_RETRACE_EMULATION 
  4088.         VIDEO_ROM_EMULATION 
  4089.         VIDEO_SWITCH_NOTIFICATION (Screen-switch notification) 
  4090.         VIDEO_WINDOW_REFRESH (Window refresh interval) 
  4091.   
  4092.   VIDEO_8514A_XGA_IOTRAP
  4093.   This setting is used to directly access the Model 9514/A or XGA video mode. 
  4094.      
  4095.      TIP:
  4096.         Select VIDEO_8514A_XGA_IOTRAP; then select the Off radio button if you
  4097.           want your DOS program to access the model 8514/A or XGA (extended graphics array)
  4098.           video directly. If you select Off, your program might run faster, and you release the 1
  4099.           megabyte (1MB) of memory allocated to saving video information in a DOS session.
  4100.           Certain operations such as painting a dithered background will run faster when settin if
  4101.           Off. 
  4102.         If you have this setting Off and you switch from your 8514/A or XGA program, the
  4103.           screen  image might not be correct when you return to the program.  To correct this
  4104.           problem, set the VIDEO_SWITCH_NOTIFICATION (Screen-switch notification) DOS
  4105.           setting to On. This notifies your DOS program to redraw the screen. 
  4106.         When VIDEO_8514A_XGA_IOTRAP is set to Off, you cannot copy information from
  4107.           that session to the system clipboard, nor can you view the program from a window. 
  4108.         The default value is On to ensure that the screen image is restored on a screen switch. 
  4109.         You must change this setting before starting the session. 
  4110.         Set this to ON for all WIN-OS/2 sessions that run in 8514 or XGA video modes.
  4111.   
  4112.   VIDEO_FASTPASTE 
  4113.   This setting is use to increase the speed of input other than the keyboard (e.g., character Cut and Paste
  4114.   transfers).  
  4115.      
  4116.      TIP:
  4117.         Use VIDEO_FASTPASTE (Fast paste); then select the On radio button if you want to
  4118.           increase the speed of character Cut and Paste transfers between the clipboard and a DOS
  4119.           session. 
  4120.         This setting does not work with programs that monitor keyboard interrupts directly. 
  4121.           Further, if you use a program that re-buffers keystrokes internally, that internal buffer can
  4122.           overflow because of a large quantity of paste-transferred characters. 
  4123.         The default value is Off. 
  4124.         You can change the setting for this session at any time. 
  4125.         Pasting into the DOS command prompt, or any application using DOS Console I/O
  4126.           functions, generally works. However, the Microsoft Editor (M) and its successor,
  4127.           Programmer's Workbench (PWB), can fail when using fast pasting, because they rebuffer
  4128.           keystrokes in an internal buffer, which can overflow.
  4129.   
  4130.   VIDEO_MODE_RESTRICTION
  4131.   This setting extends DOS conventional memory  beyond the 640 KB address space by limiting the video
  4132.   mode support to text or CGA graphics. 
  4133.      
  4134.      TIP:
  4135.         Use VIDEO_MODE_RESTRICTION if you want to remap as user ( conventional)
  4136.           memory the non-visible portion of video memory (beyond address 640KB) for a program
  4137.           that displays only text or low-resolution graphics, such as those produced by a CGA (color
  4138.           graphics adapter). The field for this setting contains a list.  Select the arrow to the right of
  4139.           the list to see all the choices.
  4140.         Selecting CGA (for a program that is text-only or uses low-resolution graphics) adds
  4141.           96 kilobytes (KB) to program memory space.  Selecting MONO (for a program that uses
  4142.           monochrome text) adds 64KB to program memory space. This is valuable for applications
  4143.           that do not take advantage of EMS or XMS memory extenders.
  4144.         The DOS_RMSIZE (DOS memory size) setting (RMSIZE) must equal 640KB. 
  4145.      
  4146.           WARNING:
  4147.           Do not use this setting for a program that enables video modes with higher than CGA
  4148.             or MONO resolutions.  If you use this setting, a program that enables higher resolution
  4149.             video modes might change program data placed in the remapped area beyond the
  4150.             address 640KB. 
  4151.      
  4152.         The default value is NONE. 
  4153.         You must change this setting before starting the session. 
  4154.      
  4155.   VIDEO_ONDEMAND_MEMORY
  4156.   This setting delays allocation of a video-save buffer which can free memory swap space for use by  full
  4157.   screen session. 
  4158.      
  4159.      TIP:
  4160.         Select VIDEO_ONDEMAND_MEMORY  (On-demand memory allocation); then
  4161.           select the Off radio button if you want to ensure that a full-screen session operates in the
  4162.           highest resolution video modes. 
  4163.         When you switch from a full-screen session, the system saves the full-screen video
  4164.           image in a reserved area of memory.  Selecting Off causes the system to reserve the
  4165.           memory space for saving a video image at the start of a program, rather than at the time of
  4166.           the screen switch.  Selecting Off might prevent a program from failing for lack of
  4167.           sufficient memory to save a high-resolution, full-screen image at the time you switch from
  4168.           the full-screen view. 
  4169.         The default value is On, which (1) causes the system to reserve this memory space for
  4170.           saving the video image at the time you switch from full-screen, (2) enables you to start a
  4171.           program quickly, and (3) frees memory space for other programs. 
  4172.         Selecting ON allows a full screen DOS session to run without pre-allocating a virtual
  4173.           video buffer for high-resolution graphics modes.  Using this setting does not prevent
  4174.           execution of graphics application.  It means that allocation of the buffer is delayed until it
  4175.           is needed.  This can save a substantial amount of memory/swap space, which might be
  4176.           important under certain low-memory conditions.  It also enables you to start a program
  4177.           quickly
  4178.         You can change the setting for this session at any time. 
  4179.         This setting reduces swap space requirements for full screen DOS sessions
  4180.         If the allocation of a virtual video buffer for a full screen DOS session fails at the time
  4181.           the application changes video modes, the sessions will be frozen and you must switch back
  4182.           to the shell to free memory.  Unless you are able to free memory from another session,
  4183.           you may be unable to get the DOS application running again.  This is a concern if the
  4184.           application contains unsaved data.
  4185.   
  4186.   VIDEO_RETRACE_EMULATION
  4187.   This setting allows simulation of video retrace status port to provide faster access which improves text
  4188.   scrolling speed.
  4189.      
  4190.      TIP:
  4191.         Select VIDEO_RETRACE_EMULATION; then select the Off radio button if you want
  4192.           to disable frequent video retrace.  When this setting is Off, retrace occurs only at the
  4193.           interval specific to the video mode of the running DOS program. 
  4194.         DOS applications that poll the video retrace status port often write to the screen only
  4195.           during the retrace interval, even though it is safe (on EGA and VGA adapters) to draw at
  4196.           any time without causing interference (also known as "snow"). This feature causes most
  4197.           applications to write to the screen more often, and compensates for the performance drag
  4198.           imposed by monitoring the port in the first place.
  4199.         A few DOS programs run slower with VIDEO_RETRACE_EMULATION set to On. 
  4200.           Changing this setting to Off increases the performance, but screen-switching is not as
  4201.           reliable.  During screen-switching, the program palette may not be restored correctly; this
  4202.           may result in a blank screen. 
  4203.         The default value is Off. 
  4204.         You can change the setting for this session at any time. 
  4205.         Set Off for games and  graphics applications.
  4206.         This setting controls the frequency of video retrace.
  4207.         A few DOS applications run more slowly with this setting set to ON.
  4208.         When set to off, retrace occurs only at the interval specific to the video mode of the
  4209.           running DOS application.
  4210.   
  4211.   VIDEO_ROM_EMULATION 
  4212.   This setting emulates text based video ROM functions (INT 10h ) for performance and codepage
  4213.   support.
  4214.      
  4215.      TIP:
  4216.         Use VIDEO_ROM_EMULATION; then select the Off radio button if you want to
  4217.           disable the emulation (in text mode) of these common video functions:  WriteChar,
  4218.           WriteTTY, and full-screen Scroll. Select Off if your video read-only-memory (ROM)
  4219.           provides enhancements to these functions. 
  4220.         The default value is On, Because the INT 10h ROM Video services are well
  4221.           documented, incompatibilities are unlikely, and the performance benefits of using the
  4222.           emulation are quite significant.
  4223.         You can change the setting for this session at any time. 
  4224.         Provides faster output for selected video functions than ROM services typically
  4225.           provide. This also has a dramatic effect on the performance of those functions in a
  4226.           window.
  4227.         Some ROM might offer enhanced services that are not included in the emulation.
  4228.           Applications that rely on these services might not run correctly.
  4229.      
  4230.   VIDEO_SWITCH_NOTIFICATION
  4231.   This setting notifies the DOS program when the session switches to or from a full screen VDM session.
  4232.      
  4233.      TIP:
  4234.         Select VIDEO_SWITCH_NOTIFICATION (Screen-switch notification); then select the
  4235.           On radio button if you want to notify a DOS program about a switch between background
  4236.           and foreground. If you select On, programs that monitor screen-switching will save or
  4237.           redraw the screen on a screen-switch. 
  4238.         Select On if the OS/2 video driver does not support all the features offered by your
  4239.           video adapter and used by your DOS programs. This setting allows applications that
  4240.           monitor this notification to redraw their screens as needed. This might be necessary for
  4241.           some video adapters that provide modes (and applications that use those modes) that are
  4242.           not fully supported by the OS/2 video driver or are slightly incompatible. It also is valuable
  4243.           in situations where an OS/2 video driver has not allocated a virtual video buffer (see
  4244.           VIDEO_8514_XGA_IOTRAP). 
  4245.         Use this setting if you use the VIDEO_ONDEMAND_MEMORY  (On-demand
  4246.           memory allocation) DOS setting, because concurrent buffer allocation and screen switching
  4247.           can make the screen go blank.  For WIN-OS/2 sessions, set this setting to On. 
  4248.         For standard monochrome, CGA (color graphics adapter), EGA (enhanced graphics
  4249.           adapter), and VGA (video graphics adapter) video modes, the OS/2 video driver should
  4250.           perform adequately with this setting at Off.  If you find your program redraws too often
  4251.           with this setting on, select Off. 
  4252.         The default value is Off, because most standard video modes do not use screen-switch
  4253.           notification. 
  4254.         You can change the setting for this session at any time. 
  4255.         WIN-OS/2 understands this notification and will redraw the screen when the screen is
  4256.           switched.  For  WIN-OS/2 sessions, set the setting to ON.
  4257.         This setting must be ON if the VIDEO_8514A_XGA_IOTRAP is set OFF
  4258.   
  4259.   VIDEO_WINDOW_REFRESH 
  4260.   This setting adjusts the window update frequency for a specific DOS session. 
  4261.      
  4262.      TIP:
  4263.         Use VIDEO_WINDOW_REFRESH to adjust the time that elapses before a window is
  4264.           redrawn.  The values range from 0.1 second to 60.0 seconds (1 minute). To change the
  4265.           value, drag the box, select a button, or type into the entry field. 
  4266.         Increase the value, thereby increasing the delay between screen redraws, if you run a
  4267.           program (such as a graphic program) that writes frequently to video memory.  Increasing
  4268.           the delay between each write to video memory frees the processor for other program tasks. 
  4269.           Reduce the value if you find the program hard to use or because you prefer more frequent
  4270.           screen image updating.  This setting does not change the rate of scrolling, keyboard input
  4271.           display, or any video events other than refresh. 
  4272.         To test the effect of changing the value for this setting, test the text output from a
  4273.           DOS DIR or TYPE command before and after adjusting the setting. 
  4274.         The default value is 0.1, which represents the interval between window updates. 
  4275.         You can change the setting for this session at any time. 
  4276.         A large refresh period can make an application unusable (or at least, very hard to use).
  4277.   
  4278.   6.3.6  Mouse and touch-sensitive settings
  4279.   
  4280.   The following list contains the available mouse and touch-sensitive screen settings.
  4281.         MOUSE_EXCLUSIVE_ACCESS 
  4282.         TOUCH_EXCLUSIVE_ACCESS 
  4283.   
  4284.   MOUSE_EXCLUSIVE_ACCESS 
  4285.   Allows VDMs to run applications that maintain their own mouse pointers. Some DOS applications
  4286.   manage their own mouse positions and movements; in many cases, the application's values for mouse
  4287.   sensitivity and/or double-speed threshold are different from those of Presentation Manager. As a result, a
  4288.   Presentation Manager mouse pointer might be outside the VDM window while the application pointer is
  4289.   somewhere in the window not receiving any mouse events. This means having two asynchronous mouse
  4290.   pointers on the screen.
  4291.      
  4292.      TIP:
  4293.         Select MOUSE_EXCLUSIVE_ACCESS; then select the On radio button if you use a
  4294.           program that manages its own mouse positions, setting mouse sensitivity and mouse
  4295.           tracking speed separately from Presentation Manager mouse settings.  For example, use
  4296.           MOUSE_EXCLUSIVE_ACCESS and select On if your screen displays two
  4297.           unsynchronized mouse pointers, one in the DOS session, and one in a Presentation
  4298.           Manager session or on the Desktop. 
  4299.         After you select On, you must press a mouse button inside the DOS session to delete
  4300.           the Presentation Manager pointer.  Press Alt, Ctrl+Esc, or Shift+Esc to display the
  4301.           Presentation Manager pointer again. 
  4302.         You force the physical mouse driver to send its events directly to the virtual mouse
  4303.           driver without going through Presentation Manager. Only one mouse pointer appears when
  4304.           the particular VDM window has the focus
  4305.         The default value is Off. 
  4306.         You can change the setting for this session at any time. However, this only marks the
  4307.           VDM window and does not actually activate the setting. To activate it, press a mouse
  4308.           button in the VDM window.The Presentation Manager pointer disappears, leaving only the
  4309.           application pointer. To regain the Presentation Manager pointer, press any of the hot keys
  4310.           (Alt, Ctrl+Esc, Shift+Esc).
  4311.         Examples:   WordPerfect 5.1 has its own block-shaped mouse pointer that appears
  4312.           together with the system mouse pointer when the window has the focus. Turning
  4313.           MOUSE_EXCLUSIVE_ACCESS on allows the user to remove the system mouse pointer
  4314.           when in WordPerfect.
  4315.   
  4316.   TOUCH_EXCLUSIVE_ACCESS
  4317.      
  4318.      TIP:
  4319.         Select TOUCH_EXCLUSIVE_ACCESS; then select the On radio button if a program
  4320.           you run in a DOS Window does not respond properly when you touch a touch-sensitive
  4321.           display (such as the IBM PS/2 Touch Display, Model 8516) that is connected to the mouse
  4322.           adapter of an IBM Personal System/2. For example, if a drawing program does not draw
  4323.           lines when you move your finger across the display screen, you use
  4324.           TOUCH_EXCLUSIVE_ACCESS and select On.  You do not need this setting for a
  4325.           program running in a DOS full screen session. 
  4326.         When this setting is On, the DOS program reads your position in any area of the
  4327.           screen you touch.  For example, if you touch the upper-left corner of the screen, the
  4328.           program reacts as though you are touching the upper-left corner of the window.  To have
  4329.           the place you touch match the position you want to touch in the window, make the window
  4330.           the same size as the screen. 
  4331.         The default value is Off. 
  4332.         You can change the setting for this session at any time. 
  4333.   
  4334.   6.3.7  Settings affecting communications applications
  4335.   
  4336.   The following settings will affect the performance of Communications applications.
  4337.         COM_DIRECT_ACCESS
  4338.         COM_HOLD
  4339.         COM_RECEIVE_BUFFER_FLUSH
  4340.         COM_SELECT
  4341.         HW_ROM_TO_RAM
  4342.         HW_TIMER
  4343.   
  4344.   COM_DIRECT_ACCESS
  4345.   When set on, VCOM.SYS allows direct access to the COM ports.
  4346.      TIP:
  4347.         Use COM_DIRECT_ACCESS (COM direct access) to give a program direct hardware
  4348.           access for COM ports.  Select the On radio button to track which COM port the DOS
  4349.           session is using.  The default is Off, which disables direct access to a COM port. 
  4350.         You must change this setting before starting the session. 
  4351.         Programs that need direct access, such as AS/400 Asynch Router, FastLynx, FSDUAT,
  4352.           and MS Word will now work.
  4353.         Buffers in COM.SYS cannot be used. Characters might be lost, and some applications
  4354.           might suffer from the lack of buffering.
  4355.         The default is Off.
  4356.   
  4357.   COM_HOLD
  4358.   When set on, provides exclusive access to COM ports for the specified VDM, preventing other
  4359.   processes from using the port and preventing the operating system from releasing the port until the
  4360.   VDM terminates.
  4361.      
  4362.      TIP:
  4363.         Select COM_HOLD (Hold COM resource); then select the On radio button if you
  4364.           want to give exclusive use of a particular communications port (for example, COM1) to
  4365.           your DOS session.  Selecting On prevents other sessions from using the same COM port
  4366.           until you end the DOS session.  It also enables the DOS session using the COM port to
  4367.           access data files on your disk or diskette. 
  4368.         When this setting is Off, the operating system releases the COM port as soon as the
  4369.           program using it ends, even if the DOS session from which you access the port is still
  4370.           active.  Some DOS communications functions, such as accessing a computerized bulletin
  4371.           board, require two programs -one that dials the bulletin board, and one that enables you to
  4372.           exchange information with the bulletin board computer.  Select On if your system
  4373.           sometimes disconnects a dialed connection from a DOS session.  For example, select On if
  4374.           you have difficulty maintaining communication between a DOS program and a bulletin
  4375.           board.  The default value is Off. 
  4376.         You must change this setting before starting the session. 
  4377.         If not required by the application running in a VDM, this setting might prevent their
  4378.           applications from accessing COM ports.
  4379.         The default setting is Off.
  4380.   
  4381.   COM_RECEIVE_BUFFER_FLUSH
  4382.   This setting allows control of the received data buffers when the DOS session is switched to the
  4383.   foreground, or when the DOS program enables the received data interrupt.
  4384.      
  4385.      TIP:
  4386.         Select COM_RECEIVE_BUFFER_FLUSH to control the content of the received data
  4387.           buffers when the received data interrupt is enabled by a DOS program or when a DOS
  4388.           session is switched from the background to the foreground. The field for this setting
  4389.           contains a list from which you can select Receive Data Interrupt Enable, Switch to
  4390.           Foreground, ALL, or NONE. 
  4391.         Some DOS programs require that communications data be discarded when the program
  4392.           is switched to the foreground; other DOS programs require that the data be kept.  You can
  4393.           use COM_RECEIVE_BUFFER_FLUSH to override the program setting and discard or
  4394.           keep the communication data for all programs in this DOS session. 
  4395.         Select Receive Data Interrupt Enable to indicate that, for this DOS session, the
  4396.           operating system is to discard data in the received data buffer when the DOS program
  4397.           enables the received data interrupt. 
  4398.         Select Switch to Foreground to indicate that, for this DOS session, the operating
  4399.           system is to discard data in the received data buffer when the DOS program is switched to
  4400.           the foreground. 
  4401.         Select ALL to indicate that communications data be discarded when a DOS program
  4402.           enables the received data interrupt or the program is switched to the foreground. 
  4403.         Select NONE to indicate that, for this DOS session, the operating system is to keep
  4404.           data in the received data buffer. 
  4405.         The default is NONE. 
  4406.         You can change the setting for this session at any time. 
  4407.   
  4408.   COM_SELECT 
  4409.   When set, allows a program to select and use one communication port.
  4410.      
  4411.      TIP:
  4412.         Use COM_SELECT (COM Selected Port Access) to select the COM port for this DOS
  4413.           session.  The field for this setting contains a list from which you can select either ALL,
  4414.           COM1, COM2, COM3, COM4, or NONE.  For example, if you select COM1, only COM1
  4415.           can be accessed from this DOS session. 
  4416.         Some DOS programs take control of all available COM ports, even though they access
  4417.           only one.  Therefore, once this DOS program starts, a COM port cannot be accessed. 
  4418.           COM_SELECT prevents the DOS program that takes control of the available ports from
  4419.           also  taking control of unnecessary resources. 
  4420.         Select NONE if you do not want any COM ports available for the DOS programs you
  4421.           run in this DOS session. 
  4422.         The default is ALL, which enables all COM ports to be used from this DOS session. 
  4423.         You must change this setting before starting the session. 
  4424.         You can limit your program to just the COM port that it requires; some programs,
  4425.           such as like LapLink Pro, try to take over every available COM port. Communications that
  4426.           are not selected are hidden from the program.
  4427.         Some programs need to have access to the COM ports to work, even if they are not
  4428.           using them.
  4429.   
  4430.   HW_ROM_TO_RAM 
  4431.   Enabling HW_ROM_TO_RAM causes the operating system to copy read-only memory (ROM) and run
  4432.   the copy in 32-bit random access memory (RAM).
  4433.   
  4434.      TIP:
  4435.         Select HW_ROM_TO_RAM (Copy ROMs to RAM); then select the On radio button if
  4436.           you want to copy the Basic Input Output System (BIOS) from read-only memory (ROM)
  4437.           to random access memory (RAM).  BIOS might run faster in ROM than in RAM. Also, to
  4438.           test and debug a program, you can set break points in the RAM copy. 
  4439.         This setting is useful if debugging the kernel. The change allows normal breakpoints to
  4440.           be set in ROM and allows stepping over calls and loops.
  4441.         If an application writes to a memory address used by the ROM while this setting is
  4442.           enabled, it might cause unpredictable results for that application and for every application
  4443.           run thereafter in the VDM.
  4444.         The default value is Off. 
  4445.         You must change this setting before starting the session. 
  4446.   
  4447.   HW_TIMER 
  4448.   This setting allows an application to have direct access to the 8253 timer ports, and prevents the
  4449.   operating system from trapping, or intercepting, the timer request and emulating a timer.
  4450.      
  4451.      TIP:
  4452.         Use HW_TIMER (Timer Hardware Access) if you want to give a program direct
  4453.           access to hardware (model 8253) timer ports.  Select the On radio button to prevent the
  4454.           operating system from trapping, or intercepting, the timer request and emulating a timer. 
  4455.         Use this setting for timing-critical programs.  Your program might require direct timer
  4456.           access to avoid the trapping overhead introduced by an emulated timer.  (An emulated
  4457.           timer does not include in its timing the amount of time used to trap a timer request.) 
  4458.           Further, some computers poll timer ports, introducing an additional delay that can become
  4459.           too long when added to trapping overhead. 
  4460.         A program may not function properly if you select On after the program has already
  4461.           emulated timing.  The program may not function properly if you change the setting back to
  4462.           Off after the program directly uses a hardware timer, because the program then fails to
  4463.           adjust properly for emulated timing.  Selecting On for this setting for multiple DOS
  4464.           sessions can cause programs running in these sessions to interfere with one another. 
  4465.         Certain timing-critical applications do not run (or run much slower) if accesses to
  4466.           timer ports are trapped and virtualized. In addition, the values they read do not accurately
  4467.           reflect the amount of time passed, because they do not take trapping overhead into account.
  4468.           Enabling this setting allows certain timing-dependent code to run more effectively.
  4469.         Applications that change the divisor before this setting is enabled, and then read the
  4470.           timer ports after the setting has been enabled, might not function properly. If the setting is
  4471.           enabled first, the VDM does not detect changes to the divisor correctly, and the simulated
  4472.           interrupt frequency will be incorrect. 
  4473.         The ROM on some systems implement very brief delays by polling the timer ports.
  4474.           These delays become unacceptably long unless direct timer port access is allowed.
  4475.         The default value is Off. Most applications operate normally with timer virtualization.
  4476.         You can change the setting for this session at any time. It is useful to change this
  4477.           setting dynamically and watch for changes in application performance.
  4478.   
  4479.   
  4480.   
  4481.   
  4482.    Cha                                                         pter 7
  4483.   
  4484.                                                                                                                                           Performance Exploitation of the Underlying
  4485.   Hardware
  4486.   
  4487.   
  4488.   
  4489.   
  4490.   7.0  Introduction
  4491.   
  4492.   OS/2 Warp 4 supports a variety of hardware devices for use in games, video display, input, printing,
  4493.   speech, multimedia, and data communications. As a result, OS/2 Warp 4 provides a number of settings
  4494.   which can be used to tune individual device performance. Those tuning tips are discussed in the
  4495.   following sections.
  4496.   
  4497.   7.1  Video display resolutions
  4498.   
  4499.   The resolutions that can be set for a particular display adapter are dependent on the: 
  4500.         Specific display being used 
  4501.         Specific display adapter being used 
  4502.         Graphics accelerator chip set on the adapter 
  4503.         Video device driver being used 
  4504.         Amount of video memory on the adapter 
  4505.     
  4506.   Many of the accelerated video device drivers with OS/2 support the various resolutions and number of
  4507.   colors.  Not all of the device drivers support all of the resolutions. In general, the higher the display
  4508.   resolution, the slower the performance would become. However, since high resolution has better visual
  4509.   effects, you have to decide how to compromise between visual and performance.   
  4510.   
  4511.   Changing display configuration
  4512.   Some adapters have configuration DIP switches to select desired vertical refresh rates for high-resolution
  4513.   modes (800 x 600 and 1024 x 768).  Others are shipped with DOS video-configuration utility programs
  4514.   that allow selection of refresh rates. Usual refresh rates range from 56 Hz to 72 Hz non-interlaced or 88
  4515.   Hz interlaced.  The display has to be capable of synchronizing to this frequency for proper mode set.
  4516.   Make sure you understand how OS/2 controls the display configuration discussed below before
  4517.   attempting to change your display configuration 
  4518.   
  4519.   Controlling video display configuration
  4520.   SVGA display and video mode configuration under OS/2 is controlled by the SVGADATA.PMI file. 
  4521.   This file can be provided by the display adapter manufacturer or created using the SVGA utility
  4522.   program. he SVGA utility program gets information from the SVGA chip set to set each video mode
  4523.   and captures the current state of the display adapter.  This information is stored in the
  4524.   SVGADATA.PMI file and used when the system is started. 
  4525.   
  4526.      TIP:
  4527.         Both the SVGA.EXE and SVGADATA.PMI are located in the \OS2 directory. 
  4528.         To create the SVGADATA.PMI file, type one of the following commands at a DOS
  4529.           command prompt and press Enter. 
  4530.           SVGA ON - Generates the SVGADATA.PMI file, which enables OS/2 SVGA support. 
  4531.           SVGA ON DOS - Generates PMI information when executed outside the OS/2 DOS
  4532.             environment.  This generates an SVGADATA.DOS file that can be renamed to .PMI
  4533.             and copied to the \OS2 directory.  This entry might be required if your SVGA adapter
  4534.             uses DOS device drivers to configure the Trident adapters are an example. 
  4535.           SVGA ON INIT - Generates default display information for some TSENG and Cirrus
  4536.             Logic based display adapters. 
  4537.           SVGA OFF - Deletes the SVGADATA.PMI file, disabling OS/2 SVGA support. 
  4538.           SVGA STATUS - Returns your graphics chip set, as it appears to OS/2. 
  4539.     
  4540.           Note: The SVGA utility program might be affected by video configuration programs,
  4541.             Terminate Stay Resident programs (TSR), and switches and jumpers on the display
  4542.             adapter.  Configure your video adapter properly before using the SVGA utility
  4543.             program to create the SVGADATA.PMI file. 
  4544.     
  4545.   Switching to a lower capability display after installing high-resolution (SVGA) drivers might cause the
  4546.   system to start out of synchronization.  
  4547.   
  4548.      TIP:
  4549.         Follow this procedure to switch to a display with less capability: 
  4550.           1.Double-click on DOS Full-Screen command prompt. 
  4551.           2.Run the DOS display configuration utility program supplied with your SVGA adapter
  4552.                to properly configure your display adapter and display. 
  4553.           3.Change to the \OS2 directory on your hard disk. 
  4554.           4.Type SVGA ON. 
  4555.           5.Press Enter to start the SVGA utility program.  This utility program saves the current
  4556.                state of your video configuration. 
  4557.           6.Shut down your system. 
  4558.           7.Restart your system to enable the new display. 
  4559.           Note: You can also use these instructions if you start a specific version of DOS. 
  4560.             Substitute the following step for step 4.  Type SVGA ON DOS and press Enter. 
  4561.             When the SVGA utility program finishes, type: 
  4562.                RENAME\OS2\SVGADATA.DOS \OS2\SVGADATA.PMI  
  4563.                Press Enter. 
  4564.         If your system has an 8514/A adapter, you can improve the performance of your
  4565.           Windows programs by changing their properties.  Open the Properties notebook for each
  4566.           Windows program and change the following WIN-OS/2 properties: 
  4567.           VIDEO_8514A_XGA_IOTRAP to OFF 
  4568.           VIDEO_SWITCH_NOTIFICATION to ON 
  4569.   
  4570.   7.2  Tuning tips for printing performance
  4571.   
  4572.   Printing performance can be tuned by making changes with printer and job property settings, changes to
  4573.   the CONFIG.SYS, and changes to the print spooler.  Some of these changes are generic and affect all
  4574.   printing, while some affect only certain types of printing.  
  4575.   
  4576.   7.2.1  Printer object settings
  4577.    
  4578.   Every object, including the printer object, has adjustable settings.  The printer object has several settings
  4579.   that affect performance.  These are Job Properties and Printer Properties.  Printer Properties can be
  4580.   located by turning to the Printer driver notebook page, click on the printer object you wish to view. 
  4581.   Use mouse button 2 to display its context menu, and then select settings to see the printer properties. 
  4582.   Job Properties can be accessed by selecting the Job Properties button on the Printer driver page of the
  4583.   notebook.  Job Properties control things such as resolution, orientation and number of copies while
  4584.   Printer Properties describe the way the printer is set up, like the number of paper trays or font cartridges
  4585.   installed in the printer.  Printer Property information is stored in the printer driver.  Not all settings are
  4586.   supported by all printers.  Queue options include Job dialogue before print, printer-specific format and
  4587.   print while spooling.  Job dialog before print allows the user to specify job properties on a per-job basis,
  4588.   rather than using default job properties.  Printer-specific format creates print jobs that only a specific
  4589.   type of printer can print correctly.  These jobs take much more storage than printer-independent jobs. 
  4590.   Print while spooling allows the job to begin printing immediately, without waiting to receive the end of
  4591.   job from the program.  Print options includes start and stop times.
  4592.   
  4593.   Not all settings listed in this section are available for all printers, but, if available, they do change the
  4594.   performance of printing on your system.  The following properties will affect performance.
  4595.   
  4596.   Memory (KB)
  4597.   By specifying the amount of memory your printer has, the printer driver can determine if compression is
  4598.   to be used.  Compression improves performance by reducing the amount of data that has to go to the
  4599.   printer.
  4600.   
  4601.   Resolution
  4602.   This option allows you to vary the resolution of your graphics printing.  The selections are usually
  4603.   presented in terms of "dpi" (dots per inch).  The higher the number the better quality your print will be. 
  4604.   The drawback is that it will also take longer to print.  However, you can use a low number for draft
  4605.   output and select the highest number for printing the finished version.  A printer's memory size can
  4606.   limit the resolution you can choose.
  4607.   
  4608.   Compression
  4609.   This option compresses graphic print data which has the advantage of faster printing for most jobs that
  4610.   contain graphics.  Two common types of compression are G4 and TIFF Packet Byte.
  4611.           G4 - This improves the printing of graphic data that does not have large numbers of
  4612.        alternating bits, for example, large areas that are filled with solid color.  G4 is available on all
  4613.        IBM 4029 printers and IBM 4019 models that support Form Feed Time Out.  The 4019 models
  4614.        do not support G4 when printing in landscape mode.
  4615.      TIFF - This improves the printing of graphic data that consists mostly of repeating
  4616.        bytes, for example, large areas having one type of fill pattern.
  4617.   
  4618.   Fast System Fonts
  4619.   This option allows you to download (copy) OS/2 system bitmap fonts, to the memory of your printer. 
  4620.   They will be copied to the printer as a device bitmap font.  The advantage is that a device font uses a
  4621.   smaller spool file and prints quicker than a font printed in raster (graphic font) form.
  4622.   
  4623.   If overlaying system fonts with graphics, or if print output differs from that shown on the screen, then
  4624.   disable this option.
  4625.   
  4626.   Printer Patterns
  4627.   Pattern filling commands will be directly sent to the printer instead of asking the operating system to
  4628.   perform the pattern filling.  This reduces the spool file size for pages that contain dense graphics
  4629.   (shaded and patterned rectangular areas), and large scaled text.  These improve printing speed.  This
  4630.   option should not be used if printer output patterns must exactly match patterns displayed on your
  4631.   screen, nor if there are overlapping shaded or patterned graphics in your document.
  4632.   
  4633.   HP-GL/2
  4634.   This option enables HP-GL/2 output.  This allows the supporting of many more graphics commands in
  4635.   the printer.  This will allow faster printing of graphic objects such as lines and circles.  This also
  4636.   reduces the spool file size and helps to print more quickly.  For faster output, enable Page Protection
  4637.   (which may require additional printer memory) on both the printer and Printer Properties dialog and use
  4638.   HP-GL/2.
  4639.   
  4640.   Large Buffers
  4641.   Large Buffers allow the printer drivers to use more of OS/2's memory in order to speed up printing.
  4642.   Around 4 MB is used for printing so system memory should be at least 8 MB.  If this option is set to
  4643.   OFF, then smaller memory requests, around 1 MB will be used conserving memory.  If you have less
  4644.   than 8MB of system memory, then it is better not to use this option.
  4645.   
  4646.   Print While Spooling
  4647.   The Print while spooling option allows the printer to start processing the print job before the application
  4648.   has finished sending the entire job to the spool queue.  Print jobs formatted in printer-specific format
  4649.   (PM_Q_RAW) can speed up printing by using Print While Spooling.
  4650.   
  4651.   This "threading" will increase throughput but could cause timeout problems while printing large files
  4652.   with images.  To solve this problem you can disable the Print While Spooling option or you can
  4653.   increase the timeout value setting in the port object.  The default is On.
  4654.   
  4655.   Start and Stop Time
  4656.   Start Time and Stop Time can be entered for each print object.  For example, time settings for "lunch
  4657.   time", 12:00p - 12:50p, can be used which enables printing when you are not there.
  4658.   
  4659.   7.2.2  Fonts impact print speed
  4660.   
  4661.   Fonts can be stored in several places.  They can be built into the printer, housed on a cartridge that's
  4662.   plugged into the printer, or reside on your system and be downloaded to the printer as needed.  When
  4663.   you use printer-based fonts, whether built-in or on a cartridge, you can print faster than if you first have
  4664.   to download them.
  4665.   
  4666.   Fonts are either bitmapped or scaleable.  With a bitmapped font, each character is stored as a collection
  4667.   of individual pixels, so you need a separate definition for each point size.  Scaleable fonts, also called
  4668.   outline fonts, are stored as algorithms.  This means that the system can generate the font in any size
  4669.   using the algorithm.  Generating scaleable fonts takes time.  If you're using one font in just one size to
  4670.   format an entire document, the extra time may be hardly noticeable.  If you're using a lot of different
  4671.   fonts, the time may be considerable.  You can use any combination of these font variations, bitmapped
  4672.   or scaleable, stored in the printer or in the computer.  Clearly, you'll get the fastest printing with
  4673.   bitmapped fonts stored in the printer (see Fast System Fonts), and the slowest with scaleable fonts
  4674.   stored in your computer.
  4675.   
  4676.   Despite the speed disadvantage, there are strong arguments for storing fonts on your computer and for
  4677.   using scaleable rather than bitmapped fonts.  First, most printers have room for only one or two font
  4678.   cartridges.  So if you want to add new fonts to your library, you have to switch cartridges when you
  4679.   want to use them.  It's easier and much more efficient to store them on your hard disk, where they're all
  4680.   available at the same time.  An advantage to scaleable fonts is that you're guaranteed to have the
  4681.   typeface available in any size you'll ever need.  Scaleable fonts require far less storage space on-disk, or
  4682.   in your printer, than a set of equivalent bitmapped fonts in a range of sizes.
  4683.   
  4684.   7.2.3  PRINTMONBUFSIZE
  4685.   
  4686.   The PRINTMONBUFSIZE parameter in the CONFIG.SYS file sets parallel-port device-driver character
  4687.   monitor buffer sizes for LPT1, LPT2, and LPT3.  To speed up data transfers to devices connected to
  4688.   your system's parallel ports, increase the associated device-driver monitor buffer sizes.  For example,
  4689.   PRINTMONBUFSIZE=2048,134,134 increases the device driver buffer for a device connected to LPT1
  4690.   to 2048 bytes.  The default is 134,134,134.
  4691.   
  4692.   7.2.4  OS/2 spooled printing
  4693.   
  4694.   Printing through the spooler will provide the best performance on your system.  Here are some
  4695.   suggestions and settings that can affect printing performance.
  4696.   
  4697.   OS/2 Spooler
  4698.   It is recommended that the OS/2 spooler be enabled when more than one print job can be sent to the
  4699.   printer at one time.  The spooler provides flexibility while optimizing the use of the system's print
  4700.   resources.  The OS/2 spooler can print a job in the background while you continue using the application. 
  4701.   You can also set the spooler's print priority via the spooler object setting.
  4702.   
  4703.   The OS/2 spooler can support a number of printers simultaneously and can be configured so that jobs on
  4704.   a single queue can be shared among all the printers.  This load balancing, called pooling, is particularly
  4705.   important in server environments and can be achieved without the knowledge of your applications.  Jobs
  4706.   can also be reprioritized while they are waiting in the queue.  For example, an urgent job can be given a
  4707.   higher priority than other queued jobs or can be selected to print next, see Changing a Print Job's
  4708.   Priority.
  4709.   
  4710.   If only one print job will be active on your printer at a time, you can disable the spooler.  This will save
  4711.   memory and remove one process and one thread from your system's overhead.
  4712.   
  4713.   Spool Path
  4714.   If print jobs are very large, you may assign a different spooler path (drive or path) that has more space
  4715.   than your install drive.  If your print usage is heavy, you want to place the spool file on your fastest
  4716.   hard disk.  The spool path is a setting of the spooler object.
  4717.   
  4718.   Print Priority
  4719.   The OS/2 spooler has a setting called Print Priority.  This allows you to vary the spooler's priority from
  4720.   low to high.  The default setting allows printing to be balanced with your use of the desktop and your
  4721.   applications.  If your application appears to be printing slowly, you may want to choose a slightly
  4722.   higher value so that printing will complete faster.  If you choose a higher value, OS/2 will let print jobs
  4723.   print faster, but this may cause your desktop or applications to respond slower.  In a print environment
  4724.   where very little on screen work is performed or where print performance is of utmost concern, you
  4725.   should increase the value. Priority changes become effective when you close the spooler object folder.
  4726.   
  4727.   Spool File Formats
  4728.   There are two formats of spool file data.  They are the standard (PM_Q_STD) or the raw
  4729.   (PM_Q_RAW) spool file data formats.  The standard format is much preferred as it consumes much
  4730.   less disk space than the raw format file.  Having less data to send across the parallel port saves time in
  4731.   getting the data into the printer's buffer.  Network traffic is also reduced if printing across a LAN.
  4732.   
  4733.   Changing a Print Job's Priority
  4734.   Changing a print job's priority will cause that particular print job to print before any other queued job. 
  4735.   To do this, click on the print job you wish to change.  Use mouse button 2 to display its context menu,
  4736.   and then select print next.  You can change the priority of a print job so that it can print before or after
  4737.   other jobs queued.  To do this, click on the print job you wish to re-prioritize.  Use mouse button 2 to
  4738.   display its context menu.  Open Settings and change the value in the Priority field.
  4739.   
  4740.      Note:  Once a job has started printing, it is no longer possible to change its priority, the
  4741.        Settings option is not available.
  4742.   
  4743.   7.2.5  Printing from DOS
  4744.   
  4745.   While there are no performance specific tuning options, there are two things to check.
  4746.           Do not use the LPTDD.SYS device driver unless necessary.  (The DOS application is
  4747.        using INT 21h and is not closing the LPT1 handle).  This will slow down your DOS printing
  4748.        performance.
  4749.      The other is the DOS setting called PRINT_TIMEOUT.  This is useful for DOS
  4750.        applications which do not explicitly close their print jobs.  This is the time that OS/2 waits
  4751.        before forcing a print job to the printer.  A timeout of 1 or 2 seconds is sufficient for small
  4752.        print jobs, such as copying the contents of the screen.  However, when printing large files,
  4753.        formatting documents, or running calculations, the value must be set high enough to allow all
  4754.        print results to reach the spooler before the time limit expires.  If not, results go in two or more
  4755.        spool files instead of one, and the resulting output may be unsatisfactory.  The default time is
  4756.        15 seconds.
  4757.   
  4758.   7.2.6  Printing from WIN-OS/2
  4759.   
  4760.   You should always keep the OS/2 Spooler enabled to get the most benefit out of the OS/2 print
  4761.   subsystem.  This will assure that even from the WIN-OS/2 environment, printing is done in a separate
  4762.   thread.  You should also keep the WIN-OS/2 Print Manager disabled unless you are using a COM
  4763.   attached printer.  That is, always keep the WIN-OS/2 Print Manager icon closed.
  4764.   
  4765.   The OS/2 Spooler allows multithreading and can deal with huge print files, even while you work in
  4766.   WIN-OS/2.  Print jobs sent from any WIN-OS/2 application to a parallel attached printer won't show up
  4767.   in the WIN-OS/2 Print Manager.  In this case if you need to view or manipulate these print jobs, use
  4768.   the correct OS/2 printer object on the Desktop. 
  4769.   
  4770.   WIN-OS/2 Ports and Drivers     
  4771.   You should direct application output to LPTn.OS2 (where n is 1,2,3) where possible.  LPTn refers to
  4772.   the physical printer port.  LPTn.OS2 is a file which is intercepted by WIN-OS/2 and routed directly to
  4773.   the spooler.  This will provide improved performance over the standard LPT port assignments.
  4774.   
  4775.   You should always install equivalent printer queues in the OS/2 Desktop for your WIN-OS/2 printers
  4776.   even if you are only going to print to them from WIN-OS/2.  If there is no equivalent OS/2 printer
  4777.   driver available then use the IBMNULL.DRV printer driver found in the OS/2 printer object.
  4778.   
  4779.   WIN-OS/2 COM Attached Printer
  4780.   If you have a COM attached printer and you would like to have your print jobs spooled, then enable the
  4781.   WIN-OS/2 Print Manager.  This should be the only reason for you to use the WIN-OS/2 Print Manager. 
  4782.   Remember that print jobs directed to LPTn.OS2 and LPTn will still go through the OS/2 Spooler.
  4783.   
  4784.      TIP:
  4785.         If your printer performance seems slow,  try to increase the size of the font cache. 
  4786.           The default setting is 96KB. For graphic arts applications, you might want to use a font
  4787.           cache size of 128KB or larger. The size of the font cache determines the amount of system
  4788.           memory available to store font information. The default setting for the font cache is 96KB.
  4789.           You can set the font cache from 64KB to 32000KB. If you are using many typefaces or
  4790.           sizes, you might want to increase the font cache size to improve performance. Experiment
  4791.           with the font cache size parameter to see how it affects performance. If your applications
  4792.           seem unusually slow when you scroll, change pages, or display fonts, your font cache size
  4793.           is probably too small. 
  4794.      
  4795.           To change the font cache size: 
  4796.           1.Double-click on WIN-OS/2 Groups. 
  4797.           2.Double-click on Adobe Type Manager. 
  4798.           3.Double-click on the ATM Control Panel. 
  4799.           4.Click on the Up Arrow in the Font Cache field to increase the size, or select the
  4800.                Down Arrow to decrease the size. 
  4801.           5.Click on the Exit push button. A pop-up window appears, asking whether to restart
  4802.                the WIN-OS/2 session or return to the current WIN-OS/2 session. You must
  4803.                restart the WIN-OS/2 session for your change in the font cache size to take effect. 
  4804.   
  4805.         ATM can use pre-built fonts (soft fonts) or resident fonts (cartridge fonts or fonts built
  4806.           into the printer) when the exact font size and style are available. This reduces the amount
  4807.           of printer memory required to print some pages and might improve printing performance.
  4808.           The Adobe Font Foundry program (included with all Adobe Type Library packages) can be
  4809.           used to generate such soft fonts; the ATM Control Panel can then be used to turn this
  4810.           feature on and off. 
  4811.         If you are using ATM with a PostScript printer, PostScript soft fonts are automatically
  4812.           downloaded when you print; you might want to download fonts that are not resident in
  4813.           your printer prior to printing. Downloading fonts before printing can increase printing
  4814.           performance. This feature is especially useful if you frequently use the same fonts on your
  4815.           PostScript printer. 
  4816.   
  4817.   7.2.7  Printing from OS/2 applications
  4818.   
  4819.      TIP:
  4820.         Font selection  - The selection of text fonts can significantly affect printing
  4821.           performance.  OS/2 supports two types of fonts:  downloaded SYSTEM fonts and DEVICE
  4822.           fonts.  DEVICE fonts are built into the laser printer and perform much faster.  When text
  4823.           is formatted for the printer by the OS/2 spooler, one of two paths is taken:  (1) for each
  4824.           SYSTEM font text character, the spooler must request a bitmap of the character from the
  4825.           OS/2 operating system, or (2) for DEVICE fonts, the text character is sent directly to the
  4826.           printer as an ASCII character. The results of certain printing tests for a 10 page Lotus
  4827.           WordPro for OS/2 text only document show DEVICE fonts to print 4-to-1 faster than
  4828.           SYSTEM fonts. It also showed 2-to-1 improvement printing a six page Lotus Freelance for
  4829.           OS/2 document which was mostly text with a Freelance SmartMaster background.
  4830.   
  4831.           The following is a list of fonts which may be supported by your laser printer as
  4832.             DEVICE fonts. The list varies between laser 
  4833.           
  4834.                Universe            CGTimes                  Antique Olive
  4835.                Coronet             Courier                  Garmond Antiqua
  4836.                Albertus            Garmond Kursiv      Garmond Halbfett
  4837.                Letter Gothic       Marigold                 WingDings Reg
  4838.                Arial Reg           Symbol                   True Type Times New
  4839.                CGOmega
  4840.           
  4841.           There are a number of SYSTEM and add on fonts for OS/2 which do not perform as
  4842.             well as DEVICE fonts. These include Helvetica and Times New Roman which are
  4843.             very popular. It is suggested that you substitute the device font equivalents; for
  4844.             example, Univers for Helvetica and CGTimes for Times New Roman.
  4845.         Large Buffer - The Large Buffer option allows the OS/2 Spooler to temporarily use 4
  4846.           MB of system memory to format the document for the printer, the default for OS/2 Warp
  4847.           Versions 3 and 4 is 1 MB. For a one page document with four large bitmaps mixed with
  4848.           text; the printing time with Large Buffer selected was 50% faster. Large Buffer is set in
  4849.           the printer JOB PROPERTIES - OPTIONS panel.
  4850.         Spooling format - The overall time for both spooling formats, standard or raw, to print
  4851.           a document is about the same. However, the STD format is sent to the OS/2 Spooler much
  4852.           faster than RAW format and returns control of the mouse and cursor to the user. When
  4853.           RAW format is used, the application must format the document in the foreground which
  4854.           ties up the keyboard much longer, whereas with STD format, the OS/2 Spooler formats the
  4855.           document in the background. The STD or RAW format selection, if available, is in the
  4856.           PRINT JOB PROPERTIES panel of the application. Some applications, such as Lotus
  4857.           WordPro for OS/2, offer only the faster spooling STD format.
  4858.         Spooler priority - As previously discussed, increasing the priority of the OS/2
  4859.           SPOOLER has a double edged effect. Printing time can be improved up to one third when
  4860.           the OS/2 Spooler priority is increased, but the mouse and keyboard responsiveness
  4861.           decreases accordingly. If absolute printing time is important, setting the OS/2 Spooler
  4862.           priority to the highest setting will help. You might also consider foreground printing for a
  4863.           single user printer by disabling the OS/2 Spooler. Both of these options are set at the OS/2
  4864.           Spooler icon which is in the OS/2 System - System Setup folder. Click on the OS/2
  4865.           Spooler icon with the right mouse button. "Disable Spooler" can be selected, or click on
  4866.           "Settings" to open the OS/2 Spooler settings notebook to change the "Spooler Priority".
  4867.         Disk cache - Smaller improvements can be gained by increasing the disk cache size for
  4868.           the file system on which the spooler stores it's temporary files. The spooler temporary
  4869.           directory can be changed in the OS/2 Spooler settings notebook.  Generally, sizes larger
  4870.           than 4096 kilobytes for a desktop PC provide little, or no improvement.  Shared network
  4871.           printers can benefit more when the disk cache is increased on the server. Increasing disk
  4872.           cache permanently reduces the amount of memory available to other applications.  Type
  4873.           "HELP DISKCACHE" for the FAT file system, and "HELP HPFS.IFS" for the HPFS file
  4874.           system for information on setting these parameters.  Typically, the default disk cache sizes
  4875.           perform well for most documents.
  4876.   
  4877.   7.3 Tuning tips for speech performance
  4878.   
  4879.   IBM VoiceType is a new and creative approach to personal computing:  using your voice to
  4880.   communicate with your  computer. VoiceType has two components: 
  4881.         Navigation lets you use voice commands to move around the OS/2 Desktop, to manage
  4882.           files, folders, and windows, and to work with your programs. 
  4883.         Dictation lets you write letters and other documents without using a keyboard. You
  4884.           dictate the words and they are converted to text at a rate of 70 to 100 words a minute. 
  4885.     
  4886.   Use sleep mode when you want VoiceType to stop listening, but you want to be able to turn VoiceType
  4887.   on with a voice command. Using sleep mode when you are not using voice commands or dictation
  4888.   increases operating-system performance. 
  4889.   
  4890.   To turn on sleep mode, use either of these methods: 
  4891.         Say "Go-to-sleep." 
  4892.         Click on Go to sleep on the Actions menu on the Voice Manager status window. 
  4893.     
  4894.   To turn off sleep mode, use either of these methods: 
  4895.         Say "Wake-up-please." 
  4896.         Click on Go to sleep on the Actions menu on the Voice Manager status window. 
  4897.     
  4898.      NOTE:
  4899.         If sleep mode is active, the microphone button shows the microphone lying down with
  4900.           Zzz across the top of it. 
  4901.   
  4902.   7.3.1  Hardware requirements
  4903.   
  4904.   Voice type applications are very processing and memory intensive. For acceptable performance , the
  4905.   hardware requirements  as suggested by OS/2 Warp 4 installation are:
  4906.         Intel Pentium 100MHz or higher processor 
  4907.         24MB-32MB of RAM 
  4908.         hard disk with at least 225MB disk space (user selectable) 
  4909.         640x480 resolution display with 256 colors 
  4910.         IBM compatible mouse is required 
  4911.         diskette drive A and CDROM driver 
  4912.         14.4K or higher modem or network connection for Internet access 
  4913.         Sound card for multimedia or speech 
  4914.         High quality microphone for speech (requires Active Noise Cancellation feature, ANC,
  4915.           for optimal performance.) 
  4916.   
  4917.                                                                      Chap                                                          ter 8
  4918.   
  4919.                                                                                                                                           Tuning Tips for a Networked OS/2 Workstation
  4920.   
  4921.   
  4922.   
  4923.   
  4924.   8.0  Introduction
  4925.   
  4926.   OS/2 Warp 4 is a critical component in IBM's vision of the complete, managed, client-sever system. It
  4927.   is the key element which allows the PC to become the focal point of information processing and places
  4928.   the user in control of this information. OS/2 Warp 4, as the integrating platform, provides a wide degree
  4929.   of support for many connectivity products as well as supporting other existing networking products. 
  4930.   This chapter covers performance tuning tips for a OS/2 Warp 4 client workstation.  
  4931.   
  4932.   8.1  Multi-protocol transport service (MPTS)
  4933.   
  4934.   The OS/2's Multi-Protocol Transport Services (MPTS) allows easy integration of OS/2 Warp 4 into a
  4935.   number of networking environments. The MPTS implementation includes all current transport
  4936.   functionality found in Network Transport Services/2 (NTS/2), including LAN Adapter and Protocol
  4937.   Support (LAPS). 
  4938.   
  4939.   All data sectors received by MPTS are stored in buffer structures called mbufs, also known as clusters. 
  4940.   There are two types of mbufs.  Small mbufs are 256 bytes long and large mbufs are 4096 bytes long. 
  4941.   The initial number of small or large mbufs to be allocated by MPTS can be altered by modifying the
  4942.   line containing "RUN=x:\mptn\bin\cntrl.exe" in the MPTSTART.CMD file as follows: 
  4943.      RUN=x:\mptn\bin\cntrl.exe /SM xx /LM yy
  4944.    
  4945.   where /SM and /LM are keywords standing for small and large mbuf, and xx and yy are the desired
  4946.   number of mbufs to be allocated.  The /SM and /LM keywords are placed on the command line after
  4947.   the arguments to the /P keyword.  The specified number of small mbufs is rounded up to the nearest
  4948.   multiple of 128 and the specified number of large mbufs is rounded up to the nearest multiple of 2. 
  4949.   
  4950.   For example, if you specify 600 as the number of small mbufs, the MPTS program allocates 640 small
  4951.   mbufs.  If you specify 65 as the number of large mbufs, the MPTS allocates 66 mbufs. 
  4952.   
  4953.      TIP:
  4954.         The default mbuf settings are adequate for most workloads.  MPTS
  4955.           dynamically allocates additional mbufs as needed.  Consider increasing the default
  4956.           allocation of large mbufs for systems where MPTS is heavily used (such as file servers)
  4957.           and where the NetBIOS protocol is in use. 
  4958.         If only the INET service driver is in use, the number of large mbufs can be reduced. 
  4959.           Doing so may improve overall performance of the Distributed Computing Environment
  4960.           (DCE) by increasing the physical memory available to DCE server processes.  A good
  4961.           value for the number of large mbufs is 72. 
  4962.         If your application does many large file transfers, then you may want to increase the
  4963.           Maximum Transmissible Unit (MTU) size for improved performance.  File transfers of
  4964.           2048 (2K) or greater would benefit by increasing the MTU size.  If most of your file
  4965.           transfers are smaller than 2K, then the default MTU size of 1500 is recommended. 
  4966.         The MTU size can be changed with the IFCONFIG command in the TCP/IP
  4967.           SETUP.CMD.  Set the MTU size to the desired packet size plus 40 bytes-the maximum
  4968.           TCP/IP header size.  The desired packet size must be a multiple of 2048.  For example: 
  4969.   
  4970.           Desired packet size + HDR          = MTU
  4971.           2048 (2K)                      + 40          = 2088
  4972.           4096 (4K)                     + 40           = 4136
  4973.           8192 (8K)                     + 40           = 8232
  4974.    
  4975.         A related parameter is the XMITBUFSIZE parameter in the token-ring section of your
  4976.           PROTOCOL.INI file.  This parameter must be configured to support transmission of
  4977.           buffers that are at least the size that you specified for the MTU.  By default, the
  4978.           XMITBUFSIZE parameter is not specified in the PROTOCOL.INI file, and the parameter
  4979.           value defaults to the largest size that your adapter card and ring speed allows.  This
  4980.           parameter can be added, but the value must be greater than or equal to the MTU size.
  4981.         When changing these parameters, to prevent data loss, the MTU size must not be
  4982.           greater than the maximum that your token- ring adapter allows.  Refer to the
  4983.           XMITBUFSIZE range in the appropriate .NIF file (IBMTOK.NIF for example) to
  4984.           determine valid values for both XMITBUFSIZE and MTU size. 
  4985.         If the transport protocol to be used by an Socket/MPTS application is known in
  4986.           advance, additional steps can be taken to improve performance  This topic offers
  4987.           suggestions for the INET (native) transport: 
  4988.         If Socket/MPTS is installed on a token-ring LAN, increasing the maximum transmit
  4989.           unit (MTS) may improve performance of applications that transfer large amounts of data
  4990.           such as file transfer protocol (FTP).  Use the IFCONFIG command to modify the MTU
  4991.           size.  The IFCONFIG command is described in Manually Modifying Your TCP/IP
  4992.           Configuration. 
  4993.   
  4994.   8.1.1  SOCKS support
  4995.    
  4996.   A SOCKS (SOCKet Secure) server is a type of firewall host that protects computers in a business
  4997.   network from access by users outside that network. The SOCKS server verifies that your computer and
  4998.   user ID are allowed to access external networks, such as the Internet. 
  4999.   
  5000.   The 32-bit client applications for TCP/IP for OS/2 that can be used with SOCKS support include Telnet,
  5001.   TelnetPM, FTP, FTP-PM, Sendmail, NewsReader/2, Gopher, and WebExplorer. 
  5002.   
  5003.      NOTE:    
  5004.         To use SOCKS support with FTP, you must use the FTP provided with TCP/IP for
  5005.           OS/2 Version 4. 
  5006.   
  5007.   You can configure SOCKS defaults (including whether SOCKS support is on or off), SOCKS servers,
  5008.   and direct connections to hosts in your private business network by using the Configuration notebook.
  5009.   You can also configure the SOCKS support by manually editing the SOCKS configuration files. 
  5010.   
  5011.      TIP: 
  5012.         By default, SOCKS support is turned off. 
  5013.         Because SOCKS support can affect performance, you should turn it off if you do not
  5014.           need an external connection (outside the firewall). 
  5015.         SOCKS is intended for client systems. For any system with server responsibility,
  5016.           SOCKS support should be turned off. 
  5017.         The SOCKS support code attempts to determine whether a connection request is
  5018.           internal or external (inside or outside the firewall). If it cannot determine which kind of
  5019.           connection is requested, it attempts to establish an external connection. 
  5020.         If you are using a serial connection (SLIP or PPP) to access the Internet, you need to
  5021.           turn SOCKS support off. 
  5022.         If you have a serial connection to your company's gateway and are using a SOCKS
  5023.           server to connect to the Internet, SOCKS support must be turned on for your system and
  5024.           your host IP address must be registered with your company's gateway. 
  5025.         The SOCKS support code does not support non-blocking connections. It always waits
  5026.           for a connection to be completed. 
  5027.         If you are using SOCKS support with WebExplorer, you should not have a proxy
  5028.           gateway or a SOCKS server enabled in WebExplorer. 
  5029.   
  5030.   8.2  OS/2 LAN Server/Requester
  5031.   
  5032.   The following changes to the PROTOCOL.INI file may improve your LAN requester performance.
  5033.           Set XMITBUFS to 2. This allows one buffer to fill while the other is transmitting;
  5034.        yielding greater throughput.
  5035.      Set XMITBUFSIZE to 4224.  Supports sending 4096 data packets and protocol
  5036.        headers.  The default is 2048.
  5037.      Set T1 to 2000.  Changing this timeout value to 2000 (2 seconds) reduces the number
  5038.        of retransmits across the network.  If transmissions don't get a response within the time
  5039.        specified in this timeout value, they do multiple retires, resulting in additional network traffic.
  5040.      Set T2 to 400.  Raising this Receiver Acknowledgment Timer to 400ms reduces
  5041.        network session traffic by allowing a workstation time to respond without having to process
  5042.        retries.
  5043.      Set NETBIOSRETRIES to 2.  NETBIOSRETRIES specifies how many times LR/LS
  5044.        will broadcast a request for duplicate NETBIOS names.  In a reliable network, you can reduce
  5045.        traffic by lowering the number of retries.
  5046.      Set LOOPPACKETS to 2.  These are internal packets on the adapter that can be used
  5047.        by the adapter to send packets to itself rather than transmitting them over the network. 
  5048.        Increasing this value reduces network traffic.
  5049.      Set NETBIOSTIMEOUT to 500.  NETBIOSTIMEOUT specifies how long LS will
  5050.        wait to send the next request to identify a NETBIOS duplicate name.  Changing the timeout
  5051.        value to 500ms will improve startup time by 6 seconds and logon by 12 seconds (if previously
  5052.        set to 2000).  Formula: NETBIOSTIMEOUT x NETBIOSRETRIES = LR start time.  Double
  5053.        this result for the logon improvement since userid and userid/domain name each have to be
  5054.        registered in the NETBIOS Names table.
  5055.      Set RECVBUFSIZE to 256.  A smaller buffer size will take better advantage of any
  5056.        unused portion of the 64KB NETBIOS segment.
  5057.   
  5058.   8.3  OS/2 NetWare Requester 
  5059.   
  5060.   The following recommendations are for running OS/2 NetWare Requester. 
  5061.   
  5062.      Note:    A few of the steps only apply to a token-ring environment. 
  5063.   
  5064.      TIP:
  5065.         To improve performance, copy frequently used NetWare utilities to the NetWare
  5066.           Requester. For example: copy LOGON.EXE, LOGOUT.EXE, MAP.EXE and SLIST.EXE. 
  5067.         The following is a sample NET.CFG.  Use this configuration when you first attempt to
  5068.           use the NetWare requester over LAN Distance.  Use the buffer size of 1514 for a token-
  5069.           ring environment (not 4202). 
  5070.           NetWare Client
  5071.                Default Login Drive L
  5072.                cache buffers 30
  5073.                directory server off
  5074.           Link Support
  5075.                Buffers xx 1514
  5076.       
  5077.         For a token-ring environment, LAN Distance requires that all frames have source
  5078.           routing information.  This means that ROUTE.NLM must be loaded on the NetWare server
  5079.           and ROUTE.SYS must be loaded for the NetWare requester. 
  5080.         The NetWare requester must have a fix for NWREQ.SYS. The fix must be 7/21/94 or
  5081.           later.  This fix can only be installed on the OS/2 NetWare Requester. 
  5082.         The NetWare requester for OS/2 has a fixed timeout value for resending frames when
  5083.           there has been no response from the server.  Over a slow link, this can cause frames to be
  5084.           retransmitted several times causing slow performance and REQ1040 and REQ1039 error
  5085.           messages from NetWare. 
  5086.         NWREQ.EXE contains the 7/21/94 NWREQ.SYS fix from Novell which increases the
  5087.           timeout value.  There is a side effect of this fix.  When the LAN Distance connection is
  5088.           dropped, it will take several minutes for NetWare to destroy the default drive due to the
  5089.           longer timeout value.  You may notice this when you are trying to shut down OS/2. 
  5090.         Make sure the NetWare client for OS/2 is version 2.1 or later. Otherwise,
  5091.           NWDAEMON must be executed after the LAN Distance connection has been established
  5092.           by issuing: 
  5093.           detach c:\netware\nwdaemon. 
  5094.         When using packet burst for the DOS NetWare client, the latest VLM.EXE is required.
  5095.           VLM.EXE must be dated 5/31/94 or later. VLM11.EXE contains the 5/31/94 fix. 
  5096.         Make sure that DOSUP9 and WINUP9 (or later) fixes have been applied for the
  5097.           NetWare client. 
  5098.         In order to enable LAN Distance for NetWare during LAN Distance installation or
  5099.           through settings, LSL.COM and VLM.EXE must be in the NetWare directory. LAN
  5100.           Distance requires the use of VLM.EXE. 
  5101.         When you run NetWare and LAN Distance in a Windows environment and you exit
  5102.           Windows, the machine may lock up. This has been fixed by the NetWare APAR IC07995. 
  5103.         Novell DOS Requester running LAN Distance and Windows will lock up after exiting
  5104.           Windows.  VIPX.386 version 1.19 has the corrections needed. 
  5105.         An important factor in network performance is the efficiency of the network.  The size
  5106.           of the data packet being transmitted between the client and the server has a significant
  5107.           impact on performance. The larger the packet size, the faster the response time.  An
  5108.           optimized network configuration ensures that the packet size of the client matches that of
  5109.           all the servers it intends to connect with (and any gateways or routers in between). 
  5110.           Currently, the client workstations are configured to transmit data packets of 1514 bytes.
  5111.           The domain controller/file servers are configured to transmit and receive data packets of
  5112.           4224 bytes.  All the network gateways and routers should be checked to determine the
  5113.           maximum data packet size they can independently support.  Once this value is determined,
  5114.           the maximum common data packet size that can be supported on the gateways, client
  5115.           workstations, and servers should be implemented across all systems
  5116.         Set the Token Ring adapter's shared RAM size to 16KB.  This improves performance
  5117.           by optimizing the throughput of the adapter.
  5118.   
  5119.   8.4  TCP/IP client tuning
  5120.   
  5121.   The TCP/IP Version 4.0 shipped with OS/2 Warp 4 has many new features:
  5122.         Dynamic IP client supports the Dynamic Host Configuration Protocol (DHCP) which
  5123.           dynamically allocates and reuses IP addresses, and Dynamic Name Service (DDNS) which
  5124.           dynamically resolves IP addresses to IP hosts.
  5125.         Socks security which permits TCP/IP applications to access the Internet through many
  5126.           standard firewalls.
  5127.         WinSock 1.1 Open32 Support enables WinSock 1.1 to be used in conjunction with
  5128.           Open32 for the porting of Windows TCP/IP applications.
  5129.         Variable subnet routing.
  5130.         IP alias support enables OS/2 Warp 4 to support several web servers on a single
  5131.           system.
  5132.         Multicast allows packets to be transmitted to multiple users.
  5133.   
  5134.      TIP:
  5135.         You can make the following change to the TCP/IP configuration file.
  5136.           Set Maximum Transmission Units to 4136.  If your application does many large data
  5137.             transfers, you should increase this value for improved performance.
  5138.      
  5139.   Note:  File transfers of 2048 (2KB) or greater would benefit by increasing the MTU size.  The default
  5140.   of 1500 bytes does not efficiently use the available network bandwidth (unless the network is Ethernet,
  5141.   in which case 1500 is the maximum size).  If most of your file transfers are smaller than 2KB, then the
  5142.   default MTU size of 1500 is recommended.  The MTU size can be changed from the TCP/IP
  5143.   Configuration object. Please see the procedure for changing the MTU size discussed in the MPTS
  5144.   section.
  5145.   
  5146.   8.5  DB2 client tuning -- SQL database performance
  5147.   
  5148.   Tuning database software can make a tremendous impact on response time when retrieving information
  5149.   from a client workstation.  Without being familiar with the relational database system being used,
  5150.   specific recommendations cannot be made. The following comments are based on knowledge of IBM's
  5151.   relational database systems.
  5152.   
  5153.      TIP:
  5154.         When querying large amounts of data, verify the data is being transferred in
  5155.           blocks rather than row by row, assuming the system allows for row blocking.  Note that
  5156.           although the network can be tuned for a certain data packet size, the database application
  5157.           may or may not be configured to use it.
  5158.         Verify that your queries are accessing the database via an index, where applicable. 
  5159.           The database administrators should have a tool to provide this information.
  5160.         If database access is heavy, there may be performance problems associated with table,
  5161.           page, or row locking.  Again, the administrators should have tools to determine if excessive
  5162.           locking or lock escalation is occurring.  If so, it is possible that a different isolation level
  5163.           could be used that would permit greater concurrency.
  5164.         Database tuning is very system-specific, but there are other tuning parameters, such as
  5165.           buffers, that can be tuned as well.  If client queries are slow, it is recommend that the
  5166.           server be tuned and optimized for improved queries response.
  5167.   
  5168.   DB2/         2 Server data for problem determination
  5169.                                  
  5170.           1.  Hardware Configuration
  5171.                 -  CPU
  5172.                 - Memory
  5173.                 - Computer make/model
  5174.                 - Network Adapter Type
  5175.                 - Network Speed (if TR)
  5176.                 - Hard drive Configuration (partition sizes, file system)
  5177.           2.  Software Configuration
  5178.                 - SYSLEVEL output
  5179.                 - CONFIG.SYS
  5180.                 - PROTOCOL.INI
  5181.           3. Database Configuration Data
  5182.                 - Output from the following commands:   (use DBM rather than DB2 on older
  5183.             versions of DB2/2)
  5184.                     DB2 GET DATABASE MANAGER CONFIGURATION
  5185.                     DB2 GET DATABASE CONFIGURATION FOR xxxxx (x=database name)
  5186.   
  5187.   8.6  Lotus Notes client tuning
  5188.   
  5189.   Starting the Notes Client application takes at least 3MB of RAM.  Each time a document is opened at
  5190.   the client workstation, the document has to be transferred from the Notes Server (hence network
  5191.   optimization is very important) to the client's RAM.  The document is contained in RAM until it is
  5192.   closed.  Tune the client-to-server packet size to ensure the maximum packet size is being transmitted. 
  5193.   Also, close all documents after using them.
  5194.   
  5195.   Redefine the Lotus Notes client hardware port to increase the amount of memory allocated to transfer
  5196.   data across the network.  The default is 2000 bytes.  Increase this value to 4000 or 6000.  Increasing
  5197.   this value may or may not improve the efficiency of data transfer. Therefore it becomes important to
  5198.   measure response time before and after changing this value.
  5199.   
  5200.   Remove the TIMESLICE statement in the CONFIG.SYS file of OS/2 Warp systems.  The Lotus Notes
  5201.   3.0 installation program often places this statement in the CONFIG.SYS file.  The default value of
  5202.   DYNAMIC offers the best performance.
  5203.   
  5204.   Appe                                                        ndix 1 
  5205.   
  5206.                                                                                                                                           CONFIG.SYS File Insights
  5207.   
  5208.   
  5209.   
  5210.   
  5211.   If you feel comfortable with OS/2 Warp 4 internal operations, you can make the following changes to
  5212.   the CONFIG.SYS file to make it leaner and less memory demand. This section was designed as a
  5213.   pullout section.
  5214.   
  5215.   LIBPATH, PATH, and DPATH
  5216.         Re-order the LIBPATH, PATH, and DPATH parameters.  Directory names should be
  5217.           placed in the order of usage.  The most accessed directory should be listed first and the
  5218.           least accessed listed last.
  5219.         There are two other environmental variables that the system uses when an application
  5220.           is looking for a DLL (dynamic link library). They are:
  5221.              SET BEGINLIBPATH=path
  5222.              SET ENDLIBPATH=path
  5223.           where path is the location of the DLLs. They are searched in the following order:
  5224.                1.BEGINLIBPATH (environmental variable)
  5225.                2.LIBPATH (CONFIG.SYS)
  5226.                3.ENDLIBPATH (environmental variable)
  5227.    
  5228.   SWAP file
  5229.         Relocate the SWAP file to the root directory of the most used partition and set it's
  5230.           initial size to a value slightly larger than it typically grows.  This makes it large enough so
  5231.           that it does not have to grow in size while running applications.  In systems using the FAT
  5232.           file system, this technique also minimizes fragmentation of the SWAP file on the hard
  5233.           drive.  If more than one physical disk drive is present, relocate the SWAP file to the least
  5234.           used drive and place it in the root directory of the most used partition.
  5235.         Initial Swapper File Size.   Change the third parameter (second number) to 20480 or
  5236.           30920 so the swapper starts out at 20 or 30 MB.  This is especially important on a FAT
  5237.           partition, since FAT has a tendency to fragment files that impact performance when the
  5238.           swapper file fragments.  As a result, at startup, OS/2 will find a contiguous 20 MB area
  5239.           and reuses it each time. You can also use the following rule of thumb: "initial swap file
  5240.           size = total physical memory size + 8MB." 
  5241.   
  5242.   DOS=LOW,NOUMB
  5243.         Ensure DOS=LOW,NOUMB.  If a DOS application needs DOS to be loaded high or
  5244.           device drivers to be loaded in upper memory, they should be set from that applications
  5245.           settings notebook.  Setting them in the CONFIG.SYS file forces them to be set for all DOS
  5246.           applications whether they need it or not.
  5247.   
  5248.   BUFFERS
  5249.         Set BUFFERS greater than or equal to 60 if using FAT, otherwise set to 30.  Buffers
  5250.           are physical memory used to support partial sector reads and writes in a FAT file system
  5251.           environment.  They are also used to cache FAT directory entries and for swap file disk
  5252.           I/O.  Because they are used to cache FAT directory entries, they should not be reduced
  5253.           below 60, unless you are not using the FAT file system on any of your disks. Reducing
  5254.           this number will increase the number of disk reads that are done to the FAT directory
  5255.           entries and therefore slow down your system.
  5256.   
  5257.   MAXWAIT
  5258.         MAXWAIT=3.  This statement specifies the number of seconds a task  must wait
  5259.           before getting a priority boos.  If your system is under a heavy load, a program may have
  5260.           to wait for execution time.  Receiving a priority boost will put a program ahead of others
  5261.           that are also waiting for the processor. Decreasing this number will help programs get
  5262.           execution time faster, but the overall performance may suffer.  Increasing this number will
  5263.           allow the OS/2 Scheduler to resolve requests for system time based on the true priority of
  5264.           the programs.
  5265.   
  5266.   PRIORITY_DISK_IO
  5267.         Set PRIORITY_DISK_IO=YES  This allows the application that has screen focus to
  5268.           receive a priority boost when it's disk operation is complete. This applies to the first time
  5269.           slice given to the thread after the disk operation is complete. After the time slice, the state
  5270.           is reset for the thread and the priority boost removed.
  5271.   
  5272.   TIMESLICE
  5273.         TIMESLICE=X,Y   This statement is not found in the CONFIG.SYS file after you
  5274.           install OS/2 but is sometimes recommended to be added. This was allright to add for OS/2
  5275.           2.0, 2.1 or 2.11 systems, but not for OS/2 Warp. In OS/2 Warp, we dynamically modify a
  5276.           threads time slice based on actions that have occurred. For instance, if a thread took a page
  5277.           fault during it's time slice, we give it an extra time slice to process what is contained in the
  5278.           faulted page. We also give applications doing disk I/O extra time slices if the data they are
  5279.           reading is in the disk cache. When the TIMESLICE=   parameter is used, none of these
  5280.           actions will occur. Instead, each thread will be given the minimum time slice of X, and its
  5281.           time slice will not be allowed to go beyond value Y. 
  5282.   
  5283.   RESTARTOBJECTS=STARTUPFOLDERSONLY
  5284.         Add SET RESTARTOBJECTS=STARTUPFOLDERSONLY after the SET
  5285.           AUTOSTART statement.  This eliminates numerous boot problems caused by misbehaved
  5286.           programs that won't close.  Otherwise OS/2 starts them again.  This action also decreases
  5287.           swapping when the system is first booted up. 
  5288.   
  5289.   AUTOREFRESHFOLDERS
  5290.         To reduce memory and CPU usage, change the SET AUTOREFRESHFOLDERS
  5291.           statement to NO.  When SET AUTOREFRESHFOLDERS=NO, the system will not
  5292.           automatically update changes you make to the folders and objects in OS/2. For example, if
  5293.           you delete an object from a folder after you make this change, you will have to either close
  5294.           the folder and reopen it or select View and then Refresh Now from the pop-up menu to
  5295.           observe the changes you have made. This change is recommended for computers that are
  5296.           used as servers not as workstations.
  5297.   
  5298.   PM_ASYNC_FOCUS_CHANGE=ON
  5299.         SET PM_ASYNC_FOCUS_CHANGE=ON in the CONFIG.SYS file to fix the single
  5300.           input queue problem.  The OS/2 solution detects misbehaved applications that cause system
  5301.           hangs in what is often incorrectly attributed to OS/2 as the Single Input Queue (SIQ)
  5302.           problem.  The fix is implemented at the system level as a separate OS/2 thread that
  5303.           monitors the status of the input queue.  No modifications of applications are necessary. 
  5304.   
  5305.   DISKCACHE
  5306.         Optimize the DISKCACHE statement on systems using the FAT file system or
  5307.           REMark it out if the system does not use the FAT file system.  Disk caching allows a
  5308.           certain amount of (RAM) memory to serve as a cache for disk I/O.  A cache improves
  5309.           performance when a particular disk file is accessed frequently.  Keeping it in memory will
  5310.           avoid real I/O and thereby improve I/O response time when accessing that file.  In
  5311.           memory-constrained systems, the recommendation is to decrease caching.  This is not
  5312.           obvious but the rationale is that the benefit of using memory for disk caching is lower than
  5313.           the benefit of having the memory available for other processes when they are referenced. 
  5314.           Experimenting with various DISKCACHE settings to achieve the best performance is the
  5315.           most effective way to determine the correct value.
  5316.   
  5317.   DISKCACHE Threshold
  5318.         Optimize the DISKCACHE Threshold value.  It is recommended that the threshold be
  5319.           set at 32 unless the software product you are using is disk intensive and the manufacturer
  5320.           supplies information on the block size required.  Otherwise, experiment with different
  5321.           threshold values and monitor the DISKCACHE utilization with SPM/2 to achieve the most
  5322.           effective value.
  5323.   
  5324.   LAZYWRITE
  5325.         Enable LAZYWRITE (LW) whenever possible.  This allows disk writes to be
  5326.           temporarily held in memory to increase throughput.  Without LW, disk writes are done
  5327.           immediately.  LW will increase disk performance, but an unexpected power outage may
  5328.           cause data loss.
  5329.   
  5330.   HPFS CACHE
  5331.         Optimize the HPFS CACHE setting on systems using the HPFS file system or
  5332.           REMark it out if the system does not use this file system. Optimize the CRECL value by
  5333.           experimenting with different threshold values while monitoring the HPFS cache utilization
  5334.           with SPM/2.  This will ensure the optimum value is determined.
  5335.   
  5336.         REMark the HPFS statement.  This system does not use the HPFS file system.  The
  5337.           HPFS code and data space requirement is 200KB of memory plus the cache requirement
  5338.           (minimum cache size is 64KB).  Removing this statement will save at least 264KB and as
  5339.           much as 2312KB.
  5340.   
  5341.   THREADS
  5342.         Set THREADS to a value 50% larger than the actual number of threads expected to be
  5343.           used.  Threads consume resident memory so determining the optimum value for this
  5344.           parameter will affect the amount of memory that is available for applications to use.  
  5345.         One page of resident memory is need for approximately every 32 threads that are
  5346.           defined.  As a minimum, you will need 80 threads to support the base OS/2 Warp system
  5347.           and 3 or 4 OS/2, DOS and or Windows applications.  The system will support up to 64000
  5348.           threads, but typically you will not have enough memory in your system to support more
  5349.           than 300 to 500 threads.  18 threads are required for LAN Server 4.0, and 12 for Personal
  5350.           Communications/3270.  You will need an additional 2 threads for each Personal
  5351.           Communications/3270 session that is started.  To calculate the number of threads that you
  5352.           will need in your system, use the formula 54+(2xN)+10 where N is the number of
  5353.           programs that you will run together. If the program requires more than 2 threads, add in
  5354.           the additional threads.
  5355.   
  5356.   VDISK
  5357.         Remove any VDISK parameters.  A VDISK is a virtual disk made in the computers
  5358.           physical memory to provide quick access to often-used files and programs.  These systems
  5359.           don't have enough memory to support using a VDISK.
  5360.   
  5361.   PRIORITY=DYNAMIC
  5362.         Ensure PRIORITY=DYNAMIC.  This allows OS/2 to adjust thread priorities based on
  5363.           its display status (foreground or background), recent input and output activity, and
  5364.           frequency of processor use. DYNAMIC allows this calculation of priorities to support a
  5365.           system boost for foreground applications.  This is the default.  ABSOLUTE performs no
  5366.           calculation.  There is no system-applied boost for foreground applications when this
  5367.           parameter is specified.
  5368.   
  5369.   COM and VCOM 
  5370.         REMark the COM and VCOM device driver statements.  These statements load
  5371.           support for serial ports.  These drivers should only be removed if there are no immediate
  5372.           intentions to use such devices in this system.
  5373.   
  5374.   CDROM and VCDROM 
  5375.         REMark the CDROM and VCDROM device driver statements.  These statements load
  5376.           support for CD ROM devices.  These drivers should only be removed if there are no
  5377.           immediate intentions to use such devices in this system.
  5378.   
  5379.   PCMCIA
  5380.         REMark the PCMCIA device driver statements.  This statement provides support for
  5381.           PCMCIA devices.  This driver should only be removed if there are no immediate intentions
  5382.           to use such a device in this system.
  5383.   
  5384.   BASEDEV=IBM2FLPY.ADD 
  5385.         REMark the BASEDEV=IBM2FLPY.ADD device driver statement.  This driver
  5386.           supports diskette drives on microchannel computers.  This driver should only be removed if
  5387.           there are no immediate intentions to use such a device in this system.
  5388.   
  5389.   BASEDEV=IBM1FLPY.ADD
  5390.         REMark the BASEDEV=IBM1FLPY.ADD device driver statement.  This driver
  5391.           supports diskette drives on non-microchannel computers.  This driver should only be
  5392.           removed if there are no immediate intentions to use such a device in this system.
  5393.   
  5394.   BASEDEV=IBM1S506.ADD
  5395.         REMark the BASEDEV=IBM1S506.ADD device driver statement.  This driver
  5396.           supports MFM, RLL, and IDE disk controllers.  This driver should only be removed if
  5397.           there are no immediate intentions to use such a device in this system.
  5398.   
  5399.   BASEDEV=IBM2ADSK.ADD
  5400.         REMark the BASEDEV=IBM2ADSK.ADD device driver statement.  This driver
  5401.           supports ABIOS-based disk devices.  This driver should only be removed if there are no
  5402.           immediate intentions to use such a device in this system.
  5403.   
  5404.   BASEDEV=IBM2SCSI.ADD 
  5405.         REMark the BASEDEV=IBM2SCSI.ADD device driver statement.  This driver
  5406.           supports SCSI controllers on microchannel computers.  This driver should only be removed
  5407.           if there are no immediate intentions to use such a device in this system.
  5408.   
  5409.   BASEDEV=OS2SCSI.DMD
  5410.         REMark the BASEDEV=OS2SCSI.DMD device driver statement.  This is the SCSI
  5411.           device driver manager.  This driver should only be removed if there are no immediate
  5412.           intentions to use such a device in this system.
  5413.   
  5414.   BASEDEV=PRINT01.SYS
  5415.         REMark the BASEDEV=PRINT01.SYS statement.  This statement supports printer
  5416.           ports on non-microchannel computers.
  5417.   
  5418.   BASEDEV=PRINT02.SYS
  5419.         REMark the BASEDEV=PRINT02.SYS statement.  This statement supports printer
  5420.           ports on microchannel computers.
  5421.   
  5422.   BASEDEV=IBM1S506.ADD
  5423.         Your system uses the IBMINT13.I13 driver, which causes your system performance to
  5424.           suffer. (RMVIEW /IRQ shows one of the IRQ levels being controlled by IBT13BIOS Int
  5425.           13 BIOS Support.  If you have an IDE hard drive, make sure the statement
  5426.           BASEDEV=IBM1S506.ADD is in the CONFIG.SYS.  Adding it should change the IRQ
  5427.           owner to ST506 / IDE Controller.  If it does not, you may need a third party device driver
  5428.           to get a performance improvement.
  5429.   
  5430.   APM.SYS and VAPM.SYS 
  5431.         REMark the APM.SYS and VAPM.SYS statement.  This statement supports Advanced
  5432.           Power Management (APM) but your computer doesn't use this feature.
  5433.   
  5434.   EGA.SYS
  5435.         REMark the EGA.SYS statement.  This statement loads support for DOS applications
  5436.           that use EGA display registers.  You only need this driver if you use DOS graphics
  5437.           programs that expect EGA compatibility.
  5438.   
  5439.   EXTDISKDD.SYS
  5440.         REMark the EXTDISKDD.SYS statement.  This statement allows access to external
  5441.           floppy disks using a logical drive letter.  This driver should only be removed if there are
  5442.           no immediate intentions to use such a device in this system.
  5443.   
  5444.   TOUCH.SYS
  5445.         REMark the TOUCH.SYS statement.  This statement loads a device driver that
  5446.           provides support for touch screen displays.
  5447.   
  5448.   VEMM.SYS
  5449.         Change the DEVICE=\OS2\MDOS\VEMM.SYS statement to VEMM.SYS 0.  This
  5450.           statement loads a driver that provides Expanded Memory Support (EMS) for DOS sessions. 
  5451.           Adding a 0 variable causes OS/2 to not allocate EMS to a DOS session unless you
  5452.           override the setting in that session's DOS Settings.  Most programs do not require EMS, so
  5453.           disabling EMS by default will save RAM.
  5454.   
  5455.   VXMS.SYS
  5456.         Change the DEVICE=\OS2\MDOS\VXMS.SYS statement to DEVICE
  5457.           =\OS2\MDOS\VXMS.SYS /XMMLIMIT=4096,0 /UMB.  This will allocate a maximum of
  5458.           4MB of SMS for the entire system, but it will not give any XMS memory to a DOS
  5459.           session unless you override the setting in an individual sessions's DOS Settings.  DOS
  5460.           sessions won't get XMS by default, which will save memory (since most DOS programs
  5461.           can run without XMS).  If you replace /UMB with /NOUMB, no DOS session will be able
  5462.           to use upper memory blocks.  If you want DOS=HIGH to be the default, use
  5463.           /XMMLIMIT=4096,64 /UMB instead.  Each session will need at least 64KB of XMS.
  5464.   
  5465.   BREAK=ON to OFF
  5466.         Change BREAK=ON to OFF.  This statement instructs DOS sessions to check for
  5467.           Ctrl+Break key presses.  If set to ON, Control-Break checking is more frequent, but DOS
  5468.           programs may run slower.
  5469.   
  5470.   FCBS=16,8 to 4,4
  5471.         Change FCBS=16,8 to 4,4.  This statement allows you to allocate File Control Blocks
  5472.           (FCBs) for DOS sessions.  Most new DOS programs do not use FCB's so these values can
  5473.           be lowered to save RAM.
  5474.   
  5475.   
  5476.