dc.contributor.author |
Gerakios, P |
en |
dc.contributor.author |
Papaspyrou, N |
en |
dc.contributor.author |
Sagonas, K |
en |
dc.contributor.author |
Vekris, P |
en |
dc.date.accessioned |
2014-03-01T02:53:14Z |
|
dc.date.available |
2014-03-01T02:53:14Z |
|
dc.date.issued |
2011 |
en |
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/36185 |
|
dc.subject.other |
C programs |
en |
dc.subject.other |
Deadlock avoidance |
en |
dc.subject.other |
Deadlock freedom |
en |
dc.subject.other |
Devastating effects |
en |
dc.subject.other |
Lock acquisition |
en |
dc.subject.other |
Multithreaded |
en |
dc.subject.other |
Resource acquisition |
en |
dc.subject.other |
Runtime systems |
en |
dc.subject.other |
Runtimes |
en |
dc.subject.other |
Static tools |
en |
dc.subject.other |
Systems code |
en |
dc.subject.other |
Type and effect systems |
en |
dc.subject.other |
C (programming language) |
en |
dc.subject.other |
Embedded systems |
en |
dc.subject.other |
Static analysis |
en |
dc.title |
Dynamic deadlock avoidance in systems code using statically inferred effects |
en |
heal.type |
conferenceItem |
en |
heal.identifier.primary |
10.1145/2039239.2039247 |
en |
heal.identifier.secondary |
http://dx.doi.org/10.1145/2039239.2039247 |
en |
heal.identifier.secondary |
5 |
en |
heal.publicationDate |
2011 |
en |
heal.abstract |
Deadlocks can have devastating effects in systems code. We have developed a type and effect system that provably avoids them and in this paper we present a tool that uses a sound static analysis to instrument multithreaded C programs and then links these programs with a run-time system that avoids possible deadlocks. In contrast to most other purely static tools for deadlock freedom, our tool does not insist that programs adhere to a strict lock acquisition order or use lock primitives in a block-structured way, thus it is appropriate for systems code and OS applications. We also report some very promising benchmark results which show that all possible deadlocks can automatically be avoided with only a small run-time overhead. More importantly, this is done without having to modify the original source program by altering the order of resource acquisition operations or by adding annotations. © 2011 ACM. |
en |
heal.journalName |
Proceedings of the 6th Workshop on Programming Languages and Operating Systems, PLOS 2011 - In Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011 |
en |
dc.identifier.doi |
10.1145/2039239.2039247 |
en |