KELVIN D. NILSEN KELVIN D. NILSEN (nilsen@cs.iastate.edu)

Assistant Professor of Computer Science

Major Interests: Design and implementation of high-level programming language features, real-time applications, concurrent programming, operating systems, computer architecture.

Current Research: Dr. Nilsen's research focuses on providing high-level programming language support for dynamic real-time software in general purpose environments. Real-time software is dynamic if its workload cannot be precisely characterized prior to execution. General purpose computing systems are those that service more than a restricted set of real-time tasks. Representative applications include control of reactive robots, operating systems for multimedia workstations, and automation of experimental chemistry, physics, and biology laboratories. Most of Dr. Nilsen's research applies also to more traditional real- time applications, such as control of manufacturing processes, flight surface control of aircraft, air traffic control, missile defense systems, and communications.

In research recently funded by the National Science Foundation and by the U.S. Department of Commerce, Dr. Nilsen has worked on the design and analysis of a portable hardware assisted real-time garbage collection system that provides worst-case bounds of 1 microsecond on memory fetch, store, and allocate operations. The average performance of the garbage-collected memory system is nearly indistinguishable from traditional memory. In closely related research, Dr. Nilsen is investigating high-level support for both static and dynamic scheduling of real-time tasks. These investigations include the design and implementation of profiling tools for analysis of task cache behavior, and run-time kernel support for high performance interleaved scheduling of traditional tasks with constraint-bound real-time tasks.

Representative Publications:

Nilsen, K., Garbage Collection of Strings and Linked Data Structures in Real Time, Software Practice & Experience, Vol. 18, No. 7, July 1988, pp. 613-640

Nilsen, K., A Stream Data Type That Supports Goal-Directed, Pattern Matching on Unbounded Sequences of Values, Computer Languages, Vol. 15, No. 1, Jan 1989, pp. 41-54

Nilsen, K., High-Level Goal-Directed Concurrent Processing in Icon, Software Practice & Experience, Vol. 20, No. 12, Dec 1990, pp. 1273-1290

Nilsen, K.; Schmidt, W., Cost-Effective Object-Space Management for Hardware-Assisted Real-Time Garbage Collection, ACM Letters on Programming Languages and Systems, Vol. 1, No. 4, Dec 1992, pp. 338-354

Narasimhan, K; Nilsen, K, Portable Execution Time Analysis for RISC Processors, ACM PLDI Workshop on Language, Compiler, and Tool Support for Real-Time Systems, June 1994.

Basumallick, S; Nilsen, K, Cache Issues in Real-Time Systems, ACM PLDI Workshop on Language, Compiler, and Tool Support for Real-Time Systems, June 1994.

Nilsen, K, Cost-Effective Hardware-Assisted Real-Time Garbage Collection, ACM PLDI Workshop on Language, Compiler, and Tool Support for Real-Time Systems, June 1994.

Nilsen, K; Schmidt W., A High-Performance Hardware-Assisted Real-Time Garbage Collection System, Journal of Programming Languages, to appear.

Nilsen, K, Reliable Real-Time Garbage Collection of C++, Computing Systems, to appear.

Schmidt, W; Nilsen, K, Performance of a Hardware-Assisted Real-Time Garbage Collector, 1994 ACM Conference on Architectural Support for Programming Languages, and Operating Systems to appear.

Gao, H; Nilsen, K, Reliable General Purpose Dynamic Memory Management for Real-Time Systems 1994 IEEE Real-Time Systems Symposium submitted.