Databook for OS/2

by David Both

Original site: http://www.databook.bz/?page_id=2704

Forward
Chapter:1 – Front Material Subsection: 2 – Other Stuff Document Number:01 Topic: Forward Date Composed: 10-27-96 02:06:52 PM Date Modified: 11-16-98 08:55:17 PM

I started writing this DataBook as a database for my own use in my consulting business, Millennium Technology, Inc. Over a period of time, I realized that my customers could use much of the data I had collected in my database. As it became clear that I could provide this data as a value-add to my current customers, it also became apparent that many others could benefit from this information as well.

At first, I intended to write a book and have one of the mainstream book publishers publish it. Well not many of them seem to be interested in Warp these days. Most of the “real” book publishers seem to have jumped on the Windows bandwagon.

With that problem staring me in the face, and since I have been creating the database anyway, and since I was going to make it available on the internet to my own customers, I decided to make it generally available for a one time access fee. I was also encouraged in my efforts by some of the good folks at (the now defunct) Indelible Blue, Inc. who told me that many of their customers are looking for information about Warp. Unfortunately IB has had no recommendations for books about Warp, especially Warp Server and Warp 4.

It is my hope that the $50 fee will be low enough to attract those who really need access to this type of data – along with the fact that the DataBook will never be out of date. As new Warp products are released by IBM, this DataBook will be updated to include them. The intent of the DataBook for OS/2 Warp is to provide information about all versions of IBM’s OS/2 Warp – to fill the gap which exists since the hardcopy book publishers don’t seem interested in the OS/2 Warp community.

Perhaps the DataBook and its kindred will soon be the “real” books and paper books will be the exception.

Warp Products Covered by the DataBook For OS/2
The DataBook for OS/2 Warp covers the following Warp products:


 * Warp 3
 * Warp 4
 * Warp Connect
 * Warp Server
 * WorkSpace on Demand
 * Warp Server for e-business

OS/2 Books Reference
These are the books I have found most useful in working with OS/2 Warp over the years. Combined, they cover much of the material that I had included in the old DataBook® for OS/2.

Obtaining these books may be somewhat problematic these days, but there are still a few around. I do have several copies of “Inside OS/2 Warp.” Table 1: OS/2 Reference Books Title 	ISBN 	Author(s) 	Publisher 	Description Inside OS/2 Warp 	1-56205-378-7 	Minasi, Camarda, Hallberg, Both, et. al. New Riders Publishing 	I co-authored this book and Chapter 22, “Troubleshooting” was reviewed as being, “A tour de force that will surely repay your $39.95.” That aside, this book is aimed at experienced users. It provides excellent coverage of everything from using the Desktop to how things work including an especially good, in-depth chapter of filesystems, and one on optimization. The OS/2 2.0 Handbook: Applications, Integration and Optimization 	0-442-01234-9 	Zack 	Van Nostrand Reinhold 	This book is a complete reference that discusses how to integrate DOS, Windows (3.1) and OS/2 applications. OS/2 Power User’s Reference 	0-07-912218-3 	Chapman 	McGraw-Hill 	This is a Tips and Techniques book using a “help desk” like Q&A format.

=Chapter 1 – What is an Operating System and why is it Important?= The operating system you use on your computer is as important—or more so—than the hardware you run it on. This chapter of the DataBook for OS/2 discusses operating systems, why they are important, and why—at the time this was originally written—OS/2 was the best choice.

This chapter starts with a brief discussion of what OS/2 Warp really is, then proceeds with a brief introduction to the concepts, functions, and purposes of operating systems. It covers the basic tasks which an operating system performs.

This section also shows why the operating system of your computer is important to you. The importance of multitasking is covered and how multitasking enables you to use your computer more effectively. The different operating systems on the market today are discussed along with brief comparisons of OS/2, DOS, Windows 3.1, Windows 95, and Windows NT. Which of today’s operating systems are appropriate for business and which ones are appropriate for small business and home use are also discussed.

Scalability is extremely important; running the same operating system from laptops to servers can make life much simpler for the network administrator or the IS manager. Warp is the only operating system on the market today which can provide that level of scalability.

A short discussion of the history and versions of OS/2 is also included in this chapter.

Technology in Today’s Business
Computers are being used in almost every business today, both large and small. Small businesses especially find computers essential. One estimate places over 25.8 million computers in home offices alone, assuming only one computer per office. Most small offices have one or more computers. With more than 21 million small businesses in the United States today, the number of personal computers in use in the small office home office (SOHO) environment is probably between 50 million and 75 million.

The term “small business” is defined differently by many people and the definition even varies between industries. Virtually all definitions of small business, however, include more than 99.9% of all the business entities in America. With only certain exceptions, the same is true for most of the rest of the world.

Computers are supposed to increase our productivity and make us work more efficiently. But no one has really told us how to do that. At least they haven’t told those of us in small businesses. Paul and Sarah Edwards, in Working From Home (Putnam, 1994) consider a computer as essential as a telephone for the home office. Neither the Edwards’ books, as good as they are, nor any of the other books for small businesses discuss computers other than to tell you that you need one and to provide a very short discussion of some of the terms you need to know and a list of some components you might buy. Most books for small businesses make little or no effort to provide you with any guidance about the kinds of decisions you should be making.

Computers – A Competitive Advantage
Many business, both large and small, use computers today to perform many tasks necessary to the daily conduct of their operations. These tasks range from “simple” accounting chores, to graphics design, word processing, E-mail, fax and other electronic communications, knowledge or information storage and retrieval, financial analysis, and untold others. The list is as long as the number of people using computers in their businesses.

For the savvy business person, the computer can be a weapon to use against the competition. Intelligent application of computer technology in today’s business environment can mean the difference between mere survival and growing your business; between being one of the pack and being the leader of the pack. Appropriate use of computer technology can make your business more competitive. This is true for the very largest businesses as well as the very smallest, and for all of those which fall in between.

Since so many business people are already using computers, you might wonder how you can use computer technology in a way which might be different from everyone else and provide you with that competitive edge. At least part of the answer lies in using your existing or new computer technology to its fullest extent rather than wasting much of the power you paid for. In the next section we will look at a typical example of how most people use their computers today so that you can see what I mean.

Wasted Computing Power
Most of the computing power you have in your office is wasted. Your computers just do not have enough to do to keep them busy even a tiny fraction of the time.

Most computer users do at least some word processing, but this example could apply to accounting, database, spreadsheet, and many other types of applications as well. Let’s assume that our user has a fairly typical computer system – a 33 MHz 80486 processor with 8 MB of RAM and a 500 MB hard drive – and that he or she is a pretty good typist – say 75 words per minute.

Note: This “typical computer” is becoming less and less typical every day as faster Pentium and Pentium Pro systems replace the slower 80486 systems. However I choose to continue using this system for my example, because faster computers waste even more CPU cycles and time. A nice, slow computer provides a good foundation for the rest of this proposition.

Let’s look more closely at a couple of things before we go further with this scenario. You have seen the specification before, for a 33 MHz 80486 processor in this system. But what exactly does that mean? This specification is a measure of the processing power of the brain of the computer. 80486 defines the type of Intel processor chip installed in the computer, and 33 MHz represents the number of clock cycles per second and defines how fast that chip runs. The 80486 computer chip is capable of processing one computer instruction every 4 to 7 clock cycles. Therefore, a 33 MHz 80486 – at 33,000,000 clock cycles per second – should be capable of executing approximately 6,000,000 instructions every second.

Our typist can type about 75 words per minute and it takes about 1500 processor instructions to process each keystroke. If we assume an average of 6 characters per word, we get 6 characters x 75 words per minute / 60 seconds per minute = 7.5 characters per second. And 7.5 characters per second x 1500 instructions per character = 11,250 instructions per second are used to type this document. That leaves 5,988,750 instructions available for use each second which have been wasted. Over 99.8% of the available processing power in this computer has been wasted because the computer simply sits there waiting for the user to press the next key. One way to increase the efficiency of our computer technology is to use those otherwise wasted clock cycles.

All of these wasted clock cycles are not the fault of your hardware, rather they are caused by the fact that DOS was designed in such a manner that it can only perform one task at a time. DOS was designed this way because the original IBM PC, back in 1981, was developed using some invalid assumptions. One of those assumptions was that the PC would be used in a single-tasking environment; that is, it would be turned on at the beginning of the day, run one program all day, and then it would be turned off at night. If the PC was on the desk of an accountant, it would run an accounting application all day long. If it were on the desk of a financial analyst, it would run a spreadsheet. If this PC were on the desk of a secretary, it would run a word processor all day long. There was no basis in these assumptions to provide a multitasking capability – that is the capability to run more than one program at a time.

Why Multitasking?
The Need for Multitasking

When many of us who purchased our first PC back in 1981 or 1982 began to use them, we immediately discovered that we needed the ability to run multiple programs at the same time. For example, within a week of taking delivery of my first PC, I was writing a letter on it. During the course of this letter, I needed to make an arithmetic calculation. I did not have a calculator, but I did have this $5,000 computer; unfortunately I could not use it to do the calculation without some time-consuming procedures. I had to go through the following steps to make a calculation and get it into my document.


 * Save my document
 * Exit from the word processor
 * Insert a diskette with a calculator program
 * Start the calculator program
 * Make the calculations
 * Write down the result
 * Exit the calculator program
 * Insert the word processing diskette
 * Restart the word processor
 * Load the document on which I was working
 * Find my place in the document
 * Type in the number

Because so many early adopters of the PC encountered this same problem, companies like Borland created programs such as Sidekick which would load and remain silent and unused in memory while other programs – such as word processors – did the work required of it. When you needed a calculator, a calendar, a schedule, or so on, you pressed a couple keys and the desired utility program appeared on the screen, ready for use. Programs like Sidekick are called Terminate and Stay Resident programs, or TSRs. So, immediately after the original IBM PC became available back in 1981, people were already trying to overcome the intrinsic single tasking nature of DOS.

One way to make your computer more efficient is to put to use as many of those wasted CPU cycles as you can. That means that you need to add true multitasking to your computer. Multitasking also makes you more efficient because you can have the programs you need available when you need them. There are currently a number of operating systems which you can use and which will give you some form of multitasking.

Multitasking in Windows 3.1
Windows 3.1 attempted to provide multitasking so that you could do more than one task at a time, but it is very limited in its capability, partially because it is still based on DOS. Windows 3.1 uses a type of multitasking called cooperative multitasking. In this type of multitasking, each application has to be willing to cooperate with other applications and surrender the processor to another program so that it can have some processor time.

With this type of environment, in which the end user has to rely upon the good intentions of all of the programmers who wrote the programs which are currently running on his or her computer, there is much reason for concern. A single program which refuses to yield the processor can cause everything else in the computer to come to a screeching halt. You can demonstrate this by starting any program on a Windows 3.1 system which will perform a task for a period of time – say printing from a word processor, or downloading a large file from an electronic BBS – then insert a diskette and format it. Whatever else you have started will come to an almost complete stop while the diskette is being formatted. Programs which do not work well together can also cause General Protection Faults (GPFs) and crash the entire system.

Multitasking in Windows 95
Windows 95 moves a tiny step closer to true multitasking, but it is still based in large part upon DOS and Windows 3.1, and suffers greatly from that limitation. Programs written specifically for Windows 95 cannot even be multitasked among themselves without cooperative multitasking, however, and when legacy Windows 3.1 programs are used alongside the Windows 95 programs, a single recalcitrant legacy application can cause the entire system to crash.

Even when using only those applications written especially for it, Windows 95 performs a significant amount of cooperative multitasking. This is because so much of Windows 95 is really Windows 3.1, and is therefore fundamentally cooperative multitasking in nature. A GPF caused by a Windows 3.1 program can still cause the entire Windows 95 system to crash.

Multitasking in Windows NT
The multitasking in Windows NT is very much like that of OS/2. The reason for that is very simple: Windows NT started life as OS/2. Back when Microsoft was responsible for creating OS/2 under contract to IBM, Windows NT was being developed as OS/2 3.0. When IBM and Microsoft split up over the relative directions of Windows and OS/2, IBM took over complete responsibility for development of OS/2 2.0, and Microsoft continued to work on what was then being called OS/2 3.0. Later on, as the rift between IBM and Microsoft grew, Microsoft renamed OS/2 3.0 as Windows NT, and IBM began development of its own version of OS/2 3.0, which became OS/2 Warp.

As a result, Windows NT has very good multitasking characteristics. However, there are other reasons why Windows NT does not make a good operating system for many businesses. Windows NT is most suitable for large businesses with some very specific networking and security needs. It requires nearly double the RAM resources of OS/2 to run well and requires significantly more disk space to install.

Windows NT is also slower and less capable than Warp Server as a file and print server. The following excerpts from an IBM press release show why.

PC Week Labs Tests Performance of Leading PC Server Operating Systems

AUSTIN, Texas, April 10, 1996. . . Results of an independent test conducted by PC Week Labs show that OS/2 Warp Server running on a single processor outperforms both Microsoft Windows NT Server and Novell Netware 4.1 running on four-way SMP- (symmetric- multiprocessing) equipped servers.

“We are very pleased with the results of this test, especially considering the fact that Windows NT was running on a server with four 133MHz Pentium processors and Warp Server was running on a uniprocessor machine,” said Art Olbert, director of product plan management, IBM Personal Software Products. “Our own tests have shown a 14 percent improvement in file and print performance in OS/2 Warp Server Version 4 over LAN Server 4.0. That means we have improved performance for our current customers and we have also beaten the competition.”

According to the tests, OS/2 Warp Server had a peak performance of 56M bps (mega-bits per second), outperforming Windows NT Server by up to 26 percent in file and print services. Windows NT Server performed at a maximum of 44 M bps, while Netware 4.1 placed last. The testing was conducted with Ziff-Davis Benchmark Operation’s newly released NetBench 4.01, with file and print services running on a 100M bps Fast Ethernet network.

“The results of this test are very impressive, but then again, I’ve always been impressed with the performance of IBM’s LAN Server,” said John Robinson, systems manager, South Carolina Department of Parks and Recreation. “And as we roll out the new OS/2 Warp Server, I’ve seen a significant improvement in file and print services.”

To view the complete article printed by PC Week, link to the PCWeek Warp Server Comparison. Note: This page is no longer available.

Multitasking in OS/2 Warp
OS/2 Warp is the only operating system for the desktop computer which was designed from the ground up as a true multitasking operating system. OS/2 relies completely upon itself for multitasking. It is in control of all applications running under it, even those which were not designed for multitasking. OS/2 will preempt any program which takes a predefined maximum amount of time and allow other programs access to the processor. OS/2 controls multitasking, not the application programs.

Here is what OS/2 Warp does for me. I do a lot of my work on a five year old computer – an IBM P75, 80486, 33 MHz system with 16 MB of RAM and a 400 MB hard drive. I also have a 1.2 GB external hard drive, a CD-ROM, a rewritable optical drive, and two 14,400 external Fax/Modems. This system is not state of the art, and it is not nearly as fast as most systems available today, but does have a lot of disk capacity. The hardware RAM capacity is maximized at 16 MB and cannot be increased further.

When I turn on my computer in the morning, OS/2 boots up and I start my personal information manager (PIM). This PIM consists of a clock/calendar with alarms, an appointment book, a to-do list, a phone book, a contact list, and a very flexible note pad. I also start my fax software which allows me to send and receive faxes while I work on other things. Since much of my day is spent writing, my word processor is usually the next application I start. I like to connect to the internet or CompuServe to check my E-mail and search for news and files of interest.

On one typical day recently, I was working on an article using DeScribe for OS/2 as a fax started to come in. FaxWorks OS/2 responded and accepted the fax. I started to print the document on which I had been working. I needed to send a message on CompuServe so I composed the message off line using Golden CommPass for OS/2. I sent the message while the print job was being sent to the printer and the fax was still coming in. While it was connected to CompuServe, Golden CommPass searched my favorite forums for new messages and downloaded the titles so I could select the ones I wanted to read at a later time. And while all of this was taking place, IBM AntiVirus/2, which is timed to scan my system for viruses every Friday at 4:00 PM, started up automatically and did so – without affecting anything else in progress.

This was admittedly a somewhat busier time for my computer than usual, but it does illustrate the potential of OS/2 to allow me to do everything I need to do without being hampered by limitations imposed on my computer by old operating system technology. It also shows that older, somewhat limited computer systems can have an extended life when OS/2 Warp is added to them. OS/2 Warp can do the same for you and your computer. The rest of this book shows you how.

Note: This example was written before I had purchased a couple new computers, but it serves to illustrate the capabilites of Warp quite well. My new computers are faster and more powerful, but I have them doing the jobs of Warp Server and Lotus Notes Server, along with the Notes Domino Server which feeds this DataBook to the World Wide Web.

Computer-Centric Strategies for Enhancing Productivity
Increasing productivity is usually viewed as a human-centric activity. Most businesses think in terms of increasing the productivity of people. Government statistics even measure productivity in terms of units of work per capita of the workforce. No wonder we think in terms of increasing the productivity of our workers. The term “workers”, as used by many large corporations today, tends to dehumanize the people who are doing the work; they become just another tool whose output is measured in units of work per tool.

The reality is, that in these days of corporate downsizing and lean staffs, most people are already doing about as much as they can. They are working harder, working smarter, putting in more hours, and using computers and other office technology to do more than they ever have before. Productivity in the U.S. continues to rise, although very slowly. The U.S. is already one of the most productive countries in the world. A new approach is needed if productivity is going to increase significantly. It is time to start thinking in terms of increasing the productivity of the tools used in todays business office.

The last really significant productivity increase in the office was in 1981 when the original IBM PC was introduced. Within a very short period of time, many offices, both large and small, had added a PC to do some specific task. Over time, many of those PCs began to be used for additional tasks. As each task was added to the PC’s workload, the user, after an initial period of learning, became more productive at those tasks.

Use of the most powerful tools available is key to increasing the productivity of your computers. Warp – in all its incarnations as a stand-alone, as a client, and as a server – is the most powerful tool you can have on your computer.

SETI@Home – A Perfect Example of Multitasking
SETI@Home is a current (as of July 2000) project that illustrates the ideal use for multitasking. It also serves to illustrate how much CPU power is wasted every day, and how the Internet can be harnessed to provide huge amounts of computing power for application to certain tasks.

SETI@Home
SETI@home is a scientific experiment begun in early 1999 that harnesses the power of hundreds of thousands of Internet-connected computers in the Search for Extraterrestrial Intelligence (SETI). Anyone with a computer that has access to the Internet can participate by running a program that downloads and analyzes radio telescope data. There is also a small but real possibility that your computer will detect the faint murmur of a civilization beyond Earth for which you could get credit as a co-discoverer.

The Project
The SETI@Home project was developed by scientists at the University of California at Berkeley. It is an attempt to locate radio emissions of intelligent beings that might be located on other planets.

The problem is that for two years, beginning in early 1999, they will be receiving data from the radio telescope at Arecibo, Puerto Rico. About 35 GB of data is generated each day. The processing needed to fully analyze this data amounts to over 36,000,000,000,000,000 calculations for the data of a single day. The Berkeley folks simply did not have the required computing power on hand nor the money to purchase it.

They came up with the idea of splitting the data into small packets that they call “work units” and sending them to computers on the Internet. Each computer could analyze one small packet of about 107 seconds worth of data at a time and then send the results back to UCB. Using thousands or even hundreds of thousands of computers at a time to analyze the data would actually create the largest virtual computer ever assembled to perform a single task.

The result of this is the software called SETI@Home. It runs on many different platforms including various flavors of Unix, Linux, OS/2 Warp, BEOS, Windows 95/98/NT, and Mac.

As I write this, there are 802,849 users participating in this project. Many, like me, use multiple computers so as to be able to process multiple work units simultaneously. At this time, over 25,000 years of CPU time has been donated to this project.

How it Works
The SETI@Home software is designed to run in the background, or as a screen saver. On Windows (all versions) systems it runs primarily as a screen saver but it can also run as a background process. On other platforms, including OS/2, it runs as a background process and only takes up those CPU cycles that are not being used by other tasks or processes.

The client software which runs on your computer contacts the server and is sent a work unit. The client software processes the data in the work unit and sends the result back to the server at Berkeley. Processing can take from a few hours to a three or four days per work unit, depending upon the speed of the client computer.

This is an outstanding use of the multitasking capabilities of many computers to achieve a result that would overwhelm a single computer, or for which a more powerful single computer cannot be made available due to resource constraints. By using the multitasking capabilities of operating systems like OS/2, this huge scientific task can be accomplished with little or no impact to the users on whose computers the program is run.

Note that on the Intel platform, the OS/2 Warp systems seem to have one of the best average times to complete each work unit. Additional Information

For more specific information about the project and how it works, link to the Berkeley SETI@Home web site.

What is OS/2 Warp?
This section describes OS/2 Warp, its features and functions. This section also contains my Short History of OS/2 as well as a bit about the future of OS/2.

Introducing OS/2 Warp
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 02. What is OS/2 Warp? Document Number:01 Topic: Introducing OS/2 Warp Date Composed: 10-29-96 09:56:04 AM Date Modified: 11-14-98 05:56:21 PM

OS/2 Warp is IBM’s premier 32-bit operating system for personal computers. It is the most widely used 32 bit operating system on the market today. Windows 95 is NOT a 32 bit operating system because it is mostly composed of 16 bit executable code; only small portions of Windows 95 are 32 bit. While Windows NT is a true 32 bit operating system, it is at least five years behind OS/2 technically.

There are many rumors floating around about the imminent demise of OS/2. To paraphrase Mark Twain, the rumors of the death of OS/2 are greatly exagerated. The reason OS/2 will be with us for a long time and will continue to grow and improve is simple – money. IBM generated revenues of over $60 billion in 1995. Companies accounting for $48 billion of that revenue depend upon OS/2. Case closed.

Warp is a Winner
The old adage “You can’t judge a book by its cover,” applies to Warp 4. It has an excellent visual and verbal interface. Underneath the simplicity of its cover, Warp 4 is the most powerful and connected environment on the market today.

OS/2 does live up to the crash protection claims which IBM makes for it. Although it is not crash-proof, OS/2 is a very solid platform which gets better with each release. As a universal client it provides unparalleled connectivity options for any environment.

The voice recognition capability built into Warp 4 is sexy and can be very useful in some situations. I have found very few businesses that use voice recognition, perhaps because they don’t know the power of this incredible feature.

Warp 4 is a sure bet for businesses which have earlier versions of OS/2. Those who have not tried it should.

Warp Features
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 02. What is OS/2 Warp? Document Number:02 Topic: Warp Features Date Composed: 10-29-96 12:15:24 PM Date Modified: 10-29-96 12:16:18 PM

OS/2 Warp 4 has a large number of powerful features, many of which cannot be found in any other operating system.


 * Crash Protection for business-critical applications.
 * True preemptive multitasking with multithreading for user productivity and fuller, more efficient use of expensive computer resources.
 * Graphical User Interface which is highly configurable for maximum ease of use and flexibility.
 * WarpCenter for easy access to important functions.
 * Run most DOS and Windows 3.1 applications along with true OS/2 applications.
 * Data can be freely exchanged between DOS, Windows, and OS/2 programs – without sacrificing system stability.
 * Connect to anything, anywhere with a universal network client which allows simultaneous connectivity to LAN Server, Warp Server, Windows NT Server, Novell Netware, Netware Directory Services, PCLAN Program, IPX-SPX, LANtastic for DOS or OS/2, Warp Connect, Windows NT Workstation, Windows 95, Windows for Workgroups, TCP/IP (including DHCP, DDNS, FTP, TFTP, Telnet, SLIP, PPP, SMTP, and SNMP), SNA, NetBIOS.
 * Java is built into Warp 4 so you need no additional software to run powerful and easy Java applications locally or right from the World Wide Web.
 * VoiceType speech recognition makes Warp 4 the only operating system in the world to allow voice navigation and dictation with no additional software.
 * WarpGuides to provide intelligent self-configurable guidance for common tasks. Ideal for new users or users new to OS/2.
 * Internet aware desktop allows one-click access to your favorite web sites.
 * TME 10 Netfinity (SystemView) for exceptional systems management, including DMI support.
 * Remote Access Services (LAN Distance) for remote access capabilities which allow you to access your network from home or the road. Remote Access Services can also allow ad hoc WAN configuration for temporary or emergency use.
 * Mobile Office Services allows the Road Warrior to keep files synchronized with the office.

In addition, many extra programs are provided free, either in the BonusPak or separately.


 * Lotus Notes Mail
 * IBM Works gives you a set of full function applications for word processing, spreadsheets, charting, data filing, and report writing.
 * FaxWorks Lite allows you to receive and send faxes. The Warp 4 BonusPak version also includes an answering machine capability.
 * CompuServe Information Manager for OS/2.
 * HyperACESS Lite for OS/2 gives you access to the world of electronic BBS services.
 * AasPSP is an on-line help desk with answers to many requently asked questions.

Many large corporations and organizations have standardized on OS/2 because it is robust, full-featured, and highly reliable. The next section tells you who is using OS/2 Warp and why.

Warp Server
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 02. What is OS/2 Warp? Document Number:03 Topic: Warp Server Date Composed: 10-30-96 08:13:23 AM Date Modified: 11-16-98 08:06:02 AM OS/2 Warp Server

The Warp family of products includes the most sophisticated and best-performing server on the market today. Warp Server integrates all of the legacy network environments a business might have, and provides incredible performance as well.

OS/2 Warp Server, which I have been using since its release in February of 1996 is IBM’s business server solution for customers ranging from small businesses to large enterprises. It provides a powerful foundation for application serving, file and print sharing, and a wealth of integrated features including systems management, backup and recovery, remote access, enhanced TCP/IP support, advanced print function and LAN Internet access.

WARP Server Features
OS/2 Warp Server delivers an integrated platform for the emerging application server environment as well as a complete set of traditional file and print services. Warp Server provides an integrated packaging of OS/2 Warp, LAN Server 4.0 (with some enhancements and fixes), SystemView for OS/2, remote access, advanced backup disaster and recovery, and a new printing capability that allows, among other things, printing postscript files on non-postscript printers.

Because OS/2 Warp Server is based on OS/2 Warp, it possesses the same 32-bit, preemptive multitasking capabilities of Warp. It offers reliable crash protection, runs OS/2 and DOS applications and contains IBM’s own WIN-OS2, which provides support for 16- and 32-bit Windows applications.

File and Print Services
OS/2 Warp Server provides an easy-to-use, graphical, drag-and-drop administration model. This model enables network administrators and resellers to quickly install, set up, configure, and manage a network. It offers tight security that is flexible enough to be customized to the needs of any business by assigning various privileges down to specific files on the server. Warp Server provides protocol stacks for NETBIOS, TCP/IP, IPX-SPX, and TCPBEUI.

OS/2 Warp Server also uses the powerful High Performance File System (HPFS) and Warp Server Advanced offers the HPFS386 file system which provides even faster performance for file servers, local security on the server, and fault tolerance. HPFS also saves disk space.

Advanced Systems Management
OS/2 Warp Server contains systems management features that ensure a high degree of performance and reliability. With OS/2 Warp Server, administrators can remotely manage computers across the network. This enables them to quickly address network issues by monitoring or through remote control of any computer on a LAN without leaving their desks. Alerts built into OS/2 Warp Server warn administrators of predictive hardware failures such as low disk space and exceeding the CPU threshold.

Remote Access
OS/2 Warp Server features a full set of remote access capabilities. With OS/2 Warp Server, organizations ranging from small businesses to multinational corporations can now quickly access vital information via this integrated remote functionality. Ad hoc networks between two standalone computers can be set up, as well as LAN to LAN connections. Road Warriors now have access to the corporate network from any location with a telephone.

Advanced Print Function
Printing over the network is an important task for organizations of all sizes. OS/2 Warp Server includes new printing enhancements that enables users to send postscript documents to nonpostscript printers such as Hewlett-Packard and LexMark. OS/2 Warp Server’s advanced printer functionality is also compatible with high speed host printers in a mainframe connected environment.

Client Support
OS/2 Warp Server supports all popular network clients, including OS/2 Warp and OS/2 Warp Connect, DOS, Windows 3.x, Windows 95, Windows NT and Macintosh. OS/2 Warp Server also supports gateway functionality to NetWare and Microsoft servers by allowing OS/2 Warp Server clients to access non-OS/2 Warp Server resources. LAN Server for Macintosh is also available as an additional product.

Note: The Macintosh client and LAN Server for Macintosh (LSM) are NOT shipped with Warp Server.

Warp Server Performance
Warp Server’s performance is outstanding. An independent test conducted by PC Week Labs shows that OS/2 Warp Server running on a single processor outperforms both Microsoft Windows NT Server and Novell Netware 4.1 running on four-way SMP (symmetric-multiprocessing) equipped servers. Tests show OS/2 Warp Server running on a single processor system had a peak performance of 56M bps (megabits per second), outperforming Windows NT Server by up to 26 percent in file and print services. Windows NT Server running on a four way SMP system performed at a maximum of 44 Mbps, while Netware 4.1 placed last. The testing was conducted with Ziff-Davis Benchmark Operation’s newly released NetBench 4.01, with file and print services running on a 100 Mbps Fast Ethernet network. SMP Feature for OS/2 Warp Server Advanced

OS/2 Warp Server Advanced with SMP outperforms Microsoft Windows NT Server 3.51 by more than 25 percent in capacity. OS/2 Symmetric-multiprocessing provides support for more users by allowing software servers to exploit multiple processors with the same server software installed. The SMP feature for OS/2 Warp Server Advanced is optimized for 2-way and 4-way SMP systems, the dominant SMP platforms today, but has the ability to support up to 64 processors – far more than any other SMP offering in the market. Ziff-Davis Labs observed a 90 percent improvement in throughput when adding one processor, and a 300 percent improvement when adding three processors. This scalability is significantly better than that of Windows NT. The SMP feature not only supports 32-bit SMP-enabled applications, but also offers increased performance for non-SMP applications. Warp Server for e-bisiness (Aurora) – 1999

This new version of Warp Server (Code name Aurora) called Warp Server for e-business, will become available in early 1999. It will have a number of new and very interesting features.


 * Full Y2K compliance out of the box. Previous versions of Warp are Y2K compliant after installation of fixpacks.
 * Support for Eurocurrency.
 * A graphical interface for defining and managing National Language Support (NLS) Locales. A Locale is usually a country.
 * Netscape Communicator 4.04.
 * Lotus Domino Go Server for hosting web sites.
 * WebSphere Application Server 1.1.
 * NT Server Management. This will allow management of NT domains and servers from an OS/2 system including the ability to keep OS/2 and NT accounts synchronized. Users will be able to log on once and have access to both OS/2 and NT server resources.
 * I2O support. Intelligent I/O means that so long as a device supports I2O there will be no need to wait for the vendor to provide an OS/2 version of the device driver.
 * SMP support.
 * Network File System (NFS) for sharing files across networks.
 * Logical Volume Management will allow users to create logical volumes that are not location dependent. For example a user can create a D: drive and weeks or months later move it to a different physical hard drive and still refer to it as D:. LVM also allows logical volumes to span multiple physical disk drives and gives users the ability to expand the size of a logical volume on the fly – without rebooting the system.
 * The Journaling File System (JFS) provides faster performance, higher disk capacity, improved scalability, and faster recoverability.

Warp Server for e-business uses the object oriented user interface (OOUI) of Warp 4 for its user interface.

OS/2 Awards
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 02. What is OS/2 Warp? Document Number:04 Topic: OS/2 Awards Date Composed: 10-29-96 12:56:09 PM Date Modified: 06-19-97 12:44:16 PM

OS/2 has won more awards than any other operating system. In fact, it has won many awards more than once.

On March 26, 1996, InfoWorld announced that its readers had selected IBM’s OS/2 as the Overall Readers’ Choice Product of the Year for an unprecedented fourth consecutive year. OS/2 Warp Connect also took the prize for best client product of the year, topping Microsoft Windows 95 and Windows NT Workstation.

“OS/2 is the only product in the history of our Product of the Year Awards to win four consecutive years,” said Stephen Moylan, vice president and publisher of InfoWorld, a leading IS newsweekly that focuses on editorial coverage of client/server products used in corporate enterprises. “This is an extremely competitive category and OS/2′s continued domination of the top spot year after year is truly amazing.”

Note: Although InfoWorld acknowledges the fact that OS/2 has won the 1997 Reader’s Chioce Awards in three categories by a margin of six to one, they have invalidated the results due to what they term, “OS/2 Zealots…stuffing the ballot box”. They commissioned another survey which, of course, returned results of which they approved.

This is a partial list of the awards won by OS/2 2.x, OS/2 Warp 3, Warp Connect, Warp 4, and Warp Server. It does not include any awards won by OS/2 1.x. 

Organization   Product    Award InfoWorld Magazine (1997) 	OS/2 Warp 4 	1997 Overall Product of the Year (Readers’ Poll) InfoWorld Magazine (1997) 	OS/2 Warp Server 	1997 Server Product of the Year (Readers’ Poll) InfoWorld Magazine (1997) 	OS/2 Warp 4 	1997 Client Product of the Year (Readers’ Poll) Byte Magazine (Jan97) 	Warp 4 	Editor’s Choice Award of Distiction NetworkWorld Magazine(96) 	Warp Server 	World Class award. Only given to products which achieve a rating of 9 or above (out of 10) on the product scorecard. Warp Server is the first product to ever win this award. InfoWorld Magazine (25Mar96) 	OS/2 Warp Connect 	1996 Overall Product of the Year (Readers’ Poll) InfoWorld Magazine (25Mar96) 	OS/2 Warp Connect 	1996 Client Product of the Year (Readers’ Poll) LAN Times (Sep95) 	OS/2 Warp Connect 	4.5 Stars (out of 5) OS/2 Magazine (Oct95) 	OS/2 Warp Internet Access Kit 	Editors’ Choice PC Magazine (Jul95) 	OS/2 Warp 3.0 	#1 Overall (8.8 out of 10) – Customer Satisfaction Survey PC World Magazine (Jul95) 	OS/2 Warp 3.0 	1995 Corporate Product of the Year Byte Magazine (May95) 	OS/2 Warp 3.0 	Readers’ Choice Award, 1995 Software Product of the Year Jerry Pournelle/Byte Mag. (Apr95) 	OS/2 Warp 3.0 	User’s Choice Award: Operating Systems InfoWorld Magazine (20Mar95) 	OS/2 Warp 3.0 	1994 Desktop Operating System of the Year InfoWorld Magazine (20Mar95) 	OS/2 Warp 3.0 	1994 Software Product of the Year (Readers’ Poll) InfoWorld Magazine (20Mar95) 	OS/2 Warp 3.0 	1994 Overall Product of the Year (Readers’ Poll) SPA Tenth Annual Excellence in Software Awards (Codies) (Mar95) 	OS/2 Warp 3.0 	Best New Business Software Product Industrie Forum [Germany] (08Mar95) 	OS/2 Warp 3.0 	Design Excellence Award: Screen Interface OS/2 Professional Mag. (Mar95) 	OS/2 Warp 3.0 	Innovation of the Year Chip Magazine [Europe] (Mar95) 	OS/2 Warp 3.0 	Operating System of the Year DOS International Mag. [Europe] (Mar95) 	OS/2 Warp 3.0 	Operating System of the Year 1+1 Magazine [Europe] (Mar95) 	OS/2 Warp 3.0 	1+1 Magazine [Europe] (Mar95) PC Magazine (Mar95) 	OS/2 Warp 3.0 	Best Products of 1994: Operating Systems What Personal Computer [UK] (10Jan95) 	OS/2 Warp 3.0 	5 Star Award Kapital Data [Norway] (Jan95) 	OS/2 Warp 3.0 	1995 Product of the Year Computer Shopper (Jan95) 	OS/2 Warp 3.0 	Best Buys of 1994: Best Operating System (Reader balloting) Byte Magazine (Jan95) 	OS/2 2.1 for Windows 	Award of Distinction for 1994 InfoWorld Magazine (14Nov94) 	OS/2 Warp 3.0 	Test Center Hot Pick PC World Magazine [Norway] (Nov94) 	OS/2 Warp 3.0 	1994 Product of the Year PC Week Magazine (22Aug94) 	OS/2 2.11 for SMP 	PC Week Labs, Product of the Week Ziff-Davis Europe (06Jun94) 	OS/2 2.1 for Windows 	Grand Award for Technical Excellence Byte Magazine (Jun94) 	OS/2 2.1 	Readers’ Choice Award – Software Product of the Year PC World Magazine [Spain] (31May94) 	OS/2 2.1 	Special Award PC Magazine (31May94) 	OS/2 2.1 	Editors’ Choice – 32-bit Operating Systems Binary Magazine [Spain] (19May94) 	OS/2 2.1 	Award of Excellence for 1993 Byte Magazine (May94) 	OS/2 Warp 3.0 beta 	COMDEX Best of Show – Overall Byte Magazine (May94) 	OS/2 Warp 3.0 beta 	COMDEX Best of Show – System/Development Software Jerry Pournelle/Byte Mag. (Apr94) 	OS/2 2.1 for Windows 	Chaos Manor User’s Choice Award – Operating System of the Year InfoWorld Magazine (28Mar94) 	OS/2 2.1 	1993 Software Product of the Year (Readers’ Poll) InfoWorld Magazine (28Mar94) 	OS/2 2.1 	1993 Overall Product of the Year (Readers’ Poll) InfoWorld Magazine (28Mar94) 	OS/2 2.1 	Interoperability Award Chip Magazine [Germany] (22Feb94) 	OS/2 2.1 	Operating System of the Year 1993 (Readers’ Poll) Datamation Magazine (15Feb94) 	OS/2 2.1 	1993 Product of the Year - PC Software (Readers’ Poll) PC Expert Mag. [France] (Feb94) 	OS/2 2.1 	Technical Excellence Award Windows Magazine (Feb94) 	OS/2 2.1 	WIN 100, Best Windows Products of 1994 – Operating Systems Byte Magazine (Jan94) 	OS/2 2.1 	Best Products of 1993, Award of Excellence Computer Shopper (Jan94) 	OS/2 2.1 	Best Buys of 1993: Best Operating System (Reader balloting) PC Week Magazine (27Dec93) 	OS/2 2.1 	PC Week Labs, Product(s) of the Year 1993 Houston Chronicle (Dec93) 	OS/2 2.1 	Best Operating System PC Magazine [U.K.] (Dec93) 	OS/2 2.1 	Technical Innovation Award: Best Desktop Operating System Chinese Micro Computer Extended Foundation (Taiwan) (Dec93) 	Version T2.1 	10 Best Chinese Information Products of 1993 PC/Computing Magazine (Dec93) 	OS/2 2.1 	1993 MVP (Most Valuable Product): Operating Systems and Environments PC/Computing Magazine (Nov93) 	OS/2 2.1 	1993 MVP Finalist: Multimedia Software Byte Magazine (Nov93) 	OS/2 2.0 	COMDEX Best of Show, Operating Systems Ziff-Davis Europe (07Jun93) 	OS/2 2.0 	Software Excellence Award, Operating Environment and Desktop PC Magazine [Chile] (May93) 	OS/2 2.0 	Best Operating System for Personal Computers PC Professionell [Germany] (May93) 	OS/2 2.0 	Innovations of the Year for 92/93 – System Software InfoWorld Magazine (26Apr93) 	OS/2 2.0 	1992 Software Product of the Year InfoWorld Magazine (26Apr93) 	OS/2 2.0 	1992 Overall Product of the Year Soft et Micro [France] (Apr93) 	OS/2 2.0 	1993 Must Have Product of the Year PC Magazine [Mexico] (31Mar93) 	OS/2 2.0 	1992 Technical Excellence Award – Operating Systems and Software Standards Computergram Int’l (Mar93) 	OS/2 2.0 	Product Excellence Award PC Magazine [Brazil] (Mar93) 	OS/2 2.0 	Best System for Multimedia PC Magazine [Spain] (Mar93) 	OS/2 2.0 	Product of the Year 1992 Computer Language Magazine (23Feb93) 	OS/2 2.0 	Jolt Cola Award for Product Excellence 1992 [OS/2 2.0] Datamation (15Feb93) 	OS/2 2.0 	1992 Product of the Year – PC Software PC Magazine [Italy] (03Feb93) 	OS/2 2.0 	PC Technology Award Washington Journal (Feb93) 	OS/2 2.0 	Best of 1992 – Operating System Softwarove Noviny [Czech Republic] (Feb93) 	OS/2 2.0 	1992 Product of the Year Corporate Computing (Jan93) 	OS/2 2.0 	Best Buy PC World Norge [Norway] (Jan93) 	OS/2 2.0 	Product of the Year 1992 PC Week Magazine (28Dec92) 	OS/2 2.0 	PC Week Labs Top Products of ’92 – Operating Systems Information Week (22Dec92) 	OS/2 2.0 	1992 Top Products – The 10 Most Likely to Succeed PC Magazine (22Dec92) 	OS/2 2.0 	Technical Excellence Award, Operating Systems and Software Standards PC/Computing Magazine (Dec92) 	OS/2 2.0 	1992 MVP: Operating System/Environment PC World Magazine (Dec92) 	OS/2 2.0 	PC Industry Achievement Award, Most Promising Newcomer – Software Byte Magazine (Nov92) 	OS/2 2.0 	COMDEX Best of Show, Operating Systems



