Joe's OS/2 Tips - Number 1

Few people realize that the default OS/2 setup isn't exactly the best. The following document was written by myself, after experimenting with OS/2 version 2.0.


 * Abit of background about myself,

I'am Joseph Mckinnon, I was introduced to OS/2 by Ernst Winter half way through 1991. This seemed at the time like an ideal operating system for my requirements - Multi-tasking, solid and fast (ask my closest friends about my like for speed). I joined the Early Experience Program through Adrian Collings (Critial Software Designs). From that day on I enjoyed the system and went about making the Beta Code run faster than normal, since, as you all know, Beta code is always slower than the real thing, due to the amount of extra 'fail-safe' code built in to trap system errors. From this I've developed quite a good grounding in what things you should change to get the best.


 * Memory Requirements.

From the starting post, IBM's minimal requirements would make me lose my temper at the preformance, since 4 meg is just enough to boot the System, let alone run any real applications. Therefore, if you are considering to run OS/2 as the default operating system, I'd recommend for you to have at least 8 meg. This way you can realy use your system. Sure other companys may say that's too much for a normal user, I say Bull. As far as I'am concerned if I like what I use I prefer speed than to run with one foot in lead and the other in plaster.

With 8 meg of RAM, you can run multiple applications at a reasonable speed, with the defaults. But, if you have patience (or a very fast machine 486-50mhz) you maybe able to live with 4 meg, and put up with the delay in loading applications, and noise from your Harddrive being constantly accessed (Why's this, read on). Since OS/2 is an advanced operating system it takes advantage of many of the memory techniques found on Mini's and Mainframes, one of features of OS/2 is it's virtual memory.

This whole Idea is basically summed up in saying OS/2 uses the swapper file on your Harddrive as RAM to run programs in. Thus on a 4 meg machine, OS/2 is continuly 'thrashing' the harddrive, since there's not enough physical RAM to run both your applications and OS/2 properly. The advantage that OS/2 has over other 16 bit shells/operating systems is that OS/2's 32bit programming allows the system to work with small blocks of memory (4k) and therefore it's much more effective when swapping to the harddrive 16bit have to page out 64k chunks at a time, causing undue strain on the system. Especially when it it's reloading the same block to run 4k of code out of that segment, which of course these 16 bit shells tend to run slowly once they reach the end of physical RAM.
 * Virtual Memory.

This, of course is the amount of RAM your system contains. OS/2 will use every bit of the RAM it can find, without you having to tell it what to use. This is a BIG step forward over other memory managers, where you, the user (and generally inexperienced) has to sit down and work out what areas to include and exclude. With OS/2's 32bit environment it's in theory capable of handling a GIG (4,096 Meg) of RAM! which of course is very hard to imagine.
 * Physical Memory.

After installation of your system, OS/2 will install a default, use for all systems, CONFIG.SYS file. At first glance, many new users will say 'Hey, I'am not going to even touch it', since it can range from about 20 lines to 40, depending on what you installed, etc.
 * The CONFIG.SYS file

Inside this 'hideous creation' you'll find many interesting keywords for OS/2, EG MAXWAIT, IFS DPATH and many more, all totally alein from the DOS-World, DON'T BE SCARED OFF BY THESE THINGS, it's all in the Online Help, take time to read about them, and experiement, otherwise you'll never feel confident.

One thing that stands out is this line. Which after you've read the online help (go on, that's what it's for), is the Printer Buffers, for LPT1,LPT2,LPT3. So why reserve memory for unused printer ports? Plus, if you don't do much printing, why reserve so much, when the system can use the memory for either itself or for your apps. Therefore assign a value which suits your usage, mine is     PRINTMONBUFSIZE=100,0,0
 * PRINTMONBUFSIZE=132,132,132

Threads is the number of independent actions that OS/2 is expected to manage. Each thread requires a small fraction of Physical RAM, thus if your not particularly running massive OS/2 Applications, which have many threads, then why reserve so many. In case you're worried about not assigning enough, there is a small utility program called MAP57, which I'd recommend obtaining, since this will give you a report on the number of threads in use by your system (available from my BBS Proteus OS/2 +61-7-800-3521). With this utility I was able to halve my default setting to 128, which is still rather high, but it's better to have more than required, otherwise your system's preformance will be terrible if you remove to many. THREADS=128
 * THREADS=256

IFS=D:\OS2\HPFS.IFS /CACHE:64 /AUTOCHECK:DE /CRECL:4

This is the HPFS (High Preformance File System - Requires at least 6 meg Physical RAM) controlling line. It's very annoying to see OS/2 install a 196k Cache on my system, because it's eating to much RAM for my setup. My Hardrive has a 64k Cache built-in, so why tie up more physical RAM. I've had this set to 196, and other values, but after much trial and error I found that 64k cache on the HD and the IFS give me the same preformance results. Some people are setting this at incrediable settings, eg 1024k, etc which may have been great under DOS, but under OS/2 it's useless if you've only got limited memory available. I suggest that you play trial & error with this setting because every system setup is different, but keep in mind, DON'T GO OVERBOARD, swapping memory in and out makes your system slower, no matter how fast your harddrive may be.

AS in DOS, this command along with the others (DPATH, LIBPATH, HELP) define where to look for files to run (or in the other ones, where to find specific files eg Help files). I find that people tend to throw all their program paths into these statements, so that they can be in any directory and load that file. That's great, but why setup your system like this, since your system searches all these paths until it finds the application. Which, of course, is an un-necessary process. You should be making a program icon for that particular app, and activiate with the mouse rather than at the command line, quicker and much more easier for other users. Plus that's what GUI's are designed for.
 * PATH

If you're like me, and hate seeing the Abort, Retry, Ignore responses under DOS, you can make OS/2 take the easy way out for you. How often have you got you drives mixed up and told DOS to go to drive B instead of A and the drive sits there looking at nothing (that is of course if you've got the PROMPT returning current directory details for you), OS/2 will not prompt you with Abort, Retry, Ignore if Autofail is active, instead it will return saying D:\>b: SYS0015: The system cannot find the drive specified. Provides OS/2 the ability to change priority settings of a thread to a higher number after it hasn't received processor attention after a specified period. This is from the online help. I've got mine set to 1 because I run a BBS which I want to preform like a rocket at all times.
 * AUTOFAIL and PAUSEONERROR
 * MAXWAIT

If you're not planning on running anything else at the same time, 1 dos application, the defaults are okay. If you plan on running an OS/2 app and dos apps, I'd recommend setting the IDLE_SENSITIVITY to about 10, then your DOS and OS/2 will work at greatly improved preformance. Many apps require fine tuning which I can't cover in this document. I prefer to run system native apps - OS/2 applications wherever possible.
 * RUNNING DOS/WINDOWS APPS

Basically ALL OS/2 apps take advantage of the system, and are very friendly to the system, in that they will request only what processing power they require and in turn 'hand-over' any processing power when they aren't working. This is why you should really be converting to OS/2 applications, because they are system aware, rather than like DOS/WINDOWS apps which tend to be system resource hogs. One Major feature of OS/2 is the ablility for OS/2 to reload after a power failure all the OS/2 apps that were running and usually to a point just before the power failure, which is extremely helpful feature.
 * RUNNING OS/2 APPS

Under DOS/WINDOWS/DV there are certian applications which kill the entire system, generally known as Bad Apps, or another popular one the UAE (unrecoverable appliaction error made famous by windows). Under Windows, a UAE (or these days the program has just done this please shutdown and reboot) is fatal! Since you usually have to reach for the Big Red switch (or the big White one for PS/2s) and power OFF to recover. Not a nice method of system recovery.
 * THE BAD APP SYNDROME.

Under OS/2, the same types of progams can cause the system to abort. But in this case the abort is simply the window in which that application was started in, therefore you just double click on the mouse button to close that window, and the problem has been removed. OS/2 then continues on uncaring about that hiccup and in actual fact when this hiccup occured the other apps are still processing, not stopped and waiting. OS/2 can do this becasue it takes advantage of advanced programming methods to isolate each application from each other and literally providing a whole computer system per-window, thus the bad app is simply 'killed-off' and as far as the other apps are concerned nothing happened.

Sometimes the Crash does affect OS/2, but never fear Pressing CTRL-ESCAPE a few times and waiting about 1 minute will cause the main system thread to preform a fail-safe step, where a window will pop-up and says Press Return to restart the Shell and all processes running will remain running. There is a small chance of losing data, but I havn't yet, nor is this an everyday occurence. This once happened while a user was online downloading a file, and he never knew there was anything wrong, this is a true indication of the protection that OS/2 gives to it's processes!