Andy Wellings is Professor of Real-Time Systems in the Department of Computer Science,
University of York, U.K. His research interests are focused on two
related areas of computing: the design, use and implementation of
real-time programming languages and operating systems; and the
design and use of general purpose distributed operating systems.
Professor Wellings has published over 350 technical papers and
reports, including five textbooks. He has taught courses in
Operating Systems, Real-Time Systems and Networks and Distributed
Systems. Currently he teaches
Andy's current research interests revolve around
architecture-neutral real-time systems. These are real-time systems
whose target architectures are unknown at systems design time.
Architecture-neutral real-time systems are typically intended for
embedded systems or hand-held devices; however, they are also
applicable to Internet applications. The target architecture is
- Real-Time Systems and Programming Languages
- Concurrent and Real-Time Programming in Java
Architecture-neutral real-time systems are at odds with traditional
real-time systems because traditional systems typically need:
- they have to be executable on the widest range of
architectures possible in order to increase their portability;
- their lifetime is expected to be greater than ten years and,
therefore, they have to be immune to technology obsolescence;
- their site of execution may vary.
Current software technologies that can be used as a basis for
architecture-neutral computing include: Microsoft's .Net framework,
Sun's Java, Bell Labs' Inferno, and OSF's ANDF. Of these, only Java
(with the Real-Time Specification - RTSJ) addresses real-time
- known (or bounded) processing resource demand - by definition
the resources needed by an architecture-neutral system will
depend on the power of the site hosting its execution;
- efficient and predictable execution - most
architecture-neutral systems are interpreted where efficiency is
often a secondary concern; techniques such as Just-In-Time
compilation lead to better average-case executions but have less
predictability and poorer worst-case behaviour;
- static allocation - predictability in a real-time
multiprocessor or distributed environment is often
achieved by sacrificing flexibility; for example,
statically allocating threads to processors in order to avoid
scheduling anomalies (such as Graham's and Dhall's anomaly); by
definition static allocation is not possible in an
Andy is very active in the Java Community Process, being
directly involved in
- JSR 282 - which is developing the next version of the RTSJ
- JSR 302 - which is developing a real-time safety critical
version of Java
- JSR 50 - which is developing a distributed version of the
He is also interested in the Ada programming language and helps
run the the International Series on Real-Time Ada Workshops. His
work has fed into the Ada 2005/12 languages.
Here is a
list of the real time group's publications. Andy's
publications are included there.
The following books are available:
Here is a link to a local HTML version of the Ada 95
Andy Wellings is on the Editorial Board of for
Software Practice and Experience and the Journal of Embedded
Professor Wellings can be found in the Computer Science
Building on Campus East, CSE 119 and on extension 5539. You can
click here to
automatically email him.
Andy Wellings is the Department Research
He teaches modules in Concurrent and Real-Time Programming in
Java, and Analyzable Real-Time Systems.
Click here to return to
the departmental home page.
to return to the real-time research page.