140 likes | 445 Views
Overlays in MS-DOS. By Andrew C. Vogan For CS 450 12/03/2002. This work complies with the JMU Honor Code. Overview of Presentation. 3. Overlays - Concept and Programmer Perspective - Operating System Perspective - Summary. 1. Introduction to MS-DOS
E N D
Overlays in MS-DOS By Andrew C. Vogan For CS 450 12/03/2002 This work complies with the JMU Honor Code.
Overview of Presentation 3. Overlays - Concept and Programmer Perspective - Operating System Perspective - Summary 1. Introduction to MS-DOS - History of DOS - Limitations and Features 2. DOS Memory Limitations - 80x86 Addressing Modes - 8086 Segmentation - DOS Memory Organization and Loading Overlays in MS-DOS by Andrew C. Vogan
History of MS-DOS • Seattle Computer Products 86-DOS was loosely based on CP/M. • In 1981, Microsoft purchased 86-DOS, and renamed it as “MS-DOS.” From the start, MS-DOS was intended for IBM’s personal computers, designed for the Intel 8086/8088 CPUs. • MS-DOS shipped with the original IBM PC in 1981, and quickly grew to be the OS of choice for both IBM PC’s and “clones.” • “DOS” stands for “Disk Operating System.” MS-DOS came to provide not only the basic disk features provided by CP/M, but also some UNIX-like features (I/O redirection, piping, filters). Overlays in MS-DOS by Andrew C. Vogan
Major Features NOT Included in DOS multitasking, CPU scheduler multiprocessor support threads multiuser hard/soft real-time fault tolerance deadlock management paged memory graphical user interface file system security Major Features Included in DOS FAT file system: - file attributes - simple file locks Direct, complete hardware control:- memory/device access - interrupt vector overrides Overlays in MS-DOS by Andrew C. Vogan
80x86 Addressing Modes Address Addressable Physical CPU Mode Bits Memory Lines 8086 Real 32 20 1 MB 80286 Protected 32 24 16 MB 80386/80486 Protected 32 32 4 GB 80x86 “Real Mode” Segmentation 16 4 segment 0x0 16 segment 16 offset 16 offset 20 physical address Overlays in MS-DOS by Andrew C. Vogan
ROM Bootstrap Program ROM Bootstrap Program top of RAM top of RAM Transient part of COMMAND.COM Disk Bootstrap Program TPA DOS kernel, from MSDOS.SYS (temporary location) Resident part of COMMAND.COM SYSINIT, from IO.SYS Drivers, file control blocks and disk buffer cache BIOS, from IO.SYS DOS kernel 0x00400 (moved) Interrupt vectors BIOS 0x00000 0x00400 Interrupt vectors 0x00000 DOS Memory Organization and OS Loading Diagrams derived from Ray Duncan, Advanced MS-DOS Programming Overlays in MS-DOS by Andrew C. Vogan
A A B C D E B C D E • Overlays -- The Concept • Overlaying is the technique of loading different portions of a program into the same memory area. • Overlay programming techniques were first developed and refined on mainframes in the 1960’s. • This allowed MS-DOS developers to split a program up, that was otherwise would not fit in conventional memory. Overlays in MS-DOS by Andrew C. Vogan
Overlay Manager (interrupt handler) (code) … CALL Unit2Function … Unit1 • Overlays -- From OS Perspective • Overlay files were loaded in a similar manner to normal spawned executables. The main difference was less control by MS-DOS (no PSP or automatic execution point transfer). • One popular mechanism of switching between overlaid code units was raising a custom interrupt, intercepted by a custom overlay manager. Overlay Manager (interrupt handler) (code) … Unit2Function … Unit2 Overlays in MS-DOS by Andrew C. Vogan
Summary • Overlays provided an adequate solution to MS-DOS’s memory limitations for many applications. • Problems with overlaid programs included that they did not take advantage of extended memory, and that they were difficult to implement (often requiring intricate modular design). • Windows 3.x operating systems (bringing full 80386 protected mode support) were a welcome upgrade for many developers. • It is still instructive to analyze techniques like overlaying, particularly for the sake of PDA’s and other small-footprint devices. Overlays in MS-DOS by Andrew C. Vogan