Designed for Performance [ General Information Manual ] MPE/iX 5.0 Documentation
General Information Manual
Designed for Performance
The HP 3000 is optimized for interactive, I/O-intensive, online
transaction processing. It balances interactive and batch processing in
a way that guarantees efficient, user-controllable scheduling of
processes. A process is a single execution of a program, whether
interactive or batch. Virtual memory management, mapped files, and
multiprocessing greatly improve performance and data availability.
Virtual memory management
Virtual memory management automatically maps all program and data files
into virtual memory, which is many times greater than real memory. By
swapping portions of code and data from disk into and out of main memory,
virtual memory management allows programmers to create programs and to
access data files that are too large to be kept in main memory. This
capability makes programming easier, since programmers need not be
concerned with segmenting and swapping code and data.
Demand-paged virtual memory
The HP 3000 provides one of the largest address spaces in the industry;
this provides the following benefits:
* Applications that are much larger than available main or secondary
memory and very large applications can execute concurrently
without virtual memory constraints.
* Programmer productivity improves because programmers do not have
to segment their programs or use extra data segments.
* System performance is enhanced because the CPU does not have the
overhead caused by program or data segmentation.
* The virtual addressing capabilities can meet addressing
requirements into the next century.
The term virtual memory refers to the fact that the available memory
space appears to be many times larger than the actual amount of main or
even disk memory. The HP 3000 provides this capability to an
extraordinary degree by taking advantage of PA-RISC's extremely large
addressing potential.
The HP 3000 900 Series provides virtual addressing that consists of up to
4 billion 2-gigabyte spaces. Most 32-bit architectures in the industry
support up to 32-bit virtual addressing, which is equivalent to only one
900 Series space. Far more addressability is provided on PA-RISC
systems, with the number of spaces dependent on the processor model. The
Series 948, 958, and 980 processors support 64-bit addresses or 4 billion
times the addressability of typical 32-bit computers. All the other
PA-RISC systems support 48-bit addressing, or over 65,000 2-gigabyte
spaces.
All open files on the system are encompassed in virtual address space,
which is managed transparently from the programmer's point of view.
Figure 3-1. The HP 3000's Extremely Large Virtual Address Space
Every virtual space is subdivided into fixed-size blocks called pages.
The operating system ensures that a page can hold either code or
data, but not a combination of both. Since active code pages are
nonmodifiable, multiple users are able to share a single copy of a
program's code.
Code and data pages are automatically fetched on demand from disk to main
memory as required by the process. While pages needed for one process
are being obtained from disk, execution of other processes continues.
The HP 3000 typically fetches pages from disk in groups so that not only
the specific page required is obtained, but also those around it. This
reduces the number of disk accesses because the processor is most likely
to require pages that are located close to one another. Frequently used
pages remain in memory for fast access, while rarely used pages remain on
disk until needed.
The HP 3000 allows a program's predeclared data structures to be up to 1
gigabyte. Access to multiple 2-gigabyte data areas is provided through
mapped files. Very large files can be supported on the HP 3000 without
performance overhead.
HP 3000 mapped files
CPU and memory speeds are improving more rapidly than disk access speeds,
and memory costs are constantly moving down. Consequently, increasing
memory size and using main memory as a buffer for disk is an important
way to increase performance for I/O-intensive applications.
The HP 3000 operating system employs a very sophisticated technique for
performing file access. This technique, referred to as mapped files, is
an improved disk caching capability.
The mapped files technique significantly improves I/O performance by
reducing the number of physical I/Os without imposing additional CPU
overhead or sacrificing data integrity and protection. This technique
also eliminates file system buffering and optimizes global memory
management of the system.
Mapped files are based on the operating system's demand-paged virtual
memory and are made possible by the extremely large amount of virtual
space on the system. When a file is opened, it is logically "mapped"
into the virtual space. In other words, all files on the system and
their contents are referenced by virtual addresses. Every byte of each
opened file has a unique virtual address.
File access performance is improved significantly when the code and data
required for processing can be found in memory. File access performance
is enhanced because memory access is 10 to 100 times faster than
performing physical disk I/O operations. Tradition disk caching reduces
costly disk reads by using main memory for code and data. Mapped files
and virtual memory management further improve performance by caching
writes. Once a virtual page is read into memory, it can be read by
multiple users without additional I/O overhead. If it is a data page, it
can be read and written to in memory without physically writing it to
disk. When the data is already in memory, locking delays are greatly
reduced, which increases throughput. Finally, when the memory manager
does write a page back to disk, it combines multiple pages into a single
write, again reducing multiple physical I/Os.
Figure 3-2. The HP 3000's Mapped Files
Traditional disk caching schemes impose a CPU overhead penalty. The HP
3000 operating system takes advantage of the PA-RISC hardware's automatic
address translation so that the benefits of increased I/O performance are
attained without incurring this penalty.
The virtual-to-physical address translations to locate portions of the
mapped-in files are performed by the system hardware, so that operating
system overhead is virtually eliminated.
In addition, the mapped file technique eliminates file system buffering.
In traditional operating systems, data is copied from disk into a file
system buffer in memory; from there the data is moved into the user's
area in memory. Since the 900 Series' memory manager fetches data
directly into the user's area, the need for file system buffering is
eliminated. The benefits of this are two-fold: System performance is
increased by the elimination of unnecessary data movement within memory,
and the use of memory space is optimized.
Multiprocessing
The HP 3000 900 Series supports fully symmetric multiprocessing (MP).
Multiprocessing is where the operating system transparently distributes
the system workload over multiple CPUs to process in parallel, thus
increasing overall system throughput.
Multiprocessing provides additional capacity for online, mixed
online/batch, and multibatch application environments. It is completely
transparent to end users, applications, and system administrators.
The HP 3000 operating system has been designed for optimal performance in
MP configurations. Since MPE/XL is fully symmetric, virtually any
process can be run on any CPU in an MP system. In contrast to other
multiprocessor operating systems, which have less flexibility and thus
lower performance, some processes can often run only on one designated
CPU.
The HP 3000 multiprocessing approach is based on a fine-grained design,
optimized for OLTP types of applications. Fine-grained refers to the
locking scheme necessary to ensure data integrity of shared data
structures. Because the CPUs compete for the same data, it is necessary
to provide locks on sections of data such that only one CPU at a time is
allowed access to a section of data. A fine-grained locking scheme
provides many locks on very small sections of data for very short
durations of time, thus minimizing the instances where a processor is not
performing useful work because it is waiting for access to a data
structure.
The HP 3000 multiprocessor systems take advantage of the parallel I/O
paths provided in hardware and software, ensuring delivery of maximum
performance using system-level parallelism. Other multiprocessor
architectures may provide parallelism at the CPU level, but may then
bottleneck on a single path through the software I/O system.
Multiprocessing technology also delivers benefits in higher system
availability and load balancing. In an MP configuration, if one CPU
fails, the operating system notes the failure upon reboot, deconfigures
the failed processor, and continues normal boot and operation. Load
balancing among the multiple CPUs is transparently managed by the
operating system, ensuring the maximum efficiency of available processing
capacity.
MPE/iX 5.0 Documentation