Next | Top | Index
Full Table of Contents
- Contents
-
- About This Manual
-
- What This Manual Contains
-
- What You Should Know Before Reading This Manual
-
- Other Useful References
-
- Conventions Used in This Manual
-
- 1. - Process Address Space
-
- Defining the Address Space
-
- Address Space Boundaries
-
- Page Numbers and Offsets
-
- Address Definition
-
- Address Space Limits
-
- Delayed and Immediate Space Definition
-
- Page Validation
-
- Read-Only Pages
-
- Copy-on-Write Pages
-
- Interrogating the Memory System
-
- Mapping Segments of Memory
-
- The Segment Mapping Function mmap()
-
- Describing the Mapped Object
-
- Describing the New Segment
-
- Mapping a File for I/O
-
- Mapped File Sizes
-
- Apparent Process Size
-
- Mapping Portions of a File
-
- File Permissions
-
- NFS Considerations
-
- File Integrity
-
- Mapping a File for Shared Memory
-
- Mapping a Segment of Zeros
-
- Mapping Physical Memory
-
- Mapping Kernel Virtual Memory
-
- Mapping a VME Device
-
- Choosing a Segment Address
-
- Segments at Fixed Offsets
-
- Segments at a Fixed Address
-
- Locking Pages in Memory
-
- Locking Functions
-
- Locking Program Text and Data
-
- Locking Mapped Files Into Memory
-
- Reducing Cache Misses
-
- Locality of Reference
-
- Cache Mapping in Challenge and Onyx Systems
-
- Multiprocessor Cache Conflicts
-
- Detecting Cache Problems
-
- Additional Memory Features
-
- Changing Memory Protection
-
- Synchronizing the Backing Store
-
- Releasing Unneeded Pages
-
- 2. - Interprocess Communication
-
- Types of Interprocess Communication Available
-
- IRIX IPC
-
- Initializing a Shared Arena
-
- Configuring an Arena
-
- Creating an Arena
-
- Joining an Arena
-
- Allocating in a Shared Arena
-
- Exchanging the First Datum
-
- Using IRIX Semaphores
-
- Creating Normal Semaphores
-
- Creating Polled Semaphores
-
- Using Semaphores
-
- Using Locks
-
- Using Barriers
-
- System V IPC
-
- System V IPC Overview
-
- System V Messages
-
- Message Structures
-
- Message Operations Overview
-
- Getting Message Queues With msgget()
-
- Message Queue Example Program
-
- Controlling Message Queues: msgctl()
-
- Example Program
-
- Operations for Messages: msgsnd() and msgrcv()
-
- Sending a Message
-
- Receiving Messages
-
- Example Program
-
- Example Use of msgsnd
-
- Example Use of msgrcv
-
- System V Semaphores
-
- Using Semaphores
-
- Getting Semaphores With semget()
-
- Example Program
-
- Controlling Semaphores With semctl()
-
- Example Program
-
- Operations on Semaphores: semop()
-
- Example Program
-
- System V Shared Memory
-
- Using Shared Memory
-
- Getting Shared Memory Segments With shmget()
-
- Example Program
-
- Controlling Shared Memory: shmctl()
-
- Example Program
-
- Operations for Shared Memory: shmat() and shmdt()
-
- 3. - Models of Parallel Computation
-
- Parallel Hardware and Programming Models
-
- Parallel Programs on Uniprocessors
-
- Memory Systems
-
- Single Memory Systems
-
- Multiple Memory Systems
-
- Types of Parallel Models
-
- Statement-Level Parallelism
-
- Thread-Level Parallelism
-
- Process-Level Parallelism
-
- Portable, Abstract Models
-
- Message-Passing Interface (MPI) Model
-
- Portable Virtual Machine (PVM) Model
-
- Remote Procedure Call (RPC) Model
-
- Using Statement-Level Parallelism
-
- Creating Parallel Programs
-
- Managing Parallel Execution
-
- Controlling the Degree of Parallelism
-
- Choosing the Loop Schedule Type
-
- Using Process-Level Parallelism
-
- Parallelism in Real-Time Applications
-
- Process Synchronization and Share Groups
-
- Process Communication and Coordination
-
- Process Creation
-
- Process Scheduling Features
-
- Process Management Features
-
- Using MPI and PVM
-
- Choosing Between MPI and PVM
-
- Porting From PVM to MPI
-
- 4. - File and Record Locking
-
- Overview of File and Record Locking
-
- Terminology
-
- Record
-
- Cooperating Processes
-
- Read (Shared) Lock
-
- Write (Exclusive) Lock
-
- Advisory Locking
-
- Mandatory Locking
-
- Lock Promotion and Demotion
-
- Using File Permissions
-
- Using Record Locking
-
- Opening a File for Record Locking
-
- Setting a File Lock
-
- Setting and Removing Record Locks
-
- Getting Lock Information
-
- Deadlock Handling
-
- Selecting Advisory or Mandatory Locking
-
- Record Locking Across Multiple Systems
-
- 5. - Working With Fonts
-
- Font Basics
-
- Terminology
-
- Typography
-
- Character
-
- Font
-
- Font Family, or Typeface
-
- How Resolution Affects Font Size
-
- Font Names
-
- Writing Programs That Need to Use Fonts
-
- Using Fonts With the X Window System
-
- Listing and Viewing Fonts
-
- Getting a List of Font Names and Font Aliases
-
- Viewing Fonts
-
- Getting the Current X Font Path
-
- Changing the X Font Path
-
- Installing and Adding Font and Font Metric Files
-
- Locations of Font and Font Metric Files
-
- Conventions for Bitmap Font File Names
-
- Creating Font Aliases
-
- Adding Font and Font Metric Files
-
- Adding a Bitmap Font
-
- Adding an Outline Font
-
- Adding a Font Metric File
-
- Downloading a Type 1 Font to a PostScript Printer
-
- 6. - Internationalizing Your Application
-
- Overview
-
- Some Definitions
-
- Locale
-
- Internationalization (i18n)
-
- Localization (l10n)
-
- Nationalized Software
-
- Multilingual Software
-
- Areas of Concern in Internationalizing Software
-
- Standards
-
- Internationalizing Your Application: The Basic Steps
-
- Additional Reading on Internationalization
-
- Locales
-
- Setting the Current Locale
-
- Category
-
- Locale
-
- The Empty String
-
- Nonempty Strings in Calls to setlocale()
-
- Location of Locale-Specific Data
-
- Locale Naming Conventions
-
- Limitations of the Locale System
-
- Multilingual Support
-
- Misuse of Locales
-
- No Filesystem Information for Encoding Types
-
- Character Sets, Codesets, and Encodings
-
- Eight-Bit Cleanliness
-
- Character Representation
-
- Multibyte Characters
-
- Use of Multibyte Strings
-
- Handling Multibyte Characters
-
- Conversion to Constant-Size Characters
-
- How Many Bytes in a Character?
-
- How Many Bytes in an MB String?
-
- How Many Characters in an MB String?
-
- Wide Characters
-
- Uses for wchar Strings
-
- Support Routines for Wide Characters
-
- Conversion to MB Characters
-
- Reading Input Data
-
- Cultural Items
-
- Collating Strings
-
- The Issue
-
- The Solution
-
- Specifying Numbers and Money
-
- Using printf()
-
- Using localeconv()
-
- Using strfmon()
-
- Formatting Dates and Times
-
- Character Classification and ctype
-
- The Issue
-
- The Solution
-
- Regular Expressions
-
- Locale-Specific Behavior
-
- Overview of Locale-Specific Behavior
-
- Local Customs
-
- Regular Expressions
-
- The ANSI X3.159-198X Standard for C
-
- Native Language Support and the NLS Database
-
- Configuration Data
-
- Collating Sequence Tables
-
- Character Classification Tables
-
- Shift Tables
-
- Language Information
-
- Using Regular Expressions
-
- Internationalized Regular Expressions
-
- Cultural Data
-
- NLS Interfaces
-
- NLS Utilities
-
- NLS Library Functions
-
- XSI Curses Interface
-
- Strings and Message Catalogs
-
- XPG/4 Message Catalogs
-
- Opening and Closing XPG/4 Catalogs
-
- Using an XPG/4 Catalog
-
- XPG/4 Catalog Location
-
- Creating XPG/4 Message Catalogs
-
- Compiling XPG/4 Message Catalogs
-
- SVR4 MNLS Message Catalogs
-
- Putting MNLS Strings Into a Catalog
-
- Using MNLS in Shell Scripts
-
- Specifying MNLS Catalogs
-
- Getting Strings From MNLS Message Catalogs
-
- Using pfmt()
-
- Labels, Severity, and Flags
-
- Format Strings for pfmt()
-
- Using fmtmsg()
-
- Internationalizing File Typing Rule Strings With MNLS
-
- Variably Ordered Referencing of printf() Arguments
-
- Internationalization Support in X11R6
-
- Limitations of X11R6 in Supporting Internationalization
-
- Vertical Text
-
- Character Sets
-
- Xlib Interface Change
-
- Resource Names
-
- Getting X Internationalization Started
-
- Initialization for Toolkit Programming
-
- Initialization for Xlib Programming
-
- Fontsets
-
- Example: EUC in Japanese
-
- Specifying a Fontset
-
- Creating a Fontset
-
- Using a Fontset
-
- Text Rendering Routines
-
- New Text Extents Functions
-
- Internationalization Support in Motif
-
- User Input
-
- About User Input and Input Methods
-
- Reuse Sample Code
-
- GL Input
-
- About X Keyboard Support
-
- Keys, Keycodes, and Keysyms
-
- Composed Characters
-
- Supported Keyboards
-
- Input Methods (IMs)
-
- Opening an Input Method
-
- IM Styles
-
- Root Window
-
- Off-the-Spot
-
- Over-the-Spot
-
- On-the-Spot
-
- Setting IM Styles
-
- Using Styles
-
- Input Contexts (ICs)
-
- Find an IM Style
-
- IC Values
-
- Pre-Edit and Status Attributes
-
- Creating an Input Context
-
- Using the IC
-
- Events Under IM Control
-
- Using XFilterEvent()
-
- Using XLookupString(), XwcLookupString(), and XmbLookupString()
-
- GUI Concerns
-
- X Resources for Strings
-
- Layout
-
- Dynamic Layout
-
- Constant Layout
-
- Localized Layout
-
- IRIS IM Localization with editres
-
- Icons
-
- Popular Encodings
-
- The ISO 8859 Family
-
- Asian Languages
-
- Some Standards
-
- EUC
-
- ISO 10646 and Unicode
-
- A. - ISO 3166 Country Names and Abbreviations
-
- B. - Converting PVM Applications to MPI
-
- Differences Between PVM and MPI
-
- Comparing Library Routines
-
- Comparable Routines
-
- Nonportable PVM Functions
-
- Converting a PVM Program to an MPI Program
-
- Initial Environment Setup
-
- Pure SPMD Program
-
- General SPMD Model
-
- MPMD Model
-
- Common Environment Setup Changes
-
- Task Environment Cleanup
-
- Group Management Functions
-
- Intertask Communication
-
- Utility Functions
-
- Example Programs
-
- Example 1: SPMD Program
-
- SPMD Program in PVM Version
-
- SPMD Program in MPI Version
-
- Example 2: MPMD Example
-
- MPMD in PVM Version--Master Task
-
- MPMD in PVM Version--Slave Task
-
- MPMD in MPI Version--Master Task
-
- MPMD in MPI Version--Slave Task
-
- Index
-
Next | Top | Index