arXiv.itsnick.co

an independent field guide to 23 million papers from arXiv & OpenAlex — not affiliated with arXiv.org

Author

Godmar Back

49 papers · 1996–2024

1996: 11997: 11998: 11999: 02000: 22001: 12002: 32003: 22004: 02005: 22006: 32007: 32008: 72009: 32010: 42011: 12012: 22013: 32014: 02015: 12016: 12017: 02018: 62019: 02020: 12021: 02022: 02023: 02024: 1
1996peak 7 in 20082024

Frequent co-authors

Papers

showing 1–25 of 49 RSS

The Flux OSKit

Bryan Ford, Godmar Back, Greg Benson +3 more

Hardware and Architecture · · cited 258× · DOI ↗ · more like this ·

Implementing new operating systems is tedious, costly, and often impractical except for large projects. The Flux OSKit addresses this problem in a novel way by providing clean, well-documented OS components designed to be reused in a wide variety of other environments, rather than defining a new OS structure. The OSKit uses unconventional techniques to maximize its usefulness, such as intentionally exposing implementation details and platform-specific facilities. Further, the OSKit demonstrates a technique that allows unmodified code from existing mature operating systems to be incorporated quickly and updated regularly, by wrapping it with a small amount of carefully designed "glue" code to isolate its dependencies and export wellrdefined interfaces. The OSKit uses this technique to incorporate over 230,000 lines of stable code including device drivers, file systems, and network…

Processes in KaffeOS: isolation, resource management, and sharing in java

Godmar Back, Wilson C. Hsieh, Jay Lepreau

Artificial Intelligence · Defense Technical Information Center (DTIC) · · cited 172× · DOI ↗ · more like this ·

Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: inter-application memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other, or limit their resource consumption. This paper describes KaffeOS, a Java runtime system that provides these features. The KaffeOS architecture takes many lessons from operating system design, such as the use of a user/kernel boundary, and employs garbage collection techniques, such as write barriers. The KaffeOS architecture supports the OS abstraction of a process in a Java virtual machine. Each process executes as if it were run in its own virtual machine, including separate garbage collection of its own heap. The difficulty in…

From uncertainty to belief: inferring the specification within

Ted Kremenek, Paul Twohey, Godmar Back +2 more

Information Systems · Operating Systems Design and Implementation · · cited 152× · DOI ↗ · more like this ·

Automatic tools for finding software errors require a set of specifications before they can check code: if they do not know what to check, they cannot find bugs. This paper presents a novel framework based on factor graphs for automatically inferring specifications directly from programs. The key strength of the approach is that it can incorporate many disparate sources of evidence, allowing us to squeeze significantly more information from our observations than previously published techniques. We illustrate the strengths of our approach by applying it to the problem of inferring what functions in C programs allocate and release resources. We evaluated its effectiveness on five codebases: SDL, OpenSSH, GIMP, and the OS kernels for Linux and Mac OS X (XNU). For each codebase, starting with zero initially provided annotations, we observed an inferred annotation accuracy of 80-90%, with…

VirtuOS

Ruslan Nikolaev, Godmar Back

Artificial Intelligence · · cited 72× · DOI ↗ · more like this ·

Most operating systems provide protection and isolation to user processes, but not to critical system components such as device drivers or other system code. Consequently, failures in these components often lead to system failures. VirtuOS is an operating system that exploits a new method of decomposition to protect against such failures. VirtuOS exploits virtualization to isolate and protect vertical slices of existing OS kernels in separate service domains. Each service domain represents a partition of an existing kernel, which implements a subset of that kernel's functionality. Unlike competing solutions that merely isolate device drivers, or cannot protect from malicious and vulnerable code, VirtuOS provides full protection of isolated system components. VirtuOS's user library dispatches system calls directly to service domains using an exceptionless system call model, avoiding the…

Pattern-based sparse matrix representation for memory-efficient SMVM kernels

Mehmet Belgin, Godmar Back, Calvin J. Ribbens

Hardware and Architecture · · cited 61× · DOI ↗ · more like this ·