Note: (Hot Pick Award) – The InfoWorld Test Center “Hot Picks are products that stand out in technical achievement or are by far the best of class.” (InfoWorld, 14Nov94)

A Short History of OS/2
It is important to understand a little of the history of OS/2 to understand where we are today in the operating system arena, particularly with OS/2. A historical perspective is also prerequisite to understanding the differences between and similarities among the operating systems and environments available today.

In the Beginning DOS – 1981
In 1981 when the original IBM Personal Computer was announced, IBM released three operating systems for it. How many of you remember that? Since I wrote the first IBM course on how to fix this original PC, I had to know at least a little about all three of them.

IBM decided early in the development process of the PC that they did not want to hire a bunch of programmers to write software for it – especially an operating system. IBM wanted the hardware business and did not care about the software. Since there was no clear-cut contender for an operating system at the time, IBM approached three organizations about writing one for the PC.

IBM first approached Digital Research and asked them to create a version of CP/M (Control Program/Microcomputer). The owner of DR – Gary Kildall – snubbed the IBM lawyers and went flying or golfing (depending upon whose story you hear) instead. My latest information indicates that he was flying and did not golf.

IBM then turned to Microsoft. Bill Gates was very receptive to the IBM overture and also had information about an operating system which had already been written that would fill IBM’s need very nicely. Gates said yes to IBM, bought the operating system called DOS for a relatively trivial amount of money, $20,000 to $80,000, again depending upon who is telling the story, and modified it somewhat to run on the IBM PC.

For you trivia buffs, the other OS delivered with the original PC was the UCSD P-System (University of California at San Diego Pseudo code System). I will permit those who make a living from documenting the history of computers to describe that operating system elsewhere.

Incorrect Assumptions
I suppose we all know what assumptions can do for us. IBM made some interesting assumptions about the original PC in 1981; or rather, Don Estridge and his very autonomous development team did.

I was in a meeting with Estridge and a number of other people in April of 1981, when I first was assigned to write the IBM education for the PC. It was stated at this meeting that IBM expected to sell about 275,000 Personal Computers – over a five year product life. In fact, IBM sold almost that many on August 11, the day before the official announcement. IBM held a preannouncement showing of the PC in Toronto at the annual ComputerLand Dealers of North America conference. ComputerLand dealers placed orders for nearly 250,000 computers that day. On August 12, IBM took orders for almost 250,000 more Personal Computers. IBM’s planners have not been correct since.

At the same meeting the target environment for the PC was described. Here are some of the assumptions made then.


 * Small business would buy most PCs.
 * Large business would stick with mainframes and dumb terminals.
 * A few departments in large businesses would use PCs for local, non-connected work.
 * The PC would be used for one task only. Not just one task at a time, but a single task all day long. This might be a spreadsheet, or word processing, or accounting, but no more than one task would be performed all day.

Based on these assumptions, the operating system was specified to be single tasking. Besides, although the hardware was far more powerful than anything else available in the microcomputer market at the time, it just was not powerful enough to warrant the extra load that multitasking would place on it.

As we all know, DOS became the OS of choice for the Personal Computer. In part, this was due to its significantly lower price when compared to the other operating system choices then available for the PC.

The Problem
As soon as I bought my original PC ($5,000 for Intel 8088, 4.77 MHz, 96 KB RAM, monochrome display adapter and display, 80 CPS dot matrix printer) I ran into The Problem.

I was writing a letter in EasyWriter and needed to make a calculation so I could use the result in the letter. Why should I get out a $10 calculator when I have a $5000 one sitting here? Of course in order to use it as a calculator, I have to save my document, close EasyWriter, reboot to another diskette with the calculator program on it (which I wrote myself in BASIC), do the calculation, write down the answer, reboot to the diskette with EasyWriter, load the document, and type in the figure from the paper.

We needed multitasking already.

A couple smart companies like Borland came out with Terminate and Stay Resident (TSR) programs like Sidekick which allowed you to switch to them by pressing a special key combination. Sidekick had the calculator as well as a calendar, notepad, schedule, and other little utilities which we all needed.

The TSR became a circumvention for the lack of intrinsic multitasking in DOS and the PC.

The PC AT – 1984
In 1984, IBM introduced the PC-AT which was the first (IBM) PC to use the new Intel 80286 processor. The 80286 was designed by Intel with support for multitasking built into it. IBM made a promise to its customers that they would provide a multitasking operating system for the PC-AT. IBM keeps its promises, unlike Microsoft.

The PC-AT was supposed to be able to do multitasking, and some IBM publicity photos even showed it connected to two dumb terminals. IBM had contracted Microsoft to create the first multitasking OS for the PC, but Bill Gates really did not want to do this for the 80286 processor. He publicly called the 80286 “brain dead” and constantly attempted to turn IBM away from creating OS/2 for the 80286 and to jump instead to the 80386 which was then under development at Intel.

Most people don’t know this, even many IBMers who should, but IBM has a series of internal documents called Corporate Directives. Corporate Directive number 2, signed by Thomas J. Watson Jr. in 1956, states that when IBM makes a promise to its customers it will keep that promise “… regardless of the cost.” It was on this basis that IBM pressured Microsoft to continue work on OS/2 1.00.

At this time, the IBM PC was the responsibility of Entry Systems Division (ESD). ESD was also working closely with Microsoft to produce OS/2. During this time, Microsoft was also working on the first versions of Windows, and IBM was working on a product called TopView which was a DOS add-on that allowed text mode multitasking. Most people do not remember TopView, but it was a good product and I used it between 1984 and 1987 when OS/2 1.00 was released. The OS/2 Years

OS/2 1.00 – 1987
Released in December, 1987, OS/2 1.00 was the first ever operating system for the Personal Computer to provide intrinsic multitasking based on hardware support. It was text mode only and allowed only one program to be on the screen at a time, even though other programs could be running in the background. It also allowed one very limited session in which DOS programs could be run. The maximum disk size supported was 32 MB.

Note: All 1.x versions of OS/2 were designed specifically to run on 80286 systems, but they were capable of running on 80386 systems as well.

OS/2 1.10 SE – 1988
In October, 1988, IBM released OS/2 1.10 Standard Edition (SE). SE 1.10 added a graphical user interface (GUI) to OS/2. This GUI, called Presentation Manager (PM), allowed users to interact with the operating system in a more friendly manner than the command line interface provided.

Unfortunately the PM required a very large learning curve on the part of programmers. When programmers became proficient they found that PM, and the rest of the OS/2 APIs (Application Programming Interfaces), were very powerful and quite efficient.

Support for large FAT hard drives was included in this version. By dividing large physical drives into multiple logical hard drives, up to 2 GB drives could be supported.

OS/2 1.10 EE – 1989
When IBM announced OS/2 1.10 SE, they also announced OS/2 1.20 EE (Extended Edition). This product, released in early 1989 included Database Manager and Communications Manager.

Database Manager was (and is) a multitasking relational database with a great deal of power. It is now called DB2.

Communications Manager provided IBM mainframe and midrange customers with multiple 3270 and 5250 emulation sessions. It also contained a really bad asynchronous communications program.

OS/2 1.20 – 1989
Released in November 1989, OS/2 1.20 (SE and EE) offered an improved Presentation Manager. Available with OS/2 1.2 EE for the first time was the High Performance File System (HPFS). HPFS is much more efficient and faster than FAT. HPFS also offers much greater data integrity.

REXX also appeared for the first time in OS/2 1.20 Extended Edition. REXX is a very powerful interpretive programming language which can be used for writing a complete application or as an extended batch language. I use REXX quite frequently to write everything from quick and dirty programs to do something one time, to very large, sophisticated programs which I use constantly.

Work had also begun on two new OS/2 products. Work on OS/2 2.0 was well underway. This product would be the first true 32 bit operating system for personal computers. Designed to work on the Intel 80386 and its follow on processors which were still in development, OS/2 2.00 would no longer be compatible with the 80286 processor.

OS/2 3.0 was in the very early stages of development and was intended at the time to be a network server version of the operating system. It was also intended to be platform independent. Because the operating system would be built on top of a microkernel, it would not need to be aware of the type of hardware on which it was running and therefore could run on Intel processors as well as Motorola, SUN, and DEC, chips with only a change of the microkernel hardware abstraction layer.

1990 – The Schism
In 1990, IBM and Microsoft were still working together on the development of OS/2. Microsoft, however, had found that Windows 3.0 – released in May 1990 – generated more revenue for them and therefore allotted increasingly more resource to Windows and correspondingly less to OS/2.

By late 1990, Microsoft had intensified its disagreements with IBM to the point where IBM decided that it would have to take some overt action to ensure that OS/2 development continued at a reasonable pace. IBM, therefore, took over complete development responsibility for OS/2 1.x, even though it was in its dying days, and OS/2 2.00. Microsoft would continue development on Windows and OS/2 3.00. Shortly after this split, Microsoft renamed OS/2 V3 to Windows NT.

OS/2 1.30 – 1991
OS/2 1.30 (SE and EE) was the first version which was written entirely by IBM. There was still some Microsoft code in it – that would not go away for a couple years yet – but all of the new code and a good portion of the existing code for OS/2 1.30 was written by IBM. As a result, OS/2 1.30 was smaller and faster than previous versions, more stable, and there were far more device drivers available, though still not nearly enough.

It has never ceased to amaze me that Microsoft could write code for Windows which was (relative to OS/2 1.1 and 1.2) easy to use and for which there were plenty of device drivers. Take the process required to install and configure a printer. Under Windows it was a simple two step process. Under OS/2 1.2 it required the user to perform unnatural acts:

Install the device drivers. Set up a printer queue. Create a printer object. Associate the device driver with the printer object. Associate the print queue with the printer object. Set up the COM port configuration for a serial printer. Use the SPOOL command to redirect printer output to the desired port. Specify optional printer settings.

No wonder people thought OS/2 was difficult! In my opinion, Microsoft was intentionally making OS/2 as difficult to use as possible – or the programmers they had assigned to write OS/2 were the stupid ones. I still have a copy of the three page article I wrote for what was then OS/2 and Windows Magazine (it later became Windows magazine and never had any relationship to the late, lamented OS/2 Magazine) describing in detail the steps required to install and configure a printer under OS/2 1.20.

With IBM writing OS/2 1.30, the printer installation became much easier, as did much of the installation and configuration. IBM completely rewrote the Print Manager in order to achieve this. It was not great yet, but it was incomparably better than it had been.

OS/2 1.30 added some other important new or improved features.


 * REXX was added to the SE version. It had previously only been available with EE.
 * Adobe Type I type fonts. (It was shortly after this that Microsoft began development of TrueType fonts. Interesting!)
 * New, more easily readable fonts for the command prompt sessions.
 * Lazy Write was added to the HPFS file system.
 * The swapping algorithm was improved considerably to enhance performance.
 * Video device drivers were enhanced to include high resolutions up to 1024×768.

OS/2 2.00 – 1992
OS/2 2.00 was released in the spring of 1992. The first true 32 bit operating system for personal computers (and for years the only one) it met IBM’s stated goal of being a better DOS than DOS and a better Windows than Windows. It did this through the use of Virtual DOS Machines (VDMs) which allowed OS/2 to run many DOS (and Windows) programs at the same time as though they were on completely separate computers. As far as the DOS programs were concerned, they actually were in separate computers. Windows programs run on IBM’s licensed version of Windows 3.0 called Win-OS/2.

Because of this separation of DOS programs from each other, one Windows (remember – Windows is a DOS program) program which crashes can not crash any other Windows program. By placing Windows programs which do not play well together in Windows sessions in different VDMs, they can both run without interfering with each other. In addition the programs can still communicate through Dynamic Data Exchange and the clipboard.

The Workplace Shell (WPS) was also introduced in OS/2 2.00. The Workplace Shell is an object oriented user interface (OOUI). The IBM WPS takes the GUI to the next generation by integrating it much more fully with the rest of the operating system, including the file system.

OS/2 2.10 – 1993
In May of 1993, IBM released OS/2 2.10. This version sported a new, faster, fully 32 bit graphics subsystem, TrueType fonts for Win-OS/2 sessions, and Multimedia Presentation Manager (MMPM/2) which provided sound and video multimedia capabilities. Windows support was upgraded from 3.0 to 3.1.

PCMCIA support for laptop computers also made its debut with OS/2 2.10, along with Advanced Power Management (APM). OS/2 could work with laptop computers with an APM BIOS to reduce power consumption and extend battery life. PCMCIA support was crude and supported only a very few computers and PCMCIA credit card adapters.

To reduce the price of OS/2 for users who already had Windows on their computers, IBM released OS/2 2.11 for Windows in late 1993. This version of OS/2 did not have Win-OS/2 and, instead, relied upon the copy of Windows 3.1 already installed on the computer to allow OS/2 to run Windows programs. It did this by making some minor modifications to the Windows SYSTEM.INI and WIN.INI files, and hooking the Windows 3.1 code once it was loaded into memory so that OS/2 could control the Windows 3.1 code in the VDM.

OS/2 Warp – 1994
OS/2 Warp Version 3 made its debut in October 1994 as OS/2 Warp for Windows. Like OS/2 2.11 for Windows, it did not contain IBM’s Win-OS/2 code and relied on Windows 3.1 to run Windows programs. OS/2 Warp 3 with full Win-OS/2 support became available a short time later.

Warp 3 was designed to install and run on a computer with only 4 MB of RAM and it did. Performance was tolerable, but adding more RAM improved performance considerably. Additional device drivers made Warp 3 capable of running with the vast majority of personal computers and peripherals on the market. The Workplace Shell was improved significantly in terms of both its functionality and performance. Print performance, PCMCIA support, and multimedia support were all enhanced significantly.

TCP/IP and Internet communications were also added to Warp 3. The Internet Access Kit (IAK) provided a complete package to enable Warp users to log on and surf the net. The Web Explorer allowed users access to the World Wide Web, although it was neither as feature rich nor as flexible as the industry leader, NetScape. Text mode and graphical FTP applications allowed file transfer. Ultimail Lite gave users e-mail, but Ultimail is cumbersome, slow, and very difficult to configure.

Unlike previous versions of OS/2, Warp shipped with a BonusPak CD-ROM which contained several OS/2 applications. IBM Works is a set of integrated applications including a spreadsheet, word processor, database, report generator, and charting program.

Warp Connect
Released in 1995, Warp Connect combines all of the features of Warp 3 with network connectivity and tools. Warp Connect Peer functions allow client workstations to share resources such as files, printers, and modems with other users on a network. LAN Server 4.0 and Netware requesters allow access to the most popular network server environments.

Warp Server
In early 1996 IBM released Warp Server. This landmark product combines the power and functionality of Warp 3 with the network server capabilities of IBM’s LAN Server 4.0 product. With some relatively minor fixes to the LAN Server product, and the addition of many previously separate products, Warp Server is the leading server environment.

Warp Server includes many features which would cost extra with other server operating systems. OS/2 Warp Server delivers an integrated platform for the emerging application server environment as well as a complete set of traditional file and print services. Warp Server provides an integrated packaging of OS/2 Warp, LAN Server 4.0 (with some enhancements and fixes), SystemView for OS/2, remote access, advanced backup disaster and recovery, and a new printing capability that allows, among other things, printing postscript files on non-postscript printers.

