Olsson / Keen | The JR Programming Language | E-Book | www.sack.de
E-Book

E-Book, Englisch, Band 774, 391 Seiten, eBook

Reihe: The Springer International Series in Engineering and Computer Science

Olsson / Keen The JR Programming Language

Concurrent Programming in an Extended Java
2004
ISBN: 978-1-4020-8086-9
Verlag: Springer US
Format: PDF
Kopierschutz: 1 - PDF Watermark

Concurrent Programming in an Extended Java

E-Book, Englisch, Band 774, 391 Seiten, eBook

Reihe: The Springer International Series in Engineering and Computer Science

ISBN: 978-1-4020-8086-9
Verlag: Springer US
Format: PDF
Kopierschutz: 1 - PDF Watermark



JR is an extension of the Java programming language with additional concurrency mechanisms based on those in the SR (Synchronizing Resources) programming language. The JR implementation executes on UNIX-based systems (Linux, Mac OS X, and Solaris) and Windows-based systems. It is available free from the JR webpage. This book describes the JR programming language and illustrates how it can be used to write concurrent programs for a variety of applications. This text presents numerous small and large example programs. The source code for all programming examples and the given parts of all programming exercises are available on the JR webpage. Dr. Ronald A. Olsson and Dr. Aaron W. Keen, the authors of this text, are the designers and implementors of JR.

Olsson / Keen The JR Programming Language jetzt bestellen!

Zielgruppe


Research

Weitere Infos & Material


Dedication

List of Figures

List of Tables
Preface

Acknowledgments

1: Introduction
1.1 Key JR Components
1.2 Two Simple Examples
1.3 Matrix Multiplication
1.4 Concurrent File Search

1.5 Critical Section Simulation
1.6 Translating and Executing JR Programs
1.7 Vocabulary and Notation
Exercises

Part I. Extensions for Concurrency

2: Overview Of Extensions
2.1 Process Interactions via Operations

2.2 Distributing JR Programs
3: Op-methods, Operations, And Capabilities

3.1 Op-methods
3.2 Operation and Method Declarations

3.3 Operation Capabilities
Exercises
4: Concurrent Execution

4.1 Process Declarations

4.2 The Unabbreviated Form of Processes

4.3 Static and Non-static Processes

4.4 Process Scheduling and Priorities

4.5 Automatic Termination Detection

Exercises

5: Synchronization Using Shared Variables

5.1 The Critical Section Problem

5.2 An Incorrect Solution

5.3 An Alternating Solution

5.4 The Bakery Algorithm for Two Processes

5.5 The Bakery Algorithm for N Processes

Exercises

6: Semaphores

6.1 Semaphore Declarations and Operations

6.2 The Dining Philosophers Problem

6.3 Barrier Synchronization

Exercises

7: Asynchronous Message Passing

7.1 Operations as Message Queues

7.2 Invoking and Servicing via Capabilities

7.3 Simple Client-Server Models

7.4 Resource Allocation

7.5 Semaphores Revisited

7.6 Data-Containing Semaphores

7.7 Shared Operations

7.8 Parameter Passing Details

Exercises

8: Remote Procedure Call

8.1 Mechanisms for Remote Procedure Call

8.2 Equivalence to Send/Receive Pairs

8.3 Return, Reply, and Forward Statements
Exercises
9: Rendezvous
9.1 The Input Statement
9.2 Receive Statement Revisited
9.3 Synchronization Expressions
9.4 Scheduling Expressions
9.5 More Precise Semantics
9.6 Break And Continue Statements
9.7 Conditional Input
9.8 Arrays of Operations
9.9 Dynamic Operations
9.10 Return, Reply, and Forward Statements
Exercises
10: Virtual Machines
10.1 Program Start-Up and Execution Overview
10.2 Creating Virtual Machines
10.3 Creating Remote Objects
10.4 Examples of Multiple Machine Programs
10.5 Predefined Fields
10.6 Parameterized Virtual Machines
10.7 Parameter Passing Details
10.8 Other Aspects of Virtual Machines
Exercises
11: The Dining Philosophers
11.1 Centralized Solution
11.2 Distributed Solution
11.3 Decentralized Solution

Exercises
12: Exceptions

12.1 Operations and Capabilities
12.2 Input Statements
12.3 Asynchronous Invocation
12.4 Additional Sources of Asynchrony
12.5 Exceptions and Operations
Exercises

13: Inheritance Of Operations
13.1 Operation Inheritance
13.2 Example: Distributing Operation Servicing

13.3 Example: Filtering Operation Servicing
13.4 Redefinition Considerations
Exercises
14: Inter-Operation Invocation Selection Mechanism
14.1 Selection Method Expression
14.2 View Statement

14.3 Selection Method Support Classes
14.4 Examples

Exercises

Part II: Applications

15: Parallel Matrix Multiplication
15.1 Prescheduled Strips
15.2 Dynamic Scheduling: A Bag of Tasks

15.3 A Distributed Broadcast Algorithm
15.4 A Distributed Heartbeat Algorithm
Exercises
16: Solving PDEs: Grid Computations
16.1 A Data Parallel Algorithm
16.2 Prescheduled Strips
16.3 A Distributed Heartbeat Algorithm
16.4 Using Multiple Virtual Machines
Exercises

17: The Traveling Salesman Problem
17.1 Sequential Solution
17.2 Replicated Workers and a Bag of Tasks

17.3 Manager and Workers

Exercises
18: A Distributed File System

18.1 System Structure
18.2 Directory and File Servers
18.3 User Interface

Exercises
19: Discrete Event Simulation
19.1 A Simulation Problem
19.2 A Solution
19.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.