Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Bjarne Steensgaard

dblp:s/BjarneSteensgaard · DBLP profile ↗
← Back
13ranked-venue papers
4as first author
0since 2021 · last 2009
—ORCID · none

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

Software engineering, systems software and programming languages · 11 · 4 first-authorSystems, architecture and hardware · 2

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
Concurrent programming · 52% Runtime systems and virtual machines · 20% Operating systems · 13%
Network and information security
1 paper
Systems and software security · 100%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Embedded and real-time systems · 48% Distributed systems · 26% Parallel and multicore computing · 26%

Topics — the 17 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › non-blocking algorithms
lock-freedom
0.112009
Progress guarantee for parallel programs via bounded lock-freedom · PLDI 2009
Concurrent programming › concurrency correctness
progress guarantees
0.112009
Progress guarantee for parallel programs via bounded lock-freedom · PLDI 2009
Concurrent programming › non-blocking algorithms
wait-free synchronization
0.112009
Progress guarantee for parallel programs via bounded lock-freedom · PLDI 2009
Runtime systems and virtual machines
garbage collection
0.112008
A study of concurrent real-time garbage collectors · PLDI 2008
Systems and software security
operating system security
0.112007
Sealing OS processes to improve dependability and safety · EuroSys 2007
Operating systems › system security › operating system security › protection mechanism › isolation
process isolation
0.112007
Sealing OS processes to improve dependability and safety · EuroSys 2007
Embedded and real-time systems
real-time scheduling
0.012008
A study of concurrent real-time garbage collectors · PLDI 2008
Program analysis › flow analysis
flow-insensitive analysis
0.011996
Points-to Analysis in Almost Linear Time · POPL 1996
Program analysis › static analysis
pointer analysis
0.011996
Points-to Analysis in Almost Linear Time · POPL 1996
Distributed systems › distributed system architecture › distributed operating systems
process migration
0.011995
Object and Native Code Thread Mobility Among Heterogeneous Computers · SOSP 1995
Parallel and multicore computing › parallel programming runtimes › thread management
thread migration
0.011995
Object and Native Code Thread Mobility Among Heterogeneous Computers · SOSP 1995
Compilers and program optimization
code motion
0.011994
Value Dependence Graphs: Representation without Taxation · POPL 1994
Compilers and program optimization › compiler optimization › redundancy elimination
partial redundancy elimination
0.011994
Value Dependence Graphs: Representation without Taxation · POPL 1994
Program analysis
program representation
0.011994
Value Dependence Graphs: Representation without Taxation · POPL 1994
Compilers and program optimization
program transformation
0.011994
Value Dependence Graphs: Representation without Taxation · POPL 1994
Programming languages and type systems › type inference
constraint-based type inference
0.011996
Points-to Analysis in Almost Linear Time · POPL 1996
Programming languages and type systems
type inference
0.011996
Points-to Analysis in Almost Linear Time · POPL 1996

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