SMP Feature for OS/2 Warp Server Advanced – 1996
IBM Introduced Warp Server SMP in Late 1996. Symmetric Multiprocessing (SMP) provides the ability for the operating system to spread the computing workload across multiple processors. The advantage of SMP as implemented in OS/2 is that it balances the processing load fairly equally between the processors.

OS/2 Warp Server Advanced with SMP outperforms Microsoft Windows NT Server 3.51 by more than 25 percent in capacity. OS/2 Symmetric-multiprocessing provides support for more users by allowing software servers to exploit multiple processors with the same server software installed. The SMP feature for OS/2 Warp Server Advanced is optimized for 2-way and 4-way SMP systems, the dominant SMP hardware platforms available today, but has the ability right now to support up to 64 processors – far more than any other SMP offering in the market. Ziff-Davis Labs observed a 90 percent improvement in throughput when adding one processor, and a 300 percent improvement when adding three processors. This scalability is significantly better than that of Windows NT. The SMP feature not only supports 32-bit SMP-enabled applications, but also offers increased performance for non-SMP applications.

OS/2 Warp 4 – 1996
Warp 4, code named Merlin, was released in September of 1996 with a significant facelift for the Workplace Shell. New features include Java, and VoiceType Navigation and Dictation.

Warp 4 is called the “Universal Client” by IBM because of its unparalleled network connectivity.


 * Connect to anything, anywhere with a universal network client which allows simultaneous connectivity to LAN Server, Warp Server, Windows NT Server, Novell Netware, Netware Directory Services, PCLAN Program, IPX-SPX, LANtastic for DOS or OS/2, Warp Connect, Windows NT Workstation, Windows 95, Windows for Workgroups, TCP/IP (including DHCP, DDNS, FTP, TFTP, Telnet, SLIP, PPP, SMTP, and SNMP), SNA, NetBIOS.
 * Java is built into Warp 4 so you need no additional software to run powerful and easy Java applications locally or right from the World Wide Web.
 * VoiceType speech recognition makes Warp 4 the only operating system in the world to allow voice navigation and dictation with no additional software.
 * WarpGuides provide intelligent self-configurable guidance for common tasks. Ideal for new users or users new to OS/2.
 * Internet aware desktop allows one-click access to your favorite web sites.
 * TME 10 NetFinity (SystemView) for exceptional systems management, including DMI (Desktop Management Interface) support.
 * Remote Access Services (LAN Distance) for remote access capabilities which allow you to access your network from home or the road. Remote Access Services can also allow ad hoc WAN configuration for temporary or emergency use.
 * Mobile Office Services allows the Road Warrior to keep files synchronized with the office.

Warp Server for e-business (Aurora) – 1999
This new version of Warp Server (Code name Aurora) called Warp Server for e-business, will become available in early 1999. It will have a number of new and very interesting features.


 * Full Y2K compliance out of the box. Previous versions of Warp are Y2K compliant after installation of fixpacks.
 * Support for Eurocurrency.
 * A graphical interface for defining and managing National Language Support (NLS) Locales. A Locale is usually a country.
 * Netscape Communicator 4.04.
 * Lotus Domino Go Server for hosting web sites.
 * WebSphere Application Server 1.1.
 * NT Server Management. This will allow management of NT domains and servers from an OS/2 system including the ability to keep OS/2 and NT accounts synchronized. Users will be able to log on once and have access to both OS/2 and NT server resources.
 * I2O support. Intelligent I/O means that so long as a device supports I2O there will be no need to wait for the vendor to provide an OS/2 version of the device driver. In fact, no operating system specific device drivers need to be written for I2O devices.
 * SMP support.
 * Network File System (NFS) for sharing files across networks.
 * Logical Volume Management will allow users to create logical volumes that are not location dependent. For example a user can create a D: drive and weeks or months later move it to a different physical hard drive and still refer to it as D:. LVM also allows logical volumes to span multiple physical disk drives and gives users the ability to expand the size of a logical volume on the fly – without rebooting the system.
 * The Journaling File System (JFS) provides faster performance, higher disk capacity, improved scalability, and faster recoverability.

Warp Server for e-business uses the object oriented user interface (OOUI) of Warp 4 for its user interface.

The New Millennium
By the mid-2000s IBM had terminated support of OS/2. There are still a few folks using OS/2 on computers that are tucked away in closets and that most of their users have forgotten about. But they are still there chugging away.

Most current hardware, particularly the peripherals is not supported by OS/2 and no commercial software is available — which might be a good thing. Some open-source software is available and runs well on OS/2, so if you want to keep that old box going you can find new software for it.

Frankly there are much better operating systems than OS/2 these days, and Windows is still not one of them. Mac OS and Linux are the best choices today.

The Future of OS/2
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 02. What is OS/2 Warp? Document Number:06 Topic: The Future of OS/2 Date Composed: 06-28-97 10:58:11 AM Date Modified: 10-18-98 07:36:49 PM

IBM has stated that it will continue to develop and promote OS/2 for at least the next ten years. The future development of OS/2 Warp has been laid out by IBM for the next five years. Here is what I know and can tell.

Java
IBM views Java as a way to make application programs independent of the operating system on which they run. Because of Java’s pivotal role in the next few years, IBM is spending large amounts of money on Java development. The language itself, programming tools, and Java applications are all being developed.

Additional Hardware Support
IBM recognizes the need for more hardware device drivers for OS/2 and has committed significant money and development resource to creating additional hardware drivers over the next five years, which is as far as the plan goes for now.

Warp Server (Aurora) – 1999
This new version of Warp Server (Code name Aurora) called Warp Server for e-business, will become available in early 1999. It will have a number of new and very interesting features.


 * Full Y2K compliance out of the box. Previous versions of Warp are Y2K compliant after installation of fixpacks.
 * Support for Eurocurrency.
 * A graphical interface for defining and managing National Language Support (NLS) Locales. A Locale is usually a country.
 * Netscape Communicator 4.04.
 * Lotus Domino Go Server for hosting web sites.
 * WebSphere Application Server 1.1.
 * NT Server Management. This will allow management of NT domains and servers from an OS/2 system including the ability to keep OS/2 and NT accounts synchronized. Users will be able to log on once and have access to both OS/2 and NT server resources.
 * I2O support. Intelligent I/O means that so long as a device supports I2O there will be no need to wait for the vendor to provide an OS/2 version of the device driver.
 * SMP support.
 * Network File System (NFS) for sharing files across networks.
 * Logical Volume Management will allow users to create logical volumes that are not location dependent. For example a user can create a D: drive and weeks or months later move it to a different physical hard drive and still refer to it as D:. LVM also allows logical volumes to span multiple physical disk drives and gives users the ability to expand the size of a logical volume on the fly – without rebooting the system.
 * The Journaling File System (JFS) provides faster performance, higher disk capacity, improved scalability, and faster recoverability.

Warp Server for e-business uses the object oriented user interface (OOUI) of Warp 4 for its user interface.

Who Uses OS/2 Warp
Well, not a lot of people use OS/2 Warp as I write this page in 2012. However the following pages are interesting primarily in a historical context and should be taken in that context.

There are still some users of OS/2 even today. Banks and financial institutions are among the last to migrate to other platforms, in part due to regulatory issues, and in part due to the innate inertia of financial organizations.

If you have any information about who might be still using OS/2, please drop me an email and let me know. I think that would be interesting information to add to this DataBook.

When was the last time you used OS/2
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 03 – Who Uses OS/2 Warp? Document Number:01 Topic: When was the last time you used OS/2? Date Composed: 10-29-96 12:24:34 PM Date Modified: 11-04-96 09:07:22 AM

Most people do not realize how widely OS/2 is used and how frequently they come into contact with it – without ever knowing it. Most people do not even realize that they have used OS/2. If you have ever used an Automated Teller Machine, you have used OS/2.

Almost all ATMs in the U.S. and Canada are driven by OS/2. Banks must use an operating system for the ATM environment which is mature, stable, and which provides the highest degree of data integrity. OS/2 Warp meets all of those requirements. It is critical that they know who’s account to debit the ATM transaction to.

Whenever a sales clerk rings up your purchase on an IBM or an NCR point of sale system, OS/2 is usually running that system.

Who uses Warp in North America
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 03 – Who Uses OS/2 Warp? Document Number:02 Topic: Who uses Warp in North America? Date Composed: 10-29-96 09:51:09 AM Date Modified: 08-06-97 10:26:43 AM

OS/2 Warp is used in many areas of business and government in North America which touch almost everyone.


 * The 1996 Olympics held in Atlanta was one of the most visible organizations using OS/2. Over 7,000 PCs and laptops, all running OS/2 and connected to over 250 separate LANs were be used for scoring, Lotus Notes E-mail, multimedia kiosks and much more. Scoring systems were linked to timing devices which recorded results and competition statistics. Results were collected on an OS/2 Server using DB/2 Database for OS/2. After validation by judges, local results were sent via wireless LAN to a central database on a System/390 for distribution to other venues. Although IBM experienced problems with the system, none of the problems were related to OS/2 Warp or any of the functions performed by systems running Warp.
 * Ford dealerships in the U.S. and Canada are standardizing on IBM workstations that run English and French versions of OS/2 2.11. Long term they will migrate to OS/2 Warp. In addition, when the Ford Motor Company decided to launch Fordstar, a PC-based satellite system to communicate with the company’s North American dealers, it chose IBM as its primary supplier. At its core, Fordstar will use IBM’s advanced PC technology as well as OS/2.
 * Toyota – All U.S. dealerships are converting to OS/2 in their parts department.
 * Wachovia Corporation, one of North Carolina’s largest banks, has invested $30 million to standardize on an OS/2 Warp-based retail system network throughout 500 branches.
 * Union Bank, California’s fourth-largest financial institution, is moving more than half of its 7,000 employees onto OS/2 Warp in a dramatic attempt to improve customer service and boost its bottom line.
 * NationsBank, will add up to 2,500 OS/2 additional clients and 400 more servers in Florida, joining the 1,700 clients and 250 servers already in use throughout Georgia.
 * Almost every ATM in the U.S. and Canada uses OS/2 for its reliability.
 * Most NCR and IBM POS (cash register) systems use OS/2.
 * The United States Navy placed an order for 400,000 copies of OS/2 Warp in late 1995; this number was not counted in the 1995 Warp numbers because they had not shipped at that time.
 * Starbucks Coffee uses Warp for their Point of Sale management systems. The cash registers in each of more than 1,600 stores are controlled by a computer running Warp.
 * Most airline ticketing systems use OS/2.
 * Delta Airlines uses OS/2 for all its gate agents.
 * The entire U.S. railroad transportation system is converting to OS/2 for a critical application.
 * The CSX (Railroad) transportation system uses OS/2 extensively.
 * Half the prisons in the U.S. are run by OS/2. (Don’t ask me which half!)
 * In many states the federal judicial system is run on OS/2.
 * Most computers in police cars use OS/2.
 * The Indianapolis 500 uses OS/2 for real time data acquisition and scoring.
 * Wal-Mart is returning to OS/2 Warp after Windows NT failed to perform satisfactorily.
 * The North Carolina DMV replaced Windows 95 systems with an application driven by OS/2 Warp on all their workstations. They no longer suffer crippling downtime or long lines of frustrated people trying to get their drivers licenses renewed.
 * The State of Georgia DMV uses the same OS/2 system to serve their drivers license customers.
 * Blockbuster Video uses OS/2 for their video-on-demand system.
 * Office Depot uses Warp in all its store systems.

Who uses OS/2 Warp in Europe
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 03 – Who Uses OS/2 Warp? Document Number:03 Topic: Who uses Warp in Europe? Date Composed: 10-29-96 12:28:21 PM Date Modified: 08-06-97 11:00:04 AM

Usage of OS/2 in europe far exceeds that of the United States. Nearly 75% of all PCs in Europe run OS/2. Apparently the Europeans have not been as quick to accept the Gospel According to Gates.


 * Amadeus runs OS/2 to provide reservations services to Travel Agents Europe-wide.
 * The European Patent Office uses OS/2 to process patent examinations Europe-wide.
 * Both Barclays and Midland Banks use OS/2 at their Personal Banker stations.
 * Deutsche Lufthansa upgraded 20,000 workstations to Warp.
 * Banca Commerciale Italiana (Comit) in Italy has purchased 10,000 OS/2 client and 1600 LAN Server licenses.
 * British Aerospace uses OS/2 to distribute weather information to military and civilian airports throughout the UK on a minute-by-minute basis.
 * Unilever uses OS/2 to globally maintain and distribute the most valuable asset of its Ice Cream division – the recipes.
 * Heathrow Airport uses OS/2 to provide communication gateways for the various airline reservation systems.
 * The most exclusive Cruiseline company in Europe uses OS/2 to book cruise passengers.
 * ABN-AMRO, the biggest bank in the Netherlands runs 15,000 packages of OS/2.

Who uses OS/2 in Asia
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 03 – Who Uses OS/2 Warp? Document Number:04 Topic: Who uses OS/2 in Asia? Date Composed: 10-29-96 12:32:13 PM Date Modified: 07-15-97 08:48:27 AM

Asia has also taken to OS/2 in a big way.


 * Japan’s telecommunications giant, NTT Corporation bought 20,000 OS/2 licenses and committed to an additional 20,000 to be rolled out through 1997.
 * Sumitomo Bank in Japan has purchased 400 OS/2 licenses to serve their 3,000 desktop clients.
 * QBE Insurance in Australia, plans to install Warp in over 70 branches nationwide.
 * The Royal Bank of Australia has switched back to OS/2 after Windows NT did not live up to the promises made for it.
 * The six largest banks in China, each with over 20,000 branches, are all switching to OS/2 Warp.

Who uses OS/2 elsewhere
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 03 – Who Uses OS/2 Warp? Document Number:05 Topic: Who uses OS/2 elsewhere? Date Composed: 10-29-96 12:33:17 PM Date Modified: 11-16-98 08:01:50 AM

Many other places in the word use OS/2 as well.


 * Data Control Informatica uses 100,000 copies of Warp in 47 Brazilian schools.
 * The U.N. uses OS/2 to distribute all types of global data between departments.

Introduction To Operating Systems
This section defines the operating system, and discusses the beginnings of operating systems. It also covers the features to be found in nearly any operating system and the programmer’s view of OS/2.

Defining an Operating System
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 04. Introduction to Operating Systems Document Number:01 Topic: Defining an Operating System Date Composed: 10-27-96 01:32:22 PM Date Modified: 12-29-96 01:37:20 PM

The most important single choice you will make concerning your computer is that of the operating system which will create a useful tool out of it. Computers have no ability to do anything without software. If you turn on a computer which has no software program, it simply generates revenue for the electric company in return for adding a little heat to the room. There are far less expensive ways to heat a room.

The operating system is the first level of software which allows your computer to perform useful work.

Understanding the role of the operating system is key to making informed decisions about your computer. This chapter defines the operating system in terms of its role in your computer. It also discusses the major PC operating systems which are available today and tells you why OS/2 is the best one for a business environment.

Defining the Operating System
Every computer requires an operating system. The operating system performs many critical functions which, in turn, allows the computer to perform useful work.

Figure 1-1: A Typical Computer System From the User’s Viewpoint

To understand the need for an operating system, it is necessary to understand a little about the structure of the hardware which comprises a computer system. The microprocessor which is located in the system unit is the brains of the system. It is the part of the computer which is responsible for executing each of the instructions specified by the software application program. The keyboard is used for input to the computer, and printers and displays can be used for output. Random Access Memory (RAM) is used to store data and programs while they are being actively used by the computer. Programs and data cannot be used by the computer unless they are stored in RAM. RAM is volatile memory; that is, the data stored in RAM is lost if the computer is turned off. Diskettes and fixed disks are magnetic media used for long term storage of data and programs. Magnetic media is nonvolatile; the data stored on a disk remains even when power is removed from the computer.

Figure 1-2: Internal Components of the System Unit

All of these pieces of the computer must work together. Data must be gotten into the computer and moved about between the various components. Programs must be loaded from long term storage on the hard drive into RAM where they can be executed. Processor time needs to be allocated between running applications. Access to the hardware components of the computer such as RAM, disk drives, and printers by application programs must be managed. It is the task of the operating system to provide these functions. The operating system manages the operation of the computer and of the application software which runs on the computer.

A simple definition of an operating system is that it is a program, much like any other program; it is different only in that its function is to manage the movement of data in the computer; it also manages access to the hardware devices of the computer by application programs. In addition, an operating system provides at least some minimal system utility programs for managing various aspects of the system such as the hard drive and memory. These utility programs perform functions like deleting files, copying files from one place to another, establishing serial and parallel port parameters, and setting display resolution.

Genesis of the Operating System
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 04. Introduction to Operating Systems Document Number:02 Topic: Genesis of the Operating System Date Composed: 12-29-96 01:35:31 PM Date Modified: 12-29-96 01:37:44 PM

In the very early days of programming, the late nineteen forties and early nineteen fifties, each programmer not only had to write the application program which performed a specific function, he or she also had to write all of the very low level instructions which moved the data between the components of the computer. In addition, the programmer had to write those same instructions for managing data flow in the computer every time a new application program was written. This duplication of effort was very time consuming and wasteful.

Finally, some smart programmer said “Aren’t computers supposed to save people time in repetitive tasks? Why don’t we apply that to us programmers as well?”. In 1956, programmers at General Motors Research Labs, in cooperation with North American Aviation, did exactly that; they wrote a program which they called Input/Output System, which simplified the application programmers’ task.

This I/O System incorporated all of the common groups of instructions which were routinely used to move data from one place in the computer to another into libraries to which each programmer would have access. These groups of instructions, once having been developed, were then used many times by many different programmers in many different applications. In 1957, IBM announced its Input/Output Control System (IOCS) which provided the same type of functionality. IOCS provided programmers with standard instruction groups which could be used repeatedly for input and output operations.

These control programs allowed for the execution of one program at a time. The computer operator ran the payroll program. When the payroll program was finished, the operator could run an inventory program or accounts receivable, or whatever job was next in line. This is a single tasking environment, like DOS on personal computers.

To run an application program under IOCS, an operator would place an especial card (this was in the days of eighty column punched cards) called a bootstrap loader into the read hopper of the card reader attached to the system. Behind this card was placed the application program, and then behind the program, the operator placed the deck of data cards. After the cards were loaded into the reader, the operator pressed the LOAD button on the computer. The computer was just smart enough to read one card from the hopper of the card reader; this was the bootstrap loader. At this point, the computer turned control over to the bootstrap loader which was just smart enough to be able to load the rest of the application program and turn control of the computer over to it. If more than one application needed to be run, the operator would wait until the first application had finished. Then, he or she would place the bootstrap loader into the input hopper of the card reader, place the application and data decks in behind, and press the LOAD button again.

