Method and apparatus for verifying data local to a single thread

a data verification and localization technology, applied in the field of concurrent program analysis, can solve problems such as error, non-deterministic program behavior, and escape analysis not being able to verify thread-local annotations

Inactive Publication Date: 2004-11-09
VALTRUS INNOVATIONS LTD +1
View PDF5 Cites 53 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Benefits of technology

In one embodiment of the present invention, checks are run on elements of a computer program source code that are annotated as thread local in order to determine the validity of their respective thread-local annotations. Alternatively stated, checks are run on the elements of the source code that are annotated as thread-local to verify that such elements are indeed thread-local and not in fact thread-shared. Further examination can determine if elements of the source code that are annotated as thread-shared are in fact sharable. Additional requirements are needed to ensure the validity of the thread-local annotations when one addressable resource is derived from another as when one class is derived from another. Programs that satisfy these requirements are guaranteed not to share values of thread-local type between multiple threads. Therefore, the analysis enables static tools to properly check programmer annotations indicating which data types are thread-shared and which are thread-local.

Problems solved by technology

In multithreaded programming, access of thread-shared addressable resources requires special attention since multiple threads can operate in parallel to manipulate them and, as a result, errors may arise.
Race conditions often result in non-deterministic program behavior.
Escape analysis is not capable of verifying thread-local annotations if only part of the program is provided.
Inferring thread-local properties requires substantially more computational resources than just verifying them and therefore is not as efficient.
Conventional static analysis tools, such the Warlock, are not capable of verifying that certain data locations have the thread-local property.
However, Warlock does not verify whether the thread-local annotation is correct.
An invalid thread-local annotation may cause a race condition.

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Method and apparatus for verifying data local to a single thread
  • Method and apparatus for verifying data local to a single thread
  • Method and apparatus for verifying data local to a single thread

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

.

FIGS. 1A and 1B, each illustrates an embodiment of the present invention in a program analysis tool.

FIGS. 2A-2C, each illustrates possible program source code elements with annotations to be verified.

FIG. 3 illustrates a program configuration of various addressable resources with their respective annotations to be verified.

FIG. 4 is a flow diagram illustrating the process of analyzing source code elements annotation in accordance with the present invention.

FIG. 5 illustrates a `more checks` aspect of the process of FIG. 4.

FIG. 6 illustrates an `error` aspect of the process of FIG. 4.

The present invention relates to races such as data races in concurrent programming. Preferably, the present invention provides a tool for detecting potential race conditions in multithreaded programs. The method implemented by the tool verifies that addressable resources annotated as thread-local indeed are thread-local, thus requiring no lock protection. The advantage of verifying that thread-local re...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more

PUM

No PUM Login to view more

Abstract

Concurrent program analysis is fashioned for detecting potential race conditions such as data races in computer programs. One feature of this analysis is verifying annotations of addressable resources in a program. Annotations are verified by checking if thread-local resources are indeed thread-local, and that thread-shared data spaces are not in fact thread-local. Another feature is detecting potential race conditions, such as data races, in the computer program. The computer program can spawn a plurality of threads that are capable of being executed concurrently. The source code of the computer program being analyzed includes an element annotated as either thread-local or thread-shared. The validity of the thread-local annotation is verified if the element is annotated in the computer program as thread-local, wherein an invalid thread-local annotation may cause a race condition.

Description

1. Field of InventionThis invention relates generally to concurrent program analysis and more specifically to tools for detecting races such as data races in multithreaded programming.2. Background of the InventionConcurrent programming involves multiple concurrent flows of control to perform multiple tasks in parallel. Each time a task is invoked, a thread is used to implement the particular task. A "thread" is a single sequential flow of control that can be abstractly thought of as an independent program control block. Each thread can execute its instructions independently, allowing a multithreaded program to perform numerous tasks concurrently. Having multiple threads in a program means that multiple threads can be executing in parallel, where each thread is running its own execution path. Namely, at any instance the multithreaded program has multiple points of execution, one in each of its threads. Additionally, a multithreaded program creates a new thread by some mechanism, suc...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to view more

Application Information

Patent Timeline
no application Login to view more
Patent Type & Authority Patents(United States)
IPC IPC(8): G06F9/44G06F9/46
CPCG06F9/524G06F8/00
Inventor FLANAGAN, CORMAC ANDRIASFREUND, STEPHEN N.
Owner VALTRUS INNOVATIONS LTD
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Try Eureka
PatSnap group products