Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Total recall
Saxer G., Sander E., Osborne/McGraw-Hill, Berkeley, CA, 1993. Type: Book (9780078818356)
Date Reviewed: Aug 1 1994

The authors’ goal is to help DOS users make the best use of the memory on their computers. The book’s cover indicates that it is “for every user,” but a novice who is unfamiliar with hexadecimal numbers and general computer architecture will have some difficulty. While the authors have taken great pains to keep jargon out of the text, the reader is likely to be overwhelmed by detail. Indeed, the purpose of a DOS memory manager is to hide the details. Memory can be mapped in so many different ways that even an experienced programmer may not be able to configure the computer optimally. Intermediate and advanced readers, especially those who have taken a course in operating systems, should have no problems with the book.

The book is relatively brief. It consists of nine chapters and one appendix. Chapter 1 introduces some terminology, and chapter 2 covers memory addressing concepts. Chapter3 gives a lucid description of the similarities and differences between extended and expanded memory. It cleared up much of my confusion about which was which. Chapter4 tours the memory areas of the PC and explains interrupt handling. This chapter is the second most important part of the book. Chapter 5 is quite ambitious. It tries to explain how DOS uses the memory for useful work and how DOS switches between the real and protected addressing modes. The chapter begins clearly, but it becomes much more difficult toward the end and will lose many readers. Chapter 6 enumerates the different types of memory chips available on the market. The portion on troubleshooting memory problems is excellent. Such material ought to be included in every PC manual.

Chapter 7 is the core of the book, putting all the ideas into practice. It describes how to obtain more “high” RAM (RAM that is available in the addresses between 640K and 1024K). As more TSRs, device drivers, and DOS buffers are moved from the area below 640K to the area above 640K, more memory is made available for applications that can only use RAM below 640K. The code examples in the text for putting HIMEM.SYS and EMM386.SYS (the “facilitator” and “manager” respectively) into CONFIG.SYS work nicely.

The authors then describe how to take memory addresses away from the monochrome monitor region to give them to high RAM. Unfortunately, the syntax of the command appears to be wrong. On page 110, their command is: device=\dos\emm386.exe RAM INCLUDE=B000-B7FF 4096. My system complained about this. The corrected command is: device=dos\emm386.exe RAM I=B000-B7FF 4096. After this point in the chapter, things become really interesting. The authors describe more techniques for accessing even more addresses in the high memory area of RAM. Unfortunately, the only way to use these techniques is to buy Quarterdeck’s DOS memory manager, QEMM. For instance, an extreme technique is to map extended RAM on top of BIOS ROM. The QEMM386.SYS memory manager intercepts BIOS calls and makes the ROM visible just in time, putting the RAM back on top when the BIOS call is finished. The authors do not say how much this approach degrades performance, but someone may just be desperate enough for lower memory space to use it. While I enjoyed reading about the clever contortions that are possible while using the QEMM386.SYS manager, the last part of the chapter seems to be too much of an advertisement for Quarterdeck.

Chapter 8 explains how expanded memory is accessed by DOS, but it does not cover system calls or many other details needed by a programmer. Chapter 9 briefly explains the demands made on memory by multitasking, and introduces concepts such as swapping. Concepts such as virtual memory are also introduced. The book is only concerned with managing the first 1024K of memory, however, so the authors do not provide too much detail. The appendix is not large, but it gives concise solutions to some typical memory problems. In some cases, the meaning of an error message is enlarged and fleshed out, including the infamous “Exception 13” encountered by 80386 users.

The book provides a good description of why DOS suffers from memory management problems and how they may be solved (through IRQ juggling and DOS memory managers). Many chapters include an “evolution” section, which explains how a certain aspect of memory became so complicated. The book describes advanced memory management techniques without using too much jargon. It points out that some memory problems cannot be solved by buying another 4 MB of RAM but instead require clever management of what you already have. The concepts are still difficult, and the novice must be motivated to keep reading and not lose patience. For most people with memory problems, I suggest using MEMMAKER or buying the Quarterdeck product. They do not need this book unless they want to understand what DOS memory managers do.

Reviewer:  Michael Zastre Review #: CR117830
Bookmark and Share
 
Storage Management (D.4.2 )
 
 
Design Styles (B.3.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Storage Management": Date
Storage management in IBM APL systems
Trimble R. IBM Systems Journal 30(4): 456-468, 1991. Type: Article
Dec 1 1993
Efficient storage management for temporary values in concurrent programming languages
Quammen D., Kearns J., Soffa M. IEEE Transactions on Computers 34(9): 832-840, 1985. Type: Article
Aug 1 1986
A reliable stable storage system for UNIX
Anyanwu J. Software--Practice & Experience 15(10): 973-990, 1985. Type: Article
May 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy