40 research outputs found

    Continuations : unifying thread management and communication in operating systems

    No full text
    Abstract: "Thread management and interprocess communication are two key operating systems services. Within an operating system, these services can be unified by managing the state of a computation as a continuation, a first class object that can be explicitly examined and manipulated through a well-defined interface. Continuations as first class objects improve the performance of thread management and interprocess communication facilities, and can be used to generalize many optimizations that are common to operating systems. These optimizations can be recast in terms of a single, unifying implementation methodology.We have used continuations to redesign the internals of the Mach operating system at Carnegie Mellon University. On a DECstation 3100, our new system consumes over 85% less space per thread and executes a cross-address space procedure call 14% faster than earlier, heavily optimized versions. This paper describes the application of continuations to the Mach operating system.

    4th USENIX Windows Systems Symposium

    No full text

    Moving the Default Memory Manager out of the Mach Kernel

    No full text
    We have implemented a default memory manager for the Mach 3.0 kernel that resides entirely in user space. The default memory manager uses a small set of kernel privileges to lock itself into memory, preventing deadlocks against other Mach system services. An extension to the Mach boot sequence loads both the kernel and user program images at system startup time. The resulting system allows the default memory manager to be built and run in a standard user-level environment, but still operates with the high reliability required by the Mach kernel. The default memory manager is bundled with another component of the Mach 3.0 system: the bootstrap service. This service starts the initial set of system servers that make up a complete operating system based on the Mach 3.0 kernel. Since the real file system may be one of these servers, the bootstrap service needs its own copy of a subset of the file system. This is shared with the default memory manager. Placing these two components outside ..

    Unifying the User and Kernel Environments

    No full text
    Vendors of commercial operating systems today invest resources in two very different environments---one for userlevel (application or server) programming and one for kernel-level (device driver or subsystem) programming. The kernel environment is typically more restrictive, with completely different interfaces and programming conventions. Based on our experience developing and deploying an operating system for an interactive TV system, we believe that it is desirable to unify the user and kernel environments. We structured our operating system to provide common programming and run-time environments for user-level code and kernel-level code. For example, modules loaded into the kernel did not have any restrictions on their use of shared libraries or stack space. We found that unifying the user and kernel environments with common interfaces and run-time requirements, common documentation, and a common debugger produced significant software-engineering benefits. In addition, we could tran..

    Comparison of routing metrics for static multi-hop wireless networks

    No full text
    Routing protocols for wireless ad hoc networks have traditionally focused on finding paths with minimum hop count. However, such paths can include slow or lossy links, leading to poor throughput. A routing algorithm can select better paths by explicitly taking the quality of the wireless links into account. In this paper, we conduct a detailed, empirical evaluation of the performance of three link-quality metrics— ETX, per-hop RTT, and per-hop packet pair—and compare them against minimum hop count. We study these metrics using a DSR-based routing protocol running in a wireless testbed. We find that the ETX metric has the best performance when all nodes are stationary. We also find that the per-hop RTT and per-hop packet-pair metrics perform poorly due to self-interference. Interestingly, the hop-count metric outperforms all of the link-quality metrics in a scenario where the sender is mobile

    Routing in multi-radio, multi-hop wireless mesh networks

    No full text
    We present a new metric for routing in multi-radio, multihop wireless networks. We focus on wireless networks with stationary nodes, such as community wireless networks. The goal of the metric is to choose a high-throughput path between a source and a destination. Our metric assigns weights to individual links based on the Expected Transmission Time (ETT) of a packet over the link. The ETT is a function of the loss rate and the bandwidth of the link. The individual link weights are combined into a path metric called Weighted Cumulative ETT (WCETT) that explicitly accounts for the interference among links that use the same channel. The WCETT metric is incorporated into a routing protocol that we call Multi-Radio Link-Quality Source Routing. We studied the performance of our metric by implementing it in a wireless testbed consisting of 23 nodes, each equipped with two 802.11 wireless cards. We find that in a multi-radio environment, our metric significantly outperforms previously-proposed routing metrics by making judicious use of the second radio
    corecore