Pattern-based Representation (PBR) is a novel approach to improving the performance of Sparse Matrix-Vector Multiply (SMVM) numerical kernels. Motivated by our observation that many matrices can be divided into blocks that share a small number of distinct patterns, we generate custom multiplication kernels for frequently recurring block patterns. The resulting reduction in index overhead significantly reduces memory bandwidth requirements and improves performance. Unlike existing methods, PBR requires neither detection of dense blocks nor zero filling, making it particularly advantageous for matrices that lack dense nonzero concentrations. SMVM kernels for PBR can benefit from explicit prefetching and vectorization, and are amenable to parallelization. We present sequential and parallel performance results for PBR on two current multicore architectures, which show that PBR outperforms…

The KaffeOS Java runtime system

Godmar Back, Wilson C. Hsieh

Artificial Intelligence · ACM Transactions on Programming Languages and Systems · · cited 48× · DOI ↗ · more like this ·

Single-language runtime systems, in the form of Java virtual machines, are widely deployed platforms for executing untrusted mobile code. These runtimes provide some of the features that operating systems provide: interapplication memory protection and basic system services. They do not, however, provide the ability to isolate applications from each other. Neither do they provide the ability to limit the resource consumption of applications. Consequently, the performance of current systems degrades severely in the presence of malicious or buggy code that exhibits ill-behaved resource usage. We show that Java runtime systems can be extended to support processes , and that processes can provide robust and efficient support for untrusted applications.We have designed and built KaffeOS, a Java runtime system that provides support for processes. KaffeOS isolates processes and manages the…

Diagnosing memory leaks using graph mining on heap dumps

Evan K. Maxwell, Godmar Back, Naren Ramakrishnan

Information Systems · · cited 45× · DOI ↗ · more like this ·

Memory leaks are caused by software programs that prevent the reclamation of memory that is no longer in use. They can cause significant slowdowns, exhaustion of available storage space and, eventually, application crashes. Detecting memory leaks is challenging because real-world applications are built on multiple layers of software frameworks, making it difficult for a developer to know whether observed references to objects are legitimate or the cause of a leak. We present a graph mining solution to this problem wherein we analyze heap dumps to automatically identify subgraphs which could represent potential memory leak sources. Although heap dumps are commonly analyzed in existing heap profiling tools, our work is the first to apply a graph grammar mining solution to this problem. Unlike classical graph mining work, we show that it suffices to mine the dominator tree of the heap…

The pintos instructional operating system kernel

Ben Pfaff, Anthony G. Romano, Godmar Back

Hardware and Architecture · · cited 45× · DOI ↗ · more like this ·

Pintos is an instructional operating system, complete with documentation and ready-made, modular projects that introduce students to the principles of multi-programming, scheduling, virtual memory, and filesystems. By allowing students to run their work product on actual hardware, while simultaneously benefiting from debugging and dynamic analysis tools provided in simulated and emulated environments, Pintos increases student engagement. Unlike tailored versions of commercial or open source OS such as Linux, Pintos is designed from the ground up from an educational perspective. It has been used by multiple institutions for a number of years and is available for wider use.

Techniques for the design of java operating systems

Godmar Back, Patrick Tullmann, Leigh Stoller +2 more

Artificial Intelligence · USENIX Annual Technical Conference · · cited 42× · OpenAlex ↗ · more like this ·

Language-basedextensible systems, such as Java Virtual Machines and SPIN, use type safety to provide memory safety in a single address space. By using software to provide safety, they can support more efficient IPC. Memory safety alone, however, is not sufficient to protect different applications from each other. Such systems need to support a process model that enables the control and management of computational resources. In particular, language-based extensible systems should support resource control mechanisms analogous to those in standard operating systems. They need to support the separation of processes and limit their use of resources, but still support safe and efficient IPC. We demonstrate how this challenge is being addressed in several Java-based systems. First, we lay out the design choices when implementing a process model in Java. Second, we compare the solutions that…

Drawing the red line in Java

Godmar Back, Wilson C. Hsieh

Artificial Intelligence · · cited 40× · DOI ↗ · more like this ·

