C. M. Krishna
Department of Electrical and Computer Engineering
University of Massachusetts
Amherst, MA 01003
(413) 545-0766
krishna@ecs.umass.edu
Research Interests: My principal research interests are in
power-aware computing, real-time computing, fault-tolerance, and distributed
and networked systems.
Power-Aware Computing: This field has grown exponentially over the
past decade. An increasing number of applications are battery-powered
or otherwise work in a power-constrained environment. Processors are
getting increasingly power-hungry, and the increase in processor power
consumption is threatening to rapidly outpace advances in battery capacity.
The key problem in power-aware computing is to manage the various subunits
of the computer in such a way that performance goals continue to be met
while keeping power consumption within acceptable bounds. Techniques
to do this range from low-level circuit design to using power-aware
compilers and operating systems. My own work in this field
focuses on the computer architecture and operating system layers.
Real-Time Computing: Real-time computing means computing in the face
of task deadlines. This is another field that has grown rapidly since
I began working in it in 1980. There are two types of real-time systems:
hard and soft . A hard real-time system is one in which
missing too many deadlines in a row will result in catastrophe. Examples
are the computers that control the flight surfaces of fly-by-wire aircraft.
By contrast, a soft real-time system will show degradation of performance if
deadlines are missed, but nothing catastrophic is likely to happen.
The most familiar examples of this are streaming video and audio. If
some voice or video packets get dropped or otherwise not delivered on time,
the user is liable to notice a lowering of quality; however, it is usually
not catastrophic (although it may be annoying)
to have one's video stream disrupted. Of course, there may be Command and
Control applications where such disruption may not be acceptable: in such a
case, the system must be regarded as hard real-time. My own research
focuses on task scheduling, fault-tolerance (see below), and
dependability modeling.
Fault-Tolerant Computing: There are many applications (including
hard real-time applications) where the reliability of the overall system
must be far higher than the reliability of its individual components. In
such cases, one has to devise mechanisms and architectures that will allow
the system to either completely mask the effects of a component failure or
recover from it so quickly that the application is not seriously affected.
My interests in this field include the application of fault tolerance to
real-time computing and devising mechanisms for rapid recovery from failure.
Distributed Systems and Networks: In the past, I have worked on
quality-of-service issues in networks. My current interests in this
area focus largely on sensor networks. These usually consist of
a bunch of relatively resource-limited and battery-powered nodes
interconnected by ad hoc wireless links. Applications range from
sensing weather parameters to tracking intruders. The principal problems
that we are addressing relate to security (through choosing the appropriate
level of encryption) and tradeoffs of security with power consumption,
as well as issues of managing resources in the face of failing nodes.
More details of much of this work can be found in the web-page of the
Architecture and Real-time
Laboratory .
Research Assistantships: Most of my research assistants have an
bachelor's degree in computer science or electrical engineering and
some industrial experience (generally -- but certainly not limited to --
one or two years). I have found that
some prior work in industry greatly enhances the maturity of the student and
the likelihood of their succeeding in graduate work.
The availability of research assistantship varies from year to year. It
depends on two things: the starting of new projects and the number of
current students who are graduating. Neither of these parameters can be
predicted with great accuracy more than a few months in advance.
As of May 2006, all positions
for Fall 2006 are filled, although this could change.
Deciding whom to pick from the applications we get is a labour-intensive and
inexact task. I generally look for an appropriate mix of grades and
experience, as mentioned above. I also read the Statement of Purpose very
carefully. What I am looking for in this is evidence that the applicant has
thought through his or her interests in the field, and that these interests
(and supporting academic work and experience) are aligned with the slots we
have open in the lab. All too often, I find the Statement of Purpose to be
full of gushing statements attesting to the burning desire of the
applicant to study computer engineering in general (and the remarkably
early age at
which such a desire first manifested itself):
such prose may rise to the
level of (bad) poetry at times and even be mildly entertaining,
but is useless from my point of view. What I am looking for is evidence
that this applicant will be productive when attacking the problems being
addressed in the lab. It is therefore important to clearly indicate
your sub-areas of interest in computer engineering, and provide evidence
that you have the ability to be productive in these areas. Such evidence
can include industrial experience in a related field or an extensive
academic project.
Real-Time Systems Text:
To download a list (in postscript) of all the typographical errors
caught so far in
C. M. Krishna and K. G. Shin,
Real-Time Systems, McGraw-Hill, 1997, ISBN 0-07-057043-4,
click here
Courses
- Real-Time Systems
(Spring 2007)
-
Fault-Tolerant Systems (Fall 2006)
-
Simulation and Evaluation of Computer Systems and Networks
(Spring 2006)
- Hardware Organization and Design
(Spring 2006)