150 likes | 382 Views
OS/2 Warp. Chris Ashworth Cameron Davis John Weatherley. OS/2: A General Look. Developed by IBM and Microsoft and was first released in 1987 as the successor to DOS Users claimed it was too “industrial” and hard to install IBM released OS/2 Warp in 1994 to compete with Windows
E N D
OS/2 Warp Chris Ashworth Cameron Davis John Weatherley
OS/2: A General Look • Developed by IBM and Microsoft and was first released in 1987 as the successor to DOS • Users claimed it was too “industrial” and hard to install • IBM released OS/2 Warp in 1994 to compete with Windows • Currently OS/2 is more focused towards large industry
OS/2: A General Look contd. Some differences between OS/2 and DOS
Privilege Rings of the 80286 Processor • Ring 0 = kernel and physical device drivers • Ring 1 = not used • Ring 2 = System files • Ring 3 = User applications • Requires use of “call gate” to move between rings
Symmetric Multi-Processing • Many OS/2 applications make use of multiple threads • The first SMP version was 2.11 and was released in 1993 • When running 5 programs on four processors there was 404% increase in throughput • A complete build of the kernel took 2 hours and 2 minutes on a single processor, but only took 46 minutes on a dual processor of the same speed
Memory Management • OS/2 supports the sharing of code and data segments between multiple processes • The system is bimodal, using real and protected modes, to use the full addressing range of the 80286 architecture, and to allow for compatibility with DOS 3.3 applications that are unable to access the full memory space above 640k • Mode switching is built into the memory management system, but the processor is required to reset. Protect-mode programs will run in the background concurrently with real-mode programs, however, real-mode programs freeze when a protect-mode program takes the foreground. • Data Structures: • Local Description Table: allocated when a program is started and dynamically maps memory allocated to a particular process. • Global Description Table: GDT is statically allocated when the kernel is built. It contains descriptors for global system segments, aliases to LDT and Per Task Data Area. • Interrupt Descriptor Table (IDT): used to vector interrupts to the routines.
Process Management Data Structures • A process owns resources such as threads, file handles, semaphores, queues, and a memory map described by its own LDT. This information is maintained using a Per Task Data Area (PTDA). Each PTDA contains at least one Thread Control Block (TCB). The TCB contains a register set and the kernel stack for that thread, and information for thread scheduling and I/O activity. • OS/2 also uses various data structures for process management. These are semaphores, signals, pipes, and queues. • Semaphores: Protect resources of multithreaded processes. A semaphore is a data structure owned by one thread at a time. • System semaphores are granted the first requestor and blocks the others until the first relinquishes control. • Random-Access Memory (RAM) semaphores can be utilized to serialize among the different threads of a single process. No deadlock prevention among threads requesting access. • Signals: Notify processes of an event. defined to indicate that a user has evoked a break function and the process is required to terminate itself. • Pipes: For interprocess communication. Permits two processes to communicate by using the file I/O calls of the system. The first process writes data into the pipe, and the second reads data from the pipe. • Queues: For interprocess communication. Queues use system calls that implement the mailbox model. Only the owner can read, but any thread can write.
File Management • Uses the same file-system, file-naming, and drive-letter conventions as DOS (FAT) • OS/2 has asynchronous file I/O operations in addition synchronous file I/O operations. Threads can be started solely to perform I/O • High Performance File-System (HPFS): directory organization of FAT but is automatically sorted in a binary search tree based on filenames • binary tree is made of fnodes, allocation sectors, and directory blocks that are all doubly linked contain a unique 32-bit signature. • CHKDSK can rebuild an entire volume by methodically scanning the disk for fnodes, allocation sectors, and directory blocks, using them to reconstruct the entire file-system • HPFS includes information about the modification, creation, and access date and times • Organizes drive into 8 MB bands. Between each of these bands are 2K allocation bitmaps, which keep track of which sectors within a band have and have not been allocated. Banding increases performance because the drive head does not have to return to the top (cylinder 0) of the disk, but instead it may return to the nearest band allocation bitmap. • Unit of file allocation is changed from clusters to physical sectors (512 bytes), which reduce lost disk space. • Super Block, Spare Block, and Hotfixing
Scheduling • Pre-emptive Round Robin scheduling scheme • 4 priorities, 32 levels • Time quantum is user set between 32-248ms • Priority boosts • Kernel threads cannot be pre-empted
Threads • Multi-threaded OS • Designed for multiple processors • Only one kernel thread at a time • A thread on one processor can control threads on other processors • I/O handled differently on single processor systems
Synchronization • Uses SMP to synchronize between processors • Each processor has its own page directory • Single processor systems uses interrupt disabling to sync threads
Summary • OS/2 Warp was IBM’s attempt to make a user friendly operating system • Geared towards large industries • Designed for symmetric multi-processing • Makes use of the HPFS file system • Uses preemptive Round Robin scheduling