In 1962, IBM developed IBSYS, which provided not only for standard I/O instruction groups, but also supervised the operation of the computer. IBSYS supervised the loading and operation of application programs by allowing automatic sequential execution of multiple programs. It allowed multiple programs and their data to be placed in the input hopper of the card reader and it automatically executed each of those programs, one after the other. No more bootstrap loader was required in front of every application program. IBSYS also provided messages to the system operator to mount or dismount tapes and disk packs, as well as to change the paper in the printer so that checks could now be printed, for example, instead of invoices. This capability is very much like the batch files of DOS and OS/2 which can be used to execute a sequence of commands and programs.

IBM introduced the IBM System/360 in 1964, and with it, a new operating system, OS/360. OS/360 was a multitasking operating system, which now allowed systems to process a continuous flow of many different types of jobs with minimal intervention from the operators. Multitasking meant that multiple programs could be loaded into the computer and executed simultaneously. The multitasking capability of OS/360 was initially limited to a maximum of three programs, however. Later operating systems provided the capability to multitask as many programs as the computer had the resources to allow.

Operating System Features
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 04. Introduction to Operating Systems Document Number:03 Topic: Operating System Features Date Composed: 12-28-96 06:10:13 PM Date Modified: 01-04-97 03:22:00 PM

Primary Operating System Functions
Any operating system has some core functions which are the primary reason for its existence. These can be referred to as kernel functions because they are built into the kernel of the operating system. Warp’s kernel is the file OS2KRNL. Note that the file name has no extension.

The OS/2 kernel performs the following basic functions.


 * 1) Memory management. The kernel allocates and deallocates memory and assigns physical memory locations based upon requests, either implicit or explicit, from application programs. In cooperation with the CPU, the kernel also manages access to memory to ensure that programs only access those regions of memory which have been assigned to them. Part of memory management includes managing the SWAPPER.DAT file and the movement of memory pages between RAM and the swapper file on the hard drive.
 * 2) Task management. The OS/2 kernel manages the execution of all tasks running on the system. The scheduler portion of the kernel allocates CPU time to each running process based on its priority and whether it is capable of running. A task which is blocked – perhaps it is waiting for data to be delivered from the disk, or for input from the keyboard – does not receive CPU time. The OS/2 kernel will also preempt a lower priority task when a task with a higher priority becomes unblocked and capable of running.
 * 3) Interprocess communication.Interprocess communication (IPC) is vital to any multitasking operating system. Many tasks must be synchronized or communicate with each other to ensure that their work is properly coordinated. The kernel manages a number of IPC methods.Shared memory is used when two tasks need to pass data between them. The OS/2 clipboard is a good example of shared memory. Data which is cut or copied to the clipboard is stored in shared memory. When the stored data is pasted into another application, that application looks for the data in the clipboard’s shared memory area.
 * 4) Named pipes can be used to communicate data between two programs. Data can be pushed into the pipe by one program and the other program can pull the data out of the other end of the pipe. A program may collect data very quickly and push it into the pipe. Another program may take the data out of the other end of the pipe and either display it on the screen or store it to the disk, but it can handle the data at its own rate.
 * 5) Semaphores can be used to coordinate the activity of two programs or two separate threads within a single program. When one task sets the semaphore, for example, the other task cannot proceed until the first has reset the semaphore.
 * 6) Device management.The kernel manages access to the physical hardware through the use of device drivers. Access to physical devices must be managed carefully or more than one application might attempt to control the same device at the same time. The OS/2 kernel manages this so that only one program actually has control of or access to a device at any given moment.One example of this is a COM port. Only one program can communicate through a COM port at any given time. If you are using the COM port to get your e-mail from the Internet, for example, and try to start another program which attempts to use the same COM port such as HyperAccess Lite, the OS/2 kernel detects that the COM port is already in use. The kernel then uses the hardware error handler (HARDERR.EXE) to display a message on the screen that the COM port is in use.
 * 7) I/O Management.The kernel is also responsible for managing I/O devices. This includes parallel and serial port I/O, and file system I/O.The kernel does not actually handle physical access to the disk, but rather manages the requests for disk I/O submitted by the various running programs. It passes these requests on to the file system, whether it be FAT, HPFS, CDFS (CD-ROM file system), or NFS (Network file system), and manages the transfer of data between the file system and the requesting programs.

Much of the code for actual implementation of these kernel level functions resides in dynamic link libraries such as DOSCALL1.DLL. The command processor, CMD.EXE is also part of the kernel. Some basic command line commands are also included in the kernel as part of the file CMD.EXE. The commands are called Internal commands because they are a part of the kernel. The COPY and DEL commands are examples of internal commands.

Utilities
In addition to its kernel functions, most operating systems provide a number of basic utility programs which enable users to manage the computer on which the operating system resides. These are the external commands such as XCOPY, FDISK, FORMAT, DISKCOPY, and so on, which make managing the computer so much easier. These utilities are not truly part of the operating system; they are merely provided as useful external tools.

OS/2 Warp from a Programmer’s Viewpoint
Chapter:Chapter 01 – What is an Operating System and Why is it Important? Subsection: 04. Introduction to Operating Systems Document Number:04 Topic: OS/2 Warp from a Programmer’s Viewpoint Date Composed: 12-28-96 06:27:11 PM Date Modified: 12-29-96 12:41:01 PM

Long Term Compatibility
It is important to note that one very compelling feature of OS/2 is visible only to programmers. Warp has a very stable set of APIs (Application Programming Interface). An API is an interface through which programmers use a high level language to access operating system functions and data.

Although the API function set of OS/2 has grown over the years, it has remained remarkably stable and consistent. Programs written on and for very early versions of OS/2 will still run properly on today’s Warp 4 and on tomorrow’s versions of OS/2, whatever they might be called.

I am not a programmer, although I program a little bit so that I can more fully understand the inner workings of OS/2. I wrote a very small C language program several years ago under OS/2 1.1 using the tools available at that time. This was a simple Presentation Manager (GUI) program which created a window on the desktop in which was displayed some information about the operating system and disk drive usage. I used the API functions available at that time to obtain the operating system and disk data. That little program still runs today on Warp 4 with no errors and with the same correct results as I obtained on OS/2 1.1. The reason is the consistency of the OS/2 APIs.

IBM believes that customers (and programmers are part of the customer set for any operating system) should be able to expect long term consistency and backwards compatibility in the products they buy from IBM. That means that programs which ran last year or two years ago or last month, should run today and should still run tomorrow. It means that complete code rewrites should not be required every time the operating system is upgraded. Actually IBM believes this about its hardware, too. There are IBM ES/9000 systems which are still running programs written for the System/360 back in the 1960s. This is due to the backwards compatibility of IBM’s hardware and operating systems.

IBM brings this same compatibility to the desktop with OS/2 Warp. Not only can it run the programs written for early versions of OS/2, it can run almost every DOS and Windows 3.x program ever written. That is more programs than any other operating system on the face of the planet.

There have been about as many versions of Windows to date as there have of OS/2. OS/2 has at least 10 major version releases not counting CSDs and Fixpaks:

OS/2 1.00 OS/2 1.10 OS/2 1.20 OS/2 1.30 OS/2 2.00 OS/2 2.10 OS/2 2.11 for Windows OS/2 2.11 OS/2 Warp for Windows OS/2 Warp OS/2 Warp Connect OS/2 Warp Connect for Windows OS/2 Warp 4 OS/2 Warp Server

And almost every OS/2 program will run on all versions. Almost every DOS and Windows program will run on every version of OS/2 since 2.00.

Windows (In)Compatibility
Microsoft has invented a new set of APIs for almost every version of Windows it has ever produced. Programs written for Windows (V1) or Windows 286 will not run on any later versions of Windows. Windows 2.0 programs won’t run on Windows 3.1 or Windows 95 or Windows NT. Most Windows 3.1 programs will not run under Windows 95 or Windows NT.

Why? Because, in my opinion, Microsoft has no desire for their Windows products to be backwards compatible. Which company sells the most horizontal applications (spreadsheets, word processors, etc.) for Windows? Why, Microsoft, of course! Microsoft plays a game with the rest of the industry. Every time one or more of the horizontal application vendors competing with Microsoft approaches a significant market share, Microsoft announces a new version of Windows. And interestingly enough, each major new version is the proud possessor of a completely new API set.

Of course the Microsoft horizontal application programmers have access to the API before anyone else, and so their applications are available for the new operating system before anyone else’s. Big surprise!! So Microsoft leads the pack in market share right from the beginning.

Every time a major new version of Windows is released, every software vendor who wants to remain current must completely rewrite their application software.

=Chapter 02 – Inside OS/2 Warp= Chapter:Chapter 02 – Inside OS/2 Warp Chapter 02 Overview Date Composed: 10-27-96 Date Modified: 12-19-96

IBM’s newest version of Warp, code named Merlin, and officially called Warp 4, has many important new features. Among the more important and interesting of these are integrated voice recognition, a help feature called WarpGuide, and a usability feature called the Warp Center.Warp 4 retains its predecessor’s Crash Protection(TM) which prevents a crashed program from causing the entire system to crash. It also keeps its powerful multitasking capabilities and the ability to run all of your current DOS and Windows 3.1 applications.

The workings of some of the major features of OS/2 Warp are discussed in a fair amount of detail in Chapter 2. All versions of Warp covered here. Warp 3, Warp Connect, Warp 4, and Warp Server, all work in exactly the same way at this level because they share the same kernel.

The specific functions covered in this chapter are multitasking, the OS/2 ring protection mechanism, memory protection, and Crash Protection. What multitasking is and how it can benefit you is covered. How the priority-based, preemptive multitasking of OS/2 works and why it is important. Memory protection and the ring protection mechanism of the 80×86 and Pentium Processors and how OS/2 uses them to provide crash protection.

The OS/2 Kernel
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:01 Topic: The OS/2 Kernel Date Composed: 11-14-98 10:08:30 PM Date Modified: 11-15-98 06:17:07 PM

The kernel of any operating system provides the core functions for that operating system. It is the part of the operating system that performs basic functions such as allocating hardware resources like memory and CPU time. The OS/2 kernel functions reside in the OS2KRNL executable file which is loaded during boot. Note that the file name has no extension.

The OS/2 kernel performs the following basic functions.


 * Memory management. The kernel allocates and deallocates memory and assigns physical memory locations based upon requests, either implicit or explicit, from application programs. In cooperation with the CPU, the kernel also manages access to memory to ensure that programs only access those regions of memory which have been assigned to them. Part of memory management includes managing the SWAPPER.DAT file and the movement of memory pages between RAM and the swapper file on the hard drive.
 * Task management. The OS/2 kernel manages the execution of all tasks running on the system. The scheduler portion of the kernel allocates CPU time to each running process based on its priority and whether it is capable of running. A task which is blocked – perhaps it is waiting for data to be delivered from the disk, or for input from the keyboard – does not receive CPU time. The OS/2 kernel will also preempt a lower priority task when a task with a higher priority becomes unblocked and capable of running.
 * Interprocess communication.Interprocess communication (IPC) is vital to any multitasking operating system. Many tasks must be synchronized or communicate with each other to ensure that their work is properly coordinated. The kernel manages a number of IPC methods.Shared memory is used when two tasks need to pass data between them. The OS/2 clipboard is a good example of shared memory. Data which is cut or copied to the clipboard is stored in shared memory. When the stored data is pasted into another application, that application looks for the data in the clipboard’s shared memory area.


 * Named pipes can be used to communicate data between two programs. Data can be pushed into the pipe by one program and the other program can pull the data out of the other end of the pipe. A program may collect data very quickly and push it into the pipe. Another program may take the data out of the other end of the pipe and either display it on the screen or store it to the disk, but it can handle the data at its own rate.


 * Semaphores can be used to coordinate the activity of two programs or two separate threads within a single program. When one task sets the semaphore, for example, the other task cannot proceed until the first has reset the semaphore.
 * Device management.The kernel manages access to the physical hardware through the use of device drivers. Access to physical devices must be managed carefully or more than one application might attempt to control the same device at the same time. The OS/2 kernel manages this so that only one program actually has control of or access to a device at any given moment.One example of this is a COM port. Only one program can communicate through a COM port at any given time. If you are using the COM port to get your e-mail from the Internet, for example, and try to start another program which attempts to use the same COM port such as HyperAccess Lite, the OS/2 kernel detects that the COM port is already in use. The kernel then uses the hardware error handler (HARDERR.EXE) to display a message on the screen that the COM port is in use.
 * I/O Management.The kernel is also responsible for managing I/O devices. This includes parallel and serial port I/O, and file system I/O.The kernel does not actually handle physical access to the disk, but rather manages the requests for disk I/O submitted by the various running programs. It passes these requests on to the file system, whether it be FAT, HPFS, CDFS (CD-ROM file system), or NFS (Network file system), and manages the transfer of data between the file system and the requesting programs.

During the boot process, the kernel is also responsible for loading and processing the CONFIG.SYS file.

Much of the code for actual implementation of these kernel level functions resides in dynamic link libraries such as DOSCALL1.DLL. The command processor, CMD.EXE is also part of the kernel. Some basic command line commands are also included in the kernel as part of the file CMD.EXE. The commands are called Internal commands because they are a part of the kernel. The COPY and DEL commands are examples of internal commands.

Kernel Variations
Over the years, as new versions of OS/2 have appeared, the kernel of the operating system has changed. Most of these changes have been relatively minor to incorporate support for new features or functions.

The primary changes in the OS/2 kernel have been for Symmetric MultiProcessing (SMP). All versions of Warp including Warp 3, Warp Connect, and Warp 4, have a uniprocessor kernel. Warp Server has a uniprocessor kernel. Warp Server SMP has an SMP kernel. Warp Server for e-business is shipped with both the uniprocessor and the SMP kernel. When installing Warp Server for e-business, you can select whether to install the uniprocessor or the SMP kernel.

Recommendation: When installing Warp Server for e-business, it is a valid choice to install the SMP kernel on a uniprocessor computer. Because the uniprocessor kernel is somewhat faster on a uniprocessor system than the SMP kernel is, I recommend installing the uniprocessor kernel on a uniprocessor system.

OS/2 Multitasking
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:02 Topic: OS/2 Multitasking Date Composed: 10-07-96 02:00:40 PM Date Modified: 01-15-99 11:10:35 AM

Introduction to Multitasking
At any given moment in time, a personal computer microprocessor can execute only one instruction in one task. However, by dividing the microprocessor time between multiple tasks, it is possible to give the impression to relatively slow human senses that they are running simultaneously. This technique is called multitasking.

DOS is intrinsically a single tasking operating system. This means that it can only perform one task, or job, at a time. If you wish to run an application program other than one which is currently running, you must terminate the current application and then start the second application. This limitation, as much as the limitation on memory usage, is due to the historical roots of DOS. The original Intel 8088 microprocessor did not have the hardware support required to effectively implement a multitasking, virtual memory, or memory isolated operating system.

OS/2 utilizes the built in multitasking capabilities of the Intel 80×86 family of microprocessors. These capabilities include the ability to address large amounts of real memory – up to 4 GB – and the ability to protect the system resources being used by one program from intrusion by another program. For this reason, the operating mode of the 80×86 microprocessors which provides for multitasking is known as protect mode.

The multitasking ability of OS/2 allows the system to perform more than one task at a time. You may have several different programs running at once, as well as multiple communications sessions. It is also possible to have one program performing several tasks simultaneously. The basic unit of program execution is the thread. Each program running under OS/2 must have at least one thread, but may have more than one if it has been so designed.

Processes and Threads
The minimal benefit of being able to switch from one program to another without terminating the first is something which everyone can appreciate. The real benefits of true multitasking become apparent when downloading several large files from a BBS, using FTP to transfer a file to the internet, spell checking a large document, and printing checks for accounts payable. The downloads, spell check, and check printing can be started and then you can work interactively with the word processor while the other tasks proceed in the background.

The benefits derived from using multiple threads in a single program are not so apparent, however. From the standpoint of the user, the primary benefit is that of faster perceived program response time. The programmer may provide one thread to allow for data input, another thread for updating the screen, and yet a third for performing calculations. In a spreadsheet environment, for example, as soon as a user has entered a number into a cell, the display can be updated with newly calculated values and while the user is entering additional data, the background thread can recalculate the rest of the spreadsheet. This results in a much faster perceived speed of operation because the user does not have to wait for the entire spreadsheet to recalculate before additional data is entered.

When each program is launched Warp creates a new process. Every process (program) has at least one thread. If the programmer of an OS/2 program decided that multiple threads were required, he or she could use special function calls within OS/2 to do so. In general, programs have only one thread unless the programmer has overtly designed the program for more.

Task Management
OS/2 multitasking is managed by the task dispatcher. The dispatcher handles the dispatching of tasks with a set of algorithms which are designed to allow multiple tasks to run simultaneously with as little effect upon each other as possible, while still allowing high priority tasks swift access to the processor when needed. OS/2 is a dynamic, priority based, preemptive multitasking system with round-robin scheduling.

In OS/2 Warp, the dispatcher dynamically modifies a thread’s time slice based on trigger actions that may have occurred. For instance, if a thread encounters a page fault during its time slice, it is given an extra time slice to process the data contained in the faulted page. Applications doing disk I/O are also given extra time slices if the data they are reading is in the disk cache. When the TIMESLICE= parameter is used as in versions 1.x and 2.x of OS/2, none of these dynamic modifications of a threads allocated time will occur. Instead, each thread will be given the minimum time slice of X, and its time slice will not be allowed to go beyond value Y. See also the TIMESLICE document for more details about this CONFIG.SYS file parameter.

Priority Based Multitasking
A priority based multitasking operating system is one in which each task is assigned a priority. The priority of each task is determined by the programmer. If the programmer makes no overt choice, the operating system, OS/2 in this case, assigns a default priority, regular class, priority level 0.

In any priority based task scheduling operating system, the task with the highest priority which is capable of running, that is, not blocked, will get the CPU. All other tasks must wait until that task becomes blocked before they may have CPU time. A task becomes blocked when it must wait for input from a keyboard or mouse, for example, or for data to be read from a disk, or for a communications buffer to fill. There are many other reasons why a task might become blocked. If a task of a higher priority than the current running task becomes unblocked, then OS/2 will preempt the running task to give the CPU to the task with the higher priority.

OS/2 has four priority classes.


 * 1) Time critical (800) A time critical task such as communications or networking will run in this priority class. Such programs need to have access to the CPU very quickly.

In communications, for example, when the data receive buffer fills up it is necessary to remove the data from it and store it in a less critical location until it can be processed by a lower priority task. When the receive buffer fills, the communications port hardware generates a hardware interrupt which is handled by the OS/2 device driver for that port. For an asynchronous communications port this is the COM.SYS device driver. The device driver sends a software interrupt to the application program which moves the data from the receive buffer and stores it in another location in memory.

The portion of the program which handles the communications buffer must be a very high priority so that it can get the data from the buffer before more data arrives and causes a receive buffer overrun. The rest of the communications prgram can run at a lower priority class. When overruns occur, the data must be resent which reduces the total data transfer rate.

