46 research outputs found

    Modules program structures and the structuring of operating systems

    Get PDF
    In this paper some views are presented on the way in which complex systems, such as Operating Systems and the programs to be interfaced with them can be constructed, and how such systems may become heavily library oriented. Although such systems have a dynamic nature, all interfacing within and among modules can be checked statically. It will be shown that the concepts presented are equally valid for single user systems, multi-programming systems and even distributed systems. The ideas have been spurred by the implementation of a modular version of Pascal and a supporting Operating System, currently nearing completion at Twente University of Technology, The Netherlands

    Actors that Unify Threads and Events

    Get PDF
    There is an impedance mismatch between message-passing concurrency and virtual machines, such as the JVM. VMs usually map their threads to heavyweight OS processes. Without a lightweight process abstraction, users are often forced to write parts of concurrent applications in an event-driven style which obscures control flow, and increases the burden on the programmer. In this paper we show how thread-based and event-based programming can be unified under a single actor abstraction. Using advanced abstraction mechanisms of the Scala programming language, we implemented our approach on unmodified JVMs. Our programming model integrates well with the threading model of the underlying VM

    On Asynchronous Session Semantics

    Get PDF
    This paper studies a behavioural theory of the π-calculus with session types under the fundamental principles of the practice of distributed computing — asynchronous communication which is order-preserving inside each connection (session), augmented with asynchronous inspection of events (message arrivals). A new theory of bisimulations is introduced, distinct from either standard asynchronous or synchronous bisimilarity, accurately capturing the semantic nature of session-based asynchronously communicating processes augmented with event primitives. The bisimilarity coincides with the reduction-closed barbed congruence. We examine its properties and compare them with existing semantics. Using the behavioural theory, we verify that the program transformation of multithreaded into event-driven session based processes, using Lauer-Needham duality, is type and semantic preserving

    Logic programming in the context of multiparadigm programming: the Oz experience

    Full text link
    Oz is a multiparadigm language that supports logic programming as one of its major paradigms. A multiparadigm language is designed to support different programming paradigms (logic, functional, constraint, object-oriented, sequential, concurrent, etc.) with equal ease. This article has two goals: to give a tutorial of logic programming in Oz and to show how logic programming fits naturally into the wider context of multiparadigm programming. Our experience shows that there are two classes of problems, which we call algorithmic and search problems, for which logic programming can help formulate practical solutions. Algorithmic problems have known efficient algorithms. Search problems do not have known efficient algorithms but can be solved with search. The Oz support for logic programming targets these two problem classes specifically, using the concepts needed for each. This is in contrast to the Prolog approach, which targets both classes with one set of concepts, which results in less than optimal support for each class. To explain the essential difference between algorithmic and search programs, we define the Oz execution model. This model subsumes both concurrent logic programming (committed-choice-style) and search-based logic programming (Prolog-style). Instead of Horn clause syntax, Oz has a simple, fully compositional, higher-order syntax that accommodates the abilities of the language. We conclude with lessons learned from this work, a brief history of Oz, and many entry points into the Oz literature.Comment: 48 pages, to appear in the journal "Theory and Practice of Logic Programming

    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

    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

    Migración de procesos, memoria compartida distribuida y sistemas multiagentes

    Get PDF
    Las aplicaciones distribuidas, motorizadas por los avances de la tecnología informática, la baja de costos del equipamiento y la natural necesidad de desarrollarlas, se hicieron realidad en los últimos tiempos. Afianzados con sistemas más seguros de comunicación y computadoras personales o estaciones de trabajo cada vez más veloces, han madurado en su concepción, desarrollo e investigación. La situación actual presenta el desafío de lograr el mejor aprovechamiento y rendimiento de todo el sistema. En este sentido se orienta el estudio al manejo de recursos y procesos, principalmente a la migración de procesos que es el eje central de esta concepción. De los resultados que se obtengan resultará: una adecuada planificación que redundará en mejoras sustanciales en el procesamiento total y en aspectos de movilidad. En este proyecto se pretende concentrar los esfuerzos en áreas que presentan problemas abiertos o soluciones parciales como el manejo de procesos y datos, memoria compartida distribuida, movilidad y aspectos cruzados en el modelamiento como o con sistemas multiagentes.Eje: Sistemas DistribuidosRed de Universidades con Carreras en Informática (RedUNCI
    corecore