Modernization Hub

AWE - Address Windowing Extension

Enhanced Definition

Address Windowing Extension (AWE) is a z/OS facility that enables 31-bit applications to access and manipulate data residing in 64-bit virtual storage, commonly referred to as "above the bar" storage. It achieves this by dynamically mapping "windows" of 64-bit storage into a program's 31-bit address space, allowing existing 31-bit code to process very large data structures without being rewritten as native 64-bit applications.

Key Characteristics

    • 64-bit Data Access for 31-bit Programs: AWE allows programs compiled with AMODE(31) to access and process data located in the 64-bit virtual address range (above the 2GB mark).
    • Windowing Mechanism: It operates by creating a "window" – a contiguous block of virtual storage within the 31-bit address space – that maps to a specific portion of a larger 64-bit AWE segment.
    • High Performance: Designed for high-speed access to large data sets, minimizing the overhead associated with data movement between different storage areas.
    • API-Driven: Access and management of AWE segments and windows are performed through a set of z/OS system services (macros) such as AWEALLOC (allocate segment), AWEGET (map window), AWEPUT (unmap window), AWEFREE (free segment), and AWEQUERY.
    • Address Space Specific: AWE segments are typically owned by an address space, and windows are mapped within that address space's private area.
    • Data Integrity: Provides mechanisms to ensure data integrity during window mapping and unmapping, especially in multi-tasking or multi-address space environments.

Use Cases

    • Large Buffer Management: Managing extremely large data buffers for high-volume transaction processing systems like CICS or IMS, where data might exceed the 2GB limit of a 31-bit address space.
    • Database Caching: Implementing large-scale caching mechanisms for database systems (e.g., DB2 buffer pools) to hold vast amounts of frequently accessed data in memory above the bar.
    • In-Memory Data Grids: Creating and manipulating large in-memory data structures or tables that require more storage than traditional 31-bit addressing can provide.
    • High-Performance I/O Buffering: Buffering data for high-speed I/O operations involving very large files or datasets, reducing the need for repeated disk access.

Related Concepts

AWE is closely related to the concept of Above the Bar storage, as its primary purpose is to provide controlled access to this 64-bit virtual storage from 31-bit programs. While Data Spaces and Hiperspaces also allow programs to manage data outside their primary address space, AWE specifically targets 64-bit storage, offering a more direct memory access paradigm for very large data sets. It complements the evolution of z/OS from 31-bit to 64-bit computing, allowing legacy AMODE(31) applications to leverage modern hardware capabilities without full re-architecture to AMODE(64).

Best Practices:
  • Minimize Windowing Overhead: Design applications to access data in contiguous blocks within a window to reduce the frequency of AWEGET and AWEPUT operations, which can incur overhead.
  • Robust Error Handling: Implement comprehensive error checking and recovery for all AWE service calls to properly handle allocation failures, mapping errors, and ensure resource cleanup.
  • Resource Management: Always free AWE segments (AWEFREE) when they are no longer needed to prevent virtual storage leaks and ensure efficient system resource utilization.
  • Performance Monitoring: Utilize z/OS monitoring tools to track AWE usage, segment sizes, and windowing activity to identify potential bottlenecks and optimize application performance.
  • Consider AMODE(64) for New Development: For new applications or significant rewrites, evaluate the benefits of developing native AMODE(64) programs, which can directly access 64-bit storage without the complexities of AWE windowing.

Related Vendors

Trax Softworks

3 products

Tone Software

14 products

IBM

646 products

Related Categories

Operating System

154 products

Browse and Edit

64 products

Automation

222 products