作者:
Holzmann, Gerard J.NASA
JPL Lab Reliable Software 4800 Oak Grove Dr Pasadena CA 91109 USA
The broad availability of multi-core chips on standard desktop PCs provides strong motivation for the development of new algorithms for logic model checkers that can take advantage of the additional processing power. ...
详细信息
The broad availability of multi-core chips on standard desktop PCs provides strong motivation for the development of new algorithms for logic model checkers that can take advantage of the additional processing power. With a steady increase in the number of available processing cores, we would like the performance of a model checker to increase as well - ideally linearly. The new trend implies a change of focus away from cluster computers towards shared memory systems. In this paper we discuss the multi-core algorithms that are in development for the SPIN model checker.
Due to increasing demands in processing power on the one hand, but the physical limit on CPU clock speed on the other hand, multi-threaded programming is becoming more important in current applications. Unfortunately,...
详细信息
Due to increasing demands in processing power on the one hand, but the physical limit on CPU clock speed on the other hand, multi-threaded programming is becoming more important in current applications. Unfortunately, multi-threaded programs are prone to programming mistakes that result in hard to find defects, mainly race-conditions and deadlocks. The need for tools that help finding these faults is immanent, but currently available tools are either difficult to use because of the need for annotations, unable to cope with more than a few 10 kLOC, or issue too many false warnings. This paper describes experiments with the freely available tool Helgrind and results obtained by using it for debugging a server application comprising 500 kLOC. We present improvements to the runtime analysis of C++ programs that result in a dramatic reduction of false warnings.
This poster describes difficulties in understanding threads in an Advanced Java course given at the Computer Science department of the Open University of Israel (OUI). We present a typical question which focuses on se...
详细信息
ISBN:
(纸本)9781595936103
This poster describes difficulties in understanding threads in an Advanced Java course given at the Computer Science department of the Open University of Israel (OUI). We present a typical question which focuses on several aspects of multi-threaded programming given in an exam. We discuss the students' answers and point to typical misunderstandings of the topic.
One common technique for preventing data races in multi-threaded programs is to ensure that all accesses to shared locations are consistently protected by a lock. We present a tool called LOCKSMITH for detecting data ...
详细信息
One common technique for preventing data races in multi-threaded programs is to ensure that all accesses to shared locations are consistently protected by a lock. We present a tool called LOCKSMITH for detecting data races in C programs by looking for violations of this pattern. We call the relationship between locks and the locations they protect consistent correlation, and the core of our technique is a novel constraint-based analysis that infers consistent correlation context-sensitively, using the results to check that locations are properly guarded by locks. We present the core of our algorithm for a simple formal language. lambda(sic) which we have proven sound, and discuss how we scale it up to an algorithm that aims to be sound for all of C. We develop several techniques to improve the precision and performance of the analysis, including a sharing analysis for inferring thread locality;existential quantification for modeling locks in data structures;and heuristics for modeling unsafe features of C such as type casts. When applied to several benchmarks, including multi-threaded servers and Linux device drivers, LOCK-SMITH found several races while producing a modest number of false alarms.
In this article we present a technique for reducing the memory overhead while performing data race detection. Data races occur when multiple threads modify the same memory location without proper synchronization. In o...
详细信息
In this article we present a technique for reducing the memory overhead while performing data race detection. Data races occur when multiple threads modify the same memory location without proper synchronization. In order to detect data races, we need to check all read and write operations performed by the threads. We describe a method for efficiently storing these read and write operations called "merging of segment histories". This method improves upon known techniques by ensuring an upper limit to the amount of memory consumed for storing the read and write operations while maintaining the full accuracy of the data race detection. The method has been implemented in an existing data race detection tool called RecPlay for Solaris binaries. We show that it enables us to perform data race detection on benchmarks which were previously beyond our grasp. (C) 2002 Elsevier Science B.V. All rights reserved.
multi-threaded programming is a well-known technique for improving the performance of applications. In a CORBA environment, clients can invoke shared remote objects. If these objects are single-threaded, the performan...
详细信息
multi-threaded programming is a well-known technique for improving the performance of applications. In a CORBA environment, clients can invoke shared remote objects. If these objects are single-threaded, the performance of the system in the large distributed applications is affected. This paper presents a detailed description of the design and implementation of a multi-threaded Object Request Broker (ORB) on CORBA. The ORE was implemented on top of Windows NT and the underlying TCP protocol. The system's performance in both one-way and two-way requests is compared with that of a well-known commercial product, the IONA Orbix.
暂无评论