Software-based protection has become a viable alternative to hardware-based protection in systems based on languages such as Java, but the absence of hardware mechanisms for protection has been coupled with an absence of a user/kernel boundary. We show why such a "red line" must be present in order for a Java virtual machine to be as effective and as reliable as an operating system. We discuss how the red line can be implemented using software mechanisms, and explain the ones we use in the Java system that we are building.

Perfctr-Xen

Ruslan Nikolaev, Godmar Back

Information Systems · · cited 36× · DOI ↗ · more like this ·

Virtualization is a powerful technique used for variety of application domains, including emerging cloud environments that provide access to virtual machines as a service. Because of the interaction of virtual machines with multiple underlying software and hardware layers, the analysis of the performance of applications running in virtualized environments has been difficult. Moreover, performance analysis tools commonly used in native environments were not available in virtualized environments, a gap which our work closes.

HDPV

Jaishankar Sundararaman, Godmar Back

Information Systems · · cited 31× · DOI ↗ · more like this ·

Data structure visualization can increase program understanding in an educational context and help with visual debugging. Existing data structure visualization tools are limited in interactivity, providing mostly static views; flexibility, by restricting the layout strategies users can apply; scope, by focusing on only a single language; and fidelity, by abstracting away the actual runtime layout and size of a program's data. This paper presents the design and implementation of HDPV, a system for interactive, faithful, in-vivo runtime state visualization for native C/C++ programs and Java programs. We discuss how HDPV can be used for a number of use cases ranging from understanding simple, recursive programs, to understanding the visual effect of programming errors such as buffer overflows.

Formal methods: a practical tool for OS implementors

Patrick Tullmann, Joseph A. Turner, J. McCorquodale +3 more

Computer Networks and Communications · · cited 20× · DOI ↗ · more like this ·

The formal methods community has long known about the need to formally analyze concurrent software, but the operating systems (OS) community has been slow to adopt such methods. The foremost reasons for this are the cultural and knowledge gaps between formalists and OS hackers, fostered by three beliefs: inaccessibility of the tools, the disabling gap between the validated model and actual implementation, and the intractable size of OSs. In this paper, we show these beliefs to be untrue for appropriately structured OSs. We applied formal methods to verify properties of the implementation of the Fluke microkernel's IPC (interprocess communication) subsystem, a major component of the kernel. In particular, we have verified, in many scenarios, certain liveness properties and lack of deadlock, with results that apply to both SMP (scalable multiprocessor) and uniprocessor environments. The…

Reverse-Engineering Instruction Encodings

Wilson C. Hsieh, Dawson Engler, Godmar Back

Artificial Intelligence · USENIX Annual Technical Conference · · cited 20× · OpenAlex ↗ · more like this ·

Binary tools such as disassemblers, just-in-time compilers, and executable code rewriters need to have an explicit representation of how machine instructions are encoded. Unfortunately, writing encodings for an entire instruction set by hand is both tedious and error-prone. We describe DERIVE, a tool that extracts bit-level instruction encoding information from assemblers. The user provides DERIVE with assembly-level information about various instructions. DERIVE automatically reverse-engineers the encodings for those instructions from an assembler by feeding it permutations of instructions and analyzing the resulting machine code. DERIVE solves the entire MIPS, SPARC, Alpha, and PowerPC instruction sets, and almost all of the ARM and x86 instruction sets. Its output consists of C declarations that can be used by binary tools. To demonstrate the utility of DERIVE, we have built a code…

A Fast JPEG2000 Encoder That Preserves Coding Efficiency: The Split Arithmetic Encoder

K. Varma, H. B. Damecharla, A.E. Bell +2 more

Computer Vision and Pattern Recognition · IEEE Transactions on Circuits and Systems I Regular Papers · · cited 18× · DOI ↗ · more like this ·

