Filip Pizlo

dblp:78/6281 · DBLP profile ↗
← Back
19ranked-venue papers
10as first author
0since 2021 · last 2017
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 6 first-authorSystems, architecture and hardware · 7 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
6 papers
Runtime systems and virtual machines · 78% Programming languages and type systems · 12% Operating systems · 10%
Computer architecture, parallel and distributed computing, and storage systems
6 papers
Embedded and real-time systems · 82% Memory systems · 18%

Topics — the 9 heaviest of 10, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
garbage collection
0.662011
Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011
Schism: fragmentation-tolerant real-time garbage collection · PLDI 2010
High-level programming of embedded hard real-time devices · EuroSys 2010
Runtime systems and virtual machines › garbage collection
real-time garbage collection
0.442010
Schism: fragmentation-tolerant real-time garbage collection · PLDI 2010
High-level programming of embedded hard real-time devices · EuroSys 2010
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Operating systems › resource management › process management
CPU scheduling
0.112011
Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011
Embedded and real-time systems
real-time scheduling
0.122009
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
A study of concurrent real-time garbage collectors · PLDI 2008
Programming languages and type systems
managed languages
0.132011
Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011
High-level programming of embedded hard real-time devices · EuroSys 2010
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Embedded and real-time systems › real-time scheduling
schedulability analysis
0.112009
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Memory systems
memory management
0.112006
An Emprical Evaluation of Memory Management Alternatives for Real-Time Java · RTSS 2006
Embedded and real-time systems › real-time programming languages
real-time java
0.112006
An Emprical Evaluation of Memory Management Alternatives for Real-Time Java · RTSS 2006
Programming languages and type systems › object-oriented programming
java
0.012010
High-level programming of embedded hard real-time devices · EuroSys 2010

Methods — techniques the papers use, named apart from their topics

