Tufts computer engineer wins national award for research
Efforts to improve how computer programs manage memory without sacrificing security have earned Sam Guyer, an assistant professor of computer science in the Tufts University School of Engineering, an early career award from the National Science Foundation (NSF).
With the $443,000, five-year NSF grant, Guyer will explore a new approach to improving virtual machines — complex pieces of software that manage computing resources such as memory.
Modern managed computer programming languages, such as Java and C#, eliminate many errors and security risks that have plagued traditional languages such as C and C++. But this security comes at a price: programs written in managed languages are more expensive to run because they require more computing resources.
This creates a dilemma for programmers, Guyer notes. "They can use a safe and secure managed language that requires more memory and server resources or they can continue taking chances with languages such as C and C++."
Recycling the garbage
To solve this problem cost-effectively, Guyer wants to improve the virtual machine by strengthening the process of "garbage collection."
The garbage collector identifies what regions of application data are no longer needed by the program. Then it deletes this data, freeing up vital space for later computations.
But current garbage collection techniques have trouble identifying the trash.
"The problem with existing techniques for garbage collection is that they don't know which parts of memory are likely to be garbage, so they have to look at it all," Guyer explains. "It takes a lot of work to identify unused memory — the more data the program has, the more work it takes."
"If we knew just a little bit more about what the program's doing, we could probably do a lot better in recycling memory that's not being used, "he says."And that's where cooperation between programmer and machine comes in."
In Guyer's approach, the programmer will identify the large-scale structures and patterns of use in the program. "If the garbage collector somehow knows that a block of data represents a particular user, then when the user logs off, it can collect that memory without looking at all the rest of the data," he says.
For example, in an online banking session the server stores a chunk of memory that represents current information at the bank. When a user logs off, the information about that particular session no longer needs to be stored. Conversely, a program may contain a database that should remain permanent and not be discarded.
Guyer's software will recognize what is to be saved and what should be discarded as garbage. "There are patterns," he says." We're developing different tools that will let us look inside the program and see those kinds of patterns."
"The key idea is that with extra information, virtual machines can provide much more efficient services because they are customized to each application's needs," Guyer says.
Provided by Tufts University