═══ 1. Version Notice ═══ Information Copyright International Business Machines Corporation 1993. All rights reserved. Note to U.S. Government Users Documentation related to restricted rights Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. ═══ 2. Trademarks referenced ═══ The following products are referenced in the document: o OS/2, Personal Systems/2, PS/2 and Micro Channel are registered trademarks of the International Business Machines Corporation o Presentation Manager and WIN-OS/2 are trademarks of the International Business Machines Corporation o Intel is a registered trademark of the Intel Corporation o Microsoft and Microsoft Windows are registered trademarks of Microsoft Corporation This paper is designed to provide information on improvments in the OS/2 2.1 release. It contains details of the performance improvements incorporated since OS/2 2.0. System Requirements Section 1 covers system requirements. The Graphics Subsystem Section 2 contains information on the changes made in the graphics sub-system. Video Display DriversSection 3 contains information on video display drivers, including new support. WIN-OS/2 Section 4 explains the enhancements made in WIN-OS/2, including seamless support, clipboard and DDE, and the new settings available. General Performance OptimizationsSection 5 covers general system performance optimizations. Memory reduction items are covered in Memory ReductionSection 6 VDMSection 7 covers VDM support and customization of the AUTOEXEC.BAT. OtherSection 8 covers the other areas of performance improvements, including printing and communication support. Installation changes are covered in InstallationSection 9 ═══ 3. Introduction ═══ OS/2 version 2.1 continues the OS/2 product line. The main objective for this release were to provide Windows 3.1 application support, to incorporate all service fixes, to continue migrating OS/2 components to 32-bit, to increase function and to provide additional display driver support. The fol lowing information applies to the final release of OS/2 2.1. The information covered pertains to performance improvements made for this release, and functional changes that affect performance. This document covers many of the changes, but not all the changes and improvements that went into OS/2 2.1. Other documentation is available that contains information on all aspects of this release, and this document should not be viewed as containing all changes made since release 2.0. ═══ 4. System Requirements ═══ The system requirements have changed little from OS/2 2.0. The memory requirement for OS/2 2.1 is similar to the memory requirement for OS/2 2.0. The DASD requirement has increased about 7MB, depending on the installation options selected. ═══ 4.1. Hardware Configurations for OS/2 ═══ 2.1 OS/2 2.0 is designed for personal computers with the following minimum requirements: o Intel (or compatible) 80386SX microprocessor o 4MB of memory o 60MB hard disk with 20-40 MB of free disk space o 2-button mouse or other pointing device It is recommended that systems should have a minimum of 6 megabytes of memory for good performance. ═══ 4.2. WIN-OS/2 DASD Requirements ═══ In OS/2 version 2.1, Windows support can be installed on a partition different from the partition where OS/2 is installed. This will allow moving some of the disk space requirement to another partition. While the same amount of disk space is required in total, this feature allows flexibility when available space on the install partition is limited. The total is approximately 8MB of DASD. See the installation guide for more information. ═══ 5. The Graphics Subsystem ═══ In OS/2 2.1, the graphics engine was rewritten from assembler using the 32-bit IBM C Set/2 compiler. In addition to being a fully 32-bit engine, many graphics operations were enhanced for better performance. The 32-bit engine uses more memory than the 16-bit version, so effort was made to optimize the memory usage of the 32-bit graphics engine for both the Workplace Shell and graphical applications. Frequently used functions and routines in the graphics engine were tuned and linked together to minimize the system working set. This process is referred to as page tuning. The performance items for the OS/2 graphics subsystem are listed as follows: o Conversion to 32-bit The conversion of the engine to 32-bit has the following advantages:, - The flat memory model, eliminating segmentation overhead. - Allows optimization of 32-bit presentation drivers. - Eliminates the conversion (thunk) overhead between the graphics engine and the 32-bit components in the system. - Eliminates thunking in graphics calls from 32-bit applications. o Palette Manager Support so applications can share access to the hardware color table. o New APIs (GPIPolygons) were added for faster and easier application development. o Page tuning to reduce memory requirements ═══ 6. Video Display Drivers ═══ Both presentation manager display drivers, and WIN-OS/2 display drivers have been changed to provide additional function and improve performance. ═══ 6.1. Presentation Manager Display Drivers ═══ The Presentation Manager display drivers have several performance enhancements. By display driver, they are listed here: o VGA driver The new VGA driver is 32-bit. It has the advantages of 32-bit code, but, from the viewpoint of performance, it has some improvement over the 16-bit version. o XGA driver The XGA driver was also converted to 32-bit. It has visible performance improvement over its 16-bit counterpart. The XGA driver also makes use of the new hardware features of the latest XGA-2 display adapter. It provides non-interlace support, takes advantage of the external polling capability, and can display up to 64K colors in low resolution modes (640 x 480, 640 x 400). o SVGA driver There was no SVGA support supplied in OS/2 2.0. In OS/2 2.1, several SVGA chip sets are supported. The drivers are 32-bit. Performance comparisons between OS/2 2.1 and OS/2 2.0 with generic 16-bit drivers (available from venders) shows that OS/2 2.1 with SVGA is visibly faster. OS/2 2.1 supports the following SVGA chip sets: - ATI Technologies Inc., VGA Wonder XL (Rev. 2.0 or higher). - Headland Technology Inc., Video Seven, Chip Type: HT209. - Trident Microsystems, VGA Card, Chip Type: TVGA 8900B and TVGA 8900C. - Tseng Laboratories, Chip Type: ET4000. - Western Digital Corporation, Paradise, Chip Type: WD90C00, WD90C11, WD90C30, and WD90C31. - Cirrus Logic Inc., Chip Type: CL-GD542X, family 5422 & 5424. - IBM Corp., Chip Type: IBM VGA 256c The default driver during installation is VGA driver (640 x 480 x 16 colors). The resolution may be changed by installing the drivers for the desired resolution. At least 0.5 MB VRAM is needed to install the SVGA drivers. At 0.5 MB VRAM, only the OS/2 SVGA resolution of 640 x 480 x 256 colors is supported. Both the 1024 x 768 x 256 colors and 800 X 600 X 256 colors resolutions require 1 MB VRAM. o 8514 driver The 8514 PM display driver support has been converted to 32-bit. Its performance is better than the 16-bit version. ═══ 6.2. WIN-OS/2 Display Drivers ═══ o Seamless Support (WIN-OS/2) WIN-OS/2 display drivers have been improved for both performance and functionality. WIN-OS/2 display drivers are automatically copied at install time (if WIN-OS/2 is installed) for the display type selected at installation. WIN-OS/2 is available in full screen or seamless (windowed) sessions. Seamless support is provided in the display device driver, and that support has expanded. In version 2.0, only the VGA display driver provided seamless support. All other display drivers supported WIN-OS/2 in full screen only. In version 2.1, VGA, XGA, SVGA and 8514 display drivers shipped with OS/2 support seamless execution for WIN-OS/2. o Code Path Reduction p. Code paths have been reduced to improve the overall performance of the WIN-OS/2 display drivers, in both full screen and seamless modes. ═══ 7. WIN-OS/2 ═══ A significant enhancement provided in OS/2 2.1 is the support for Windows 3.1 applications. Performance of WIN-OS/2 has also been substantially improved. A new mode called Enhanced Compatibility Mode enables a number of Windows 3.1 enhanced mode applications to run. The Clipboard and DDE support has been redesigned, including virtual rendering of clipboard data. Several enhancements were made to display drivers. ═══ 7.1. Enhanced Mode Compatibility ═══ In OS/2 2.0, support was provided in WIN-OS/2 3.0 to enable Windows 3.0 applications to run in standard and real modes. In OS/2 2.1, the support has been upgraded to support standard and enhanced modes for Windows applications. The Enhanced Mode Compatibility enables running a number of Windows 3.1 enhanced mode applications under OS/2 2.1. It is important to realize that this is not an implementation of Windows 3.1 enhanced mode, but a mode specific to WIN-OS/2 3.1. This illustrates the flexibility of OS/2 and its power in blending different application environments into an integrated platform. The major benefit to Windows 3.1 users of enhanced mode was virtual memory, which OS/2 users had since OS/2 2.0. Like the previous WIN-OS/2, a special VDD is provided to emulate a DPMI server. The WIN-OS/2 3.1 kernel is loaded into the VDD to directly service the requests of Windows applications running in that VDM. To preserve the integrity of the system and avoid having duplicate virtual device drivers (one running on top of the other), the WIN-OS/2 Enhanced Mode Compatibility does not use the Windows enhanced mode virtual device drivers (VxDs). As a result, Windows 3.1 applications which access VxDs will not run in the WIN-OS/2 3.1 Enhanced Compatibility Mode. Windows applications requiring real mode to execute, will only be supported in the 2.0 version of WIN-OS/2. An application can be set up to run in the Enhanced Compatibility Mode by setting the WIN_RUNMODE to "3.1 Enhanced Compatibility Mode". This setting can be found in the Settings notebook for the application object. Enhanced Compatibility mode sessions can be started from an OS/2 or DOS command line by typing WINOS2 /E or WINOS2 /3. To start an application to run in the Enhanced Compatibility mode, (for example hello.exe), you would type WINOS2 /3 hello.exe. The enhancements made to WIN-OS/2 are as follows: OS2K386.EXE This new WIN-OS/2 3.1 (OS2K386.EXE) kernel replaces the OS2/2 2.0 (OS2K286.EXE). It has all the functionality of the Windows 3.1 kernel (KRNL386.EXE). This kernel provides memory, program loading and scheduling for WIN-OS/2 3.1. It uses the DPMI interface for memory and interrupt management. It executes in full screen and seamless modes, using the current VDM architecture with DOS emulation. OS2USER.EXE This kernel is similar to the Windows 3.1 USER.EXE with all the seamless support code ported from the WIN-OS/2 3.0 USER.EXE. The kernel contains the user interface and windowing parts of Windows 3.1. OS2GDI.EXE This kernel is similar to Windows 3.1 GDI.EXE. The kernel contains the graphics device interface with the palette management code ported from WIN-OS/2 3.0. The print spooler mapping that eliminates double spooling by Windows applications has also been ported from WIN-OS/2 3.0. SESMGR.DLL Two new program types have been added to the session manager to support Windows 3.1 standard mode: o PROG_31_STDSEAMLESSVDM - Windows 3.1 program which will execute in its own windowed and WIN-OS/2 session. o PROG_31_STDSEAMLESSCOMMON - Windows 3.1 program which will execute in a common windowed and WIN-OS/2 session. OS2KRNL A new return value to DosQAppType is used to determine the Windows version (3.0 or 3.1) of the application. This value is used in the migration of Windows applications to the appropriate common VDM. Workplace Shell The Session page of WIN-OS/2 objects has been changed to enable the shell to detect if WIN-OS/2 3.1 is installed and display the updated session. ═══ 7.2. Other WIN-OS/2 Improvements ═══ WIN-OS/2 Setup Icon Settings for WIN-OS/2 sessions can be changed globally, using the WIN-OS/2 Setup icon found in the System Setup folder. Settings can also be changed for specific sessions, using the application settings notebook. Changes to the WIN-OS/2 Setup icon will change all Windows applications that start after the change is made. The WIN-OS/2 Setup settings will not override any custom values set for applications. This allows changing settings easier for multiple Windows applications. CLIPBOARD and DDE Both Clipboard and DDE have undergone major redesign since OS/2 2.0. Most noticeable is the user interface and the method in which data is exchanged between VDM's. Under WIN-OS/2 3.1, clipboard and DDE agents are no longer executables. They have been implemented as DLLs that are loaded by their respective "Shields". The windows shield (winsheld.exe) loads "winsdde.dll" and "winsclip.dll", while the PM shield (pmviop.dll) loads "pmdde.dll" and "pmclip.dll". The settings for making clipboard and DDE globally public (that is, DDE is exported outside of the PM session) are now to be found in the "WIN-OS2 Setup" object. This object is typically found in the "System Setup" object, which in turn is found in the "OS/2 System" folder. Virtual rendering of clipboard data was added in this redesigned clipboard. This means that data conversions only take place if the client requests the clipbaord data in a different data format) In OS/2 2.1 data placed in the clipboard (cut or copied) was converted in all supported formats 'just in case' it was asked for in a different format. While this improved the paste time, that time and memory used at cut/copy time overshadowed the savings to paste. The new design requires less memory, resulting in the ability to cut/copy larger items. In general, changes that were made to the clipboard and DDE include: o PMCLIP.DLL replaces CLIPOS2.EXE (CLIPOS2.EXE is now just a viewer). o PMDDE.DLL replaces PMDDE.EXE. o WINSCLIP.DLL replaces CLIPWOS2.EXE (CLIPWOS2.EXE is now obsolete). o WINSDDE.DLL replaces DDEAGENT.EXE. o VWIN.SYS replaces VDMSERVER.EXE. The settings that change the clipboard and DDE from public to private are WIN_DDE and WIN_CLIPBOARD. Additional information can be found in Appendix A. Settings PMVIOP.DLL This DLL has been modified to support the new clipboard and DDE settings. Compiler Change Three components of WIN-OS/2 have been changed to be compiled using the Watcom Compiler. This provided a significant performance improvement for WIN-OS/2 sessions. The components are USER.EXE, GDI.EXE and WINSHELD.EXE. DPMI Memory Changes have been made in DPMI so that the Windows applications get access to only the memory required to execute their application. This change was made by having the DPMI layer only provide the memory requested by the applications, rather than providing all the memory allocated for the session. The default DPMI memory allocated to a WIN-OS/2 session has been changed to 64MB (from 4MB). This allows better used of system memory while providing access to large amounts of memory when needed. New Settings for WIN-OS/2 There are two new settings for WIN-OS/2 3.1. They are WIN_RUNMODE and DOS_AUTOEXEC. WIN_RUNMODE changes the mode from enhanced to standard. DOS_AUTOEXEC is used to specify a specific AUTOEXEC.BAT file for a session or application. The appendix contains additional information. Support for Windows 3.1 Printer Drivers The additional support for Enhanced Mode Windows application also makes it possible to use printer drivers designed for that level of support. These drivers are primarily for the newer high end printers. ═══ 8. General Performance Optimizations ═══ Swap File Compaction If the swap file extends beyond the initial size specified, OS/2 starts to manage the swap file space. This will impact performance negatively because of the associated overhead. OS/2 will attempt to shrink the swap file back to the originally designated size. At that time, the additional system management is discontinued by OS/2. The swap file grows and shrinks in 1 MB increments only. The swap file shrinks when several conditions are met. When the amount of free swap space in the swap file exceeds 1.5MB, swap file compaction will be performed at system idle time. During compaction, free swap space will be moved toward the end of the swap file. After compaction, when the amount of free space at the end of the swap file is greater than 1 MB, the swap file will be shrunk to make more disk space available to the user. Caching Selectors Changes were made in the OS/2 kernel (OS2KRNL) and the WIN-OS/2 kernel (OS2K386.EXE) to cache selector information. This improves the performance of loading applications and starting sessions. Interrupt Descriptor Tables The IDTs were aligned on paragraph boundaries (16 bytes) to optimize interrupt code entry. This reduces the memory bus cycles required to vector to the interrupt service routines. Placing the code on 16 byte boundaries also ensures that the descriptor table is in the CPU cache on 80486 systems. Code Basing The major components of the system were based (as application .EXEs should be). This allows the linker to do the internal fix-ups at link time, reducing load time and memory requirements. Based components include the Workplace Shell, display drivers, the graphics subsystem, DosCall1m PM WIN, SOM and the spooler. Link Options The link options used by the operating system components were reviewed. Wherever possible code was packed with the linker /EXEPACK option. This reduced the size of executable files requiring fewer disk accesses when loading the code. Although the code must be unpacked at run time, this is faster than disk access time. The /PACKCODE and /PACKDATA options were also used to reduce the number of memory objects created. The /FARCALLTRANSLATION option was used to let the linker change far calls to near calls whenever possible. CTRL-ESC The Control-Escape (CTRL-ESC) hot key sequence priority was raised to Time-Critical to keep lower priority CPU intensive threads from locking out the sequence. Dynamic Time Slicing OS/2 2.1 contains dynamic timeslicing. This means that OS/2 is adjusting the timeslice values based on the actual processes active on the system. As the workload changes, so will the timeslice handling. This change means that earlier recommendations for TIMESLICE= values are no longer valid. Removing the TIMESLICE= line in your CONFIG.SYS (if there) will enable dynamic timeslicing, improving overall system performance. ═══ 9. Memory Reduction ═══ Although many new functions were added to OS/2 2.1, an several components were converted to 32-bit, a concerted effort was made to reduce the base memory requirements. Conversion to 32-bit code, without a special effort to reduce memory requirements, will increase the working set for that code. Reduced memory requirements translates into improved system performance. When more memory is available, paging is reduced. Since disk operations are very slow compared to CPU operations, the fewer needed the better the performance. Memory can be reduced by fine tuning code, reducing redundant code and page tuning. Page tuning is placing commonly used functions together in pages. This was done by collecting information on the functions called to perform certain tasks. The Real-time Tracing System (made by IBM, Yorktown Heights, NY) was used for collection and verification. High use code was packed together in as few pages as possible. Functions that work together were also packed together in memory. The result is that the pages in memory when completing a task are optimally packed to contain code that will most probably be used for the completion of that task. Page tuning helped to reduce the overall working set requirements for this release. The following list summarizes the memory reduction items that were implemented in OS/2 2.1: o The base system resident memory pools, (heaps), were combined to reduce redundancy and reduce the size of the structures needed to manage each heap. o The loader Module Table Entry (MTE) structures that were allocated on page (4K) boundaries were changed to be double word aligned. o Code that was used to initialize the system and never used again is now discarded. o Thunk interfaces were optimized to reduce overhead o On a 4MB system the number of threads specified in the CONFIG.SYS THREADS= statement is reduced from 256 to 128. o Several system components were page tuned, reducing working set memory requirements. This includes the Workplace Shell, the presen- tation manager display drivers, the spooler and the graphics engine. ═══ 10. VDM ═══ DOS mode has been improved by adding dual-threaded support, improvements to DPMI, and by allowing customization of autoexecs per session. Dual-Threaded DOS Dual-thread support has been added to DOS sessions. OS/2 enhanced its multimedia support with this feature. Multimedia programs need to handle interrupts while doing file I/O. In OS/2 2.0, each VDM executes as one thread. If the thread is busy doing a file I/O operation, it will not receive any interrupt until the entire I/O operation is complete. By introducing a second thread in OS/2 2.1, interrupts can be serviced while waiting for the completion of the I/O operation. This improves the performance of multimedia DOS applications, which need interrupt notification even when doing file I/O. To set up a DOS application to use dual-threads, enable the DOS setting INT_DURING_IO. It consumes more memory and CPU time when set ON. Only use it when required. DOS communication programs that do file I/O will be helped by this feature also. DPMI enhancements DPMI is a protected mode programming interface for DOS applications allowing these applications to run in protect mode, while utilizing the real mode services of the operating system and device drivers. In OS/2 2.1 the DPMI support has been upgraded to version 1.0. Customized AUTOEXEC.BAT files The OS/2 CONFIG.SYS file specifies the operating system configuration and installs device drivers and other memory resident applications. The OS/2 AUTOEXEC.BAT file is specific to the DOS session. OS/2 2.1 supports multiple AUTOEXEC.BAT files, with each session specifying its AUTOEXEC.BAT. ═══ 11. Other ═══ Printing For parallel ports LPT1 to LPT3, both parallel port device drivers, PRINT02.SYS for Micro Channel machines and PRINT01.SYS for ISA and EISA machines, now send data faster. This allows the print buffer, found on most printers, to be filled quicker reducing the overall print job time. Communication Improvements were made in VPIC & VCOM to reduce code paths to improve performance in OS/2 2.1. This means that OS/2 2.1 performs better running DOS and Windows communication applications. OS/2 2.1 can support more DOS communication applications due to these performance improvements. Advanced Power Management On laptops that support the Advanced Power Management 1.0 Specification, there is an improvement in battery life. Software support will automatically be installed on systems with the correct hardware support. The object icon can be found in the System Setup folder. This object is used to show the current status/state of your laptop's battery and allows turning the advanced power management functions on and off. ═══ 12. Installation ═══ There have been 2 major changes to installation in OS/2 2.1. Selection of the destination drive for WIN-OS/2 support has been added, and WIN-OS/2 accessories are selectable in 4 categories: o Windows Support - Readme Files - Accessories - Screen Savers - Sound Additionally, installation no longer asks for all disks at install time, but only for disks that contain needed files. The WIN-OS/2 selections are only available with Selectable Installation. The destination drive is any partition available at installation time, The default is the same partition and OS/2 installation. The Full Installation installs all features available with OS/2. Preselected installation provides a general installation of OS/2 features for users. This default is good for new users that do not have enough space for a full install. The features provided when the preselected installation is taken include all required files for OS/2 and the following features: o OS/2 Tutorial o Fonts (not including Helvetica or Courier(outline)) o Optional System Utilities (not including backup & restore, Fdiskpm, PM REXX and Sort. o Tools and Games (not including Search and Scan or Personal Productivity) o OS/2 DOS and Windows Support o REXX o Serviceability and Diagnostic Aids o Optional Bitmaps The Selectable Install allows end users to choose which options to install. Full installation option installs all features of OS/2. This selection requires about 40 MB of disk space. Additional space is required for the swap file in constrained systems. If your partition is small ( < 50 MB) it is advisable to move the swap file to another partition. The features provided when the full installation is taken include all required files for OS/2 and ALL the features available for your hardware. ═══ 13. Summary ═══ In summary, you should see generally improved performance in OS/2 version 2.1. Major improvement will be seen in the performance of Windows applications in the WIN-OS/2 session. ═══ 14. Appendix A. Settings ═══ The following is a summary of the settings referred to in this document. o WIN_DDE This setting allows WIN-OS/2 to share DDE information between WIN-OS/2 and OS/2 sessions. For better performance, this setting should be set OFF, but only if you are not exchanging data via DDE between OS/2 and WIN-OS/2 applications. This should be set to Off for private data exchange between DOS applications. The default is ON. o WIN_CLIPBOARD This setting allows WIN-OS/2 to share clipboard information between public WIN-OS/2 and OS/2 sessions. For better performance this setting should be set to Off for private data exchange between WIN-OS/2 applications. Only set this setting Off if you will not be exchanging clipboard data between OS/2 applications and WIN-OS/2 applications. The default is ON. o WIN_RUNMODE In WIN-OS/2 3.1, the WIN_RUNMODE Settings option has been changed to include two radio buttons for selection either one of the two modes-- 3.1 Standard or 3.1 Enhanced Compatibility. Select the button 3.1 Standard for applications to be run in Standard mode The default is Standard. o DOS_AUTOEXEC The DOS_AUTOEXEC setting is new in WIN-OS/2 3.1. This setting allows the application to run in different DOS environments. You can now specify the AUTOEXEC.BAT file to be executed when the VDM session is started. The default is blank. o INT_DURING_IO Allows interrupts to be handled during file reads/writes. This setting is primarily designed for DOS multimedia applications and should be turned On when the user runs multimedia applications. Other DOS applications that do not require long file read/write should leave it Off as it will cost more memory and system overhead. The default value is Off. o DOS_AUTOEXEC The DOS_AUTOEXEC setting is new in OS/2 2.1. It allows setting a specific AUTOEXEC.BAT file for each DOS session.or Customized AUTOEXEC.BAT files help to reduce memory while optimizing function. The default is the AUTOEXEC.BAT file in the root directory.