Operating System/2 Warp

Slides:



Advertisements
Similar presentations
Part IV: Memory Management
Advertisements

OS/2 Warp Chris Ashworth Cameron Davis John Weatherley.
Segmentation and Paging Considerations
IBM OS/2 CS450 Section 2 5:00PM Perpetrators: © Dario Berini, Derek Cole, Drew Hayes, Leigh Johann, Matt Kesler.
Memory Management Design & Implementation Segmentation Chapter 4.
11/13/01CS-550 Presentation - Overview of Microsoft disk operating system. 1 An Overview of Microsoft Disk Operating System.
Chapter 8.3: Memory Management
Memory Management (II)
Memory Design Example. Selecting Memory Chip Selecting SRAM Memory Chip.
Operating System Support Focus on Architecture
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Understanding Operating Systems1 Operating Systems Virtual Memory Thrashing Single-User Contiguous Scheme Fixed Partitions Dynamic Partitions.
Memory Management 2010.
Operating Systems BTEC IT Practitioners.
Memory Organization.
1 Chapter 8 Virtual Memory Virtual memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of main memory.
Memory Management Chapter 5.
Computer Organization and Architecture
OPERATING SYSTEMS Introduction
1 DOS with Windows 3.1 and 3.11 Operating Environments n Designed to allow applications to have a graphical interface DOS runs in the background as the.
CS364 CH08 Operating System Support TECH Computer Science Operating System Overview Scheduling Memory Management Pentium II and PowerPC Memory Management.
Computer Organization and Architecture Operating System Support Chapter 8.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Chapter 3  Manage the computer’s resources ◦ CPU ◦ Memory ◦ Disk drives ◦ Printers  Establish a user interface  Execute and provide services for applications.
Week 6 Operating Systems.
Chapter 3 Operating Systems Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Ceng Operating Systems
Chapter 5: CPU Scheduling (Continuation). 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 2, 2005 Determining Length.
BU01. Main tasks of Operating System  To hide HW specifics (abstract layer for programs)  Processes maintenance  Memory maintenance  Files maintenance.
©Brooks/Cole, 2003 Chapter 7 Operating Systems. ©Brooks/Cole, 2003 Define the purpose and functions of an operating system. Understand the components.
How Hardware and Software Work Together
Chapter 5 Operating System Support. Outline Operating system - Objective and function - types of OS Scheduling - Long term scheduling - Medium term scheduling.
2001 Networking Operating Systems (CO32010) 1. Operating Systems 2. Processes and scheduling 3.
Processes and OS basics. RHS – SOC 2 OS Basics An Operating System (OS) is essentially an abstraction of a computer As a user or programmer, I do not.
Cosc 2150: Computer Organization Chapter 6, Part 2 Virtual Memory.
CIS250 OPERATING SYSTEMS Memory Management Since we share memory, we need to manage it Memory manager only sees the address A program counter value indicates.
IBM OS/2 Warp Mike Storck Matt Kerster Mike Roe Patrick Caldwell.
Microsoft Windows 2000 Daniel Hummell Ryan McKenica Valerie Grinblat.
Subject: Operating System.
Chapter 7 Operating Systems. Define the purpose and functions of an operating system. Understand the components of an operating system. Understand the.
2003 Dominic Swayne1 Microsoft Disk Operating System and PC DOS CS-550-1: Operating Systems Fall 2003 Dominic Swayne.
Computer Systems Week 14: Memory Management Amanda Oddie.
Operating System Structure A key concept of operating systems is multiprogramming. –Goal of multiprogramming is to efficiently utilize all of the computing.
Lecture 5: Threads process as a unit of scheduling and a unit of resource allocation processes vs. threads what to program with threads why use threads.
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
UNIX & Windows NT Name: Jing Bai ID: Date:8/28/00.
Memory Management OS Fazal Rehman Shamil. swapping Swapping concept comes in terms of process scheduling. Swapping is basically implemented by Medium.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 3.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
Chapter 8 Windows NT. The Major Network Operating Systems Windows NT Server Windows 2000 Server Novell Netware UNIX Many LANs include a mix of all of.
Hands-On Microsoft Windows Server 2008 Chapter 7 Configuring and Managing Data Storage.
Copyright © Curt Hill More on Operating Systems Continuation of Introduction.
CITA 171 Section 1 DOS/Windows Introduction. DOS Disk operating system (DOS) –Term most often associated with MS-DOS –Single-tasking operating system.
Operating Systems (Credit to: Rick Graziani of Cabrillo College)
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
OS/2 CS Operating Systems Section 3 Fall 2003 By Keith Ancowitz Brian Henderson James Mauss Danielle Miller Kyle Nevins.
IBM’s OS/2 by Chris Axford Chris Evans Elizabeth McGinnis Erik Swensson.
1 OPERATING SYSTEMS. 2 CONTENTS 1.What is an Operating System? 2.OS Functions 3.OS Services 4.Structure of OS 5.Evolution of OS.
Memory Management.
Chapter 8: Main Memory.
CS703 - Advanced Operating Systems
Main Memory Background Swapping Contiguous Allocation Paging
Operating Systems.
OS/2 Warp Chris Algire Jonathan Depner Daniel Kvitko Jason Shifflett
Operating System Chapter 7. Memory Management
Multithreaded Programming
COMP755 Advanced Operating Systems
Presentation transcript:

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

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

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

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/2 1.30 SE and EE More device drivers More fonts Improved swapping algorithm to enhance performance

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

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

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

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

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.

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

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.

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.

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.

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)

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

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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

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

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

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

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

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)

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

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

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

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?

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 80286 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

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 80286 applications used 8086 legacy software - did not utilize segmentation capabilities of 80286 80286 (OS2 1.x) limited segment size (16KB). 80386 (OS/2 2.x) broadened (4GB) segment size, but most users were using techniques other than segmentation

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

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

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

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

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, email, etc) Ring 0 is cooperative, while ring 3 is preemptive

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

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