52 research outputs found
The Problem of Mutual Exclusion: A New Distributed Solution
In both centralized and distributed systems, processes cooperate and compete with each other to access the system resources. Some of these resources must be used exclusively. It is then required that only one process access the shared resource at a given time. This is referred to as the problem of mutual exclusion. Several synchronization mechanisms have been proposed to solve this problem. In this thesis, an effort has been made to compile most of the existing mutual exclusion solutions for both shared memory and message-passing based systems. A new distributed algorithm, which uses a dynamic information structure, is presented to solve the problem of mutual exclusion. It is proved to be free from both deadlock and starvation. This solution is shown to be economical in terms of the number of message exchanges required per critical section execution. Procedures for recovery from both site and link failures are also given
Formal verification of concurrent programs
Interactive theorem proving provides a general approach to modeling and verification of both finite-state and infinite-state systems but requires significant human efforts to deal with many tedious proofs. On the other hand, model-checking is limited to some application domain with small finite-state space. A natural thought for this problem is to integrate these two approaches. To keep the consistency of the integration and ensure the correctness of verification, we suggest to use type theory based theorem provers (e.g. Lego) as the platform for the integration and build a model-checker to do parts of the verification automatically. We formalise a verification system of both CCS and an imperative language in the proof development system Lego which can be used to verify both finite-state and infinite-state problems. Then a model-checker, LegoMC, is implemented to generate Lego proof terras for finite-state problems automatically. Therefore people can use Lego to verify a general problem with some of its finite sub-problems verified by LegoMC. On the other hand, this integration extends the power of model-checking to verify more complicated and infinite-state models as well. The development of automatic techniques and the integration of different reasoning methods would directly benefit the verification community. It is expected that further extension and development of this verification environment would be able to handle real life systems. On the other hand, the research gives us some experiences about how to automate proofs in interactive theorem provers and therefore will improve the usability and applicability of the theorem proving technology
Some aspects of the efficient use of multiprocessor control systems
Computer technology, particularly at the circuit level, is fast
approaching its physical limitations. As future needs for greater
power from computing systems grows, increases in circuit switching
speed (and thus instruction speed) will be unable to match these
requirements.
Greater power can also be obtained by incorporating several processing
units into a single system. This ability to increase the performance
of a system by the addition of processing units is one of the major
advantages of multiprocessor systems. Four major characteristics of
multiprocessor systems have been identified (28) which demonstrate
their advantage. These are:-
Throughput
Flexibility
Availability
Reliability
The additional throughput obtained from a multiprocessor has been
mentioned above.. This increase in the power of the system can be
obtained in a modular fashion with extra processors being added as
greater processing needs arise. The addition of extra processors
also has (in general) the desirable advantage of giving a smoother
cost - performance curve ( 63). Flexibility is obtained from the
increased ability to construct a system matching the user 'requirements
at a given time without placing restrictions upon future expansion.
With multiprocessor systems; the potential also exists of making
greater use of the resources within the system.
Availability and reliability are inter-related. Increased availability
is achieved, in a well designed system, by ensuring that processing
capabilities can be provided to the user even if one (or more) of the
processing units has failed. The service provided, however, will
probably be degraded due to the reduction in processing capacity.
Increased reliability is obtained by the ability of the processing
units to compensate for the failure of one of their number. This
recovery may involve complex software checks and a consequent decrease
in available power even when all the units are functioning
Comparing Mutual Exclusion Algorithms
U višedretvenom načinu rada sve dretve koje djeluju unutar istog procesa dijele sva sredstva
koje je operacijski sustav stavio na raspolaganje tom procesu. Prilikom pristupa nekom
zajedničkom resursu važno je sinkronizirati dretve na način da u svakom trenutku samo jedna
dretva ima pravo pristupa. Mehanizmi međusobnoga isključivanja osiguravaju dretvama
naizmjeničan pristup dijeljenom resursu. U radu su opisani i implementirani neki od
najpoznatijih algoritamskih rješenja problema međusobnoga isključivanja. Najveći nedostatak
ovakvih rješenja je radno čekanje. Dretve koje čekaju na ulazak u kritični odsječak će
neprestano ispitivati varijablu dok ona ne promijeni svoju vrijednost čime se troši vrijeme i
resursi procesora. Umjesto njih, postoje ugradbeni mehanizmi koji rješavaju problem radnog
čekanja i značajno smanjuju iskorištenost procesora čime ubrzavaju izvođenje operacijskog
sustava. U ovome radu sam opisao neke od razreda i knjižnica pomoću kojih se u
programskom jeziku C++ može na jednostavan način kontrolirati pristup nekom dijeljenom
resursu. Provedena je usporedba brzine rada algoritama i ugradbenih mehanizama ovisno o
operacijskom sustavu na kojem se izvode
Comparing Mutual Exclusion Algorithms
U višedretvenom načinu rada sve dretve koje djeluju unutar istog procesa dijele sva sredstva
koje je operacijski sustav stavio na raspolaganje tom procesu. Prilikom pristupa nekom
zajedničkom resursu važno je sinkronizirati dretve na način da u svakom trenutku samo jedna
dretva ima pravo pristupa. Mehanizmi međusobnoga isključivanja osiguravaju dretvama
naizmjeničan pristup dijeljenom resursu. U radu su opisani i implementirani neki od
najpoznatijih algoritamskih rješenja problema međusobnoga isključivanja. Najveći nedostatak
ovakvih rješenja je radno čekanje. Dretve koje čekaju na ulazak u kritični odsječak će
neprestano ispitivati varijablu dok ona ne promijeni svoju vrijednost čime se troši vrijeme i
resursi procesora. Umjesto njih, postoje ugradbeni mehanizmi koji rješavaju problem radnog
čekanja i značajno smanjuju iskorištenost procesora čime ubrzavaju izvođenje operacijskog
sustava. U ovome radu sam opisao neke od razreda i knjižnica pomoću kojih se u
programskom jeziku C++ može na jednostavan način kontrolirati pristup nekom dijeljenom
resursu. Provedena je usporedba brzine rada algoritama i ugradbenih mehanizama ovisno o
operacijskom sustavu na kojem se izvode
A task communication language and compiler for the NuMesh
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1994.Includes bibliographical references (leaves 71-72).by Jason Steven Cornez.M.Eng
Measuring concurrency in CCS
A research report submitted to the Faculty of Science,
University of the Witwatersrand, Johannesburg,
in partial fulfilment of the requirements for
the degree of Master of ScienceThis research report investigates the application of Charron-Bost's measure of
currency m to Milner's Calculus of Communicating Systems (CCS). The aim of this
is twofold: first to evaluate the measure m in terms of criteria gathered from the
literature: and second to determine the feasiblllty of measuring concurrency in CCS
and hence provide a new tool for understanding concurrency using CCS. The approach
taken is to identify the differences hetween the message-passing formalism in
which the measure m is defined, and CCS and to modify this formalism to-enable
the mapping of CCS agents to it. A software tool, the Concurrency Measurement
Tool, is developed to permit experimentation with chosen CCS agents. These experiments
show that the measure m, although intuitively appealing, is defined by an
algebraic expression that is ill-behaved. A new measure is defined and it is shown
that it matches the evaluation criteria better than m, although it is still not ideal.
This work demonstrates that it is feasible to measure concurrency in CCS and that
a methodology has been developed for evaluating concurrency measures.Andrew Chakane 201
- …