Concurrent Programming with Threading by Appointment

Project Details

Description

Threading by Appointment (TAP) is a concurrent programming model that combines automatic stack management (thread-based) with system call queueing (event-driven). However, unlike conventional threads, TAP threads invoke system calls by appointment only, and, unlike events, appointments have a duration to accommodate preemptive I/O and synchronization techniques. The TAP mechanism essentially implements system call queueing using a given TAP policy that consists of a strategy to make appointments, i.e., enqueue system calls, and a logical clock to begin and end appointments, i.e., dequeue system calls. We have obtained encouraging performance results with a TAP policy that resembles traffic shaping in network routers, where system calls are treated as network packets. The policy distinguishes system calls for network and disk I/O, and gives priority to system calls invoked by short-running, interactive threads rather than long-running, bulk threads. We propose to study new concurrency mechanisms and policies as well as new concurrent programming techniques based on threading by appointment. We envision threading by appointment as an integral part of new kernel architectures that support predictable and composable concurrent programming. We advocate principled engineering of operating systems. Despite excellent engineering skills, all team members are required to develop their background in formal reasoning. New ideas will be presented on different levels of abstraction in order to distinguish logic and implementation explicitly. Each team member is expected to publish at least 1–2 non-incremental and peer-reviewed papers per year at international conferences and workshops. We therefore expect to disseminate 9–18 high-quality publications in the proposed project. New ideas will be implemented as open source software that will be made available in regular intervals on a web site dedicated to the proposed project. Software is another form of publication, which is essential in the systems community. All software releases will therefore be accompanied by appropriate documentation to simplify installation, maintainance, and enhancements. We have already selected all candidates for the proposed positions with great care to make sure that our goals can be achieved. We believe that the people are crucial for the success of a project and feel that our team is exceptionally qualified and highly motivated. Our goal is to identify new principles of operating systems and programming languages that enable the design and implementation of complex concurrent applications such as high-performance web servers that are larger and yet more robust than conventionally build systems.
StatusFinished
Effective start/end date16/10/0615/10/09

Fields of Science and Technology Classification 2002

  • 1140 Software engineering
  • 1108 Informatics