Time critical tasks take a very small portion of the CPU’s time. Even after all time critical tasks receive all the CPU time they require, there is still plenty of time left for all the other tasks running on the computer.


 * 1) Server (400) Server class programs are used by Warp Server, for example, to process requests for data by client workstations and to get the data requested ready to transfer across the network. Processing these types of tasks at the Server class ensures that administrative tasks such as creating new user IDs do not interfere with them.


 * 1) Regular/normal (200) Regular, or normal class is the priority class at which most application programs run. This is also the default class at which OS/2 will run programs which do not overtly specify a priority class.


 * 1) Idle time (100) A program which runs at idle class will only receive CPU time when all other programs at higher priorities have become blocked. In reality, for most average systems, this can be quite a large amount of time. To see this, start the OS/2 Pulse program applet which comes with OS/2. It is located in the Productivity folder. Most of the time the processor is doing very little, if anything, so there is lots of time for idle class programs to run.

The Pulse program itself runs at idle priority. It simply counts the CPU cycles which it receives as a consequence of the fact that no other process needs them, and displays the result as a graph indicating the amount of CPU time being used by all the other programs on the system. To perform this task accurately, it cannot run at regular class or higher because it would always receive some CPU cycles in the normal round-robin sequence of task dispatching. This would skew the results.

A good example of a productive application which should be run at idle class would be a math intensive calculation. There is an OS/2 program which calculates the common math constants Pi and e ( Euler’s constant) to any number of decimal places in increments of 500 places. Suppose I want to calculate Pi to 1,000,000 decimal places. At the same time, I want to do all my normal daily tasks like word processing, Lotus Notes, network communications, and asynchronous communications.

Since this calculation takes a couple days on even a fast system, I cannot afford to have it tie up my system. This program was written so that I can change the priority class, so I set it at idle class and start the calculation. Actually, this program was written so intelligently that I can change the priority class while it is calculating. With the Pi calculation going in the background in idle class, I can go do my regular daily work. Any CPU cycles not needed for my normal work are given by Warp to the Pi calculation.

Figure 1: The 4 priority classes of Warp each have 32 levels.

32 Priority levels per class
Figure 2.1.1, above, shows the four priority classes of OS/2 Warp. The boxes to the right of the priority class diagram represent threads of several processes which are running. Threads on the same line are at the same priority class and level. Threads shown with red rectangles are blocked; that is, they cannot run because they are waiting for some system activity, such as disk access to complete, or the printer to request more data. The threads indicated by yellow rectangles are capable of running, but are not currently running because another thread is. The one thread represented by a green rectangle is running. Only one thread can run at a time.

Each priority class under OS/2 has 32 priority levels numbered from 0 through 31. There are a total of 128 discrete priority levels at which tasks can run. This means that multiple tasks may run in regular class, for example, but one or more may still be at a higher priority level within the regular class. The numeric values for each priority class are given in Table 2.1.1.

Priority Class  Numeric Range

Time Critical 	 800 – 831 Server 	 400 – 431 Regular 	 200 – 231 Idle 	        100 – 131

Table 2.1.1: Priority class numeric ranges.

Using PSTAT to determine the priority of a task
Warp has a utility called PSTAT which allows you to display or print a list of all the tasks and threads running on your system. PSTAT shows the process and thread IDs for each task as well as the priority level for each task. Figure 2.1.2 shows the output of PSTAT when run on the author’s system. The command below issued from the command prompt sends the output of the command to a file named C:\PSTAT.DAT. The /C parameter is used to display the current process and thread data. Other parameters allow display of memory, DLL, and semaphore information.

 PSTAT /C > C:\PSTAT.DAT

Process and Thread Information

Parent Process  Process   Session   Process   Thread ID       ID        ID       Name       ID    Priority   Block ID   State

002F     0000       13      C:\IBMLAN\SERVICES\ALERTER.EXE    01      0200     FFFE004C   Block 002E     0000       13      C:\IBMLAN\SERVICES\TIMESRC.EXE    01      0200     FFFE004A   Block 002D     0000       13      C:\IBMLAN\NETPROG\RNS1.EXE    01      0200     FFFE0048   Block 02     0200     06880096   Block 03     0200     068800C2   Block 04     0200     068800EE   Block 002B     0000       13      C:\IBMLAN\SERVICES\NETLOGON.EXE    01      0200     FFFE0046   Block 02     0200     FFFD0072   Block 03     031F     FFFE0045   Block 04     0200     040054FE   Block 002A     0000       13      C:\IBMLAN\SERVICES\NETSERVR.EXE    01      0300     FFFE003E   Block 02     0300     FFFE003C   Block 03     0300     FDF2BB44   Block 04     0200     FDF254B8   Block 05     0300     FFFE003F   Block 0029     0000       13      C:\IBMLAN\SERVICES\NETSERVR.EXE    01      0301     FFF78083   Block 02     0300     FFFE003D   Block 03     0300     040054E6   Block 04     0300     FFFE0040   Block 05     0300     04004853   Block 06     0301     FFFE0041   Block 0026     0000       13      C:\MUGLIB\MUGLRQST.EXE    01      0200     040054C8   Block 02     0200     FE1ACE34   Block 0025     0000       13      C:\IBMLAN\SERVICES\MSRV.EXE    01      0200     040054BC   Block 02     0200     FFFE0037   Block 0023     0000       13      C:\IBMLAN\SERVICES\WKSTAHLP.EXE    01      031E     2260BE6C   Block 02     0200     225005FE   Block 03     031E     2250210E   Block 04     031E     2250061C   Block 0022     0000       13      C:\IBMLAN\SERVICES\WKSTA.EXE    01      0300     FFFE003A   Block 02     021F     FFFD005B   Block 03     0200     FFFE0033   Block 04     021F     FFFD0060   Block 0018     0000       00      C:\OS2\EPWMUX.EXE    01      0200     FFFE0024   Block 0013     0000       00      C:\OS2\EPWMUX.EXE    01      0200     FFFE001F   Block 0012     0000       00      C:\OS2\EPWPSI.EXE    01      0200     06880012   Block 0011     0000       00      C:\OS2\EPWMP.EXE    01      0200     FE03E834   Block 02     0200     FFFE0025   Block 03     0200     FFF78083   Block 000E     0000       00      C:\WAL\MEMMANIT.EXE    01      031F     FFFE0016   Block 000C     0000       00      C:\IBMLAN\NETPROG\ATKINIT.EXE    01      0302     FFFE0013   Block 02     0200     FFFE0014   Block 000B     0000       00      C:\IBMCOM\VLANINIT.EXE    01      0200     FFFE0017   Block 000A     0000       00      C:\OS2\EPWROUT.EXE    01      0200     FFFE0020   Block 02     0200     FFFE001A   Block 0009     0000       00      C:\OS2\SYSTEM\LOGDAEM.EXE    01      021F     04A00252   Block 0008     0000       00      C:\IBMLAN\NETPROG\LSDAEMON.EXE    01      0200     FFF78083   Block 0007     0000       00      C:\IBMCOM\PROTOCOL\LANDLL.EXE    01      030B     544F4B52   Block 0005     0000       00      C:\MPTN\BIN\CNTRL.EXE    01      0304     F2750002   Block 02     0304     F2750001   Block 03     0304     1450525A   Block 04     0304     14505272   Block 05     0304     F2750001   Block 06     0304     F2750002   Block 07     0304     FFF78083   Block 08     0304     F2750008   Block 0004     0000       00      C:\IBMCOM\LANMSGEX.EXE    01      0200     FFFEF636   Block 000D     0001       01      C:\OS2\PMSHELL.EXE    01      0200     FDF20F24   Block 02     0300     FFCA000D   Block 03     0300     FFFD001C   Block 04     0300     FFFD001D   Block 05     0300     04000E28   Block 06     0200     FE179B6C   Block 07     0200     FE17BBF0   Block 08     041F     FDF20F54   Block 09     0200     FFFE001B   Block 0A     0200     FFFD0006   Block 0B     0300     FFFE001D   Block 0C     0300     FFFE001E   Block 0D     0300     FFFE001C   Block 0E     0304     FFFD002A   Block 0F     0304     04000E1A   Block 10     0200     FFFD002C   Block 11     0301     FDF25078   Block 12     0200     FDEDAD40   Block 13     0300     04000E36   Block 14     0300     FE03DB74   Block 15     0300     FDF254F8   Block 16     0401     FE1E037C   Block 17     0401     FE1E0DA8   Block 00A0     000D       15      F:\IMPOS20\IMPOS.EXE    01      0200     FE1F16EC   Block 02     0200     0688011A   Block 0093     000D       1E      E:\DESCRIBE\OS2\DESCRIBE.EXE    01      021F     FE1E6E38   Block 02     0200     FE1E6BC8   Block 03     0200     FE1E6BF4   Block 04     021F     FE1E1980   Block 05     0200     FE1E200C   Block 06     0200     FE1E2A30   Block 008E     000D       1D      (kernel)    01      0200     FE1E08D4   Block 0055     000D       1C      E:\UTILITY\FILESTAR\FILESTAR.EXE    01      0200     FDEF5C30   Block 03     0200     FDEF5990   Block 04     0200     FDF0FACC   Block 004B     000D       18      F:\NOTES\ILNOTES.EXE    01      0201     FE01ADF0   Block 004A     000D       1B      F:\NOTES\QNC.EXE    01      0200     FDFE7F68   Block 0048     000D       1A      E:\IBMAV\IBMAVTIM.EXE    01      0200     FFF78083   Block 0047     000D       11      E:\WPC200\WPC200.EXE    01      0200     FE1C2BEC   Block 02     0200     FE1C29D0   Block 03     0200     FE1C2948   Block 04     0200     FE1C292C   Block 0034     000D       13      C:\OS2\CMD.EXE    01      0200     FFCA0034   Block 00AA     0034       13      C:\OS2\PSTAT.EXE    01      031F     00000000  Running 0032     000D       04      F:\NOTES\QNC.EXE    01      0200     FE18C7B0   Block 0033     0032       04      F:\NOTES\ISERVER.EXE    01      0201     FFF78083   Block 02     0206     FFF78083   Block 03     0207     040054DA   Block 04     0207     040054D4   Block 05     0201     FFF78083   Block 06     0205     FE1B71F0   Block 0045     0033       04      F:\NOTES\QNC.EXE    01      0206     FE1C4D88   Block 0046     0045       04      F:\NOTES\IADMINP.EXE    01      0201     FFF78083   Block 0041     0033       04      F:\NOTES\QNC.EXE    01      0206     FDEFDC70   Block 0042     0041       04      F:\NOTES\IAMGR.EXE    01      0201     FFF78083   Block 0043     0042       04      F:\NOTES\QNC.EXE    01      0201     FDEFDB64   Block 0044     0043       04      F:\NOTES\IAMGR.EXE    01      0201     FE136AAC   Block 003C     0033       04      F:\NOTES\QNC.EXE    01      0206     FDFF3F70   Block 003D     003C       04      F:\NOTES\IUPDATE.EXE    01      0201     FFF78083   Block 003A     0033       04      F:\NOTES\QNC.EXE    01      0206     FE1B0D58   Block 003B     003A       04      F:\NOTES\IROUTER.EXE    01      0201     FFF78083   Block 0038     0033       04      F:\NOTES\QNC.EXE    01      0206     FE1C2864   Block 0039     0038       04      F:\NOTES\IREPLICA.EXE    01      0201     FFF78083   Block 001F     000D       19      E:\IBMAV\IBMAVSD.EXE    01      0200     FE040FCC   Block 001C     000D       17      E:\UTILITY\GTU30\SENTRY.EXE    01      0200     FDF1B27C   Block 02     0200     FFF78083   Block 03     0200     FFF78083   Block 04     0200     FFF78083   Block 05     0200     FFF78083   Block 001B     000D       16      E:\FAXWORKS\FAXWORKS.EXE    01      0200     FE10AECC   Block 02     0300     FDEDA968   Block 03     0200     0688006A   Block 04     0200     FFFE002F   Block 05     031F     00BC09E4   Block 0019     000D       14      C:\IBMLAN\NETPROG\NETMSG.EXE    01      0200     FDFF1CC0   Block 02     0200     FFFE0039   Block 03     0200     FE126BCC   Block 04     0200     FDFF1EE8   Block 0016     000D       12      C:\OS2\PMSHELL.EXE    01      0200     FE18CA20   Block 02     0300     FDEDA614   Block 03     030A     FDEDA5FC   Block 04     0300     FE18C7B4   Block 05     0300     FE17CE68   Block 06     0200     FDEDAD58   Block 07     0400     FE141FD8   Block 08     0200     FE122D34   Block 09     0200     FE122C30   Block 0B     0400     FE18C050   Block 0C     021F     43D82800   Ready 0D     0200     FFFE0026   Block 0E     0400     FE11FF54   Block 0014     000D       10      C:\OS2\PMSPOOL.EXE    01      0200     FFF78083   Block 02     0200     FE149BC4   Block 03     0200     4388000E   Block 04     0200     FE18DFF0   Block 05     0200     FE150970   Block 06     0200     FE1509A8   Block 000F     000D       00      C:\OS2\SYSTEM\HARDERR.EXE    01      0300     04000E44   Block 02     0300     04001158   Block 03     0300     0400117C   Block  Figure 2: The results of PSTAT on the Author’s system.

Altering Priority Levels
OS/2 does not provide for user access to priority levels. A programmer, however, may provide access to priority levels within a program and provide the user with controls in the program to manipulate them. There are also some third party utilities available which allow the user to view and alter the priority levels of other running programs. One such utility is CPU Monitor Plus, by BonAmi Software.

Extreme care should be taken when altering the priority level of a process or thread, as the action taken may have the opposite of the desired effect. Consider, for example, the print spooler process. This process manages the transfer of print data from application programs, to the hard drive, and from there to the printer.

When I ask most people what priority they think that the spooler process should run at, they tell me it should be a very low priority process. In fact, it should be a high priority process. The reason for this is that printing, being an essentially mechanical process, is very slow compared to the speed of the processors in today’s computers. As a result, when the spooler sends data to the printer, it must then wait for a computer’s eternity for the printer to print the data and request more from the spooler. When this request for more data is received by the spooler, it is important to respond and get the data to the printer as quickly as possible to prevent delays to an already slow process.

The spooler is blocked most of the time, either waiting for a print job or waiting for the printer to request more data for a running print job. While blocked, it gets no CPU time, and all five spooler threads have priority level 200, the base level of the Regular priority class. When a print job is spooling, however, one of the threads is boosted to priority level 400, the base level of Server (a.k.a. Fixed High) class. This provides a high enough priority to ensure that printing gets done quickly but, because the spooler is blocked most of the time waiting for the printer to request more data, it does not affect the performance of the rest of the system.

The Spooler object in the System Setup folder allows users to adjust the priority of the print spooler. You should be careful with this, however. Decreasing the priority will slow the print process significantly. Increasing the priority will have no noticable effects while small print jobs are printing because they complete so quickly, but can cause the rest of the system to slow considerably while very large print jobs are being printed. Another problem with increasing the priority too much is that the spooler priority becomes higher than that of other important tasks such as network functions. This can cause problems not only with the response time on the local workstation, but it can also create problems for networking tasks.

The default print spooler priority setting is perfect for most environments.

Preemptive Multitasking
In any multitasking operating system, there are some tasks which are extremely important and which must obtain access to the processor as quickly as possible at specific times. Such a task would be a communications or networking program. These tasks, or really a small portion of these tasks, the portion responsible for the time critical part of the process, should be run at a high priority. For communications programs this is usually at some high level in the time critical class.

When a program with a higher priority than the currently running program or task becomes unblocked, OS/2 preempts the lower priority task and gives the CPU to the higher priority task.

Round-Robin Scheduling
Round-robin scheduling simply means that all tasks which are running at the same priority will receive time slices in a round-robin fashion, so that each can have some time. The Warp task dispatcher manages this and preempts any task which has taken the maximum time slice.

Dynamic Priority
The priority level at which a task runs under OS/2 is dynamic; OS/2 can change the priority of a task depending upon its needs. There are three ways in which OS/2 uses it’s ability to dynamically alter the priority of applications, even while they are running.

CPU Starvation
It is possible that some tasks in a multitasking system might become starved for CPU time. Since most running tasks will be at regular priority, many will be at the same priority level. As these tasks run in round-robin fashion, the amount of time taken by the tasks which are not blocked may prevent one or more of the remaining tasks from obtaining CPU time within the amount of time specified in the MAXWAIT statement in CONFIG.SYS.

When a task becomes starved for CPU time in this manner, the OS/2 task scheduler boosts the priority of the starved task within its class by one priority level. This places this task at a higher priority level than the other tasks with which it was running. It will, therefore, receive a timeslice before those other programs. When it does receive a timeslice, it is allocated one minimum timeslice by the scheduler and then it is reduced to its base priority.

This dynamic priority scheduling allows each task to be sure it will receive at least some CPU time.

Foreground Boost
When running a program in a multitasking environment, especially one with which you will continually interact such as a word processing program, it is reasonable to expect that program to respond to user input quickly. One of the ways in which OS/2 ensures that this will happen is to provide the foreground task, that is the one with which the user is interacting and which has the keyboard focus, a boost in priority. In this case the boost is by a level of one within the task’s priority class.

Foreground I/O Boost
Setting PRIORITY_DISK_IO=YES in CONFIG.SYS provides a priority boost to I/O operations for the application running in the foreground. This ensures that a DOS program, or an OS/2 program which was not written with a separate thread for I/O operations will perform its I/O tasks and return control to the user as quickly as possible.

OS/2 Crash Protection
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:03 Topic: OS/2 Crash Protection Date Composed: 10-04-96 10:33:11 AM Date Modified: 01-13-97 01:09:19 PM

This section discusses the term Crash Protection and what is meant by Crash Protection within the context of the OS/2 operating system. It also discusses why applications crash, the causes of OS/2 crashes, and methods which can be used to ensure that crashes of the operating system can be minimized.

Crash Protection
IBM began talking about OS/2 and its crash protection in early 1992, while OS/2 2.0 was in beta testing. IBM states on the OS/2 Warp package that “[OS/2's] Crash Protection helps prevent a single, wayward program from affecting the rest of your system.” Notice that the term Crash Protection is a trademark of the IBM Corporation. IBM thinks that this is so important that they want no one else to use the term. If Crash Protection so important, and if OS/2 has it, why does OS/2 still crash?

Application crashes
Application programs can and do crash. In many cases in which an application actually crashes, the problem is a programming error of some type. The short C++ program in Figure 1 is an example of a program which may crash under some circumstances. This program is designed to request a name as input. The variable “Name” is defined as a three character string. Most users will type their own name, and names vary in length. The program will cause an access violation and SYS3175 error if the user enters a name with more than three characters. Thus it will fail for long names and not fail for short ones. The SYS3175 error message is displayed in a PM dialog box. It is also possible to get SYS3170, SYS3171 , or SYS1808 errors depending upon the length of the name entered.

#include    void main {   char Name[3];

cout << endl << "Enter a name: "; cin >> Name; cout << endl << "The name you entered is: " << Name <<"." << endl; }

Figure 1: This C++ program can crash under the right circumstances.

In the case of a three letter name like “Don”, the program displays a text line which says, “The name you entered is: Don.” No error occurs. With a four letter name, like “Dave”, the program crashes and OS/2 displays a dialog box which says that a SYS3171 error has occurred. If the user chooses to view the register display from the dialog box choices, he or she will find that the error detail is “exception c0000005… insufficient stack space”.

Now assume that the user enters a fifteen letter name. The program crashes again and the user is presented with a dialog box which says that a SYS3175 error has occurred. This time viewing the register display shows that the error is an “…access violation…”. This program has also generated a SYS3186 error, which is a “privileged instruction” error when used with the name “Jennifer”, for example.

In all cases, when the error occurs, the program crashes. In no case does OS/2 crash and all of the other applications running on the system continue to run as if nothing has happened. As far as the other programs running on your system are concerned, nothing has happened because they were protected from the crash of the defective program. This is what crash protection means and OS/2 fulfills this promise quite nicely. This program would also crash in a DOS or Windows environment, but the entire system would crash and recovery would usually necessitate rebooting the system.

There are some very interesting conclusions which can be drawn from this little experiment. The first is that a single bug in a program can cause a number of different symptoms. In this case, at least five different errors have been presented.

The second conclusion we can make is that a bug may not necessarily present itself and cause a symptom; at least not until the proper circumstances are present. This situation can occur in a real program in which a programmer did not fully consider the size of a data field. The name field in a payroll program may work fine for years – until a new employee with a very long name is hired. An error occurs while entering the new employee into the payroll program, and the payroll clerk calls the company support person with this “new” bug. In many cases, the assumption is that the program is still fine, but the hardware is at fault, or that OS/2, which was installed last week, is now the problem.

Application lockups
OS/2′s multitasking uses a priority based, round-robin, preemptive algorithm. This means that OS/2 will give the CPU to the task with the highest priority. If another task is running at a lower priority, that running task will be preempted by OS/2 in order to do so. OS/2 will not allow a lower priority task to run until the higher priority task has completed.

A poorly written OS/2 application can take up all the CPU time and cause the entire system to lock up. Figure 2 contains a C program which operates entirely within the rules of OS/2 and its programming APIs, but which will lock up the system as soon as it begins to run. This program boosts itself to the highest priority in the system and loops in a math operation. This prevents OS/2 from allowing any other application CPU time.

#define INCL_DOSPROCESS #include    #include     #include     int main(void) {   double      value, result; ULONG      Scope, count; ULONG      PriorityClass; LONG       PriorityDelta; ULONG      ID; APIRET     rc; PriorityDelta = 31;     /* delta to process priority             */ ID = 0;                 /* Current process                       */ value = 236723; rc = DosSetPriority(PRTYS_PROCESS, PRTYC_TIMECRITICAL, PriorityDelta, ID); if (rc != 0) { printf("DosSetPriority error: Return Code = %ld", rc); return; }   for  { result = sqrt(value); } /* endfor */ }

Figure 2: This program will lock up OS/2 by hogging all the CPU cycles

On rare occasions, a program may enter a high priority section of code and get stuck there. This can cause a complete system lock up. In other cases, the program will stay in the high priority section for several seconds or even minutes. This is not good programming, but it happens. Waiting a few moments will bring the system back to normal when the program causing the problem reduces its priority back to normal or completes execution of the high priority thread.

It is important to note that code can be written which can cause any operating system to lock up or crash. In most real world applications, the priority of a task is boosted temporarily and other applications and tasks will not even be affected. Other applications use a separate thread for high priority activities. These threads only need to execute for very short period of time and the effect on the rest of the programs running in the system is negligible.

The Single Input Queue Dilemma
Another cause of OS/2 crashes is the single input queue (SIQ) design of the Workplace Shell (WPS). The single input queue simply means that all of the mouse input and keystrokes sent to the WPS are sent to a single queue to wait until they can be processed by the application for which they were intended. This means that an application which was not written to properly respond to the queue and release it immediately can cause the entire desktop to lock up. Memory overcommitment of 100% (when total system memory requirements are 200% of installed RAM memory) or more also seem to contribute to the single input queue lockup problem.

In reality, OS/2 is not locked up; only the desktop is frozen. The processing of other applications continues so that if you have a print job spooling or a download from a BBS in process, those tasks continue to run. You can see this if you start the OS/2 System Clock and configure it to show the seconds hand. If your system locks because of the single input queue, the second hand on the clock will continue to run. You may wait until critical apps or downloads have finished before you reboot the system, if it actually comes to that.

The single input queue was designed into OS/2 by Microsoft back in days of OS/2 1.1, the first version to have the Presentation Manager desktop environment. This was done because – so the story goes – the programmer responsible for the Presentation Manager did not know how to deal with multiple input queues. With multiple input queues, each application has a separate queue for mouse and keyboard activity, so that a single misbehaved application does not lock up the entire WPS. Microsoft has used a multiple input queue strategy in Windows NT and Windows 95 to overcome this problem.

IBM has not modified OS/2 to provide multiple input queues because they contend that would break existing OS/2 applications which depend upon the single input queue model. IBM has said, however, that they intend to fix this problem, and appears to have included the circumvention in Fixpak 17 which became available in late January, 1996. The fix is not multiple queues, but rather a watchdog timer on the single input queue which will release the queue automatically when one application refuses to respond.

There is a great deal of controversy over whether this approach to the solution results in a true fix or merely a workaround. If it works, however, the specific approach used is irrelevant. Fixpak 16 is also supposed to have had the SIQ fix, but has been withdrawn because it had some problems. If you have a copy of it, you should not install it. Fixpack 17 does contain the SIQ fix. The fix is described in the text file READ17_1.TXT which is included with the fixpack. The following line must be added to the CONFIG.SYS file to activate the fix.

SET PM_ASYNC_FOCUS_CHANGE=ON x

The x parameter specifies in milliseconds the amount of time which OS/2 waits before determining that the application is not responding. The default with no parameter is 2000 milliseconds (2 seconds). The suggested range is from 2 to 5 seconds. Once it has determined that a program is not responding to the queue, OS/2 flags the queue as bad and switches to the next application you are trying to use.

OS/2 continues to monitor the queue to see whether the application begins to respond by reading messages. If this occurs, OS/2 marks the queue as good and continues to operate normally. If the application does not respond to the queue, you can try to terminate the program, or just ignore it.

Recovering from hangs and lockups
Once you realize a lockup has occurred, you should spend a moment before taking any action to observe what is actually happening. Some apparent lockups are caused by normal activities like disk swapping. When launching a program with memory already significantly overcommitted, a large amount of swapper activity will occur. Since this activity must take priority over all else except communications, the system may seem to come to a halt. Heavy disk activity might indicate that the system is engaged in serious swapping rather than being locked up.

There are a couple ways of recovering from OS/2 system hangs and lockups caused by the software types of problems we have discussed so far. First, press the Ctrl-Esc key combination repeatedly. This will normally result in a dialog box which prompts you to terminate the application. If you try this it may result in termination of the hung program and negate the need for a reboot. Be sure to wait for several minutes before proceeding with any more drastic actions because OS/2 can take a very long time to respond to Ctrl-Esc. Ten or fifteen minutes would not be unreasonable to wait on a slow (less than 486 33 MHz) system; five or six minutes would be appropriate on fast computers. Warp’s response to Ctrl-Esc seems much faster with Fixpak 16.

WatchCat
WatchCat is a shareware program written by a pair of programmers in Germany which can help in the recovery from some OS/2 lockup situations. When a computer with WatchCat installed locks up, the user generates a wake-up signal using one of several methods. A device driver is installed which allows WatchCat to respond to a user selected keyboard combination, or it can be configured during or after installation to respond to mouse or joystick input, or to switches connected to the serial or parallel ports, or other custom devices. Once WatchCat has control of the system in a full screen or windowed text mode session, the locked application can be terminated. By their nature, some types of applications cannot be terminated. The registered version can terminate more applications more “brutally”, and has more activation methods and other features.

WatchCat is intended to kill programs which are not responding to input, and therefore, to free the input queue. It seems to do a good job of this. WatchCat cannot, however, help with programs which hog the CPU by running at high priority. The program in Figure 2, for example, cannot be terminated because WatchCat cannot get any CPU cycles. I also found it necessary to use the key combinations several time to get WatchCat’s attention. The documentation suggests an alternative activation method when this occurs

If terminating the locked program does not work, you can reboot using the Ctrl-Alt-Del key combination. This soft reboot will be intercepted by the OS/2 kernel and flush the cache and buffers to disk before terminating OS/2 and performing the reboot. This is not a wonderful “recovery” but you should not lose any data and all files will be closed properly.

If a soft reboot does not work, the chances are very high that you do not have a software problem, but rather a hardware problem such as a lost interrupt. You can also tell when the system has entered a “hard lock” because the second hand of the OS/2 system clock will stop. Hardware causes of OS/2 crashes are discussed in following sections. When other attempts at recovery don’t work, you will have to reboot with the Big Red Switch.

Other causes of crashes
There are a number of other causes for system crashes. These are not unique to OS/2, however, and can affect any computer running under any operating system. The bus design of your system is important and the environment in which your system operates is also consequential.

System design
One area which can cause problems is the design of your system, particularly the system data bus. The original IBM PC data bus is called the ISA bus. ISA stands for Industry Standard Architecture – even though it is not an industry standard. The ISA bus was developed, along with the original IBM PC and DOS, based on the assumption that the PC would be used in a stand-alone, single tasking environment. As a result, the nature of the ISA bus is not conducive to a multitasking operating system.

In a true multitasking environment many different tasks can be under way at any given time. This can result in a large number of interrupts being generated. It is possible with the ISA bus for an interrupt to be lost if it happens to occur at the same time as another interrupt. A lost interrupt causes the system to hang or lock up. Many times, OS/2 hangs on an ISA bus system are symptomatic of old hardware technology.

IBM developed the Micro Channel bus for its PS/2 line of computers with a multitasking environment in mind. It is designed so that an interrupt cannot be lost, even if it coincides with another interrupt. Far fewer hangs occur on systems with Micro Channel than on ISA bus systems. The biggest problem with the Micro Channel bus is that IBM did not and does not know how to market personal computer products. The PCI bus which is becoming widespread in systems today is also designed to provide a better multitasking hardware platform than the ISA bus. Not only is it significantly faster than the ISA bus, it also helps to prevent lost interrupts.

If you have a choice, you should purchase a system with a Micro Channel bus or a PCI bus to eliminate lost interrupts. These two busses are also designed to reduce problems caused by Electromagnetic Interference (EMI).

Electromagnetic Interference
Environmental problems for computers are similar to environmental pollution for human beings and other living things. Electronic pollution is called Electromagnetic Interference, or EMI. Electromagnetic interference is caused by two types of electromagnetic fields; radio frequency fields and magnetic fields. This class of phenomena affects the system hardware, but many of the symptoms can appear to be the result of problems in the operating system. Any operating system can be affected, OS/2, DOS, Windows NT, AIX, Unix, and Windows 95.

There are a number of different electromagnetic phenomena which can cause problems for computers and other electronic equipment. Electrostatic discharge (ESD) can occur in the Autumn and Winter. Radio frequency interference (RFI) can occur near radio and TV stations, radar installations, airports, and other locations as well. Poor grounding can cause problems of its own and it can aggravate other problems like ESD and RFI.

Electrostatic Discharge
Electrostatic discharge (ESD) begins to show up in the Autumn as the moisture content of the air – relative humidity (RH) – decreases. During the summertime the high relative humidity keeps ESD at bay by draining the electrostatic charges almost as quickly as they accumulate.

Electrostatic charges are created when two dissimilar materials are separated. The most commonly recognized method for people to accumulate a static charge is to walk across a carpet on a dry autumn or winter day. The static charge accumulated on such a day is not noticeable until it is discharged to another object – usually a door knob or the computer – with the crackle of a spark which causes an unpleasant jolt.

ESD can cause a computer to crash in many ways. You may find that your computer just hangs. You may experience parity errors in DOS or Trap errors in OS/2. Windows may present a general protection fault (GPF) as the result of ESD. The symptoms will vary and the true source of the problem will be very difficult to determine.

The case in which static is discharged from your body is probably the least common cause of problems for your computer. The charges accumulated are just not that high. The real culprit is your chair. A charge of up to 10,000 volts is generated when you get up out of the chair – remember the separation of dissimilar materials. The charge is retained by the chair because the casters on most chairs are rubber or plastic – both of which are nearly perfect insulators. When the chair touches or comes in close proximity to the desk or cart on which your computer sits, the resultant electrostatic discharge can and frequently does disrupt its operation.

Simple ways to prevent ESD
There are only a couple things you can do to prevent ESD. You can also take steps to ensure that when ESD does occur, the results are as harmless as possible.

The primary and least expensive thing that anyone can do to reduce the occurrence of ESD is to prevent the buildup of static charges. The best way to do this is to keep the relative humidity in the computer room between 45% and 70%. 50% to 60% RH is ideal. The 45% to 70% relative humidity range drains away the static charge through the moisture in the air quickly enough that it does not build to a level high enough to cause a discharge.

Another way to prevent static buildup, particularly on your chair, is to use special static draining carpet and chairs with casters which are designed to drain static to the floor and from there to the ground. This is obviously a more expensive solution than keeping the relative humidity in the correct range. It may be necessary, however, to use this approach in buildings or offices in which there is no control over the relative humidity.

There is another very simple way to keep the air in your computer room moist as well as filtered. Green, growing plants add moisture to the air and filter it to remove harmful pollutants and toxins. Plants also remove undesirable ions from the air. These attributes of plants are good for people as well as computers.

Magnetic fields
The magnetic field created by your computer monitor can cause problems when the monitor is placed on top of or in close proximity to your system. All computer monitors use a CRT (cathode ray tube) to generate an image using a beam of electrons. This electron beam is swept across the face of the CRT by a powerful magnetic field which can interfere with the ability of the system to read data from the diskette drive or from any device which has a cable passing too close to the CRT. This can cause CRC – cyclic redundancy check – or other disk media errors.

Almost any type of electrical device can generate a magnetic field. Many of these devices are not computer related. The best way to prevent problems due to magnetic fields is to remove the source of the magnetic field. Move the system monitor away from other devices like the system unit. Keep the entire system away from large electric motors or CRT devices like television sets.

Radio Frequency Interference
Radio Frequency Interference – RFI – is any unwanted electronic signal that is transmitted or received by an electronic device. A computer can generate RFI that interferes with the operation of other electronic devices, just as other devices generate RFI that disrupts the computer. RFI can propagate through the air, as with radio waves, or through the power lines to the power plug of your computer. These unwanted and undesirable signals, whatever their source and however they are propagated, can crash your computer unexpectedly or initiate any number of unusual symptoms.

Symptoms of RFI can be lockups and hangs, trap and SYSxxxx errors of various types, repeated booting, CRC and disk media errors, and internal processing errors. In other words, many of the errors that can be caused by real hardware or software problems can also be caused by RFI problems that are just as real but harder to find, prove, and fix. Many times problems that cannot be traced or explained in any possible way should make you suspicious of RFI.

Sources of RFI
Nearby radio and TV stations can generate powerful electromagnetic signals. These signals propagate through the air and can be picked up by a computer. The cables attached to a computer and to peripheral devices can act as excellent antennae. The keyboard cable, the printer cable, the cables to modems and other external devices all pick up the radiated signals from radio and TV stations. If your system is located close enough to one, you may experience problems.

Powerful radar sources can also affect your system. An airport or air station can be the source of ground-based radar as well as aircraft radars and other radio signals. These radar signals can be powerful and can cause problems similar to those caused by radio and TV signals. The system entry points are cables, which act as antennae for radar signals. Microwave relay towers and cellular phones and their relay towers can cause RFI problems with computers, too.

Minimizing RFI problems
RFI problems cannot be prevented entirely, but they can be minimized by taking certain simple precautions. If you are located next to a radar installation, for example, even proper grounding and all other measures may not be enough to prevent high power radar pulses and radio emissions from interfering with your computer. The following suggestions should help to minimize problems with RFI.

One very common set of entry points for radiated RFI is loose system covers and missing card slot covers. Replace any missing card slot covers. These covers may have been left off after removing a card from the system. Be sure to always replace them when a card is removed from a system. Be sure to install the covers on your system unit or attached peripheral devices if you currently have them off. Fasten them down securely with the latches or screws provided. A missing or improperly installed system cover allows significant RFI entry into the system.

Another common entry point for RFI are the cables that connect the various external peripherals to the system. These cables act as antennae and can pick up radio frequency signals and transmit them inside the system where they can cause problems. These cables can be keyboard cable, mouse cable, serial communications and printer cables, parallel printer cables, audio cables if you have a sound card, data cables to external devices such as external SCSI hard drives or CD-ROM drives, and even the system’s own power cord.

To reduce RFI pickup on cables, ensure that each cable connector is seated properly in its receptacle at both ends of the cable and that the fasteners are properly installed and in use. If screws are used to hold the connector in place, ensure that they are tightened snugly. Where wire retaining clips are used, ensure that they are properly seated and latched. For printer cables that have separate ground wires, you should connect the ground wire to the screw or fastener provided on one end only. Connecting the ground wires on both ends can cause ground loop currents to flow that defeat the purpose of the ground wire. In the case of cables like this, the ground wire is used for shielding, and it makes its connection to the ground reference through the frame of the printer.

Check the ground
Most new homes and office buildings have adequate grounding for the proper operation of a personal computer system, but older homes and offices may not. Be aware, however, that even though a building is relatively new, there still may be problems such as loose connections and missing connections that increase the susceptibility of the system to RFI problems. If you even suspect an EMI problem, check the ground! Computers are much more susceptible to the effects of ESD and RFI when they are improperly grounded. A quick check of your computer’s ground can be accomplished with a simple electrical outlet ground checker available at most hardware or electrical supply stores. Even if the ground checks good, however, you could still have a grounding problem which can aggravate the effects of ESD,

The ideal ground wire installation is an insulated green wire at least the same size as the wires which supply the power to the outlet. The wire should connect only to a one inch diameter copper stake driven at least 10 feet into moist earth or to an equivalent copper water pipe. It should not connect to any other wire or bus at any point along its length. The connection to the ground stake should be made at a point no greater than twelve inches from the entry into the earth, and should be as close as possible to the earth.

Proper grounding is not difficult to achieve, but it can be expensive. You should definitely call a trained electrician to deal with this type of problem. Do NOT under any circumstances attempt to work on the electrical system of your home, office, or building yourself. It can kill you.

