VMS-by-Keith-Gittings-2002

Download Report

Transcript VMS-by-Keith-Gittings-2002

VMS Operating System
Keith Gittings
CS 450
Fall 2002
VMS Overview
•
•
•
•
•
•
•
History
VMS Layers
Processes
Memory Management
Deadlock Handling
Windows NT and VMS
Conclusion and Questions
VMS History
• 1978 “One Platform, one operating system, one
network”
– Digital Equipment Corporation released the VAX VMS
• VAX (Virtual Address Extension)
– 32-bit system
– Replaced aging 16-bit system PDP-11
– “Star”
• VMS (Virtual Memory System)
–
–
–
–
Supported Virtual Memory
Developed to work on VAX architecture
Compatibility mode with PDP-11
“Starlet”
• DECnet
– Provided peer-to-peer networking
– Allowed for distributed computing
VMS History
• VMS
– Designed as the single operating system for the VAX
– Replaced multiple operating systems for PDP-11
• RT-11. Used for real-time and laboratory work
• RSTS-11. Used for educational and small commercial timesharing
• RSX-11. Used for industrial and manufacturing control
• MUMPS-11. Used in the medical system market
• DOS-11. The original PDP-11 operating system; essentially
eclipsed by VMS.
VMS History
• OpenVMS and VMS
– Same operating system
– VMS originally called VAX-11 VMS
• Referred to PDP-11 compatibility
– VAX/VMS V2.0
– OpenVMS
• Renamed with Alpha systems (64-bit)
• OpenVMS V7.0 – Current Version
– Official name
• OpenVMS VAX
• OpenVMS Alpha
– Digital Equipment Corporation was bought by
Compaq
VMS Hardware Platforms
• VAX
– 32-bit processor
• Alpha
– 64-bit processor
• Intel Itanium
– 64-bit processor
– VMS is currently being ported for Itanium
• Intel Pentium
– VMS was never officially ported for Pentium
VMS Layers
• VMS utilizes a layered architecture
• VMS consists of several layers
–
–
–
–
Kernel
System Services
Record Management Services
Command Line Interpreter / Graphical User Interface
(GUI)
VMS Layers
• VMS Kernel
– Input/Output (I/O) subsystem
• Device-drivers
• Handles device interrupts
• Logs device time-outs
– Process Scheduler
• Round-Robin Scheduling
• Real-time Scheduling
– Memory Management
• Demand-Paged Virtual Memory
VMS Layers
• System Services
– Coordination of I/O
– Resource allocation
– Inter-process communication
• The Record Management Services
– General data management
• Creating, deleting, writing and reading files
– Ancillary Control Processes (ACPs) perform mass
storage transactions
• Used to prevent conflict among processes
VMS Layers
• Command Line
Interpreter
– Digital Command
Language (DCL)
– Others available
– DECwindows
(GUI)
Figure 2-2. The OpenVMS GUI Is
Based on the Original DECwindows
VMS Processes
• Process Control Block
– Each process assigned a PCB at creation
– Each process retains block until process end or
removal
– PCB specifies
•
•
•
•
•
Scheduling state
Privileges
User identification code (UIC)
Username
Process ID
• Data Protection
– Accomplished with 35 privilege states divided into 7
categories
VMS Processes
• VMS Quotas
– Controls allocation of system resources
– System services defines quota at process
creation time
– Quotas protects against
• Too many processes trying to access CPU
• A single process from being allocated too much
memory
VMS Processes
• Process Scheduling
– 32 (0 to 31) Priority levels
– 0 to 15 are time-sharing processes
• Base priority of 4
• Boosted a maximum of six priority levels
– I/O Bound processes generally boosted
– CPU Bound processes generally operate near base
• Round Robin
– Time quantum defines how long a process gets the CPU
VMS Processes
• Process Scheduling (continued)
– 16 to 31 are real-time processes
• Do not get boosted
• Only pre-empted when higher process arrives or
the process issues a wait state
• No Round-Robin Scheduling
• When real-time processes are present the system
works entirely as a real-time system
VMS Processes
• Cascading Termination
– Parent termination causes child termination
• Process Deletion
– Processes Delete themselves
• After they have completed
• Called to delete themselves by another process (higher
priority)
• VMS Threads
– User-level and Kernel-level threads
• Kernel-level threads
– Not supported until Version 7.0 1995
– Only supported on Alpha systems
VMS Memory Management
• Virtual Memory
– Allocating more memory than is physically
available
• VMS is Comprised of a Swapper and
Pager
– Pager (AKA Page Fault Handler)
• When a process demands a page not in memory a
page fault is generated
• Pager brings virtual pages into physical memory
VMS Memory Management
• The Swapper
– Responsible for processes into and out of memory
– Works with same criteria as pagers
• Higher processes gets priority
• Memory Allocation Unit
– Memory Page Size
• Fixed
– 512 bytes (VAX VMS)
• Variable
– 8 to 64 kilobytes (OpenVMS Alpha)
– For compatibility 512 byte area “pagelet” is available
VMS Deadlock Handling
•
VMS Lock Manager
1. Deadlock Suspicion
–
A process becomes “suspicious” if the process does not
resolve in a given time
2. Deadlock Detection
–
“Suspicious” processes are searched by lock manager and
determined to be deadlocked
3. Choose a Victim
–
–
Lock manager arbitrarily chooses a process to send a
deadlock error status.
Process is then responsible for resolving the deadlock
Symmetric Multi-Processing
• Multiple threads can run on multiple
processors
• Utilizes per-CPU data base
– Data structure that manages processor
specific information
– Assigns each processor number (0 to 31)
which corresponds to a particular bit
• If that bit is clear then the cpu is free and should
attempt to select a process to execute
Windows NT and VMS
• David Cutler
–
–
–
–
Chief architect of VMS
1981 – Began Prism and Mica projects
1988 – DEC cancels Projects
1988 – Cutler and 20 top engineers go to Microsoft
• Some alleged Cutler took more than just engineers, the
source code for Mica
– 1993 – Windows NT (“New Technology”) released
• WNT was a pun on VMS (shift each letter one position in
alphabetical order)
Windows NT and VMS
Similarities
VMS
NT
32 Priority Levels
32 Priority Levels
Process Scheduler
never lowers process
priority below
application’s
programmed level
Process Scheduler
never lowers process
priority below
application’s
programmed level
VMS Term
NT Term
Boosts priority levels
Boosts priority levels
Interrupt Priority Level
Interrupt Request Level
Supports SMP
Supports SMP
Asynchronous System
Trap
Asynchronous
Procedure Call
Uses demand-paged
virtual memory
management scheme
Uses demand-paged
virtual memory
management scheme
I/O Request Packet
I/O Request Packet
Bug Check
Bug Check
Implements
asynchronous packetbased I/O commands
Implements
asynchronous packetbased I/O commands
System Service
System Service
Paged Pool
Paged Pool
Nonpaged Pool
Nonpaged Pool
Performance Monitor
Performance Monitor
Look aside list
Look aside list
Windows NT and VMS
• Differences
– NT written Completely in C
– NT supported kernel-level threads first
• Digital’s Response
– Digital decides not to sue
– Reaches Agreement with Microsoft
• Microsoft must
– Train digital NT technicians
– Promote NT and Open-VMS as two pieces of a three-tiered
client/server networking solution
– Maintain NT support for Alpha processors
• Small Cash payout
– 65 to 100 million
Conclusion and Questions
• VMS operating system has existed for 25
years and looks to exist for many more
• Questions ?