Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Powiadomienia systemowe
  • Sesja wygasła!

Znaleziono wyników: 8

Liczba wyników na stronie
first rewind previous Strona / 1 next fast forward last
Wyniki wyszukiwania
Wyszukiwano:
w słowach kluczowych:  concurrent programming
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
PL
W artykule przedstawiono mechanizmy związane z programowaniem współbieżnym na niskim poziomie abstrakcji. Na podstawie literatury światowej wyróżniono zbiór pojęć podstawowych dotyczących współbieżności. Wskazano mechanizmy pomagające w rozwiązaniu problemu wzajemnego wykluczania przy użyciu konstrukcji językowych platformy .NET. Opisano sposoby uzyskania synchronizacji wątków wraz z opisem ich wad i zalet.
EN
The article presents issues related to low level concurrent programming. Based on world literature, a collection of basic notions of concurrency has been distinguished. Indicators that help to solve the mutual exclusion problem using the .NET language constructs. Describes ways to get thread synchronization once with a description of their drawbacks and advantages.
2
EN
Developers who create multi-threaded programs must pay attention to ensuring safe implementations that avoid problems and prevent introduction of a system in an inconsistent state. To achieve this objective programming languages offer more and more support for the programmer by syntactic structures and standard libraries. Despite these enhancements, multi-threaded programming is still generally considered to be difficult. The aim of our study was the analysis of existing aspect oriented solutions, which were designed to simplify concurrent programming, propose improvements to these solutions and examine influence of concurrent aspects on complexity of programs. Improved solutions were compared with existing by listing differing characteristics. Then we compared classical concurrent applications with their aspect oriented equivalents using metrics. Values of 2 metrics (from 7 considered) decreased after using aspect oriented solutions. Values of 2 other metrics decreased or remained at the same level. The rest behaved unstably depending on the problem. No metric reported increase of complexity in more than one aspect oriented version of program from set. Our results indicate that the use of aspects does not increase the complexity of a program and in some cases application of aspects can reduce it.
3
Content available remote A Framework to Automatic Deadlock Detection in Concurrent Programs
EN
Nowadays, concurrency is one of the most common features of software systems. In such systems, different parts of the system either are working together or separately. In these cases, deadlock is a common defect. In many systems –especially safety critical ones- deadlock is a serious problem. Hence, it is very important to find them before deploying the system. Since model checking is an accurate mechanism to automatically verify software and hardware systems, using this technique is a proper solution to automatic deadlock detection. In this paper, we present an approach to automatic deadlock detection using Bogor – a well known model checker. To do so, at first, we determine global variables, shared resources and in general, all parts that may cause a deadlock. Then, we translate them to BIR – the input language of the Bogor. Bogor generates the transition system and shows that if there is any deadlock in the program. In the cases in which Bogor finds a deadlock, it shows a counter example to help programmers to fix the problem. To illustrate all the main concepts of the approach, we use different concurrent Java programs as case studies.
PL
oprogramowaniu charakteryzującym się zgodnością różne części mogą pracować niezależnie lub wspólnie. Największym problemem w tego typu programach jest stan zakleszczenia (deadlock). Dlatego ważne jest stworzenie mechanizmu automatycznego wykrywania takiej sytuacji. W artykule opisano metodę Bogor, w tym także BIR – język wejściowy do Bogor.
4
Content available Active object design pattern
EN
Parallelization of software plays nowadays a major role in software efficiency increase. The paper aims to present an active object design pattern and to point out its usefulness in parallel programs design. The ProActive system is also roughly presented, together with the implementation of discussed design pattern.
EN
In the modern, multi-threaded, multi-core programming environment, correctly managing system resources, including locks and shared variables, can be especially difficult and errorprone. A simple mistake, such as forgetting to release a lock, can have major consequences on the correct operation of a program, by, for example, inducing deadlock, often at a time and location that is isolated from the original error. In this paper, we propose a new type-based approach to resource management, based on the use of dependent types to construct a Domain-Specific Embedded Language (DSEL) whose typing rules directly enforce the formal program properties that we require. In this way, we ensure strong static guarantees of correctness-by-construction, without requiring the development of a new special-purpose type system or the associated special-purpose soundness proofs. We also reduce the need for "over-serialisation", the overly-conservative use of locks that often occurs in manually constructed software, where formal guarantees cannot be exploited. We illustrate our approach by implementing a DSEL for concurrent programming and demonstrate its applicability with reference to an example based on simple bank account transactions.
PL
Przedstawiono pewne narzędzia programowania rozproszonego. Mają one dwie istotne cechy: zwięzły, przejrzysty oraz jednolity mechanizm programowania do obliczeń rozproszonych i obliczeń współbieżnych, a także mechanizm w pełni obiektowy, wprowadzający protokół obcego wywołania metody procesu przez inny proces. Mechanizm ten został zrealizowany w języku programowania Loglan'82. Porównano to narzędzie z narzędziami oferowanymi przez Javę. Język programowania Java zawiera rozbudowany mechanizm programowania współbieżnego, którego podstawę stanowi predefiniowana klasa Thread (czyli wątek). Ponadto Javie towarzyszy odrębny mechanizm programowania rozproszonego, tzw. RMI. Jednak RMI nie jest częścią Javy.
EN
The paper presents certain tools of distributed programming, both sharing two important features: concise, transparent and unified programming mechanism for distributed and concurrent computing, and a fully objectoriented mechanism introducing a protocol for alien call of process method by another process. Such a mechanizm has been implemented in the Loglan'82 programming language. This tool has been compared to tools provided by Java. The Java programming language includes an extensive mechanism for concurrent programming, based on the pre-defined Thread. Additionally, Java is complemented by a separate distributed programming mechanizm known as RMI. Hovever, RMI is not a part of Java.
7
Content available remote Knowledge-Based Asynchronous Programming
EN
A knowledge-based program is a high-level description of the behaviour of agents in terms of knowledge that an agent must have before (s)he may perform an action. The definition of the semantics of knowledge-based programs is problematic, since it involves a vicious circle; the knowledge of an agent is defined in terms of the possible behaviours of the program, while the possible behaviours are determined by the actions which depend on knowledge. We define the semantics of knowledge-based programs via an iteration approach generalizing the well-known fixpoint construction. We propose a specific iteration as the semantics of a knowledge-based program, and justify our choice by a number of examples, including the Unexpected Hanging Paradox.
PL
W pracy przedstawiono wyniki testów numerycznych optymalizacji kształtu ze względu na podatność kilku kratownic płaskich. Algorytm genetyczny, zaimplementowany jako wielowątkowy program w języku Java, wykazał dość dużą skuteczność jako metoda znajdowania minimum funkcji i wraz z równolegle działającymi algorytmami: symulowanego wyżarzania i największego spadku, pozwolił na stosunkowo szybkie i dokładne lokalizowanie optymalnych punktów, bliskich minimum globalnego. Jezyk Java okazał się przy tym bardzo wygodnym i efektywnym narzędziem pisania programów współbieżnych, które mogą stać się niezwykle atrakcyjną z punktu widzenia poszukiwania nowych rozwiązań problemów optymalizacji konstrukcji inżynierskich, techniką wykorzystującą algorytmy sztucznej inteligencji.
EN
In this paper the results of the numerical tests of the truss compliance in shape optimization arę presen-ted. A genetic algorithm, implemented as a multithreaded programme in Java, showed fairly large efficiency as a method of finding minimum of the function and together with the simultaneously executing algorithms (parallel programming) such that simulated annealing and steepest descent methods, permitted on relatively quick and exact localization of the optimal points, close to the global minimum. Java language proved to be a very comfortable and effective tool of writing concurrent programmes. Such technique can become very attractiye from the point of view research of the new optimization methods in the domain of mechanics that will enable us to apply well known artificial intelligence algorithms in another way, specifying concurrent actiyities in the numerical applications.
first rewind previous Strona / 1 next fast forward last
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.