mark-region collection · 0.2sealing · 0.1bounded lock-freedom analysis · 0.1machine-independent representation · 0.0bus stops · 0.0demand dependence · 0.0data flow analysis · 0.0
YearPublicationVenuePosition
2009 Progress guarantee for parallel programs via bounded lock-freedom
abstract
Parallel platforms are becoming ubiquitous with modern computing systems. Many parallel applications attempt to avoid locks in order to achieve high responsiveness, aid scalability, and avoid deadlocks and livelocks. However, avoiding the use of system locks does not guarantee that no locks are actually used, because progress inhibitors may occur in subtle ways through various program structures. Notions of progress guarantee such as lock-freedom, wait-freedom, and obstruction-freedom have been proposed in the literature to provide various levels of progress guarantees.
Erez Petrank, Madan Musuvathi, Bjarne Steensgaard
PLDI3
2009 A lock-free, concurrent, and incremental stack scanning for garbage collectors
abstract
Two major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause lengths have decreased significantly during the years, especially through the use of concurrent garbage collectors. For modern concurrent collectors, the longest pause is typically created by the need to atomically scan the runtime stack. All practical concurrent collectors that we are aware of must obtain a snapshot of the pointers on each thread’s runtime stack, in order to reclaim objects correctly. To further reduce the length of the collector pauses, incremental stack scans were proposed. However, previous such methods employ locks to stop the mutator from accessing a stack frame while it is being scanned. Thus, these methods introduce a potential long and unpredictable pauses for a mutator thread. In this work we propose the first concurrent, incremental, and lock-free stack scanning for garbage collectors, allowing high responsiveness and support for programs that employ fine-synchronization to avoid locks. Our solution can be employed by all concurrent collectors that we are aware of, it is lock-free, it imposes a negligible overhead on the program execution, and it supports the special in-stack references existing in languages like C#.
Gabriel Kliot, Erez Petrank, Bjarne Steensgaard
VEE3
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
ISMM3
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
PLDI3
2007 Sealing OS processes to improve dependability and safety
abstract
In most modern operating systems, a process is a hardware-protected abstraction for isolating code and data. This protection, however, is selective. Many common mechanisms---dynamic code loading, run-time code generation, shared memory, and intrusive system APIs---make the barrier between processes very permeable. This paper argues that this traditional open process architecture exacerbates the dependability and security weaknesses of modern systems.
Galen C. Hunt, Mark Aiken, Manuel Fähndrich, Chris Hawblitzel, Orion Hodson, James R. Larus, Steven Levi, Bjarne Steensgaard, David Tarditi, Ted Wobber
EuroSys8
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
ISMM4
2000 Fast Escape Analysis and Stack Allocation for Object-Based Programs
David Gay, Bjarne Steensgaard
CC2
2000 Thread-Specific Heaps for Multi-Threaded Programs
abstract
Garbage collection for a multi-threaded program typically involves either stopping all threads while doing the collection or involves copious amounts of synchronization between threads. However, a lot of data is only ever visible to a single thread, and such data should ideally be collected without involving other threads.
Bjarne Steensgaard
ISMM1
2000 Marmot: an optimizing compiler for Java
abstract
The Marmot system is a research platform for studying the implementation of high level programming languages. It currently comprises an optimizing native-code compiler, runtime system, and libraries for a large subset of Java. Marmot integrates well-known representation, optimization, code generation, and runtime techniques with a few Java-specific features to achieve competitive performance. This paper contains a description of the Marmot system design, along with highlights of our experience applying and adapting traditional implementation techniques to Java. A detailed performance evaluation assesses both Marmot's overall performance relative to other Java and C++ implementations, and the relative costs of various Java language features in Marmot-compiled code. Our experience with Marmot has demonstrated that well-known compilation techniques can produce very good performance for static Java applications – comparable or superior to other Java systems, and approaching that of C++ in some cases. Copyright © 2000 John Wiley & Sons, Ltd.
Robert P. Fitzgerald, Todd B. Knoblock, Erik Ruf, Bjarne Steensgaard, David Tarditi
Softw. Pract. Exp.4
1996 Points-to Analysis by Type Inference of Programs with Structures and Unions
Bjarne Steensgaard
CC1
1996 Points-to Analysis in Almost Linear Time
abstract
We present an interprocedural flow-insensitive points-to analysis based on type inference methods with an almost linear time cost complexity To our knowledge, this is the asymptotically fastest non-trivial interprocedural points-to analysis algorithm yet described The algorithm is based on a non-standard type system. The type inferred for any variable represents a set of locations and includes a type which in turn represents a set of locations possibly pointed to by the variable. The type inferred for a function variable represents a set of functions It may point to and includes a type signature for these functions The results are equivalent to those of a flow-insensitive alias analysis (and control flow analysis) that assumes alias relations are reflexive and transitive.This work makes three contributions. The first is a type system for describing a universally valid storage shape graph for a program in linear space. The second is a constraint system which often leads to better results than the "obvious" constraint system for the given type system The third is an almost linear time algorithm for points-to analysis by solving a constraint system.
Bjarne Steensgaard
POPL1
1995 Object and Native Code Thread Mobility Among Heterogeneous Computers
abstract
We present a technique for moving objects and threads among heterogeneous computers at the native code level.To enable mobility of threads running native code, we convert thread states among machine-dependent and machine-independent formats.We introduce the concept of bLts stops, which are machine-independent representations of program points as represented by program counter values, The concept of bus stops can be used also for other purposes, <~.g., to aid inspecting and debugging optimized code, garbage collection e~c.We also discuss techniques for thread mobility among processors executing differently optimized codes.We demonsti-ate the viabi lily of our ideas by providing a prototype implementation ot' object and thread mobility among hetero-gWCOUS computers,The prototype uses the Emerald distributed progt-amming language without modification; we have merely extended the Emerald runtime system and the code generator of the Emerald compiler.Our extensions allow object and thread mobility among VAX, Sun-3, HP9000/300, and Sun SPARC workstations.The excellent intra-node performance of the original homogeneous Emerald is retained: migrated threads run at native code speed bet'ore and after migration; the same speed as on homogeneous Emeralci and close to C code performance.Our implementation of mobility hm not been optimized:thread mobility and trans-architecture invocations take about 60% longer than in lhe homogeneous implementation.We believe this is the first implementation of full object and [hrcad mobility among heterogeneous computers with threads execu(ing native code. 1
Bjarne Steensgaard, Eric Jul
SOSP1
1994 Value Dependence Graphs: Representation without Taxation
abstract
The value dependence graph (VDG) is a sparse dataflow-like representation that simplifies program analysis and transformation. It is a functional representation that represents control flow as data flow and makes explicit all machine quantities, such as stores and I/O channels. We are developing a compiler that builds a VDG representing a program, analyzes and transforms the VDG, then produces a control flow graph (CFG) [ASU86] from the optimized VDG. This framework simplifies transformations and improves upon several published results. For example, it enables more powerful code motion than [CLZ86, FOW87], eliminates as many redundancies as [AWZ88, RWZ88] (except for redundant loops), and provides important information to the code scheduler [BR91]. We exhibit a fast, one-pass method for elimination of partial redundancies that never performs redundant code motion [KFS92, DS93] and is simpler than the classical [MR79, Dha91] or SSA [RWZ88] methods. These results accrue from eliminating the CFG from the analysis/transformation phases and using demand dependences in preference to control dependences.
Daniel Weise, Roger F. Crew, Michael D. Ernst, Bjarne Steensgaard
POPL4