JR Programming Language -  Aaron W. Keen,  Ronald A. Olsson

JR Programming Language (eBook)

Concurrent Programming in an Extended Java
eBook Download: PDF
2006 | 1. Auflage
391 Seiten
Springer US (Verlag)
978-1-4020-8086-9 (ISBN)
86,95 € inkl. MwSt
Systemvoraussetzungen
56,28 € inkl. MwSt
Systemvoraussetzungen
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
The "JR Programming Language: Concurrent Programming in an Extended Java", an advanced-level text 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.

 
JR is a language for concurrent programming. It is an imperative language that provides explicit mechanisms for concurrency, communication, and s- chronization. JR is an extension of the Java programming language with - ditional concurrency mechanisms based on those in the SR (Synchronizing Resources) programming language. It is suitable for writing programs for both shared- and distributed-memory applications and machines; it is, of course, also suitable for writing sequential programs. JR can be used in applications such as parallel computation, distributed systems, simulation, and many others. JR supports many "e;features"e; useful for concurrent programming. However, our goals have always been keeping the language simple and easy to learn and use. We have achieved these goals by integrating common notions, both sequ- tial and concurrent, into a few powerful mechanisms. We have implemented these mechanisms as part of a complete language to determine their feasibility and cost, to gain hands-on experience, and to provide a tool that can be used for research and teaching. The introduction to Chapter 1 expands on how JR has realized our design goals.

Contents 7
List of Figures 15
List of Tables 17
Preface 19
Acknowledgments 25
PART I EXTENSIONS FOR CONCURRENCY 42
Chapter 1 INTRODUCTION 27
1.1 Key JR Components 29
1.2 Two Simple Examples 30
1.3 Matrix Multiplication 32
1.4 Concurrent File Search 34
1.5 Critical Section Simulation 36
1.6 Translating and Executing JR Programs 38
1.7 Vocabulary and Notation 39
Exercises 39
Chapter 2 OVERVIEW OF EXTENSIONS 43
2.1 Process Interactions via Operations 43
2.2 Distributing JR Programs 45
Chapter 3 OP-METHODS, OPERATIONS,AND CAPABILITIES 47
3.1 Op- methods 47
3.2 Operation and Method Declarations 48
3.3 Operation Capabilities 48
Exercises 51
Chapter 4 CONCURRENT EXECUTION 53
4.1 Process Declarations 53
4.2 The Unabbreviated Form of Processes 57
4.3 Static and Non- static Processes 60
4.4 Process Scheduling and Priorities 61
4.5 Automatic Termination Detection 62
Exercises 64
Chapter 5 SYNCHRONIZATION USINGSHARED VARIABLES 69
5.1 The Critical Section Problem 69
5.2 An Incorrect Solution 71
5.3 An Alternating Solution 72
5.4 The Bakery Algorithm for Two Processes 73
5.5 The Bakery Algorithm for N Processes 75
Exercises 76
Chapter 6 SEMAPHORES 79
6.1 Semaphore Declarations and Operations 79
6.2 The Dining Philosophers Problem 82
6.3 Barrier Synchronization 84
Exercises 87
Chapter 7 ASYNCHRONOUS MESSAGE PASSING 91
7.1 Operations as Message Queues 91
7.2 Invoking and Servicing via Capabilities 94
7.3 Simple Client-Server Models 96
7.4 Resource Allocation 100
7.5 Semaphores Revisited 103
7.6 Data- Containing Semaphores 105
7.7 Shared Operations 106
7.8 Parameter Passing Details 109
Exercises 110
Chapter 8 REMOTE PROCEDURE CALL 117
8.1 Mechanisms for Remote Procedure Call 117
8.2 Equivalence to Send/ Receive Pairs 119
8.3 Return, Reply, and Forward Statements 122
Exercises 129
Chapter 9 RENDEZVOUS 133
9.1 The Input Statement 134
9.2 Receive Statement Revisited 138
9.3 Synchronization Expressions 141
9.4 Scheduling Expressions 144
9.5 More Precise Semantics 145
9.6 Break And Continue Statements 146
9.7 Conditional Input 147
9.8 Arrays of Operations 148
9.9 Dynamic Operations 149
9.10 Return‚ Reply‚ and Forward Statements 150
Exercises 154
Chapter 10 VIRTUAL MACHINES 165
10.1 Program Start- Up and Execution Overview 166
10.2 Creating Virtual Machines 167
10.3 Creating Remote Objects 169
10.4 Examples of Multiple Machine Programs 170
10.5 Predefined Fields 172
10.6 Parameterized Virtual Machines 175
10.7 Parameter Passing Details 177
10.8 Other Aspects of Virtual Machines 178
Exercises 179
Chapter 11 THE DINING PHILOSOPHERS 185
11.1 Centralized Solution 186
11.2 Distributed Solution 188
11.3 Decentralized Solution 191
Exercises 195
Chapter 12 EXCEPTIONS 199
12.1 Operations and Capabilities 199
12.2 Input Statements 200
12.3 Asynchronous Invocation 200
12.4 Additional Sources of Asynchrony 203
12.5 Exceptions and Operations 205
Exercises 206
Chapter 13 INHERITANCE OF OPERATIONS 211
13.1 Operation Inheritance 212
13.2 Example: Distributing Operation Servicing 213
13.3 Example: Filtering Operation Servicing 214
13.4 Redefinition Considerations 216
Exercises 217
Chapter 14 INTER-OPERATIONINVOCATION SELECTION MECHANISM 219
14.1 Selection Method Expression 220
14.2 View Statement 223
14.3 Selection Method Support Classes 224
14.4 Examples 226
Exercises 230
PART II APPLICATIONS 235
Chapter 15 PARALLEL MATRIX MULTIPLICATION 237
15.1 Prescheduled Strips 238
15.2 Dynamic Scheduling: A Bag of Tasks 241
15.3 A Distributed Broadcast Algorithm 243
15.4 A Distributed Heartbeat Algorithm 246
Exercises 249
Chapter 16 SOLVING PDEs: GRID COMPUTATIONS 253
16.1 A Data Parallel Algorithm 254
16.2 Prescheduled Strips 258
16.3 A Distributed Heartbeat Algorithm 262
16.4 Using Multiple Virtual Machines 266
Exercises 267
Chapter 17 THE TRAVELING SALESMAN PROBLEM 273
17.1 Sequential Solution 274
17.2 Replicated Workers and a Bag of Tasks 277
17.3 Manager and Workers 280
Exercises 284
Chapter 18 A DISTRIBUTED FILE SYSTEM 289
18.1 System Structure 290
18.2 Directory and File Servers 292
18.3 User Interface 298
Exercises 306
Chapter 19 DISCRETE EVENT SIMULATION 309
19.1 A Simulation Problem 309
19.2 A Solution 311
19.3 Observations 316
Exercises 317
Chapter 20 INTERFACING JR AND GUIs 319
20.1 BnB Game Overview 319
20.2 BnB Code Overview 320
20.3 Miscellany 334
Exercises 336
Chapter 21 PREPROCESSORS FOR OTHER CONCURRENCY NOTATIONS 339
21.1 Conditional Critical Regions (CCRs) 339
21.2 Monitors 342
21.3 Communicating Sequential Processes (CSP) 346
Exercises 351
Appendix A Synopsis of JR Extensions 357
Appendix B Invocation and Enumeration Classes 363
Appendix C Program Development and Execution 367
Appendix D Implementation and Performance 369
D.1 JR Virtual Machines 369
D. 2 Remote Objects 370
D.2.1 Remote Class Loading 370
D. 3 Operations and Operation Capabilities 371
D. 4 Invocation Statements 371
D. 4.1 Inheritance 372
D. 5 Input Statements 372
D. 6 Quiescence Detection 372
D. 7 Performance Results 373
Appendix E History of JR 377
References 381
Index 385
More eBook at www.ciando.com 0

PDFPDF (Wasserzeichen)
Größe: 31,7 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

PDFPDF (Adobe DRM)

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das Praxisbuch für Administratoren und DevOps-Teams

von Axel Miesen

eBook Download (2022)
Rheinwerk Computing (Verlag)
39,90