Embedded block coding, i.e., embedded block coder with optimal truncation (EBCOT) tier-1, is the most computationally intensive part of the JPEG2000 image coding standard. Past research on fast EBCOT tier-1 hardware implementations has concentrated on cycle-efficient context formation. These pass-parallel architectures require that JPEG2000's three mode switches be turned on; thus, coding efficiency is sacrificed for improved throughput. In this paper, a new fast EBCOT tier-1 design is presented: It is called the split arithmetic encoder (SAE) process. The proposed process exploits concurrency to obtain improved throughput while preserving coding efficiency. The SAE process is evaluated using the following three methods: clock cycle estimation, multithreaded software implementation, and FPGA hardware implementation. All three methods achieve throughput improvement; the hardware…

Web Services and Widgets for Library Information Systems

Godmar Back, Annette Bailey

Information Systems · Information Technology and Libraries · · cited 13× · DOI ↗ · more like this ·

As more libraries integrate information from web services to enhance their online public displays, techniques that facilitate this integration are needed. This paper presents a technique for such integration that is based on HTML widgets. We discuss three example systems (Google Book Classes, Tictoclookup, and MAJAX) that implement this technique. These systems can be easily adapted without requiring programming experience or expensive hosting.

MJ - A System for Constructing Bug-Finding Analyses for Java

Godmar Back, Dawson Engler

Information Systems · · cited 11× · OpenAlex ↗ · more like this ·

Many software defects result from the violation of programming rules: rules that describe how to use a programming language and its libraries and rules that describe the dos and don'ts within a given application, library or system. MJ is a language and an engine that can succinctly express many of these rules for programs written in Java. MJ programs are checkers that are compiled into compiler extensions. A static analysis engine applies the extensions to user code and flags rule violations. We have implemented and tested several extensions in MJ for both general and application-specific rules. Our checkers have found dozens of bugs in some widely-deployed and mature software systems. 1.

Novel meshes for multivariate interpolation and approximation

Thomas Lux, Layne T. Watson, Tyler H. Chang +9 more

Artificial Intelligence · · cited 7× · DOI ↗ · more like this ·

A rapid increase in the quantity of data available is allowing all fields of science to generate more accurate models of multivariate phenomena. Regression and interpolation become challenging when the dimension of data is large, especially while maintaining tractable computational complexity. This paper proposes three novel techniques for multivariate interpolation and regression that each have polynomial complexity with respect to number of instances (points) and number of attributes (dimension). Initial results suggest that these techniques are capable of effectively modeling multivariate phenomena while maintaining flexibility in different application domains.

VT-ASOS: Holistic system software customization for many cores

Dimitrios S. Nikolopoulos, Godmar Back, Jyotirmaya Tripathi +1 more

Information Systems · Proceedings - IEEE International Parallel and Distributed Processing Symposium · · cited 7× · DOI ↗ · more like this ·

VT-ASOS is a framework for holistic and continuous customization of system software on HPC systems. The framework leverages paravirtualization technology. VT-ASOS extends the Xen hypervisor with interfaces, mechanisms, and policies for supporting application-specific resource management schemes on many-core systems, while retaining the advantages of virtualization, including protection, performance isolation, and fault tolerance. We outline the VTASOS framework and present results from a preliminary prototype, which enables static customization of scheduler parameters and runtime adaptation of parallel virtual machines.

"Program, enhance thyself!"

Eli Tilevich, Godmar Back

Information Systems · · cited 7× · DOI ↗ · more like this ·

Program enhancement refers to adding new functionality to an existing program. We argue that repetitive program enhancement tasks can be expressed as patterns, and that the application of such enhancement patterns can be automated. This paper presents a novel approach to pattern-oriented automated enhancement of object-oriented programs. Our approach augments the capabilities of an aspect compiler to capture the programmer's intent to enhance a program. In response to the programmer referencing a piece of functionality that is non-existent, our approach automatically synthesizes aspect code to supply the required functionality transparently. To improve flexibility and facilitate reuse, the synthesis and application of the new functionality is guided by declarative whenthen rules, concisely expressed using a rule base.

Automatic Memory Management in Utility Accrual Scheduling Environments

Shahrooz Feizabadi, Godmar Back

Hardware and Architecture · · cited 7× · DOI ↗ · more like this ·

