12 Aug 2011 Medford/Somerville - Efforts to improve how computer programmes 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, Sam 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: programmes written in managed languages are more expensive to run because they require more computing resources.
This creates a dilemma for programmers, Sam Guyer noted. "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++."
To solve this problem cost-effectively, Sam 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 programme. 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", Sam Guyer explained. "It takes a lot of work to identify unused memory - the more data the programme has, the more work it takes."
"If we knew just a little bit more about what the programme's doing, we could probably do a lot better in recycling memory that's not being used", he stated. "And that's where cooperation between programmer and machine comes in."
In Sam Guyer's approach, the programmer will identify the large-scale structures and patterns of use in the programme. "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 stated.
For example, in an on-line 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 programme may contain a database that should remain permanent and not be discarded.
Sam Guyer's software will recognize what is to be saved and what should be discarded as garbage. "There are patterns", he stated. "We're developing different tools that will let us look inside the programme 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", Sam Guyer stated.