The SPECL programming system is an attempt to combine the characteristics of an implementation language with those desirable for verifiability (human and mechanical) and transportability. The former requires efficient...
详细信息
A considerable amount of programming language research has been directed towards the development of extensible languages. Typically, these languages allow data type extensions, in which new data types are constructed ...
详细信息
It is becoming increasingly evident that human programmers are not capable of efficiently producing reliable programs if they must be concerned initially with every detail of the final program. The approach described ...
详细信息
GLOSS is a machine and language for modeling the semantics of programminglanguages. GLOSS is not intended to be a tool for mathematical proofs. Instead it is intended to provide an easily read graphical notation in w...
详细信息
This paper discusses an object-oriented interface from the Smalltalk-80 TM programming environment to a Unix-like operating system. This interface imposes an object-oriented paradigm on operating system facilities. We...
详细信息
Data translation is defined as the process whereby data stored in a form that can be processed on one computer (the source file) can De translated into a form (target file) which can be used by the same or different p...
详细信息
Data translation is defined as the process whereby data stored in a form that can be processed on one computer (the source file) can De translated into a form (target file) which can be used by the same or different processing systems on a possibly different computer. The research approach is to develop a generalized methodology of data translation and within this framework to design and implement a specific prototype translator. The current methodology for translating data and files from one system to another typically consists of writing file translation programs. This method, which involves writing a new program for each file to be translated, is often referred to as manual file translation. Because of the machine level detail required, these translation programs are typically written in assembly language. As a result, the programming time is large. Unfortunately, this methodology has the disadvantage of requiring a different program to be written for each pair of source and target files. Hence, for M source files and N target files, the total number of translation programs required for the translation is the product of M and N. This current state-of-the-art makes the generalization and automation of this process desirable. The general problem of data translation is a complex and pervasive issue. Aside from the two recent Ph.D. Dissertations [Taylor (1971) and Smith (1971)], there has been no research in this area. Both of these authors employ a Data Definition Language approach to the data translation problem and devote much of their work to specifying a Stored Data Definition Language to define stored data as it resides on common secondary storage devices. The CODASYL Stored Data Definition and Translation Task Group is currently combining and extending these two data definition languages into a single, complete Stored Data Definition Language (SDDL). Although the development of this language is fundamental to the implementation of a completely general data tra
In recent years, researchers have proposed systems for running trusted code on an untrusted operating system. Protection mechanisms deployed by such systems keep a malicious kernel from directly manipulating a trusted...
详细信息
ISBN:
(纸本)9781450318709
In recent years, researchers have proposed systems for running trusted code on an untrusted operating system. Protection mechanisms deployed by such systems keep a malicious kernel from directly manipulating a trusted application's state. Under such systems, the application and kernel are, conceptually, peers, and the system call API defines an RPC interface between them. We introduce Iago attacks, attacks that a malicious kernel can mount in this model. We show how a carefully chosen sequence of integer return values to Linux system calls can lead a supposedly protected process to act against its interests, and even to undertake arbitrary computation at the malicious kernel's behest. Iago attacks are evidence that protecting applications from malicious kernels is more difficult than previously realized.
To harness a heterogeneous memory hierarchy, it is advantageous to integrate application knowledge in guiding frequent memory move, i.e., replicating or migrating virtual memory regions. To this end, we present memif,...
详细信息
ISBN:
(纸本)9781450340915
To harness a heterogeneous memory hierarchy, it is advantageous to integrate application knowledge in guiding frequent memory move, i.e., replicating or migrating virtual memory regions. To this end, we present memif, a protected OS service for asynchronous, hardware-accelerated memory move. Compared to the state of the art - page migration in Linux, memif incurs low overhead and low latency;in order to do so, it not only redefines the semantics of kernel interface but also overhauls the underlying mechanisms, including request/completion management, race handling, and DMA engine configuration. We implement memif in Linux for a server-class system-on- chip that features heterogeneous memories. Compared to the current Linux page migration, memif reduces CPU usage by up to 15% for small pages and by up to 38x for large pages;in continuously serving requests, memif has no need for request batching and reduces latency by up to 63%. By crafting a small runtime atop memif, we improve the throughputs for a set of streaming workloads by up to 33%. Overall, memif has opened the door to software management of heterogeneous memory.
The recent surge of network I/O performance has put enormous pressure on memory and software I/O processing subsystems. We argue that the primary reason for high memory and processing overheads is the inefficient use ...
详细信息
ISBN:
(纸本)9781450340915
The recent surge of network I/O performance has put enormous pressure on memory and software I/O processing subsystems. We argue that the primary reason for high memory and processing overheads is the inefficient use of these resources by current commodity network interface cards (NICs). We propose FlexNIC, a flexible network DMA interface that can be used by operatingsystems and applications alike to reduce packet processing overheads. FlexNIC allows services to install packet processing rules into the NIC, which then executes simple operations on packets while exchanging them with host memory. Thus, our proposal moves some of the packet processing traditionally done in software to the NIC, where it can be done flexibly and at high speed. We quantify the potential benefits of FlexNIC by emulating the proposed FlexNIC functionality with existing hardware or in software. We show that significant gains in application performance are possible, in terms of both latency and throughput, for several widely used applications, including a key-value store, a stream processing system, and an intrusion detection system.
暂无评论