slack-based scheduling · 0.4periodic scheduling · 0.4mark-region collection · 0.4hybrid scheduling · 0.2replication-copying collection · 0.2concurrent garbage collection · 0.2arraylets · 0.2empirical evaluation · 0.1
YearPublicationVenuePosition
2017 The JavaScriptCore virtual machine (invited talk)
abstract
JavaScriptCore (JSC) is an open-source high-performance implementation of JavaScript. JSC is used in the WebKit open source browser engine as well as a system framework on macOS and iOS. This talk will give a broad high-level overview of JSC’s performance-oriented architecture, including specific details about the object model, garbage collector, optimizing compilers, type inference, and deoptimization.
Filip Pizlo
DLS1
2011 A family of real-time Java benchmarks
abstract
Abstract Java is becoming a viable platform for real‐time computing. There are production and research real‐time Java VMs, as well as applications in both the military and civil sectors. Technological advances and increased adoption of real‐time Java contrast significantly with the lack of benchmarks. Existing benchmarks are either synthetic micro‐benchmarks, or proprietary, making it difficult to independently verify and repeat reported results. This paper presents the CDx benchmark, a family of open‐source implementations of the same application that target different real‐time virtual machines. CDx is, at its core, a real‐time benchmark with a single periodic task, which implements an idealized aircraft collision detection algorithm. The benchmark can be configured to use different sets of real‐time features and comes with a number of workloads. It can be run on standard Java virtual machines, on real‐time and Safety Critical Java virtual machine, and a C version is provided to compare with native performance. Copyright © 2010 John Wiley & Sons, Ltd.
Tomas Kalibera, Jeff Hagelberg, Petr Maj, Filip Pizlo, Ben L. Titzer, Jan Vitek
Concurr. Comput. Pract. Exp.4
2011 Scheduling real-time garbage collection on uniprocessors
abstract
Managed languages such as Java and C# are increasingly being considered for hard real-time applications because of their productivity and software engineering advantages. Automatic memory management, or garbage collection, is a key enabler for robust, reusable libraries, yet remains a challenge for analysis and implementation of real-time execution environments. This article comprehensively compares leading approaches to hard real-time garbage collection. There are many design decisions involved in selecting a real-time garbage collection algorithm. For time-based garbage collectors on uniprocessors one must choose whether to use periodic , slack-based or hybrid scheduling. A significant impediment to valid experimental comparison of such choices is that commercial implementations use completely different proprietary infrastructures. We present Minuteman, a framework for experimenting with real-time collection algorithms in the context of a high-performance execution environment for real-time Java. We provide the first comparison of the approaches, both experimentally using realistic workloads, and analytically in terms of schedulability.
Tomas Kalibera, Filip Pizlo, Antony L. Hosking, Jan Vitek
ACM Trans. Comput. Syst.2
2010 High-level programming of embedded hard real-time devices
abstract
While managed languages such as C# and Java have become quite popular in enterprise computing, they are still considered unsuitable for hard real-time systems. In particular, the presence of garbage collection has been a sore point for their acceptance for low-level system programming tasks. Real-time extensions to these languages have the dubious distinction of, at the same time, eschewing the benefits of high-level programming and failing to offer competitive performance. The goal of our research is to explore the limitations of high-level managed languages for real-time systems programming. To this end we target a real-world embedded platform, the LEON3 architecture running the RTEMS real-time operating system, and demonstrate the feasibility of writing garbage collected code in critical parts of embedded systems. We show that Java with a concurrent, real-time garbage collector, can have throughput close to that of C programs and comes within 10% in the worst observed case on realistic benchmark. We provide a detailed breakdown of the costs of Java features and their execution times and compare to real-time and throughput-optimized commercial Java virtual machines.
Filip Pizlo, Lukasz Ziarek, Ethan Blanton, Petr Maj, Jan Vitek
EuroSys1
2010 Schism: fragmentation-tolerant real-time garbage collection
abstract
Managed languages such as Java and C# are being considered for use in hard real-time systems. A hurdle to their widespread adoption is the lack of garbage collection algorithms that offer predictable space-and-time performance in the face of fragmentation. We introduce SCHISM/CMR, a new concurrent and real-time garbage collector that is fragmentation tolerant and guarantees time-and-space worst-case bounds while providing good throughput. SCHISM/CMR combines mark-region collection of fragmented objects and arrays (arraylets) with separate replication-copying collection of immutable arraylet spines, so as to cope with external fragmentation when running in small heaps. We present an implementation of SCHISM/CMR in the Fiji VM, a high-performance Java virtual machine for mission-critical systems, along with a thorough experimental evaluation on a wide variety of architectures, including server-class and embedded systems. The results show that SCHISM/CMR tolerates fragmentation better than previous schemes, with a much more acceptable throughput penalty.
Filip Pizlo, Lukasz Ziarek, Petr Maj, Antony L. Hosking, Ethan Blanton, Jan Vitek
PLDI1
2010 Reflexes: Abstractions for integrating highly responsive tasks into Java applications
abstract
Achieving submillisecond response times in a managed language environment such as Java or C# requires overcoming significant challenges. In this article, we propose Reflexes, a programming model and runtime system infrastructure that lets developers seamlessly mix highly responsive tasks and timing-oblivious Java applications. Thus enabling gradual addition of real-time features, to a non-real-time application without having to resort to recoding the real-time parts in a different language such as C or Ada. Experiments with the Reflex prototype implementation show that it is possible to run a real-time task with a period of 45 μs with an accuracy of 99.996% (only 0.001% worse than the corresponding C implementation) in the presence of garbage collection and heavy load ordinary Java threads.
Jesper Honig Spring, Filip Pizlo, Jean Privat, Rachid Guerraoui, Jan Vitek
ACM Trans. Embed. Comput. Syst.2
2009 Loci: Simple Thread-Locality for Java
Tobias Wrigstad, Filip Pizlo, Fadi Meawad, Jan Vitek
ECOOP2
2009 Scheduling Hard Real-Time Garbage Collection
abstract
Managed languages such as Java and C# are increasingly being considered for hard real-time applications because of their productivity and software engineering advantages. Automatic memory management, or garbage collection, is a key enabler for robust, reusable libraries, yet remains a challenge for analysis and implementation of real-time execution environments. This paper comprehensively compares the two leading approaches to hard real-time garbage collection. While there are many design decisions involved in selecting a real-time garbage collection algorithm, for time-based garbage collectors researchers and practitioners remain undecided as to whether to choose periodic scheduling or slack-based scheduling. A significant impediment to valid experimental comparison is that the commercial implementations use completely different proprietary infrastructures. Here, we present Minuteman, a framework for experimenting with real-time collection algorithms in the context of a high-performance execution environment for real-time Java. We provide the first comparison of the two approaches, both experimentally using realistic workloads, and analytically in terms of schedulability.
Tomas Kalibera, Filip Pizlo, Antony L. Hosking, Jan Vitek
RTSS2
2009 Accurate garbage collection in uncooperative environments revisited
abstract
Abstract Implementing a concurrent programming language such as Java by means of a translator to an existing language is attractive as it provides portability over all platforms supported by the host language and reduces development time—as many low‐level tasks can be delegated to the host compiler. The C and C++ programming languages are popular choices for many language implementations due to the availability of efficient compilers on a wide range of platforms. For garbage‐collected languages, however, they are not a perfect match as no support is provided for accurately discovering pointers to heap‐allocated data on thread stacks. We evaluate several previously published techniques and propose a new mechanism, lazy pointer stacks, for performing accurate garbage collection in such uncooperative environments. We implemented the new technique in the Ovm Java virtual machine with our own Java‐to‐C/C++ compiler using GCC as a back‐end compiler. Our extensive experimental results confirm that lazy pointer stacks outperform existing approaches: we provide a speedup of 4.5% over Henderson's accurate collector with a 17% increase in code size. Accurate collection is essential in the context of real‐time systems, we thus validate our approach with the implementation of a real‐time concurrent garbage collection algorithm. Copyright © 2009 John Wiley & Sons, Ltd.
Jason Baker, Antonio Cunei, Tomas Kalibera, Filip Pizlo, Jan Vitek
Concurr. Comput. Pract. Exp.4
2008 Memory Management for Real-Time Java: State of the Art
abstract
The real-time specification for Java extends the Java platform to support real-time processing and introduces a region-based memory model, called scoped memory, which side-steps the Java garbage collector. While scoped memory succeeds in protecting real-time tasks from execution time jitter, practical experience points to shortcomings. This paper takes stock of the state of the art in memory management for RTSJ programs.
Filip Pizlo, Jan Vitek
ISORC1
2008 Path specialization: reducing phased execution overheads
abstract
As garbage collected languages become widely used, the quest for reducing collection overheads becomes essential. In this paper, we propose a compiler optimization called path specialization that shrinks the cost of memory barriers for a wide variety of garbage collectors including concurrent, incremental, and real-time collectors. Path specialization provides a non-trivial decrease in write-barrier overheads and a drastic reduction of read-barrier overheads. It is effective when used with collectors that go through various phases each employing a different barrier behavior, and is most effective for collectors that have an idle phase, in which no barrier activity is required. We have implemented path specialization in the Bartok compiler and runtime for C# and tested it with state-of-the-art concurrent and real-time collectors, demonstrating its efficacy.
Filip Pizlo, Erez Petrank, Bjarne Steensgaard
ISMM1
2008 A study of concurrent real-time garbage collectors
abstract
Concurrent garbage collection is highly attractive for real-time systems, because offloading the collection effort from the executing threads allows faster response, allowing for extremely short deadlines at the microseconds level. Concurrent collectors also offer much better scalability over incremental collectors. The main problem with concurrent real-time collectors is their complexity. The first concurrent real-time garbage collector that can support fine synchronization, STOPLESS, has recently been presented by Pizlo et al. In this paper, we propose two additional (and different) algorithms for concurrent real-time garbage collection: CLOVER and CHICKEN. Both collectors obtain reduced complexity over the first collector STOPLESS, but need to trade a benefit for it. We study the algorithmic strengths and weaknesses of CLOVER and CHICKEN and compare them to STOPLESS. Finally, we have implemented all three collectors on the Bartok compiler and runtime for C# and we present measurements to compare their efficiency and responsiveness.
Filip Pizlo, Erez Petrank, Bjarne Steensgaard
PLDI1
2007 Accurate Garbage Collection in Uncooperative Environments with Lazy Pointer Stacks
Jason Baker, Antonio Cunei, Filip Pizlo, Jan Vitek
CC3
2007 Stopless: a real-time garbage collector for multiprocessors
abstract
We present Stopless: a concurrent real-time garbage collector suitable for modern multiprocessors running parallel multithreaded applications. Creating a garbage-collected environment that supports real-time on modern platforms is notoriously hard,especially if real-time implies lock-freedom. Known real-time collectors either restrict the real-time guarantees to uniprocessors only, rely on special hardware, or just give up supporting atomic operations (which are crucial for lock-free software). Stopless is the first collector that provides real-time responsiveness while preserving lock-freedom, supporting atomic operations, controlling fragmentation by compaction, and supporting modern parallel platforms. Stopless is adequate for modern languages such as C# or Java. It was implemented on top of the Bartok compiler and runtime for C# and measurements demonstrate high responsiveness (a factor of a 100 better than previously published systems), virtually no pause times, good mutator utilization, and acceptable overheads.
Filip Pizlo, Daniel Frampton, Erez Petrank, Bjarne Steensgaard
ISMM1
2007 Hierarchical real-time garbage collection
abstract
Memory management is a critical issue for correctness and performance in real-time embedded systems. Recent work on real-time garbage collectors has shown that it is possible to provide guarantees on worst-case pause times and minimum mutator utilization time. This paper presents a new hierarchical real-time garbage collection algorithm for mixed-priority and mixed-criticality environments. With hierarchical garbage collection, real-time programmers can partition the heap into a number of heaplets and for each partition choose to run a separate collector with a schedule that matches the allocation behavior and footprint of the real-time task using it. This approach lowers worst-case response times of real-time applications by 26%, while almost doubling mutator utilization - all with only minimal changes to the application code.
Filip Pizlo, Antony L. Hosking, Jan Vitek
LCTES1
2007 Reflexes: abstractions for highly responsive systems
abstract
Commercial Java virtual machines are designed to maximize the performance of applications at the expense of predictability. High throughput garbage collection algorithms, for example, can introduce pauses of 100 milliseconds or more. We are interested in supporting applications with response times in the tens of microseconds and their integration with larger timing-oblivious applications in the same Java virtual machine. We propose Reflexes, a new abstraction for writing highly responsive systems in Java and investigate the virtual machine support needed to add Reflexes to a Java environment. Our implementation of Reflexes was evaluated on several programs including an audio-processing application running at 22.05KHz. The number of missed deadlines, less than 0.2% for 10 million observations, compares favorably to a native C implementation.
Jesper Honig Spring, Filip Pizlo, Rachid Guerraoui, Jan Vitek
VEE2
2007 A real-time Java virtual machine with applications in avionics
abstract
This paper reports on our experience with the implementation of the Real-time Specification for Java on the Ovm open source Java virtual machine. We describe the architecture and main design decisions involved in implementing real-time Java on Ovm. We present the first use of Real-time Java in avionics in the context of control software for a ScanEagle Unmanned Aerial Vehicle.
Austin Armbruster, Jason Baker, Antonio Cunei, Chapman Flack, David Holmes, Filip Pizlo, Edward Pla, Marek Prochazka, Jan Vitek
ACM Trans. Embed. Comput. Syst.6
2006 An Emprical Evaluation of Memory Management Alternatives for Real-Time Java
abstract
Memory management is a critical issue for correctness and performance of hard-real time systems. Java environments usually incorporate high-throughput garbage collection algorithms, but these algorithms can induce pause times in excess of 100 milliseconds. This is not acceptable for a real-time system. Two approaches for remedying this problem are being investigated. The pause times can be bounded with a real-time garbage collector; or a means to program around the collector entirely can be provided, as is done in the real-time specification for Java with its scoped memory interface. This paper presents the first side-by-side empirical evaluation of the impact of memory management regimes on realistic realtime applications. We present usability arguments as well as a detailed performance comparison of scoped memory and real-time garbage collection. Experience with medium sized systems suggests that while programming with scoped memory is error prone, it provides substantially better throughput. We have observed a throughput reduction of up to 37% and, in the worst-case, an 80% latency penalty for real-time garbage collection
Filip Pizlo, Jan Vitek
RTSS1
2004 Real-Time Java Scoped Memory: Design Patterns and Semantics
abstract
One of the most powerful features of the real-time specification for Java (RTSJ) is the new memory management model based on scoped memory areas. This model allows programmers to ensure timely reclamation of memory and predictable performance, at the cost of an unfamiliar programming model. We report on experience using and implementing scoped memory areas. Our contribution is twofold: (i) we give an informal introduction to the semantics of the scope management rules of the RTSJ, (ii) we present a number of design patterns for effectively using the scoped memory area API
Filip Pizlo, J. M. Fox, David Holmes, Jan Vitek
ISORC1