Convenience, reliability, and effectiveness of automatic memory management have long been established in modern systems and programming languages such as Java. The timeliness requirements of real-time systems, however, impose specific demands on the operational parameters of the garbage collector. The memory requirements of real-time tasks must be accommodated with a predictable impact on the timeline, and under the purview of the scheduler. Utility accrual is a method of dynamic overload scheduling that is designed to respond to CPU overload conditions by producing a schedule that heuristically maximize a predefined metric of utility. There also exists in such systems the possibility of memory overload situations in which the cumulative memory demand exceeds the amount of memory available. This paper presents a utility accrual algorithm for uniprocessor CPU and garbage collection…

A Detailed Historical and Statistical Analysis of the Influence of Hardware Artifacts on SPEC Integer Benchmark Performance

Yueyao Wang, Samuel Furman, Nicolas Hardy +4 more

cs.CY · · cited 5× · arXiv ↗ · more like this ·

The Standard Performance Evaluation Corporation (SPEC) CPU benchmark has been widely used as a measure of computing performance for decades. The SPEC is an industry-standardized, CPU-intensive benchmark suite and the collective data provide a proxy for the history of worldwide CPU and system performance. Past efforts have not provided or enabled answers to questions such as, how has the SPEC benchmark suite evolved empirically over time and what micro-architecture artifacts have had the most influence on performance? -- have any micro-benchmarks within the suite had undue influence on the results and comparisons among the codes? -- can the answers to these questions provide insights to the future of computer system performance? To answer these questions, we detail our historical and statistical analysis of specific hardware artifacts (clock frequencies, core counts, etc.) on the…

Nonparametric Distribution Models for Predicting and Managing Computational Performance Variability

Thomas Lux, Layne T. Watson, Tyler H. Chang +9 more

Information Systems · · cited 5× · DOI ↗ · more like this ·

Performance variability can have a significant impact on many applications of computing. Cloud computing, high performance computing, and computer security communities each exert considerable effort managing and analyzing variability throughout the system stack. This work presents and evaluates a methodology for predicting precise characteristics of the computational performance variability of an input/output (I/O) application over varying system configurations. Results demonstrate that the presented methodology is capable of precisely modeling performance variability, which could allow applications that tighten service level agreements, maximize computational throughput, and obfuscate system configurations against malicious users.

Retrieving Known Items with LibX

Annette Bailey, Godmar Back

Artificial Intelligence · The Serials Librarian · · cited 5× · DOI ↗ · more like this ·

ABSTRACT LibX (http://www.libx.org/) is an open source Firefox extension that provides direct access to library resources in multiple ways: through a toolbar, a context menu, and via cues that LibX places into web sites a user visits. A LibX edition integrates support for the resources to which a particular user community has access, including the library OPAC, databases, and their OpenURL link resolver. As one of its features, LibX supports the fast (one-click) retrieval of known items, such as research articles. This frequent task is automated by exploiting Google's Scholar service as a hidden backend that is used for searches. In this paper, we evaluate the effectiveness of LibX in retrieving known items that were listed as references in a sample of articles in four widely read journals. We conclude that LibX's matching algorithm can lead the user to an accessible copy of an item on…

Java Garbage Collection Scheduling in Utility Accrual Scheduling Environments

Shahrooz Feizabadi, Godmar Back

Hardware and Architecture · · cited 5× · OpenAlex ↗ · more like this ·

Utility Accrual (UA) scheduling is a method of dynamic real-time scheduling that is de-signed to respond to overload conditions by producing a feasible schedule that heuristically maximizes a pre-defined metric of utility. Whereas utility accrual schedulers have tradition-ally focused on CPU overload, this dissertation explores memory overload conditions during which the aggregate memory demand exceeds a system’s available memory bandwidth. Real-time systems are typically implemented in C or other languages that use explicit dy-namic memory management. Taking advantage of modern type-safe languages, such as Java, necessitates the use of garbage collection (GC). The timeliness requirements of real-time systems, however, impose specific demands on the garbage collector. Garbage collection introduces a significant source of unpredictability in the execution timeline of a task because it…