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