If you are having problems which no one can seem to fix, the important things to check are the relative humidity and the grounding of your computer. It would also be wise to consult with someone who specializes in resolving electromagnetic environmental problems.

OS/2 is crash protected
OS/2 does live up to the crash protected claims which IBM makes for it, but it is not crash-proof. Many of the causes of OS/2 crashes are really not problems with OS/2, but rather are the result of external factors which affect all operating systems equally. A true crash – as opposed to a single session lockup – which can be truly attributed to a problem in OS/2 is very rare. OS/2 is a solid platform which gets better with each release.

The Swap File
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:05 Topic: The Swap File Date Composed: 01-08-97 02:47:05 PM Date Modified: 01-07-99 09:26:01 AM

The swap file is an important part of OS/2 memory management. It allows OS/2 to overcommit memory so that more memory can be used by the operating system and application programs than there is RAM physically present in the computer. Pages of data are swapped out of RAM and onto the disk for storage until they are needed again, when they are swapped back into RAM.

The memory pages stored on disk are located in a file called SWAPPER.DAT, which is usually located in the \OS2\SYSTEM subdirectory on the OS/2 boot drive. The location of this file is specified in the CONFIG.SYS file by the following line, and can be changed if your boot drive is too full to provide sufficient space for the SWAPPER.DAT file to grow.

SWAPPATH=C:\OS2\SYSTEM 4096 5120

The SWAPPATH statement in the CONFIG.SYS file determines the initial size of the SWAPPER.DAT file (5 MB in this example) and the amount of disk space to reserve so that the swap file cannot file up the entire disk. It also determines the location of the swap file.

Swapping Strategy
The strategy used to implement swapping in OS/2 is completely misunderstood by most people. As a result they have certain expectations about how the swap file is supposed to behave, and believe that there is a problem when it does not behave as expected.

OS/2 starts by creating the SWAPPER.DAT file during the kernel initialization. If the swap file previously existed, as is almost always the case, it is erased and recreated. The initial size of the swap file is determined by the second parameter in the SWAPPATH statment, above. Its location is determined by the path specified in the SWAPPATH statement.

Preallocating the swap file helps to ensure that it is contigous. This is especially important for performance reasons on FAT drives. Preallocation also reduces the amount of time required to move data to the swap file because the space on the hard drive has already been allocated. Again, this is especially important on a FAT drive because it can take a great deal of time to allocate disk space. This is a result of the relatively primitive structure of the FAT file system.

Swap File Allocation
Part of the OS/2 swap strategy is to attempt to allocate or deallocate space for SWAPPER.DAT on the hard drive when no other activity is taking place. This helps to ensure that, when additional space needs to be allocated, it is not done at the very time when the data needs to be swapped to the file, thus slowing the actual swapping process.

Whan RAM is full and existing swap file space is nearly full, the memory management portion of the OS/2 kernel allocates more space on the hard drive for the swap file even though it is not yet needed. The trigger point is when 500 KB or less of free space remains in the swap file. When that point is reached, the memory manager watches the hard drive to determine a time when it is not busy responding to read or write requests. When the drive is not busy, the memory manager allocates more space for the swap file in 1 MB increments.

This strategy for swap file allocation not only prevents having to allocate disk space at the moment the swap file needs to be used, it also prevents interrupting other applications which are accessing the disk.

Swap File Deallocation
Deallocation of swap file space is less critical in terms of its impact on the swap process. Deallocation can occur any time. It does not have to be done as a prerequisite to enable some other task to be completed. It is also desirable to maintain much of the data in the swap file for a period of time after the file was closed or the program terminated. This can prevent having to read those same files from the disk if they are needed relatively soon.

Say, for example, that I have just finished a document in a word processor. After I print the document, and while the print spooler is sending the document to the printer and the printer is printing the document, I close the program. I am prone to make mistakes, as are most of us carbon based, humanoid life forms. Since I find the error after the file is closed and the program has been terminated, I have to restart the word processing program and reload the document. It does not take very long because the application and the document have both been retained in the swap file.

Dynamic Link Libraries (DLLs) are also retained in the swap file for a considerable period of time. Many DLLs are used by a lot of different components of OS/2 and by many application programs.

For these reasons swap file deallocation does not take place quickly. Many people I have talked to in my years of supporting OS/2 assumed that as soon as a file was closed or a program terminated that the swapper file should shrink. When it did not, they assumed that there was a problem. This is an erroneous assumption.

Let us assume, then, that several files or programs have been closed and that the requisite amount of time has passed for the memory manager to begin the process of deallocating space from the SWAPPER.DAT file. When the disk is not busy, space belonging to the files and programs which have been least recently closed is marked as unused. It is not possible, however, just to whack a chunk off the end of the file. Most of the empty space in the file is now scattered throughout the SWAPPER.DAT file rather than all being nice and tidy at the end.

The task of the memory manager now becomes one of moving all of the unused space to the end of the swap file so that it can be deallocated. Over a period of time while the disk is not busy with productive tasks, the memory manager moves empty pages to the end of the swap file by moving in-use pages to the empty ones nearer the beginning of the file.

When three conditions are met, the memory manager will deallocate the space.


 * The last 1 MB of space in the file must be unused.
 * There must be 1.5 MB of total unused space.
 * There must be no new pages swapped into the file for a specified period of time. This helps to ensure that there will be no immediate need to reallocate space in the swapper file. Why deallocate space which will be needed again soon anyway?

When these conditions are met, the last 1MB of the SWAPPER.DAT file is deallocated leaving at least 528 KB of empty space available in case additional swapping needs to take place. Because of the need to meet all of these requirements and the time required to move the data around within the swap file, this process can take a long time. It does work, though. My swap file can be as large as 55 MB during a typical day. although I do observe some shrinkage of SWAPPER.DAT during the day, it usually remains over 40 MB until I quit for the evening. By the next morning, it is back down to 25 MB or so, which is just a little larger then the 20 MB default preallocation size I have specified in CONFIG.SYS.

This is very complex, but a large part of this strategy is to perform operations on the swap file in such a way that they affect the productive tasks as little as possible.

Tuning
See “Tuning the SWAPPER.DAT file” for details of tuning the swap file.

OS/2 Memory Management
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:04 Topic: OS/2 Memory Management Date Composed: 10-02-96 07:17:56 PM Date Modified: 11-14-98 11:01:56 AM

Intel memory structure
The structure of memory in an Intel processor environment is a legacy of the design inherited from the original IBM PC back in 1981. The Intel 8088 processor used in the PC had a memory address range of 1 MB. At the time, 1 MB was many times the size of the address space provided in any other personal computer. This 1 MB address space was divided by the need to access memory using a segmented memory model into sixteen 64 KB segments. The lower ten of those segments, 640 KB, were provided as user memory to load an operating system and application programs. The remaining upper 384 KB was reserved for BIOS, video RAM, and future use.

In order to ensure backward compatibility for operating systems and programs with the early computers, all Intel based personal computers since have retained this memory structure. Even the 80×86 and Pentium class processors have an identical memory structure in the lower 1 MB. Above the 1 MB address, however, the address space is unbroken up to 4 GB and operating systems and applications can access all of it unencumbered – if the hardware will support that much memory.

It is important to understand that this memory structure is not a result of the design of the 80×86 class of processors; it is an artifact of the design of the original IBM PC.

Figure 1: Memory map of OS/2 in an Intel environment.

OS/2 memory usage
OS/2 Warp can access the entire 4 GB memory address space of the Intel 80×86 processor family. This includes the 80386, 80486, Pentium, Pentium Pro, and all the DX, SX and SLC variants of these processors. When Warp is loaded into RAM at boot time, the OS/2 kernel begins loading at the lower boundary of memory. It fills the lower 640 KB of RAM first, skips the 384 KB of reserved memory address space, and continues loading into the area beyond 1 MB. When OS/2 is running, it essentially ignores the address space between 640 KB and 1 MB

Once the kernel is loaded, the rest of memory is available for use by user application programs. These can be real OS/2 programs, DOS programs, and Windows 3.1 programs. Paged access to memory

Application programs do not access memory directly under OS/2. To ensure that application programs do not use memory which does not belong to them, memory can be accessed only through the operating system. This is accomplished through the use of page tables. Warp manages the page tables, and memory, with the support of the processor.

Under Warp, all memory is divided into fixed, non-movable blocks called Pages. Warp’s memory manager keeps track of memory usage with the Page Tables. Whenever a program is loaded by Warp, the memory manager creates a page table for that program. The page table is a list of memory pages which belong to the program. The Page table entries also contain information about how the memory is being used and is the basis for the memory protection mechanism of Warp.

Figure 2: OS/2 Warp accesses physical memory through the Page Table. The Page table entries also contain information about how the memory is being used and are the basis for the memory protection mechanism of Warp. The most important thing to understand about memory management in OS/2 is not how physical address are generated; rather it is how each program’s virtual memory space is isolated from the rest of the programs. Each entry in the page table for a process contains an address pointer to the base location of the physical page of memory represented. It also contains attribute bits which describe how the physical memory is used and what access to the memory is permitted. The attribute bits which are important for this discussion are:


 * Commit When this bit is on, the page of memory has been committed to physical storage, either RAM or fixed disk. The Commit and Decommit bits are mutually exclusive; only one can be on at a time, while the other must be off.
 * Decommit When this bit is on, the memory page has been assigned to the program but, because the program has not yet stored any data in the page, or used it in any way, the page has not been committed to physical memory. In this way OS/2 only uses physical memory resource which is actually needed by a program. This is called sparse allocation. The Commit and Decommit bits are mutually exclusive; only one can be on at a time, while the other must be off.
 * Execute This bit, when on, means that the data stored in the page is executable code.
 * Read When on, this bit means that the data in the page is readable. If off, the data cannot be read.
 * Write When this bit is on, it means that the page can be written to.

Access to any page in a manner which is inconsistent with its attributes causes the Intel processor to generate an access fault. OS/2 has a kernel level process, HARDERR.EXE, which handles these hardware errors from the processor. The hardware error handler determines the cause of the access violation and displays an error message for the user to see. In some cases, where the error occurs in the kernel of OS/2, an Internal Processing Error (IPE), is generated and the system is stopped.

Virtual Memory
OS/2 utilizes what is known as virtual memory. Virtual memory is provides a protected address space to each program running on the computer. From the viewpoint of the program, as shown in Figure 3, it resides alone in a computer address space which is contiguous and sequential. Because this memory space is protected, other programs cannot obtain access to it. Virtual memory can also use available hard drive space as auxiliary storage when the computer’s RAM is all in use. What this means is that when you have 24 MB of RAM in your system, and you are running programs which together require 37.5 MB of memory for executable code and data, you need an additional 13.5 MB of RAM which you don’t have. In OS/2 Warp, the memory manager uses available hard disk space to substitute for that unavailable RAM.

Figure 3: Each Application in a virtual memory system appears to have sequential, contiguous, and isolated memory space. In fact, the physical memory resource allocated to each application may be neither sequential nor contiguous, and may not even be in RAM. Figure 4 shows that some pages of memory for a given program may be located in RAM, while other memory pages may be located on the fixed disk drive. It is OS/2, or rather OS/2′s memory manager which is responsible for mapping the virtual memory to physical memory resource. The OS/2 memory manager is also responsible for moving data from disk to RAM when they are needed for the computer to work on.

When physical RAM is filled up, and yet more RAM is needed by a program, the OS/2 memory manager transfers the contents of one or more pages of RAM into the SWAPPER.DAT file in the hard drive. Those pages of RAM are then allocated to the program which needs them. Entries for these memory pages are created in the page table for the program which needed them, and the entries show the location of the page in RAM.

When a program attempts to access a page of memory which has been swapped out to the hard drive, the processor generates a page fault and the OS/2 memory manager then retrieves the page from the hard drive and places it into RAM. If necessary to make room for this page transferred to RAM from the hard drive, the OS/2 memory manager will dispose of pages which have been marked as discardable, or will transfer pages from RAM to the hard disk.

Figure 4: OS/2 maps virtual memory to a physical resource, either RAM or fixed disk. When any application, as a result of a programmer error or an overt attempt by the programmer, attempts to access memory which does not belong to that program, the Intel processor generates an access violation. The processor knows that the memory does not belong to the program trying to access it because there is no entry in the page table for that program for the memory in question. Warp’s error handler interprets this access violation as a Trap 000D error. When a program accesses memory which does not belong to it, the only option which OS/2 allows the user is to terminate the errant program. See Figure 1 in the document “OS/2 Crash Protection” for an example of a program which can crash with a Trap 000D error because it attempts to access memory which does not belong to it.

For any kind of problem with a program which creates an access violation, the error handler first displays a SYS3175 error. To determine the specific problem, click on the button to see the registers. At that point the specific trap error is displayed.

Ring Protection mechanism
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:06 Topic: Ring Protection mechanism Date Composed: 10-03-96 06:59:05 PM Date Modified: 03-19-99 08:03:54 PM

OS/2 uses a four level protection mechanism to protect itself, the operating system from interference by other programs. This is not the same as the memory protection, actually memory isolation, which isolates programs’ memory spaces from each other. This ring protection mechanism, diagrammed in Figure 1, is used to ensure that applications cannot alter registers in the CPU or manipulate memory directly by accessing the page tables. The protection mechanism prevents this by refusing requests from programs other than a kernel level process to use the CPU instructions required to access the CPU registers and the page tables. The ring protection mechanism gets its name from the concentric rings used to diagram it.



Figure 1: OS/2 Ring Protection Mechanism

The ring levels
OS/2 runs at ring level 0 which is the highest level of protection. Actually only the kernel of OS/2 and certain other kernel level functions run at this level. This is the most protected level of the CPU and is used only by an operating system. Running at ring 0 gives the operating system access to the privileged CPU instructions which are used to manipulate the CPU registers and the page tables. Access to these privileged instructions allows OS/2 to manage memory and to manage the operation of the CPU and the computer as a whole. It is important to note that the operating system, because it runs at ring 0, can use all of the CPU instructions available to the outer rings as well as those limited to programs running at ring 3.

Ring level 1 not used is not used in OS/2. This was a simple design decision on the part of the OS/2 architects who felt that providing access to this level would not offer any significant advantages to the operating system structure while adding unnecessary complexity. The kernel running at ring 0 can use any of the few instructions provided by this level.

Applications normally run at ring level 3. This is the least protected level, and programs which run at this level are the least trusted. That is, they are to be prevented from manipulating the hardware directly under any circumstances. In most cases, however, it is not necessary for applications to use hardware directly. The device driver structure of OS/2 provides program independent methods for accessing all hardware and so application programs normally have no need to do so.

IOPL
IOPL (I/O Privilege Level) programs run at ring 2. Ring 2 gives some few programs which need it a little more direct access to the hardware of the computer than they can have at ring 3. The sensitive instructions of ring 2 can be used by application programs to use instructions which exercise a little more control over parts of the computer like serial or parallel ports. Even with this additional level of access, however, OS/2 rigidly supervises the program using IOPL.

Any program which requires access to IOPL must first tell OS/2 that it will access ring 2. The programmer’s API which is used for IOPL at ring 2 is tightly controlled by OS/2 to prevent applications from causing problems. Unfortunately, a program written to access I/O Privilege Level can take complete control of a device; this cannot happen at ring 3. If the program does not relinquish control of the device, other programs which need access to the device, including the operating system, may appear to lock up while they wait for access to be granted. Until the program running at ring 2 relinquishes the device, all other programs must wait. It is imperative, therefore, that programmers working with IOPL at ring 2 follow IBM guidelines about programming at that level and release the device as soon as possible.

The statement IOPL=YES is required in the CONFIG.SYS file to allow programs to access ring 2 IOPL level instructions. If this statement has been altered such that a particular program which requires IOPL cannot get access to it, an error is displayed which says, “The system is not configured to support this program.”

IOPL=YES Allows I/O Privilege Level access to be granted to all programs which require it Protect ring level 2.

IOPL=  Allows I/O Privilege Level access to be granted to only those programs in the list. All other programs will be refused access to IOPL. The list consists of the names of executable files separated by commas.

Dynamic Link Libraries – DLL
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:07 Topic: Dynamic Link Libraries – DLL Date Composed: 01-30-97 09:50:14 AM Date Modified: 01-30-97 10:13:25 AM

OS/2 uses libraries of executable code call Dynamic Link Libraries, or DLLs. DLLs are used to improve the performance of OS/2 and application programs and to reduce the amount of disk space and RAM required to store and run programs.

Dynamic linking means that the DLLs are linked to the EXE code at load time or at run time rather than when the program is linked by the programmer. Static linking places all of the runtime code into a single large executable module which must be loaded into RAM in its entirety. Becuase many DLLs are designed to be loaded into RAM only when they are called by a program, this can make load time faster so that programs begin to run faster.

DLLs can be used by many programs rather than just one. Since many functions residing in a DLL are needed by many executable programs, a single DLL can take the place of static linking the same code multiple times into multiple exectable files. This saves disk space and RAM because a single instance of a DLL in RAM can be used by multiple programs.

Dynamic linking can be accomplished in two ways under OS/2.


 * 1) Load-time dynamic linking loads DLLs called from within a code segment at the time the segment is loaded into memory. This causes load time to be longer but can result in improved run-time performance, especially if the DLL is used frequently.
 * 2) Run-time dynamic linking postpones loading the DLL until the code actually calls a function in the DLL. This reduces the time required to initially load the program and get it running, and also results in a smaller RAM footprint. This is appropriate for DLLs which are infrequently used because it can impact performance slightly as DLLs are loaded during execution of programs.

Symmetric MultiProcessing (SMP)
Chapter:Chapter 02 – Inside OS/2 Warp Subsection: 01. Base Operating System Architecture Document Number:08 Topic: Symmetric MultiProcessing (SMP) Date Composed: 08-20-97 01:08:57 PM Date Modified: 11-15-98 06:14:13 PM

Warp Server SMP
Symmetric MultiProcessing is used to increase the processing capability of a single computer. By using multiple processors the amount of work which can be performed by a single computer can be increased considerably. Warp Server SMP supports SMP computers with from one to sixty four processors and provides a significant improvement in performance over computers with a single processor.

Warp Server SMP and Warp Server for e-business are both scaleable up to 64 processors in a single computer. Warp Server is optimized for 4 processors and Warp Server for e-business is optimized for 8 processors.

Under Warp Server SMP and Warp Server for e-business, Symetric MultiProcessing spreads all of the computing tasks among all of the processors in the computer as evenly as possible, so that each processor has some of the load.

Windows NT Comparison
Windows NT, in contrast to the way Warp Server SMP works, loads up each processor completely before placing any load on the additional processors which may be available. This causes some processors to do most of the work, while other processors may not do anything at all.

Windows NT is, theoretically, capable of scaling up to 16 processors, but in reality, it can only use a maximum of 4 processors effectively. Even then, based on independent third party tests, Warp Server on a single processor computer outperforms Windows NT on a 4 processor SMP environment.