用户名: 密码: 验证码:
Contract-based Synchronization of Multi-threaded Java Programs.
详细信息   
  • 作者:Huang ; Yi.
  • 学历:Doctor
  • 年:2011
  • 导师:Dillon, Laura K.,eadvisorStirewalt, Kurtecommittee memberMutka, Mattecommittee memberLi, Tongtongecommittee member
  • 毕业院校:Michigan State University
  • Department:Computer Science
  • ISBN:9781267057402
  • CBH:3487033
  • Country:USA
  • 语种:English
  • FileSize:1116836
  • Pages:154
文摘
Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchronization logic can lead to starvation or deadlock. Moreover, concurrency confounds the development of reusable software modules because code implementing an applications synchronization logic tends to be tightly interleaved with the "functional" code. Interleaving complicates program understanding and maintenance, producing brittle applications. Contract-based models of synchronization, such as the Synchronization Units Model Szumo), attempt to address these problems by: 1) expressing synchronization concerns in declarative synchronization contracts to separate them from functional code; and 2) using a runtime system that dynamically interprets and "negotiates" the contracts, thereby automatically synchronizing threads. However, this approach requires a special compiler and runtime system, making it difficult to integrate Szumo into mainstream object-oriented programming languages or conduct empirical studies to understand software engineering tradeoffs when using Szumo or hand coding synchronization. This thesis investigates two "lighter-weight" approaches for integrating a contract-based synchronization model with a mainstream object-oriented programming language. The first approach works with any multi-threaded Java program. In this approach, an application programmer adds special Java annotations to a class whose methods contain only functional code. A compiler plugin generates synchronization code from the annotated program based on synchronization concerns declared in the annotations; the generated synchronization code is added to the annotated program, which then executes in a standard JVM. The second approach targets IP telecommunication IPT) services that are deployed to a SIP servlets container. It makes use of a synchronization middleware. Instead of embedding synchronization code in the message handlers that implement a service, a programmer provides a synchronization contract that is loaded when the service is deployed to a container running our middleware. The middleware intercepts messages that a container routes to the service and consults the contract to determine when to schedule the message handler thread. Contributions of work reported in this thesis include: 1) Development of a generative approach that permits use of synchronization annotations with a mainstream object-oriented language. 2) Development of a middleware approach that permits use of contract-based synchronization with a standard execution platform for services. 3) Demonstration that contract-based synchronization enables packaging the implementation of synchronization as an OTS component, which can be seamlessly swapped with one that implements a different protocol, e.g., to tune performance. 4) Presentation of results of case studies with both approaches. The work described in this thesis was performed in collaboration with AT&T Research Labs and Oracle Research Labs.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700