MS-DOS / PC-DOS Lindsey Buranych Alan Crouch Matthew Letnaunchyn Sandy Saab Carl Shapiro Today we’ll discuss: • History and Overview of MS-DOS/PCDOS • Process States and Process Data Structures • File Management ~ FAT File System • Conclude with questions MS-DOS Overview • MS-DOS is a text-based PC operating system created by Seattle Computer Products in 1980 as QDOS, later renamed 86-DOS, because it’s designed to run on the Intel 8086 processor. (http://en.wikipedia.org/wiki/MS-DOS) • MS-DOS was originally released in 1981 and had eight major versions in its’ development. PC-DOS Overview • IBM PC-DOS was one of the three major operating systems that dominated the personal computer market from 1985 to 1995. • The original arrangement between IBM and Microsoft was that Microsoft would provide the base product, and that both firms would work on developing different parts to create a more powerful and robust, shared system. • It was nearly identical to MS-DOS. Environment Requirements • Processor: Intel 80486, 80386, 80286, 8086, 8088 • Maximum Number of Processors: 1 • Number of Bits: 16 • RAM: 512 KB • Drive Space: 5 MB • Drives: Run from hard disk or diskette • Video: Monochrome, CGA, EGA, VGA or better • File Systems: FAT, SMB Technical Success • Highly successful operating system on the PC platform. • “It is still used in various embedded x86 systems due to its simplistic architecture, minimal memory requirements, and minimal processor speed requirements.” (Wikipedia). • Led to the development of OS/2 Did this Operating System advance the state-of-the-art? • “MS-DOS soared in popularity with the surge in the PC market. This product continued to be the largest single contributor to Microsoft's income well after it had become more famous for Windows.” (Wikipedia) • File Management System (FAT) advanced File Management Techniques What was done right with it, and what was done wrong? • MS-DOS was not designed to be a multi-user or multitasking operating system. – Add-on environments attempted to provide multitasking and achieved some success, when combined with the virtual 8086 mode and virtual memory features of the Intel 80386 . • Another limitation of DOS was the lack of a graphical user interface. The desire for an interactive, graphical interface (influenced by the Apple Macintosh). – Several programs running under MS-DOS introduced their own graphical interfaces, however, this did not provide much consistency. “Non-Microsoft efforts to provide a consistent interface also failed.” (http://en.wikipedia.org/wiki/MS-DOS) • The file management system (FAT) was also a very successful tool that would be modified and updated for years to come. Allowable Process States DOS Allows Three Basic Process States: – Running – Ready – Blocked Process State: Running – DOS is a one process, one thread operating system. – In the running state, there is one process using the CPU at a certain time. – There is only one running process at any time. Process State: Ready – In the ready state, the process is temporarily stopped by the operating system. This allows another process to run. (Dagunduro) – A ready process is waiting for its turn on the processor. (Coulson) Process State: Blocked – In the blocked state, the process cannot run until some external events have taken place. (Dagunduro) – A blocked process requests a resource that is not available at the moment, so it remains blocked until the resource it needs becomes available. (Nutt, 220). Allowable Process States http://pandonia.canberra.edu.au/OS/l8_2.html Process Data Structures • The PSP (Program Segment Prefix) – Contains control blocks that handle various OS related tasks • • • • • • Termination Handler Segment Address referencing the top of the program Function Dispatcher Previous contents of the interrupt vector Segment address of the environment block Command Line Parameters – 256 bytes long – Bottom of transient program’s memory block The COM process • • • • Absolute memory image of a program No bigger than 64K No internal identifying information Code and data mixed together The EXE process • Can be as large as available primary memory • Code, data, and program stack can reside in separate places. • Extensive header information File Management For all File Management DOS Uses the FAT File System (File Allocation Table) The FAT file system is composed of four different sections including: - Boot Sector - FAT Region - Root Directory Region - Data Region. FAT: Boot Sector • The Boot Sector is located in the first partition of the disk • Has three major parts: – some basic file system information – pointers to the location of the other sections – the operating system’s boot loader code FAT: FAT Region • The FAT Region contains two copies of the File Allocation Table for the sake of redundancy. • These are used as a map of the partition to indicate how the clusters are allocated. FAT: Root Directory Region • Always located directly after the FAT Region • Stores information about the files and directories in the root directory FAT: Data Region • Where the actual file and directory data is stored • Takes up the majority of the partition • A partition is divided into identically-sized clusters whose size vary depending on the FAT version and partition size – typically cluster sizes lie between 2KB and 32KB and are not necessarily stored adjacently on the disk's surface, but are instead fragmented throughout the Data Region. FAT: Data Region cont. • The size of files and subdirectories in the Data Region can be increased arbitrarily, as long as there are free clusters – This is done by simply adding more links to the file's chain in the FAT. – Note however, that each cluster can be taken only by one file, and so if a 1KB file resides in a 32KB cluster, 31KB are wasted. File Allocation Table • The File Allocation Table (FAT) is a list of entries that map to each cluster on the partition. • Each of these entries records one item – address of the next cluster in a chain – a special character called end of file that indicates the end of a chain – one of three special characters marking: • a bad cluster, a reserved cluster, or an unused cluster File Allocation Table FAT12 Description 0x000 Free Cluster 0x001 Reserved Cluster 0x002 - 0xFEF 0xFF0 - 0xFF6 Used cluster; value points to next cluster Reserved values 0xFF7 Bad cluster 0xFF8 - 0xFFF Last cluster in file FAT: Directory Table • A directory table is a special type of file that represents a directory. • Each file or directory stored within it represents a 32 byte entry in the table that records the name, extension, attributes, creation time, address of first cluster and the size of the directory. FAT: Directory Table Sample Parts of the Directory Table: Byte Offset Length Description 11 1 File Attributes The first byte can have the following special values: Bit Mask Description 0 0x01 Read only 1 0x02 Hidden 2 0x04 System 18 2 Last Access Time 20 2 EA-Index (used by OS/2 and NT) in FAT12 and FAT16, High 2 bytes of first cluster number in FAT32 26 2 First cluster in FAT12 and FAT16. Low 2 bytes of first cluster in FAT32. 28 4 File size Questions?