Learn More
Event-Related Potentials (ERPs) are a basic, non-invasive method of neurophysiological investigation. They can be used to assess aspects of human cognitive information processing. They also can be used in experiments on higher mammals. The most important and the most studied component of the ERP record is the P3 wave. It consists of two parts, P3a and P3b.(More)
Breaking up the OS in many small components is attractive from a dependability point of view. If one of the components crashes or needs an update, we can replace it on the fly without taking down the system. The question is how to achieve this without sacrificing performance and without wasting resources unnecessarily. In this paper, we show that(More)
Current intrusion detection systems have a narrow scope. They target flow aggregates, reconstructed TCP streams, individual packets or application-level data fields, but no existing solution is capable of handling all of the above. Moreover, most systems that perform payload inspection on entire TCP streams are unable to handle gigabit link rates. We argue(More)
For many years, multiserver<sup>1</sup> operating systems have been demonstrating, by their design, high dependability and reliability. However, the design has inherent performance implications which were not easy to overcome. Until now the context switching and kernel involvement in the message passing was the performance bottleneck for such systems to get(More)
In many workloads, most write operations performed on a file system modify only a small number of blocks. The log-structured file system was designed for such a workload, additionally with the aim of fast crash recovery and system snapshots. Surprisingly, although implemented for Berkeley Sprite and BSD systems, there was no complete implementation for the(More)
Programming specialized network processors (NPU) is inherently difficult. Unlike mainstream processors where architectural features such as out-of-order execution and caches hide most of the complexities of efficient program execution, programmers of NPUs face a 'bare-metal' view of the architecture. They have to deal with a multithreaded environment with a(More)
— There is a growing need for packet processing at high link rates. Commodity hardware and software are not able to cope with multi-gigabit speeds. Existing solutions for handling high rates tend to be ad-hoc and cannot easily be used for new applications. In this paper, we desibe our experiences in implementing a flexible packet processing framework that(More)
Traditionally, applications use sockets to access the network. The socket API is well understood and simple to use. However, its simplicity has also limited its efficiency in existing implementations. Specifically, the socket API requires the application to execute many system calls like select, accept, read, and write. Each of these calls crosses the(More)
Operating systems provide a wide range of services, which are crucial for the increasingly high reliability and scalability demands of modern applications. Providing both reliability and scalability at the same time is hard. Commodity OS architectures simply lack the design abstractions to do so for demanding core OS services such as the network stack. For(More)
Until recently, microkernel-based multiserver systems could not match the performance of monolithic designs due to their architectural choices which prefer high reliability over high performance. With the advent of multicore processors, heterogeneous and over-provisioned architectures, it is possible to employ multiple cores to run individual components of(More)