Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating System/2 Warp

Similar presentations


Presentation on theme: "Operating System/2 Warp"— Presentation transcript:

1 Operating System/2 Warp
Shawn Ortiz John McAveney Andrew Bates Paul Graf Kevin Tougher

2 History of OS/2 Developed by IBM in collaboration with Microsoft
OS/2 originally developed to take the place of DOS Wanted to build an OS with multitasking 1987 OS/2 1.00 1st OS with built in multitasking based on hardware support for a PC One program displayed on screen at a time, others running in the background command line interface

3 History of OS/2 continued
1988 OS/ Standard Edition Graphical User Interface Supported FAT hard drives 1988 OS/ Extended Edition Database Manager and Communications Manager 1989 OS/ SE and EE High Performance File System

4 History of OS/2 continued
1990 IBM and Microsoft split IBM took control of all OS/2 versions 1.X and OS/2 2.00 Microsoft continued development of Windows and OS/2 3.00, which it renamed Windows NT 1991 OS/ SE and EE More device drivers More fonts Improved swapping algorithm to enhance performance

5 History of OS/2 continued
1st true 32 bit operating system for the PC Virtual DOS Machines Workplace Shell: Object Oriented User Interface 1993 OS/2 2.11 For users with Windows 3.1 already installed Used existing version of Windows 3.1 to run Windows programs

6 History of OS/2 continued
1994 OS/2 Warp 3 1st OS for the PC with Internet support built in Web Explorer, Ultimail, Graphical and Textual FTP 1995 OS/2 Warp Connect Combined features of Warp 3 with network connectivity and tools 1996 OS/2 Warp Server Combined Warp 3 with IBM’s LAN Server 4.0 product

7 History of OS/2 continued
1996 OS/2 Warp 4 VoiceType Navigation Requires no additional software Built in Java IBM calls it “Universal Client” because of unparalleled network connectivity. Able to connect to LAN Server, Warp Server, Windows NT Server, Novell NetWare, Windows 95, Warp Connect, FTP, SLIP, PPP, NetBIOS and many more

8 Some Commercial Users of OS/2
AT&T First Union Bank Wal-Mart Audi Toyota Mitsubishi Sony Starbucks Sprint Nations Bank USMC US Navy GEICO Ford FAA Delta Airlines

9 Task Scheduling Task management or scheduling is one of the primary functions of the OS/2 Warp operating system. The OS/2 kernel manages the execution of all tasks running on the system. The scheduler allocates CPU time to each process based on its priority and whether it is capable of running or not.

10 Characteristics of the OS/2 Warp Operating System:
Priority Based Multitasking System Dynamic Preemptive Uses Round-robin Scheduling

11 Priority Based Multitasking System
OS/2 Warp supports user-level prioritization. In the OS/2 Warp operating system, each task is assigned a priority. The priority of each task can be determined directly by the programmer, or, if no priority is assigned, the operating system assigns a default priority.

12 Priority Based Multitasking System (cont.)
Programs that have higher priorities, and are ready to run, are given access to the processor before programs with lower priorities. All other tasks must wait until the higher priority task becomes blocked before they may have CPU time.

13 Priority Levels OS/2 Warp supports 128 priority levels.
These are divided into four classes, each with 32 sublevels. The priority values within the sublevels range from 0 – 31, with higher numbers representing higher priorities. Threads are also grouped into priority classes.

14 Priority Classes The four priority classes that determine how the
processor schedules a thread’s execution are, ranked from highest to lowest priority: 1. Time-critical (priority 3) 2. Server (priority 4) 3. Regular (priority 2) 4. Idle-time (priority 1)

15 Time-critical (Priority 3)
Programs that need to have access to the CPU very quickly Time critical tasks take a very small portion of the CPU's time. Even after all time critical tasks receive all the CPU time they require, there is still plenty of time left for all the other tasks running on the computer. Examples: Communication and Networking tasks Real-time robotics applications

16 Server (Priority 4) Server class programs are used by Warp Server.
Example: Used to process requests for data by client workstations and to get the data requested ready to transfer across the network. Processing these types of tasks at the Server class ensures that administrative tasks such as creating new user IDs do not interfere with them.

17 Regular (Priority 2) This is the default priority class assigned to tasks when the programmer hasn’t directly specified a priority. The Regular class is the priority class in which most application programs run.

18 Idle-time (Priority 1) When a task is assigned an Idle-time priority, it only receives CPU time after all other higher priority tasks have become blocked. Most of the time the processor is doing very little, if anything, so there is lots of time for idle class programs to run.

19 Scheduling Thread Execution
To schedule a thread’s execution: 1. The system first checks the thread’s priority class. 2. The system then checks the priority value that was assigned to that thread. 3. The thread with the higher priority will then be executed.

20 Round-robin Scheduling
Because many tasks will run at the same priority level, round-robin scheduling is used. Round-robin scheduling provides regular time slices of CPU time to tasks running at the same priority level. This limits each task to a short burst of processor time. When a task has taken the maximum time slice, or when a higher priority program is ready to run, the OS/2 Warp task dispatcher preempts the task and rotates to the next ready process.

21 OS/2 Warp is Dynamic Each thread receives a priority when it is created (it inherits the priority of the thread that started it). The operating system can change the priority level of the thread based on the dynamic conditions to the user’s environment.

22 OS/2 Warp is Dynamic (cont.)
Example: it is possible for some lower priority tasks to suffer starvation for CPU time. When a task becomes starved for CPU time, the OS/2 task scheduler can boost the priority of the starved task by one priority level to make sure each task receives at least some CPU time. After the task receives its time slice, it is reduced to its base priority.

23 Partitioning Way of dividing a single physical disk into two or more “disks” lose some parallelism OS/2 Warp uses either FAT or HPFS partitioning schemes uses FDISK to manage and create partitions Up to four primary partitions, and no logical partitions; Up to three primary partitions, and any number of logical partitions.

24 FAT Partitioning block size is 512 Bytes
file sizes rounded up to the next integral block size only allows for small hard drives, have to use clusters to extend size of manageable drive file sizes rounded up to nearest integral cluster size makes for large files

25 FAT Partitioning (cont’d)
directories are arranged in linear fashion if the array gets too large, it can be a pain to search through for space allocation, it finds the first available block increases disk fragmentation

26 The HPFS block size still 512 Bytes
cluster size is always equal to the physical drive’s size, irregardless of how large it is less wasted space don’t have to worry about making partitions too large directories are arranged in tree structure makes searching faster and easier

27 The HPFS (cont’d) space allocation
makes sure block is physically close to it’s directory decreases fragmentation never reaches level that is noticeable

28 HPFS Advantages longer file names (254 characters in length)
higher performance FAT decreases in performance as drive size goes up HPFS allocates sectors only much less wasted space much better granularity less fragmentation incompatible with windows 95/98/NT/2000 no worrying about windows messing with your files

29 HPFS Disadvantages more complex
requires 300 kB of memory for code, plus more for the cache need third party drivers to access under DOS and Linux Overhead is more than made up for by increase in performace Especially true for large drives

30 Extended Attributes (EA)
any extra information about a file E.g. icon file allows for longer file names (>11 characters) HPFS contains native support for EA, FAT does not For FAT drives, OS/2 stores EA in one file in the root directory WP ROOT.SF Conatins all EA for all files on the drive that need it Can get rather large

31 Memory Management Dividing up user memory to accommodate for multiple processes - multiprogramming Effective memory management essential for efficient processor utilization (ex. processor blocking on I/O)

32 Use of Virtual Memory Most modern multiprogramming environments (including OS/2 Warp) utilize Virtual Memory Virtual Memory - memory allocated on a separate disk Two techniques using VM - segmentation and paging

33 Paging Static partitions of main memory into small chunks (page frames) Process chunks (pages) are stored onto page frames OS/2 default page size - 4KB Use of page table maps page to specific page frame - allows for multiple page frames for one process

34 Paging with Swapping OS/2 carries out paging using swapping
Swapping - allows the use of some other disk file as an extension of main memory Why? - OS/2 (as do most multiprogramming environments) needs more memory than is physically in main memory Result - OS/2’s page table now must know whereabouts of each page (physically in memory or not) Page faults occur when a page not in main memory is requested - process blocks temporarily

35 Paging with Swapping (contd..)
OS/2’s use of process swapping increases flexibility Too much swapping - thrashing Thrashing - processor spends majority of time swapping memory Thrashing causes your machine to slow to a crawl Memory MISManagement of OS/2 Warp?

36 Segmentation Dynamically divides main memory into segments
Provides processes with protection - one process cannot access the segments of another OS/2 1.x and beyond (Intel was the first Intel chip to implement a segment model) OS/2 segmentation provides a segment hierarchy ex. - which processes can perform “dangerous” operations, etc. Use of segment table - segment number, within segment offset

37 Segmentation(contd.) Segmentation was underutilized by OS/2 users:
Intel 8086 chip (predecessor to 80286) emulated segmentation poorly- users couldn’t distinguish difference and became disillusioned Many applications used 8086 legacy software - did not utilize segmentation capabilities of 80286 80286 (OS2 1.x) limited segment size (16KB) (OS/2 2.x) broadened (4GB) segment size, but most users were using techniques other than segmentation

38 Flat Memory Model Memory model currently used by OS/2
Flat Memory - memory is regarded as a single large linear address space of 4GB Cannot disable segmentation on OS/2, only bypass it - combine entire program (data and code) into one large segment Programmer must only worry about within segment offsets, no segment numbers

39 Flat Memory Model (contd.)
Global address space - entire 4GB linear address space Each process has distinct process address space - threads belonging to same process also share process address space Process address spaces not quite 4GB - some memory used by operating system

40 Flat Memory Model (contd.)
Mapping process address space into global address space in OS/2: OS/2 limits process address space to 512MB Space above 512MB is the system region - used for operating system resident processes 4GB System Region 512MB Process Address Space

41 Threading Supports preemptive multithreading
Uses 3 methods to determine priority: Privilege Settings States Priority Classes

42 Privilege Settings On 386 processors and above, there are 4 levels, or “rings”, of privilege: ring 0, 1, 2, and 3 Determines level of access, and scheduling method OS/2 primarily uses ring 0 and ring 3 Ring 0 is highest level, for kernel and device drivers Ring 3 is lowest level, for all user applications (Word, , etc) Ring 0 is cooperative, while ring 3 is preemptive

43 States 3 different states: running, ready, and blocked
Running is whatever thread is executing at the time Ready is a thread ready to be run, but is not actually running Blocked is a sleeping thread, waiting for I/O or another thread Threads in a blocked state are not considered for execution when a thread switch occurs

44 Priority Classes 4 classes: idle (I), regular (R), foreground server or fixed high (S), and time-critical (TC) Idle threads lie in the background until nothing else is running. Example: passive virus scanner Regular threads are ordinary threads. Baseline class for comparison to other classes Foreground server or fixed high threads are like ordinary threads, except they don’t lose priority when placed in the background Time-critical threads are the most important threads, and are executed before any other class of threads Additional value, called delta, added to each class. Value ranges from 0 to 31, and can be dynamically changed


Download ppt "Operating System/2 Warp"

Similar presentations


Ads by Google