OS2-by-Chris-Ashworth-Cameron-Davis-John-Weatherley

Download Report

Transcript OS2-by-Chris-Ashworth-Cameron-Davis-John-Weatherley

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
2
OS/2: A General Look contd.
Some differences between OS/2 and DOS
3
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
4
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
5
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.
6
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.
7
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
8
Scheduling
• Pre-emptive Round Robin scheduling
scheme
• 4 priorities, 32 levels
• Time quantum is user set between 32248ms
• Priority boosts
• Kernel threads cannot be pre-empted
9
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
10
Synchronization
• Uses SMP to synchronize between
processors
• Each processor has its own page directory
• Single processor systems uses interrupt
disabling to sync threads
11
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
12