55 research outputs found
On Verifying Causal Consistency
Causal consistency is one of the most adopted consistency criteria for
distributed implementations of data structures. It ensures that operations are
executed at all sites according to their causal precedence. We address the
issue of verifying automatically whether the executions of an implementation of
a data structure are causally consistent. We consider two problems: (1)
checking whether one single execution is causally consistent, which is relevant
for developing testing and bug finding algorithms, and (2) verifying whether
all the executions of an implementation are causally consistent.
We show that the first problem is NP-complete. This holds even for the
read-write memory abstraction, which is a building block of many modern
distributed systems. Indeed, such systems often store data in key-value stores,
which are instances of the read-write memory abstraction. Moreover, we prove
that, surprisingly, the second problem is undecidable, and again this holds
even for the read-write memory abstraction. However, we show that for the
read-write memory abstraction, these negative results can be circumvented if
the implementations are data independent, i.e., their behaviors do not depend
on the data values that are written or read at each moment, which is a
realistic assumption.Comment: extended version of POPL 201
Supply chain risk management and the role of organisation culture : evidence from Libyan ports
Seaports are one of the main facilitators of economic growth as they create trade and jobs globally. Particularly in African countries, where they are considered as focal points for oil and gas exportation with both neighbouring and developed countries. As a result, Supply Chain Risk Management or SCRM has become increasingly significant. This research focuses on the context of North African countries, specifically Libya, which is currently suffering from a leadership crisis, violent and political conflict, armed groups and a risky geographical location. All of which relate to and help to build connections within the context of national and organisational culture and the impact of SCRMP on Libyan Ports (LPs). By understanding these connections, these ports could then improve their working conditions, whilst becoming aware of internal and external factors and their impact on survival. This research aims to develop and aid understanding of the impact of SCRM on LPs and how these risk management practices are linked with both national and organisational culture. The focus will be on both internal and external factors, which may influence either positively or negatively. In order to comprehensively understand the topic, this research considers; experience, background, opinions, suggestions, situations, context, culture, and the environment. A pilot study will be conducted with 32 supervisors from four major Libyan ports; Misurata, Khoms, Tripoli, and Benghazi, being interviewed. The main findings highlighting the negative influence of factors such as high-power distance, authority, uncertainty avoidance, political involvement, centralisation, nepotism and low levels of long-term decision making on the SCRMP operations of Libyan Ports (LPs). Ultimately, a conceptual framework will be developed to aid understanding of how the top management of ports in developing countries could be improved using SCRMP
Algorithmic Verification of Asynchronous Programs
Asynchronous programming is a ubiquitous systems programming idiom to manage
concurrent interactions with the environment. In this style, instead of waiting
for time-consuming operations to complete, the programmer makes a non-blocking
call to the operation and posts a callback task to a task buffer that is
executed later when the time-consuming operation completes. A co-operative
scheduler mediates the interaction by picking and executing callback tasks from
the task buffer to completion (and these callbacks can post further callbacks
to be executed later). Writing correct asynchronous programs is hard because
the use of callbacks, while efficient, obscures program control flow.
We provide a formal model underlying asynchronous programs and study
verification problems for this model. We show that the safety verification
problem for finite-data asynchronous programs is expspace-complete. We show
that liveness verification for finite-data asynchronous programs is decidable
and polynomial-time equivalent to Petri Net reachability. Decidability is not
obvious, since even if the data is finite-state, asynchronous programs
constitute infinite-state transition systems: both the program stack and the
task buffer of pending asynchronous calls can be potentially unbounded.
Our main technical construction is a polynomial-time semantics-preserving
reduction from asynchronous programs to Petri Nets and conversely. The
reduction allows the use of algorithmic techniques on Petri Nets to the
verification of asynchronous programs.
We also study several extensions to the basic models of asynchronous programs
that are inspired by additional capabilities provided by implementations of
asynchronous libraries, and classify the decidability and undecidability of
verification questions on these extensions.Comment: 46 pages, 9 figure
Locality and Singularity for Store-Atomic Memory Models
Robustness is a correctness notion for concurrent programs running under
relaxed consistency models. The task is to check that the relaxed behavior
coincides (up to traces) with sequential consistency (SC). Although
computationally simple on paper (robustness has been shown to be
PSPACE-complete for TSO, PGAS, and Power), building a practical robustness
checker remains a challenge. The problem is that the various relaxations lead
to a dramatic number of computations, only few of which violate robustness.
In the present paper, we set out to reduce the search space for robustness
checkers. We focus on store-atomic consistency models and establish two
completeness results. The first result, called locality, states that a
non-robust program always contains a violating computation where only one
thread delays commands. The second result, called singularity, is even stronger
but restricted to programs without lightweight fences. It states that there is
a violating computation where a single store is delayed.
As an application of the results, we derive a linear-size source-to-source
translation of robustness to SC-reachability. It applies to general programs,
regardless of the data domain and potentially with an unbounded number of
threads and with unbounded buffers. We have implemented the translation and
verified, for the first time, PGAS algorithms in a fully automated fashion. For
TSO, our analysis outperforms existing tools
Finite Automata for the Sub- and Superword Closure of CFLs: Descriptional and Computational Complexity
We answer two open questions by (Gruber, Holzer, Kutrib, 2009) on the
state-complexity of representing sub- or superword closures of context-free
grammars (CFGs): (1) We prove a (tight) upper bound of on
the size of nondeterministic finite automata (NFAs) representing the subword
closure of a CFG of size . (2) We present a family of CFGs for which the
minimal deterministic finite automata representing their subword closure
matches the upper-bound of following from (1).
Furthermore, we prove that the inequivalence problem for NFAs representing sub-
or superword-closed languages is only NP-complete as opposed to PSPACE-complete
for general NFAs. Finally, we extend our results into an approximation method
to attack inequivalence problems for CFGs
Ogre and Pythia: An Invariance Proof Method for Weak Consistency Models
We design an invariance proof method for concurrent programs parameterised by a weak consistency model. The calculational design of the invariance proof method is by abstract interpretation of a truly parallel analytic semantics. This generalises the methods by Lamport and Owicki-Gries for sequential consistency. We use cat as an example of language to write consistency specifications of both concurrent programs and machine architectures
Decreased glutathione levels and impaired antioxidant enzyme activities in drug-naive first-episode schizophrenic patients
<p>Abstract</p> <p>Background</p> <p>The aim of this study was to determine glutathione levels and antioxidant enzyme activities in the drug-naive first-episode patients with schizophrenia in comparison with healthy control subjects.</p> <p>Methods</p> <p>It was a case-controlled study carried on twenty-three patients (20 men and 3 women, mean age = 29.3 ± 7.5 years) recruited in their first-episode of schizophrenia and 40 healthy control subjects (36 men and 9 women, mean age = 29.6 ± 6.2 years). In patients, the blood samples were obtained prior to the initiation of neuroleptic treatments. Glutathione levels: total glutathione (GSHt), reduced glutathione (GSHr) and oxidized glutathione (GSSG) and antioxidant enzyme activities: superoxide dismutase (SOD), glutathione peroxidase (GPx), catalase (CAT) were determined by spectrophotometry.</p> <p>Results</p> <p>GSHt and reduced GSHr were significantly lower in patients than in controls, whereas GSSG was significantly higher in patients. GPx activity was significantly higher in patients compared to control subjects. CAT activity was significantly lower in patients, whereas the SOD activity was comparable to that of controls.</p> <p>Conclusion</p> <p>This is a report of decreased plasma levels of GSHt and GSHr, and impaired antioxidant enzyme activities in drug-naive first-episode patients with schizophrenia. The GSH deficit seems to be implicated in psychosis, and may be an important indirect biomarker of oxidative stress in schizophrenia early in the course of illness. Finally, our results provide support for further studies of the possible role of antioxidants as neuroprotective therapeutic strategies for schizophrenia from early stages.</p
- …