HEAL DSpace

A type and effect system for deadlock avoidance in low-level languages

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Gerakios, P en
dc.contributor.author Papaspyrou, N en
dc.contributor.author Sagonas, K en
dc.date.accessioned 2014-03-01T02:47:15Z
dc.date.available 2014-03-01T02:47:15Z
dc.date.issued 2011 en
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/33038
dc.subject C en
dc.subject Deadlock avoidance en
dc.subject Pthreads en
dc.subject Types and effects en
dc.subject.other C en
dc.subject.other Concurrent execution en
dc.subject.other Concurrent program en
dc.subject.other Deadlock avoidance en
dc.subject.other Deadlock freedom en
dc.subject.other Development stages en
dc.subject.other Lock acquisition en
dc.subject.other Low-level language en
dc.subject.other Optimizing compilers en
dc.subject.other Polymorphic types en
dc.subject.other Pthreads en
dc.subject.other Runtime systems en
dc.subject.other Runtimes en
dc.subject.other Type and effect systems en
dc.subject.other Types and effects en
dc.subject.other Embedded systems en
dc.subject.other Java programming language en
dc.subject.other Static analysis en
dc.subject.other High level languages en
dc.title A type and effect system for deadlock avoidance in low-level languages en
heal.type conferenceItem en
heal.identifier.primary 10.1145/1929553.1929558 en
heal.identifier.secondary http://dx.doi.org/10.1145/1929553.1929558 en
heal.publicationDate 2011 en
heal.abstract The possibility to run into a deadlock is an annoying and commonly occurring hazard associated with the concurrent execution of programs. In this paper we present a polymorphic type and effect system that can be used to dynamically avoid deadlocks, guided by information about the order of lock and unlock operations which is computed statically. In contrast to most other type-based approaches to deadlock freedom, our system does not insist that programs adhere to a strict lock acquisition order or use locking primitives in a block-structured way. Lifting these restrictions is primarily motivated by our desire to target low-level languages, such as C with pthreads, but it also allows our system to be directly applicable in optimizing compilers for high-level languages, such as Java. To show the effectiveness of our approach, we have also developed a tool that uses static analysis to instrument concurrent programs written in C/pthreads and then links these programs with a run-time system that avoids possible deadlocks. Although our tool is still in an early development stage, in the sense that currently its analysis only handles a limited class of programs, our benchmark results are very promising: they show that it is not only possible to avoid all deadlocks with a small run-time overhead, but also often achieve better throughput in highly concurrent programs by naturally reducing lock contention. © 2011 ACM. en
heal.journalName TLDI'11 - Proceedings of the 7th ACM SIGPLAN Workshop on Types in Language Design and Implementation en
dc.identifier.doi 10.1145/1929553.1929558 en
dc.identifier.spage 15 en
dc.identifier.epage 28 en


Αρχεία σε αυτό το τεκμήριο

Αρχεία Μέγεθος Μορφότυπο Προβολή

Δεν υπάρχουν αρχεία που σχετίζονται με αυτό το τεκμήριο.

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής