EngineeringComputer ArchitectureSoftware EngineeringMultithreading (Computer Architecture)Concurrent SystemSoftware AnalysisFormal VerificationAutomatic Deadlock DetectionHardware SecurityDeadlock AvoidanceSystems EngineeringParallel ComputingConcurrent ProgrammingComputer EngineeringComputer ScienceProgram AnalysisConcurrency TheoryFormal MethodsParallel ProgrammingProcessor ArchitecturesConcurrent Data StructureSystem SoftwareTransactional Memory
The evolution of processor architectures from single core designs with increasing clock frequencies to multi-core designs with relatively stable clock frequencies has fundamentally altered application design. Since application programmers can no longer rely on clock frequency increases to boost performance, over the last several years, there has been significant emphasis on application level threading to achieve performance gains. A core problem with concurrent programming using threads is the potential for deadlocks. Even well-written codes that spend an inordinate amount of effort in deadlock avoidance cannot always avoid deadlocks, particularly when the order of lock acquisitions is not known a priori. Furthermore, arbitrarily composing lock based codes may result in deadlock - one of the primary motivations for transactional memory. In this paper, we present a language independent runtime system called Sammati that provides automatic deadlock detection and recovery for threaded applications that use the POSIX threads (pthreads) interface - the de facto standard for UNIX systems. The runtime is implemented as a pre-loadable library and does not require either the application source code or recompiling/relinking phases, enabling its use for existing applications with arbitrary multi-threading models. Performance evaluation of the runtime with unmodified SPLASH, Phoenix and synthetic benchmark suites shows that it is scalable, with speedup comparable to baseline execution with modest memory overhead.
34
Maurice Herlihy, J. Eliot B. Moss · 1993 · 2.2K citations
Stefan Savage, Michael T. Burrows, Greg Nelson et al. · ACM Transactions on Computer Systems · 1997 · 1.6K citations · Full text
Extended static checking for Java
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge et al. · 2002 · 1.3K citations
Nir Shavit, Dan Touitou · 1995 · 1.2K citations · Full text
Evaluating MapReduce for Multi-core and Multiprocessor Systems
Colby Ranger, R. Raghuraman, Arun Penmetsa et al. · 2007 · 964 citations