Publication:
Goldilocks: efficiently computing the happens-before relation using locksets

dc.contributor.coauthorQadeer, S.
dc.contributor.departmentN/A
dc.contributor.departmentDepartment of Computer Engineering
dc.contributor.kuauthorElmas, Tayfun
dc.contributor.kuauthorTaşıran, Serdar
dc.contributor.kuprofilePhD Student
dc.contributor.kuprofileFaculty Member
dc.contributor.otherDepartment of Computer Engineering
dc.contributor.schoolcollegeinstituteGraduate School of Sciences and Engineering
dc.contributor.schoolcollegeinstituteCollege of Engineering
dc.contributor.yokidN/A
dc.contributor.yokidN/A
dc.date.accessioned2024-11-09T23:10:49Z
dc.date.issued2006
dc.description.abstractWe present a new lockset-based algorithm, Goldilocks, for precisely computing the happens-before relation and thereby detecting data-races at runtime. Dynamic race detection algorithms in the literature are based on vector clocks or locksets. Vector-clock-based algorithms precisely compute the happens-before relation but have significantly more overhead. Previous lockset-based race detection algorithms, on the other hand, are imprecise. They check adherence to a particular synchronization discipline, i.e., a sufficient condition for race freedom and may generate false race warnings. Our algorithm, like vector clocks, is precise, yet it is efficient since it is purely lockset based. We have implemented our algorithm inside the Kaffe Java Virtual Machine. Our implementation incorporates lazy evaluation of locksets and certain "short-circuit checks" which contribute significantly to its efficiency. Experimental results indicate that our algorithm's overhead is much less than that of the vector-clock algorithm and is very close to our implementation of the Eraser lockset algorithm.
dc.description.indexedbyWoS
dc.description.indexedbyScopus
dc.description.openaccessYES
dc.description.publisherscopeInternational
dc.description.sponsoredbyTubitakEuN/A
dc.description.volume4262 LNCS
dc.identifier.doi10.1007/11940197_13
dc.identifier.isbn3540-4969-98
dc.identifier.isbn9783-5404-9699-1
dc.identifier.issn0302-9743
dc.identifier.linkhttps://www.scopus.com/inward/record.uri?eid=2-s2.0-34547416218&doi=10.1007%2f11940197_13&partnerID=40&md5=6a7f40b2f04625add34264926dd58da2
dc.identifier.quartileQ3
dc.identifier.scopus2-s2.0-34547416218
dc.identifier.urihttps://link.springer.com/chapter/10.1007/11940197_13
dc.identifier.urihttps://hdl.handle.net/20.500.14288/9543
dc.keywordsClocks
dc.keywordsSignal detection
dc.keywordsVectors
dc.keywordsVerification
dc.keywordsData races
dc.keywordsHappens-before
dc.keywordsIts efficiencies
dc.keywordsJava virtual machines
dc.keywordsLazy evaluation
dc.keywordsRace detection
dc.keywordsRuntimes
dc.keywordsVector clocks
dc.keywordsSoftware testing
dc.languageEnglish
dc.publisherSpringer
dc.sourceLecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
dc.subjectEngineering
dc.titleGoldilocks: efficiently computing the happens-before relation using locksets
dc.typeConference proceeding
dspace.entity.typePublication
local.contributor.authoridN/A
local.contributor.authoridN/A
local.contributor.kuauthorElmas, Tayfun
local.contributor.kuauthorTaşıran, Serdar
relation.isOrgUnitOfPublication89352e43-bf09-4ef4-82f6-6f9d0174ebae
relation.isOrgUnitOfPublication.latestForDiscovery89352e43-bf09-4ef4-82f6-6f9d0174ebae

Files