CoBoxes: Distributed Heaps with Cooperative Tasks
|
|
- Emory John Kelly
- 5 years ago
- Views:
Transcription
1 CoBoxes: Distributed Heaps with Cooperative Tasks Jan Schäfer Arnd Poetzsch-Heffter University of Kaiserslautern HATS WP1 Task 1.1 Meeting June 29th, Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 1 / 23
2 JCoBox Main Features Object-Oriented Class-Based Cooperative tasks Asynchronous method calls Futures Distributed object heaps (CoBoxes) Main Language Mechanism CoBox classes Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 2 / 23
3 JCoBox Main Features Object-Oriented Class-Based Cooperative tasks Asynchronous method calls Futures Distributed object heaps (CoBoxes) Main Language Mechanism CoBox classes Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 2 / 23
4 Why CoBoxes? Unit of Behavior (Runtime Component) Creol: Object JCoBox: CoBoxes (hierarchical object groups) Advantages Complex mutable state (with atomic access) Multiple interface objects Hierarchical structure Abstraction from internal details Internal concurrency Modular semantics for runtime components Active Objects are a special case Sequential OOP is a special case Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 3 / 23
5 Advantages by Example Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 4 / 23
6 Example: org.w3c.dom.document DOM Document Component interface Document { Attr createattribute(string name); Element createelement(string tagname);... } interface Node { Document getownerdocument();... } interface Element extends Node { Attr getattributenode(string name);... } interface Attr extends Node { Element getownerelement();... } Implement as a single active object? Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 5 / 23
7 Example: org.w3c.dom.document (2) :Document :Element :Attr Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 6 / 23
8 Example: org.w3c.dom.document (2) :Document :Element :Attr Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 6 / 23
9 Example: SwitchGroup SwitchGroup - Specification A component which guarentees mutal exclusion for a set of switches, such that only one switch is on and all others are off If a switch in a switch group is turned on all other switches in that group are turned off Switches can only be directly turned on by the client Problem How to guarantee that invariant and allow direct access to switch objects? Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 7 / 23
10 SwitchGroup - With Active Objects - No Direct Access on:true Grp Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
11 SwitchGroup - With Active Objects - No Direct Access on:true turnon(1) Grp Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
12 SwitchGroup - With Active Objects - No Direct Access turnon(1) Grp turnoff() on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
13 SwitchGroup - With Active Objects - No Direct Access turnon(1) Grp turnoff() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
14 SwitchGroup - With Active Objects - No Direct Access turnon(1) Grp turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
15 SwitchGroup - With Active Objects - No Direct Access turnon(1) Grp turnon() on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
16 SwitchGroup - With Active Objects - No Direct Access turnon(1) Grp on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
17 SwitchGroup - With Active Objects - Direct Access Grp on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
18 SwitchGroup - With Active Objects - Direct Access on:true Grp Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
19 SwitchGroup - With Active Objects - Direct Access on:true Grp turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
20 SwitchGroup - With Active Objects - Direct Access on:true Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
21 SwitchGroup - With Active Objects - Direct Access turnoff() on:true Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
22 SwitchGroup - With Active Objects - Direct Access turnoff() Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
23 SwitchGroup - With Active Objects - Direct Access Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
24 SwitchGroup - With Active Objects - Direct Access Grp turnon() on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
25 SwitchGroup - With Active Objects - Direct Access Grp on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
26 SwitchGroup - With CoBoxes on:true Grp Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
27 SwitchGroup - With CoBoxes on:true Grp turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
28 SwitchGroup - With CoBoxes on:true Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
29 SwitchGroup - With CoBoxes turnoff() on:true Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
30 SwitchGroup - With CoBoxes turnoff() Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
31 SwitchGroup - With CoBoxes Grp onreq(this) turnon() Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
32 SwitchGroup - With CoBoxes Grp turnon() on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
33 SwitchGroup - With CoBoxes Grp on:true Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 8 / 23
34 SwitchGroup - With a CoBox Facade Proxy on:true Grp Proxy Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 9 / 23
35 SwitchGroup - Nested CoBoxes Proxy on:true Grp Proxy Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 9 / 23
36 Summary of Advantages Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 10 / 23
37 Complex Mutable State Every non-trivial object has a logical state represented by further objects In Creol represent the whole state as ADT only functional programming inside an object use other active objects to hold state more difficult because of distributed state sequential programming cannot be completely simulated always use: x!m().get problems with reentrancy always use: x!m().await problems with concurrent accesses In JCoBox Sequential OOP within a single CoBox ADTs still useful! Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 11 / 23
38 Sequential OOP within a CoBox Well-known programming technique Easy for programmers Existing tools/knowledge Analysis Verification... Encapsulation of existing legacy code Allows for a smooth migration path Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 12 / 23
39 Multiple Interface Objects Multiple objects as entry points to an object structure Very important for OOP Allows for scalable OO interfaces Examples List: Iterator DOM File System GUI-Frameworks Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 13 / 23
40 Hierarchical Structure Treat groups of CoBoxes semantically as a single unit of behavior Allows for a modular semantics of CoBoxes Does not influence the behavior of individual CoBoxes Like Boxes for sequential OOP Different to published paper version Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 14 / 23
41 Practical Experience Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 15 / 23
42 Practical JCoBox Additional Features Promises (explicitly resolvable futures) Immutable classes Transfer classes Java 5: Generics, annotations,... Plain Java classes Static fields and methods Exceptions Configurable Task Scheduler (very limited) Configurable message ordering guarantees Distribution with RMI Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 16 / 23
43 Implemented Examples FourWins Game with a Swing-GUI Computer player utilizing multiple cores CoCoME Distributed cash desk system Implemented as a product line Classical Examples Philosophers Dating Service... Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 17 / 23
44 Experiences The CoBox model has proven to be useful in practice Deadlocks rarely occur and are easy to find High-Level data-races rarely occur and are easy to find Order guarantee very useful Immutable and Transfer objects are needed ADTs could be used instead Design decisions usually clear Which class should be plain, cobox, transfer, immutable? Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 18 / 23
45 Maude Specification Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 19 / 23
46 Maude Specification Goal: Executable paper rules not optimized for performance Can be used to model-check simple programs Found deadlock in 3-Philosopher example Currently very different to Maude specification of Creol Integration of CoBoxes would be possible, however Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 20 / 23
47 Questions concerning ABS Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 21 / 23
48 Question Concerning Concurrency Model Futures yes, but Promises? Channels? Only ADTs, or also Transfer Objects? Message ordering guarantees? Configurable Scheduling? specified by join patterns? Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 22 / 23
49 General Questions for the ABS (from our perspective) Process-independent data description How to represent object references? Modularity (Notion of a component) Clear behavioral interface description declarative specification language Notion of composition Notion of Refinement Relation to implementation Relation between different models (fully abstract?) Support for features/deltas on the modeling level Well-defined notion concurrency with a pluggable scheduling concept Jan Schäfer CoBoxes WP1 Task 1.1 Meeting 23 / 23
A Programming Model and Language for Concurrent and Distributed Object-Oriented Systems. Jan Schäfer
A Programming Model and Language for Concurrent and Distributed Object-Oriented Systems Jan Schäfer University of Kaiserslautern Department of Computer Science Supervisors Prof. Dr. Arnd Poetzsch-Heffter
More informationWriting Concurrent Desktop Applications in an Actor-Based Programming Model
Writing Concurrent Desktop Applications in an Actor-Based Programming Model Jan Schäfer Arnd Poetzsch-Heffter jschaefer@cs.uni-kl.de University of Kaiserslautern Department of Computer Science Software
More informationCover Page. The handle holds various files of this Leiden University dissertation
Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue
More informationMessage Passing. Advanced Operating Systems Tutorial 7
Message Passing Advanced Operating Systems Tutorial 7 Tutorial Outline Review of Lectured Material Discussion: Erlang and message passing 2 Review of Lectured Material Message passing systems Limitations
More informationCS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers
CS 2112 Lecture 20 Synchronization 5 April 2012 Lecturer: Andrew Myers 1 Critical sections and atomicity We have been seeing that sharing mutable objects between different threads is tricky We need some
More informationShacl: Operational Semantics
Shacl: Operational Semantics Joeri De Koster, Tom Van Cutsem Vrije Universiteit Brussel, Pleinlaan 2, B-1050 Brussels, Belgium 1. Operational semantics In this section we describe the operational semantics
More informationModular specification of frame properties in JML
CONCURRENCY PRACTICE AND EXPERIENCE Concurrency: Pract. Exper. 2002; 1:1 [Version: 2001/03/05 v2.01] Modular specification of frame properties in JML Peter Müller 1, Arnd Poetzsch-Heffter 2, and Gary T.
More informationGrand Central Dispatch and NSOperation. CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015
Grand Central Dispatch and NSOperation CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015 1 Credit Where Credit Is Due Most of the examples in this lecture were inspired by example code
More informationMohamed M. Saad & Binoy Ravindran
Mohamed M. Saad & Binoy Ravindran VT-MENA Program Electrical & Computer Engineering Department Virginia Polytechnic Institute and State University TRANSACT 11 San Jose, CA An operation (or set of operations)
More informationModular Verification with Shared Abstractions
Modular Verification with Shared Abstractions Uri Juhasz Noam Rinetzky Arnd Poetzsch-Heffter Mooly Sagiv Eran Yahav Tel Aviv University Tel Aviv University Universität Kaiserlautern Tel Aviv University
More informationConcurrent & Distributed Systems Supervision Exercises
Concurrent & Distributed Systems Supervision Exercises Stephen Kell Stephen.Kell@cl.cam.ac.uk November 9, 2009 These exercises are intended to cover all the main points of understanding in the lecture
More informationDistance Learning Advanced C++ - Programming Models, boost and Parallel Computing
Distance Learning Advanced C++ - Programming Models, boost and Parallel Computing Module 1: Quick Review of C++ Essentials General Considerations The canonical class definition Why const is important Raw
More informationAOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz
AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development
More informationCS152: Programming Languages. Lecture 19 Shared-Memory Parallelism and Concurrency. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 19 Shared-Memory Parallelism and Concurrency Dan Grossman Spring 2011 Concurrency and Parallelism PL support for concurrency/parallelism a huge topic Increasingly important
More informationConcurrency and Parallelism. CS152: Programming Languages. Lecture 19 Shared-Memory Parallelism and Concurrency. Concurrency vs. Parallelism.
CS152: Programming Languages Lecture 19 Shared-Memory Parallelism and Concurrency Dan Grossman Spring 2011 Concurrency and Parallelism PL support for concurrency/parallelism a huge topic Increasingly important
More informationSynchronization SPL/2010 SPL/20 1
Synchronization 1 Overview synchronization mechanisms in modern RTEs concurrency issues places where synchronization is needed structural ways (design patterns) for exclusive access 2 Overview synchronization
More informationThe goal of the Pangaea project, as we stated it in the introduction, was to show that
Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective
More information[module 2.2] MODELING CONCURRENT PROGRAM EXECUTION
v1.0 20130407 Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci [module 2.2] MODELING CONCURRENT PROGRAM EXECUTION 1 SUMMARY Making
More informationThe Abstract Behavioral Specification Language
The Abstract Behavioral Specification Language Frank S. de Boer CWI frb@cwi.nl Scientific Meeting CWI, November 29, 2013 How It All Started? Simula (Ole Johan Dahl, Turing award 2001) Credo FP6 project
More informationadministrivia today UML start design patterns Tuesday, September 28, 2010
administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified
More informationLinking Programs to Architectures: An Object-Oriented Hierarchical Software Model based on Boxes
PREPRINT To appear in: The Common Component Modeling Example: Comparing Software Component Models, LNCS, 2007, Springer Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model
More informationVerification of Asynchronously Communicating Objects. Crystal Chang Din
Verification of Asynchronously Communicating Objects Doctoral Dissertation by Crystal Chang Din Submitted to the Faculty of Mathematics and Natural Sciences at the University of Oslo for the degree Philosophiae
More informationDepartment of Computer Science 226 Atanasoff Hall Iowa State University Ames, Iowa , USA
Modular Specification of Frame Properties in JML Peter Müller, Arnd Poetzsch-Heffter, and Gary T. Leavens TR #02-02a February 2002, Revised October 2002 Keywords: frame property, frame axiom, modifies
More informationOverview. Distributed Computing with Oz/Mozart (VRH 11) Mozart research at a glance. Basic principles. Language design.
Distributed Computing with Oz/Mozart (VRH 11) Carlos Varela RPI March 15, 2007 Adapted with permission from: Peter Van Roy UCL Overview Designing a platform for robust distributed programming requires
More informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction
More informationConcurrency. Lecture 14: Concurrency & exceptions. Why concurrent subprograms? Processes and threads. Design Issues for Concurrency.
Lecture 14: Concurrency & exceptions Concurrency Processes and threads Semaphores, monitors and message passing Exception handling Concurrency Is is often desirable or necessary to execute parts of programs
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationPROCESSES AND THREADS
PROCESSES AND THREADS A process is a heavyweight flow that can execute concurrently with other processes. A thread is a lightweight flow that can execute concurrently with other threads within the same
More informationConcurrent Programming Method for Embedded Systems
Concurrent Programming Method for Embedded Systems Norbert Schramm UVA, 24000 Subotica, Serbia norbert.schramm@gmail.com Anita Sabo Polytechnical Engineering College Subotica M. Oreškovića 16, 24000 Subotica,
More informationActive Testing for Concurrent Programs
Active Testing for Concurrent Programs Pallavi Joshi Mayur Naik Chang-Seo Park Koushik Sen 1/8/2009 ParLab Retreat ParLab, UC Berkeley Intel Research Overview Checking correctness of concurrent programs
More informationExecutive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.
Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck
More informationJAVA MOCK TEST JAVA MOCK TEST II
http://www.tutorialspoint.com JAVA MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Java Framework. You can download these sample mock tests at your
More informationToward a Concurrent Programming Model with Modular Reasoning
Graduate Theses and Dissertations Iowa State University Capstones, Theses and Dissertations 2016 Toward a Concurrent Programming Model with Modular Reasoning Mehdi Bagherzadeh Iowa State University Follow
More informationTransactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev
Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed
More informationG Programming Languages Spring 2010 Lecture 13. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 13 Robert Grimm, New York University 1 Review Last week Exceptions 2 Outline Concurrency Discussion of Final Sources for today s lecture: PLP, 12
More informationA Survey of Active Object Languages
A Survey of Active Object Languages FRANK DE BOER and VLAD SERBANESCU, Centrum Wiskunde and Informatica, The Nederlands REINER HÄHNLE, TU Darmstadt, Germany LUDOVIC HENRIO and JUSTINE ROCHAS, Université
More informationWhat is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships
Class Diagram What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships Why do we need Class Diagram? Focus on the conceptual and specification
More informationWhat is a Class Diagram? Class Diagram. Why do we need Class Diagram? Class - Notation. Class - Semantic 04/11/51
What is a Class Diagram? Class Diagram A diagram that shows a set of classes, interfaces, and collaborations and their relationships Why do we need Class Diagram? Focus on the conceptual and specification
More informationVerifying JML specifications with model fields
Verifying JML specifications with model fields Cees-Bart Breunesse and Erik Poll Department of Computer Science, University of Nijmegen Abstract. The specification language JML (Java Modeling Language)
More informationUML- a Brief Look UML and the Process
UML- a Brief Look UML grew out of great variety of ways Design and develop object-oriented models and designs By mid 1990s Number of credible approaches reduced to three Work further developed and refined
More informationMARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION
Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss
More informationThreads Questions Important Questions
Threads Questions Important Questions https://dzone.com/articles/threads-top-80-interview https://www.journaldev.com/1162/java-multithreading-concurrency-interviewquestions-answers https://www.javatpoint.com/java-multithreading-interview-questions
More informationMulticore programming in Haskell. Simon Marlow Microsoft Research
Multicore programming in Haskell Simon Marlow Microsoft Research A concurrent web server server :: Socket -> IO () server sock = forever (do acc
More informationActive Testing for Concurrent Programs
Active Testing for Concurrent Programs Pallavi Joshi, Mayur Naik, Chang-Seo Park, Koushik Sen 12/30/2008 ROPAS Seminar ParLab, UC Berkeley Intel Research Overview ParLab The Parallel Computing Laboratory
More informationChapter 2: Java OOP I
Chapter 2: Java OOP I Yang Wang wyang AT njnet.edu.cn Outline OO Concepts Class and Objects Package Field Method Construct and Initialization Access Control OO Concepts Object Oriented Methods Object An
More informationConcurrency in Object Oriented Programs 1. Object-Oriented Software Development COMP4001 CSE UNSW Sydney Lecturer: John Potter
Concurrency in Object Oriented Programs 1 Object-Oriented Software Development COMP4001 CSE UNSW Sydney Lecturer: John Potter Outline Concurrency: the Future of Computing Java Concurrency Thread Safety
More informationConcurrent ML. John Reppy January 21, University of Chicago
Concurrent ML John Reppy jhr@cs.uchicago.edu University of Chicago January 21, 2016 Introduction Outline I Concurrent programming models I Concurrent ML I Multithreading via continuations (if there is
More informationSharing Objects Ch. 3
Sharing Objects Ch. 3 Visibility What is the source of the issue? Volatile Dekker s algorithm Publication and Escape Thread Confinement Immutability Techniques of safe publication Assignment 1 Visibility
More informationA Transactional Model and Platform for Designing and Implementing Reactive Systems
A Transactional Model and Platform for Designing and Implementing Reactive Systems Justin R. Wilson A dissertation presented to the Graduate School of Arts and Sciences of Washington University in partial
More informationCompiler Construction
Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Seminar Analysis and Verification of Pointer Programs (WS
More informationCS558 Programming Languages Winter 2013 Lecture 8
OBJECT-ORIENTED PROGRAMMING CS558 Programming Languages Winter 2013 Lecture 8 Object-oriented programs are structured in terms of objects: collections of variables ( fields ) and functions ( methods ).
More informationJava SE7 Fundamentals
Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various
More informationSynchronization. CSCI 5103 Operating Systems. Semaphore Usage. Bounded-Buffer Problem With Semaphores. Monitors Other Approaches
Synchronization CSCI 5103 Operating Systems Monitors Other Approaches Instructor: Abhishek Chandra 2 3 Semaphore Usage wait(s) Critical section signal(s) Each process must call wait and signal in correct
More information1 Publishable Summary
1 Publishable Summary 1.1 VELOX Motivation and Goals The current trend in designing processors with multiple cores, where cores operate in parallel and each of them supports multiple threads, makes the
More informationSoftware Design Report
Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase. The SDD shows how
More informationRely-Guarantee References for Refinement Types over Aliased Mutable Data
Rely-Guarantee References for Refinement Types over Aliased Mutable Data Colin S. Gordon, Michael D. Ernst, and Dan Grossman University of Washington PLDI 2013 Static Verification Meets Aliasing 23 x:ref
More informationDealing with Issues for Interprocess Communication
Dealing with Issues for Interprocess Communication Ref Section 2.3 Tanenbaum 7.1 Overview Processes frequently need to communicate with other processes. In a shell pipe the o/p of one process is passed
More informationCompiler Construction
Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Seminar Analysis and Verification of Pointer Programs (WS
More informationReminder from last time
Concurrent systems Lecture 5: Concurrency without shared data, composite operations and transactions, and serialisability DrRobert N. M. Watson 1 Reminder from last time Liveness properties Deadlock (requirements;
More informationThe Case for Simple Object-Orientation in VDM++ Erik Ernst Aarhus University, Denmark
The Case for Simple Object-Orientation in VDM++ Erik Ernst Aarhus University, Denmark An outsider.. My research area is OO language design, implementation, formalization, esp. type systems (virtual classes,
More informationProgramming in Scala Second Edition
Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword
More informationITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References
ITCS 3160 Jing Yang 2010 Fall Class 16: Object and Object- Relational Databases (ch.11) Slides come from: References Michael Grossniklaus, Moira Norrie (ETH Zürich): Object Oriented Databases (Version
More informationSACO: Static Analyzer for Concurrent Objects
SACO: Static Analyzer for Concurrent Objects E. Albert 1, P. Arenas 1, A. Flores-Montoya 2, S. Genaim 1, M. Gómez-Zamalloa 1, E. Martin-Martin 1, G. Puebla 3, and G. Román-Díez 3 1 Complutense University
More informationPersistent Data Structures and Managed References
Persistent Data Structures and Managed References Clojure s approach to Identity and State Rich Hickey Agenda Functions and processes Identity, State, and Values Persistent Data Structures Clojure s Managed
More informationWhat is DARMA? DARMA is a C++ abstraction layer for asynchronous many-task (AMT) runtimes.
DARMA Janine C. Bennett, Jonathan Lifflander, David S. Hollman, Jeremiah Wilke, Hemanth Kolla, Aram Markosyan, Nicole Slattengren, Robert L. Clay (PM) PSAAP-WEST February 22, 2017 Sandia National Laboratories
More informationThe case for reactive objects
The case for reactive objects Johan Nordlander, Luleå Univ. och Technology (with Mark Jones, Andrew Black, Magnus Carlsson, Dick Kieburtz all (ex) OGI) Links meeting, April 6 1 Links killer apps Web services...
More informationRecent Trends in OO Modelling Languages
JML,, Institute for Software Technology Graz University of Technology Graz, Austria United Nations University International Institute for Software Technology Macao S.A.R. China Overture 2006 Outline JML
More informationModel driven Engineering & Model driven Architecture
Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software
More informationObject Oriented Programming and Design in Java. Session 18 Instructor: Bert Huang
Object Oriented Programming and Design in Java Session 18 Instructor: Bert Huang Announcements Homework 4 due Mon. Apr. 19 No multithreading in programming part Final Exam Monday May 10, 9 AM - noon, 173
More informationPART B UNIT II COMMUNICATION IN DISTRIBUTED SYSTEM PART A
CS6601 DISTRIBUTED SYSTEMS QUESTION BANK UNIT 1 INTRODUCTION 1. What is a distributed system? 2. Mention few examples of distributed systems. 3. Mention the trends in distributed systems. 4. What are backbones
More informationChapter 1: Programming Principles
Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key
More informationPOAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models
POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns
More informationThe Problem with Threads
The Problem with Threads Author Edward A Lee Presented by - Varun Notibala Dept of Computer & Information Sciences University of Delaware Threads Thread : single sequential flow of control Model for concurrent
More informationChapter Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level
Concurrency can occur at four levels: 1. Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level Because there are no language issues in instruction- and program-level
More informationCh 9: Control flow. Sequencers. Jumps. Jumps
Ch 9: Control flow Sequencers We will study a number of alternatives traditional sequencers: sequential conditional iterative jumps, low-level sequencers to transfer control escapes, sequencers to transfer
More informationCOPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...
Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns
More informationSeminar on Languages for Scientific Computing Aachen, 6 Feb Navid Abbaszadeh.
Scientific Computing Aachen, 6 Feb 2014 navid.abbaszadeh@rwth-aachen.de Overview Trends Introduction Paradigms, Data Structures, Syntax Compilation & Execution Concurrency Model Reference Types Performance
More information6. Concurrency and Distribution
6. Concurrency and Distribution Overview: 6.1 Thread-based concurrency 6.2 Message-based concurrency 6.3 Distributed OO programming The object-oriented paradigm supports concurrency and distribution: Objects
More informationobjects
/*@ immutable @*/ objects Erik Poll SoS group (aka the LOOP group) Radboud University Nijmegen KeY workshop June 2005 yet another JML keyword... Java provides final ie. immutable - fields What about immutable
More informationProgramming Models for Supercomputing in the Era of Multicore
Programming Models for Supercomputing in the Era of Multicore Marc Snir MULTI-CORE CHALLENGES 1 Moore s Law Reinterpreted Number of cores per chip doubles every two years, while clock speed decreases Need
More informationSelective Java Code Transformation into AWS Lambda Functions
Selective Java Code Transformation into AWS Lambda Functions Serhii Dorodko and Josef Spillner Zurich University of Applied Sciences, School of Engineering, Service Prototyping Lab (blog.zhaw.ch/splab),
More informationIdentity, State and Values
Identity, State and Values Clojure s approach to concurrency Rich Hickey Agenda Functions and processes Identity, State, and Values Persistent Data Structures Clojure s Managed References Q&A Functions
More informationDo! environment. DoT
The Do! project: distributed programming using Java Pascale Launay and Jean-Louis Pazat IRISA, Campus de Beaulieu, F35042 RENNES cedex Pascale.Launay@irisa.fr, Jean-Louis.Pazat@irisa.fr http://www.irisa.fr/caps/projects/do/
More informationIntroduction to Locks. Intrinsic Locks
CMSC 433 Programming Language Technologies and Paradigms Spring 2013 Introduction to Locks Intrinsic Locks Atomic-looking operations Resources created for sequential code make certain assumptions, a large
More information}w!"#$%&'()+,-./012345<ya
MASARYK UNIVERSITY FACULTY OF INFORMATICS w!"#$%&'()+,-./012345
More informationVerified Secure Routing
Verified Secure Routing David Basin ETH Zurich EPFL, Summer Research Institute June 2017 Team Members Verification Team Information Security David Basin Tobias Klenze Ralf Sasse Christoph Sprenger Thilo
More informationDistributed Systems Programming (F21DS1) Formal Verification
Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on
More informationJava Concurrency. Towards a better life By - -
Java Concurrency Towards a better life By - Srinivasan.raghavan@oracle.com - Vaibhav.x.choudhary@oracle.com Java Releases J2SE 6: - Collection Framework enhancement -Drag and Drop -Improve IO support J2SE
More informationOutline. Object Oriented Programming. Course goals. Staff. Course resources. Assignments. Course organization Introduction Java overview Autumn 2003
Outline Object Oriented Programming Autumn 2003 2 Course goals Software design vs hacking Abstractions vs language (syntax) Java used to illustrate concepts NOT a course about Java Prerequisites knowledge
More information1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert
Oracle 1Z0-895 Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-895 Answer: F QUESTION: 284 Given:
More informationThe Concurrency Viewpoint
The Concurrency Viewpoint View Relationships The Concurrency Viewpoint 2 The Concurrency Viewpoint Definition: The Concurrency Viewpoint: describes the concurrency structure of the system and maps functional
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationDesign Patterns. Lecture 10: OOP, autumn 2003
Design Patterns Lecture 10: OOP, autumn 2003 What are patterns? Many recurring problems are solved in similar ways This wisdom is collected into patterns design patterns - about software design Other kinds
More informationWhat are patterns? Design Patterns. Design patterns. Creational patterns. The factory pattern. Factory pattern structure. Lecture 10: OOP, autumn 2003
What are patterns? Design Patterns Lecture 10: OOP, autumn 2003 Many recurring problems are solved in similar ways This wisdom is collected into patterns design patterns - about software design Other kinds
More informationLTBP INDUSTRIAL TRAINING INSTITUTE
Java SE Introduction to Java JDK JRE Discussion of Java features and OOPS Concepts Installation of Netbeans IDE Datatypes primitive data types non-primitive data types Variable declaration Operators Control
More informationJoint Entity Resolution
Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute
More informationReinhard v. Hanxleden 1, Michael Mendler 2, J. Aguado 2, Björn Duderstadt 1, Insa Fuhrmann 1, Christian Motika 1, Stephen Mercer 3 and Owen Brian 3
Sequentially Constructive Concurrency * A conservative extension of the Synchronous Model of Computation Reinhard v. Hanxleden, Michael Mendler 2, J. Aguado 2, Björn Duderstadt, Insa Fuhrmann, Christian
More informationTop Down Design vs. Modularization
6.170 Quiz Review Topics: 1. Decoupling 2. 3. AF & RI 4. Iteration Abstraction & Iterators 5. OMs and Invariants 6. Equality, Copying, Views 7. 8. Design Patterns 9. Subtyping 10. Case Studies Decomposition
More informationSoftware Design COSC 4353/6353 D R. R A J S I N G H
Software Design COSC 4353/6353 D R. R A J S I N G H Design Patterns What are design patterns? Why design patterns? Example DP Types Toolkit, Framework, and Design Pattern A toolkit is a library of reusable
More informationPerformance Throughput Utilization of system resources
Concurrency 1. Why concurrent programming?... 2 2. Evolution... 2 3. Definitions... 3 4. Concurrent languages... 5 5. Problems with concurrency... 6 6. Process Interactions... 7 7. Low-level Concurrency
More information