
Richard West- PhD
- Professor at Boston University
Richard West
- PhD
- Professor at Boston University
About
115
Publications
22,385
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,093
Citations
Introduction
Current institution
Additional affiliations
September 2000 - February 2014
Publications
Publications (115)
Multicore PC-class embedded systems present an opportunity to consolidate separate microcontrollers as software-defined functions. For instance, an automotive system with more than 100 electronic control units (ECUs) could be replaced with one or, at most, several multicore PCs running software tasks for chassis, body, powertrain, infotainment and...
Autonomous multicopters often feature federated architectures, which incur relatively high communication costs between separate hardware components. These costs limit the ability to react quickly to new mission objectives. Additionally, federated architectures are not easily upgraded without introducing new hardware that impacts size, weight, power...
Autonomous multicopters often feature federated architectures, which incur relatively high communication costs between separate hardware components. These costs limit the ability to react quickly to new mission objectives. Additionally, federated architectures are not easily upgraded without introducing new hardware that impacts size, weight, power...
There is an increasing demand to incorporate hybrid environments as part of workflows across edge, cloud, and HPC systems. In a such converging environment of cloud and HPC, containers are starting to play a more prominent role, bringing their networking infrastructure along with them. However, the current body of work shows that container overlay...
This paper presents ModelMap, a model-based multi-domain application development framework for DriveOS, our in-house centralized vehicle management software system. DriveOS runs on multicore x86 machines and uses hardware virtualization to host isolated RTOS and Linux guest OS sandboxes. In this work, we design Simulink interfaces for model-based v...
Complex embedded systems are now supporting the coexistence of multiple OSes to manage services once assigned to separate embedded microcontrollers. Automotive systems, for example, now use multiple OSes to consolidate electronic control unit (ECU) functions on a centralized embedded computing platform. Such platforms have the complexity of an indu...
Autonomous multicopters often feature federated architectures, which incur relatively high communication costs between separate hardware components. These costs limit the ability to react quickly to new mission objectives. Additionally, federated architectures are not easily upgraded without introducing new hardware that impacts size, weight, power...
Modern solid-state disks achieve high data transfer rates due to their massive internal parallelism. However, out-of-place updates for flash memory incur garbage collection costs when valid data needs to be copied during space reclamation. The root cause of this extra cost is that solid-state disks are not always able to accurately determine data l...
Modern automotive systems feature dozens of electronic control units (ECUs) for chassis, body and powertrain functions. These systems are costly and inflexible to upgrade, requiring ever increasing numbers of ECUs to support new features such as advanced driver assistance (ADAS), autonomous technologies, and infotainment. To counter these challenge...
Clouds inherit CPU scheduling policies of operating systems. These policies enforce fairness while leveraging best-effort mechanisms to enhance responsiveness of all schedulable entities, irrespective of their service level objectives (SLOs). This leads to unpredictable performance that forces cloud providers to enforce strict reservation and isola...
Multi-rotor drones require real-time sensor data processing and control to maintain flight stability, which is made more challenging by external disturbances such as wind. In this paper we introduce smartflight: an environmentally-aware adaptive real-time flight management system. smartflight adapts the execution frequencies of flight control tasks...
Over-estimation of worst-case execution times (WCETs) of real-time tasks leads to poor resource utilization. In a mixed-criticality system (MCS), the over-provisioning of CPU time to accommodate the WCETs of highly critical tasks may lead to degraded service for less critical tasks. In this paper we present PAStime, a novel approach to monitor and...
This paper presents Boomerang, an I/O system that
integrates a legacy non-real-time OS with one that is customized
for timing-sensitive tasks. A relatively small RTOS benefits from
the pre-existing libraries, drivers and services of the legacy
system. Additionally, timing-critical tasks are isolated from less
critical tasks by securely partitioning...
Android's APIs, bluetooth support and smartphone integration provide capabilities for user interaction with In-Vehicle Infotainment (IVI) and vehicle control services. However, Android is not developed to interface with automotive subsystems accessed via CAN bus networks. This work proposes a new automotive system based on our Quest-V partitioning...
This paper presents Boomerang, a system that integrates a legacy non-real-time OS with one that is customized for timing-sensitive tasks. A relatively small RTOS benefits from the pre-existing libraries, drivers and services of the legacy system. Additionally, timing-critical tasks are isolated from less critical tasks by securely partitioning mach...
Over-estimation of worst-case execution times (WCETs) of real-time tasks leads to poor resource utilization. In a mixed-criticality system (MCS), the over-provisioning of CPU time to accommodate the WCETs of highly critical tasks can lead to degraded service for less critical tasks. In this paper, we present PAStime, a novel approach to monitor and...
A fundamental problem in real-time computing is handling device input and output in a timely manner. For example, a control system might require input data from a sensor to be sampled and processed at a regular rate so that output signals to actuators occur within specific delay bounds. Input/output (I/O) devices connect to the host computer using...
Autopilot systems are typically composed of an "inner loop" providing stability and control, while an "outer loop" is responsible for mission-level objectives, e.g. way-point navigation. Autopilot systems for UAVs are predominately implemented using Proportional, Integral Derivative (PID) control systems, which have demonstrated exceptional perform...
Autopilot systems are typically composed of an "inner loop" providing stability and control, while an "outer loop" is responsible for mission-level objectives, e.g. way-point navigation. Autopilot systems for UAVs are predominately implemented using Proportional, Integral Derivative (PID) control systems, which have demonstrated exceptional perform...
Timing guarantees are crucial to cyber-physical applications that must bound the end-to-end delay between sensing, processing and actuation. For example, in a flight controller for a multirotor drone, the data from a gyro or inertial sensor must be gathered and processed to determine the attitude of the aircraft. Sensor data fusion is followed by c...
Timing guarantees are crucial to cyber-physical applications that must bound the end-to-end delay between sensing, processing and actuation. For example, in a flight controller for a multirotor drone, the data from a gyro or inertial sensor must be gathered and processed to determine the attitude of the aircraft. Sensor data fusion is followed by c...
Many applications have service requirements that are not easily met by existing operating systems. Real-time and security-critical tasks, for example, often require custom OSes to meet their needs. However, development of special purpose OSes is a time-consuming and difficult exercise. Drivers, libraries and applications have to be written from scr...
Multi- and many-core processors are becoming increasingly popular in embedded systems. Many of these processors now feature hardware virtualization capabilities, as found on the ARM Cortex A15 and x86 architectures with Intel VT-x or AMD-V support.Hardware virtualization provides away to partition physical resources, including processor cores, memo...
This paper addresses the problem of scheduling tasks with different
criticality levels in the presence of I/O requests. In mixed-criticality
scheduling, higher criticality tasks are given precedence over those of lower
criticality when it is impossible to guarantee the schedulability of all tasks.
While mixed-criticality scheduling has gained atten...
Quest-V is a separation kernel, which partitions a system into a collection of sandboxes. Each sandbox encapsulates one or more processing cores, a region of machine physical memory, and a subset of I/O devices. Quest-V behaves like a distributed system on a chip, using explicit communication channels to exchange data and migrate addresses spaces b...
Shared caches in multicore processors are subject to contention from co-running threads. The resultant interference can lead to highly-variable performance for individual applications. This is particularly problematic for real-time applications, requiring predictable timing guarantees. Previous work has applied page coloring techniques to partition...
Multi- and many-core processors are becoming increasingly popular in embedded systems. Many of these processors now feature hardware virtualization capabilities, such as the ARM Cortex A15, and x86 processors with Intel VT-x or AMD-V support. Hardware virtualization offers opportunities to partition physical resources, including processor cores, me...
This article presents the design of user-level scheduling hierarchies in the Composite component-based system. The motivation for this is centered around the design of a system that is both dependable and predictable, and which is configurable to the needs of specific applications. Untrusted application developers can safely develop services and po...
Multi- and many-core processors are becoming increasingly popular in embedded
systems. Many of these processors now feature hardware virtualization
capabilities, such as the ARM Cortex A15, and x86 processors with Intel VT-x or
AMD-V support. Hardware virtualization offers opportunities to partition
physical resources, including processor cores, me...
Quest-V is a system we have been developing from the ground up, with
objectives focusing on safety, predictability and efficiency. It is designed to
work on emerging multicore processors with hardware virtualization support.
Quest-V is implemented as a "distributed system on a chip" and comprises
multiple sandbox kernels. Sandbox kernels are isolat...
Modern processors are increasingly featuring multiple cores, as well as
support for hardware virtualization. While these processors are common in
desktop and server-class computing, they are less prevalent in embedded and
real-time systems. However, smartphones and tablet PCs are starting to feature
multicore processors with hardware virtualization...
We describe a novel affect-inspired mechanism to improve the performance of computational systems operating in dynamic environments. In particular, we designed a mechanism that is based on aspects of the fear response in humans to dynamically reallocate operating system-level central processing unit (CPU) resources to processes as they are needed t...
In recent years, we have seen a proliferation of small, embedded, electronic devices controlled by computer processors as powerful as the ARM®. These devices are now responsible for tasks as varied as flying a plane, talking on a cellphone, or helping to perform surgery. Some of these tasks have severe consequences for a mistake caused by faulty pr...
This paper describes a real-time USB 2 subsystem for the Quest operating system. Quest is designed for real-time embedded systems. Such systems need to interact with their environment using sensors and actuators. On many embedded platforms today there is support for basic serial, USB 2.0 and 100 Mbps Ethernet. Of these, USB 2.0 supports the highest...
This paper outlines the design of `Quest-V', which is implemented as a
collection of separate kernels operating together as a distributed system on a
chip. Quest-V uses virtualization techniques to isolate kernels and prevent
local faults from affecting remote kernels. This leads to a high-confidence
multikernel approach, where failures of system s...
This paper describes the scheduling framework for a new operating system called "Quest". The three main goals of Quest are to ensure safety, predictability and efficiency of software execution. For this paper, we focus on one aspect of predictability, involving the integrated management of tasks and I/O events such as interrupts. Quest's scheduling...
In order to eliminate the costs of proprietary systems and special purpose hardware, many real-time and embedded computing platforms are being built on commodity operating systems and generic hardware. Unfortunately, many such systems are ill-suited to the low-latency and predictable timing requirements of real-time applications. This article, ther...
This paper presents HIRES, a system structured around predictable, hierarchical resource management (HRM). Applications and different subsystems use customized resource managers that control the allocation and usage of memory, CPU, and I/O. This increased resource management flexibility enables subsystems with different timing constraints to specia...
As software systems are becoming increasingly complex, the likelihood of faults and unexpected behaviors will naturally increase. Many researchers have developed methods to contain faults at run-time, by using software and hardware-based techniques to define protection domains. These approaches tend to impose isolation boundaries on software compon...
Modern chip-level multiprocessors (CMPs) contain multiple processor cores sharing a common last-level cache, memory interconnects, and other hardware resources. Workloads running on separate cores compete for these resources, often resulting in highlyvariable performance. It is generally desirable to co-schedule workloads that have minimal resource...
This paper presents the design of user-level scheduling hierarchies in the composite component-based system. The motivation for this is centered around the design of a system that is both dependable and predictable, and which is configurable to the needs of specific applications. Untrusted application developers can safely develop services and poli...
The increasing complexity of software poses significant challenges for real-time and embedded systems beyond those based purely on timeliness. With embedded systems and applications running on everything from mobile phones, PDAs, to automobiles, aircraft and beyond, an emerging challenge is to ensure both the functional and timing correctness of co...
For original paper see R. West et al., ibid., vol.53, no.6, p.744-759, (2004). This short report clarifies the behavior of DWCS with respect to Theorem 3 in our previously published paper and describes an alternative approach to make guarantees for arbitrary window-constraints
This paper focuses on a technique to empower commercial-off-the-shelf (COTS) systems with an execution environment, and corresponding services, to support realtime and embedded applications. By leveraging COTS systems, we are able to reduce the potentially expensive maintenance and development costs of proprietary solutions. We describe a system ca...
Overlay networks have become popular in recent times for content distribution and end-system multicasting of me - dia streams. In the latter case, the motivation is based on the lack of widespread deployment of IP multicast and the ability to perform end-host processing. However, construc t- ing routes between various end-hosts, so that data can be...
This paper presents an asynchronous event handling mechanism for real-time applications that leverages exist- ing system services in COTS systems. In our implementa- tion, event dispatching is initiated within bottom-half in- terrupt handling routines, in order to support predictable, safe, and efficient event handling functionality at user-level....
In most operating systems, the handling of interrupts is typically performed within the address space of the kernel. Moreover, interrupt handlers are invoked asynchronously during the execution of arbitrary processes. Unfortunately, this allows for a process's time quantum to be consumed by arbitrary interrupt handling. To avoid significant impact...
In order to eliminate the costs of proprietary systems and special purpose hardware, many real-time and embedded computing platforms are being built on commodity operating systems and generic hardware. Unfortunately, many such systems are ill-suited to the low-latency and predictable timing requirements of real-time applications. This paper, theref...
With the increased use of "Virtual Machines" (VMs) as vehicles that isolate applications running on the same host, it is necessary to devise techniques that enable multiple VMs to share underlying resources both fairly and efficiently. To that end, one common approach is to deploy complex resource management techniques in the hosting infrastructure...
This paper presents an approach to window-constrained scheduling, that is suitable for multimedia and weakly-hard real-time systems. Our algorithm called virtual deadline scheduling (VDS) attempts to service m out of k job instances by their virtual deadlines, that may be some finite time after the corresponding real-time deadlines. By carefully de...
Research on the construction of logical overlay networks has gained significance in recent times. This is partly due to work on peer-to-peer (P2P) systems for locating and retrieving distributed data objects, and also scalable content distribution using end-system multicast techniques. However, there are emerging applications that require the real-...
This paper is centered around the design of a thread- and memory-safe language, primarily for the compilation of application-specific services for extensible operating sys- tems. We describe various issues that have influenced the design of our language, called Cuckoo, that guarantees safety of programs with potentially asynchronous flows of contro...
Cluster computing environments built from commodity hardware have provided a cost-effective solution for many scientific and high-performance applications. Likewise, middleware techniques have provided the basis for large-scale applications to communicate and exchange data across the various end-hosts in a distributed system. Unfortunately, middlew...
Many applications rely on the kernel's ability specialize and extend its functionality in order to achieve high performance and meet application-specif QoS requirements. However, general-urpose operating systems lack sufficient support for flexible and scalable event-based communication between user-level applications and kernel-level extensions. T...
With the increase in available network bandwidth and reduction in network latency, more emphasis has been placed on end-host QoS to provide quality of service guarantees for distributed real-time applications, such as video streaming servers, video conferencing applications, and VoIP applications. End-host QoS requires support from the underlying o...
Many distributed applications require real-time and quality of service guarantees, which need to be observed even under changing resource requirements and resource availability. Our group is developing a version of the Linux kernel, termed ELinux, that oers mechanisms to deal with dynamic resource changes and to exploit and adjust to runtime change...
Operating system enhancements to support real-time and multimedia applications often include specializations and extensions of kernel functionality, as with the kernel HTTP daemon (khttpd) in Linux, for instance. To enable ecient and exible interactions of such extensions with user-level functionality, we have developed ECalls, a lightweight, bidir...
This paper describes an algorithm for scheduling packets in real-time multimedia data streams. Common to these classes of data streams are service constraints in terms of bandwidth and delay. However, it is typical for real-time multimedia streams to tolerate bounded delay variations and, in some cases, finite losses of packets. We have therefore d...
Cluster computing environments built from commodity hardware have provided a cost-effective solution for many scientific and high-performance applications. Likewise, middleware techniques have provided the basis for large-scale applications to communicate and exchange data across the various end-hosts in a distributed system. Unfortunately, middlew...
Overlay topologies are now popular with many emerging peer-to-peer (P2P) systems, to efficiently locate and retrieve information. In contrast, the focus of this work is to use overlay topologies for transporting real-time streams on an Internet-scale. We aim to build an overlay communication system, for routing real-time data to potentially many th...
The ubiquity of the Internet has stimulated the development of data- rather than processor-intensive applications. Such data-intensive applications include streaming media, interactive distance learning, and live web-casts. While plenty of research has focused on the real-time delivery of media streams to various subscribers, no solutions have been...
Advances in network technologies have introduced opportunities for applications such as video conferencing, tele-medicine, and real-time multimedia applications. These applications require strict performance (or quality of service) requirements on the information transferred across a network. This paper describes a new algorithm, called Dynamic Win...
Current research on Internet-based distributed systems emphasizes the scalability of overlay topologies for efficient search and retrieval of data items, as well as routing amongst peers. However, most existing approaches fail to address the transport of data across these logical networks in accordance with quality of service (QoS) constraints. Con...
ShareStreams (scalable hardware architectures for stream schedulers) is a unified hardware architecture for realizing a range of wire-speed packet scheduling disciplines for output link scheduling. This paper presents opportunities to exploit parallelism, design issues, tradeoffs and evaluation of the FPGA hardware architecture for use in switch ne...
This paper presents a new approach to windowconstrained scheduling, suitable for multimedia and weakly-hard real-time systems. We originally developed an algorithm, called Dynamic Window-Constrained Scheduling (DWCS), that attempts to guarantee no more than x out of y deadlines are missed for real-time jobs such as periodic CPU tasks, or delay-cons...
Current low-level networking abstractions on modern operating systems are commonly implemented in the kernel to provide sufficient performance for general purpose applications. However, it is desirable for high performance applications to have more control over the networking subsystem to support optimizations for their specific needs. One approach...
Current research in Internet-based distributed systems emphasizes the scalability of overlay topologies for efficient search and retrieval of data items, as well as routing amongst peers. However, most existing approaches fail to address the routing of data across these logical networks in accordance with quality of service (QoS) constraints. This...
Overlay topologies are now popular with many emerg- ing peer-to-peer (P2P) systems, to efficiently locate and re- trieve information. In contrast, the focus of this work is to use overlay topologies for transporting real-time streams on an Internet-scale. We aim to build an overlay communica- tion system, for routing real-time data to potentially m...
This paper describes an algorithm for scheduling packets in real-time multimedia data streams. Common to these classes of data streams are service constraints in terms of bandwidth and delay. However, it is typical for realtime multimedia streams to tolerate bounded delay variations and, in some cases, finite losses of packets. We have therefore de...
This paper presents the embedded realization and experimental evaluation of a media stream scheduler on network interface (NI) CoProcessor boards. When using media frames as scheduling units, the scheduler is able to operate in real-time on streams traversing the CoProcessor, resulting in its ability to stream video to remote clients at real-time r...
deployed for the specific needs of individual applications. This paper describes a safe and efficient method for userlevel extensibility that requires only minimal changes to the kernel. A sandboxing technique is described that supports multiple logical protection domains within the same address space at user-level. This approach allows application...
ShareStreams (Scalable Hardware Architectures for Stream Schedulers) is a canonical architecture for realizing a range of scheduling disciplines. This paper discusses the design choices and tradeoffs made in the development of a endsystem/host-based router realization of the ShareStreams architecture. We evaluate the impact of block decisions and a...
This' paper presents' the ShareStreams (Scalable Hardware Architecture for Stream Schedulers') architecture, hardware and systems software for scheduling gigabit packet streams in cluster server machines and switches. We can provide EDF, Staticpriority, Fair-share and DWCS native scheduling support for real-time streams and best-effort streams. Usi...
ing framework that can be configured to implement most existing scheduling disciplines such as WFQ [3]. While DWCS addresses the issue of provisioning QoS, the complexity of the priority update computations poses a challenging implementation problem for scheduling a large number of streams over multi-gigabit links. For example, the ethernet frame t...
This paper describes our experience using Dynamic Window-Constrained Scheduling (DWCS) [13, 14, 12, 11] to schedule processes (and threads) on available CPUs in a Linux system. We describe the implementation of a kernel-loadable module that replaces the default Linux scheduler. Each process scheduled using DWCS has a request period of T time units...
General-purpose operating systems are ill-equipped to meet the quality of service (QoS) requirements of complex real-time applications. Consequently, many classes of realtime applications have either been carefully developed to compensate for inadequate system support, or they have been developed to run on special purpose systems. This paper focuse...
We present an architecture and hardware for scheduling gigabit packet streams in server clusters that combines a network processor datapath and an FPGA for use in server NICs and server cluster switches. Our architectural framework can provide EDF static-priority, fair-share and DWCS native scheduling support for best effort and real-time streams....
Distributed multimedia applications require support from the underlying operating system to achieve and maintain their desired Quality of Service (QoS). This has led to the creation of novel task and message schedulers and to the development of QoS mechanisms that allow applications to explicitly interact with relevant operating system services. Ho...
We present an architecture and hardware for scheduling gigabit packet streams in server clusters that combines a Network Processor datapath and an FPGA for use in server NICs and server cluster switches. Our architectural framework can provide EDF, static-priority, fair-share and DWCS native scheduling support for best-effort and real-time streams....
The paper describes a software mechanism, called quality events,
that utilizes application- and/or system-level service extensions to
provide quality of service (QoS) guarantees to end users. Such
extensions offer flexibility in: (1) how application- and/or
system-level services are dynamically managed to maintain required
quality, (2) when such ma...
This paper describes how Dynamic Window-Constrained Scheduling (DWCS) can guarantee real-time service to packets from multiple streams with different performance objectives. We show that: (1) DWCS can guarantee that no more than x packets miss their deadlines for every y consecutive packets requiring service, as long as the minimum aggregate bandwi...
This paper presents the embedded construction and experimental results for a media scheduler on i960 RD equipped I2O Network Interfaces (NI) used for streaming. We utilize the Distributed Virtual Communication Machine (DVCM) infrastructure developed by us which allows run-time extensions to provide scheduling for streams that may require it. The sc...
This paper presents the embedded construction and experimental results for a media scheduler on i960 RD equipped I20 Network Interfaces (NI) used for streaming. We utilize the Distributed Virtual Communication Machine (DVCM) infrastructure developed by us which allows run-time extensions to provide scheduling for streams that may require it. The sc...
Describes how dynamic window-constrained scheduling (DWCS) can guarantee real-time service to packets from multiple streams with different performance objectives. We show that: (1) DWCS can guarantee that no more than x packets miss their deadlines for every y consecutive packets requiring service, as long as the minimum aggregate bandwidth require...
This paper describes an algorithm, called Dynamic Window-Constrained Scheduling (DWCS), designed to meet the service constraints on packets from multiple, network-bound media streams with different performance objectives. Using only two attributes, a deadline and a loss-tolerance per packet stream, DWCS: (1) can limit the number of late packets ove...
This paper describes how Dynamic Window-Constrained Scheduling (DWCS) can guarantee hard realtime service to activities, such as network-bound packets, and CPU-bound threads. We show that: (1) DWCS can guarantee there are no more than x missed deadlines for every y requests for service, (2) DWCS bounds the delay of service to real-time activities e...
Introduction 1.1. Problem Statement Complex distributed applications, including groupware[22], virtual environments (eg., DIVE[10, 28]), distributed games[50], distributed interactive simulations (DIS)[39], real-time multimedia, tele-medicine, and scientific applications (eg., atmospheric modeling), require quality of service (QoS) guarantees on th...
Complex distributed applications, including virtual environments, and real-time multimedia require quality of service (QoS) guarantees in the end-to-end transfer of information across a network. For many applications, these QoS requirements are formulated on applicationlevel objects and are dynamic, since they may change during the execution of the...
This project explores the development of a hardware/software
infrastructure to enable the provision of quality of service (QoS)
guarantees in high performance networks used to configure clusters of
workstations/PCs. These networks of workstations (NOWs) have emerged as
a viable high performance computational vehicle and are also being
called upon t...