69 research outputs found

    Unifying static and dynamic approaches to evolution through the Compliant Systems Architecture

    Get PDF
    ©2004 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.Support for evolution can be classified as static or dynamic. Static evolvability is principally concerned with structuring systems as separated abstractions. Dynamic evolvability is concerned with the means by which change is effected. Dynamic evolution provides the requisite flexibility for application evolution, however, the dynamic approach is not scalable in the absence of static measures to achieve separation of abstractions. This separation comes at a price in that issues of concern become trapped within static abstraction boundaries, thereby inhibiting dynamic evolution. The need for a unified approach has long been recognised but existing systems that attempt to address this need do so in an ad-hoc manner. The principal reason for this is that these approaches fail to resolve the incongruence in the underlying models. Our contention is that this disparity is incidental rather than fundamental to the problem. To this end we propose an alternative model based on the Compliant Systems Architecture (CSA), a structuring methodology for constructing software systems. The overriding benefit of this work is increased flexibility. Specifically our contribution is an instantiation of the CSA that supports unified static and dynamic evolution techniques. Our model is explored through a worked example in which we evolve an application’s concurrency model.Falkner, K.; Detmold, H.; Howard, D.; Munro, D.S.; Morrison, R.; Norcross, S

    System Support for Bandwidth Management and Content Adaptation in Internet Applications

    Full text link
    This paper describes the implementation and evaluation of an operating system module, the Congestion Manager (CM), which provides integrated network flow management and exports a convenient programming interface that allows applications to be notified of, and adapt to, changing network conditions. We describe the API by which applications interface with the CM, and the architectural considerations that factored into the design. To evaluate the architecture and API, we describe our implementations of TCP; a streaming layered audio/video application; and an interactive audio application using the CM, and show that they achieve adaptive behavior without incurring much end-system overhead. All flows including TCP benefit from the sharing of congestion information, and applications are able to incorporate new functionality such as congestion control and adaptive behavior.Comment: 14 pages, appeared in OSDI 200

    A Network Protocol Stack in Standard ML

    Get PDF

    DRAFT: work in progress - - - comments solicited evolving Mach 3.0 to use migrating threads

    Get PDF
    technical reportLike most operating systems, Mach 3.0 views threads as statically associated with a single task. An alternative model is that of migrating threads, in which a single thread abstraction moves between tasks with the logical flow of control, and "server" code is passively executed. We have compatibly replaced Mach's static threads with migrating threads, isolating that aspect of operating system design and implementation. The key element of our design is a decoupling of the thread abstraction into the controllable execution context and the schedulable thread of control, consisting of a chain of contexts. A key element of our implementation is that threads are now "based" in the kernel, and temporarily make excursions into tasks via upcalls. The new system provides cleaner and more powerful semantics for thread manipulation, allows scheduling and accounting attributes to follow threads, simplifies both kernel and server code, and improves RPC performance. We have retained the old thread and IPC interfaces for backwards compatibility, with no changes required to existing client programs and only a minimal change to servers, as demonstrated by a functional Unix single server and clients. Code size along the critical RPC path has been reduced by a factor of three, while its logical complexity has been reduced by an order of magnitude. Initial timings show that the performance of local RPC, doing normal marshaling, has also improved by a factor of three. We conclude that a migrating thread model is superior to a static model, and that it is feasible to improve existing operating systems in this manner

    SOS: An Object-Oriented Operating System ―- Assessment and Perspectives

    Get PDF
    International audienceSOS (SOMIW Operating System) is the result of a four-year effort at INRIA to define an object-oriented operating system. SOS provides support for arbitrary, user-defrned, typed objects. The system implements object migration; this mechanism is generic, but can be tailored to specific object semantics thanks to the prerequisite and upcall concepts. SOS also supports Fragmented Objects (FOs), i.e. objects the representation of which spreads across multiple address spaces. Fragments of a single FO are objects that enjoy mutual communication privileges. A fragment acts as a proxy, i.e. a local interface to the FO. All the other mechanisms of SOS are built upon these basic abstractions. Thanks to prerequisites, migration of data may cause the migration and dynamic type-checking and linking of the corresponding code. A distributed object manager, an object storage service, a naming service, as well as a protocol toolbox and some applications, have been built as FOs. This paper gives a detailed account of the architecture and design decisions of the SOS prototype on UNIX. rùy'e examine both good decisions and problems. The basic good decision is our simple object model, and its ability to map user-defrned semantics (policy decisions) on system-implemented mechanisms. The most important problem is the dynamic nature of Fragmented Objects, and inadequate support for them

    The design and implementation of a prototype exokernel operating system

    Get PDF
    Thesis (M.S.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1996.Includes bibliographical references (p. 99-106).by Dawson R. Engler.M.S

    Manejo de recursos-procesos y memoria compartida distribuida

    Get PDF
    Los avances de la tecnología informática y la baja de costos del equipamiento hicieron realidad, en las últimas décadas, el desarrollo de los sistemas distribuidos. Basados en sistemas seguros de comunicación y computadoras personales o estaciones de trabajo cada vez mas veloces , han madurado en su concepción y desarrollo. Por un lado con este soporte, arquitectura física y arquitectura de programación o algorítmica, se desarrollan aplicaciones geográfica y administrativamente distribuidas. Esto presenta el desafio de lograr el mejor aprovechamiento y rendimiento de todo el sistema. En este sentido se orienta el estudio al manejo de recursos y procesos, dado que con una adecuada planificación se puede lograr mejoras sustanciales en el procesamiento total y en aspectos de movilidad. En este proyecto se pretende hacer un refinamiento de las lineas de trabajo de los anteriores (Sistemas Distribuidos: Concurrencia con Datos Compartidos y Sistemas Multiagentes) intentando concentrar los esfuerzos en áreas que presentan problemas abiertos o soluciones parciales como el manejo de procesos y datos, memoria compartida distribuida y movilidad.Eje: Redes, Arquitectura, Sistemas Distribuidos y Tiempo RealRed de Universidades con Carreras en Informática (RedUNCI
    • …
    corecore