69 research outputs found
Unifying static and dynamic approaches to evolution through the Compliant Systems Architecture
©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
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
Recommended from our members
Computing infrastructure issues in distributed communications systems : a survey of operating system transport system architectures
The performance of distributed applications (such as file transfer, remote login, tele-conferencing, full-motion video, and scientific visualization) is influenced by several factors that interact in complex ways. In particular, application performance is significantly affected both by communication infrastructure factors and computing infrastructure factors. Several communication infrastructure factors include channel speed, bit-error rate, and congestion at intermediate switching nodes. Computing infrastructure factors include (among other things) both protocol processing activities (such as connection management, flow control, error detection, and retransmission) and general operating system factors (such as memory latency, CPU speed, interrupt and context switching overhead, process architecture, and message buffering). Due to a several orders of magnitude increase in network channel speed and an increase in application diversity, performance bottlenecks are shifting from the network factors to the transport system factors.This paper defines an abstraction called an "Operating System Transport System Architecture" (OSTSA) that is used to classify the major components and services in the computing infrastructure. End-to-end network protocols such as TCP, TP4, VMTP, XTP, and Delta-t typically run on general-purpose computers, where they utilize various operating system resources such as processors, virtual memory, and network controllers. The OSTSA provides services that integrate these resources to support distributed applications running on local and wide area networks.A taxonomy is presented to evaluate OSTSAs in terms of their support for protocol processing activities. We use this taxonomy to compare and contrast five general-purpose commercial and experimental operating systems including System V UNIX, BSD UNIX, the x-kernel, Choices, and Xinu
DRAFT: work in progress - - - comments solicited evolving Mach 3.0 to use migrating threads
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
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
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
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
- …