203 research outputs found
Are Lock-Free Concurrent Algorithms Practically Wait-Free?
Lock-free concurrent algorithms guarantee that some concurrent operation will
always make progress in a finite number of steps. Yet programmers prefer to
treat concurrent code as if it were wait-free, guaranteeing that all operations
always make progress. Unfortunately, designing wait-free algorithms is
generally a very complex task, and the resulting algorithms are not always
efficient. While obtaining efficient wait-free algorithms has been a long-time
goal for the theory community, most non-blocking commercial code is only
lock-free.
This paper suggests a simple solution to this problem. We show that, for a
large class of lock- free algorithms, under scheduling conditions which
approximate those found in commercial hardware architectures, lock-free
algorithms behave as if they are wait-free. In other words, programmers can
keep on designing simple lock-free algorithms instead of complex wait-free
ones, and in practice, they will get wait-free progress.
Our main contribution is a new way of analyzing a general class of lock-free
algorithms under a stochastic scheduler. Our analysis relates the individual
performance of processes with the global performance of the system using Markov
chain lifting between a complex per-process chain and a simpler system progress
chain. We show that lock-free algorithms are not only wait-free with
probability 1, but that in fact a general subset of lock-free algorithms can be
closely bounded in terms of the average number of steps required until an
operation completes.
To the best of our knowledge, this is the first attempt to analyze progress
conditions, typically stated in relation to a worst case adversary, in a
stochastic model capturing their expected asymptotic behavior.Comment: 25 page
Models for multi-strata safety performance measurements in the process industry
Measuring process safety performance is a challenge, and the wide variations in understanding, compliance, and implementation of process safety programs increase the challenge. Process safety can be measured in three strata: (1) measurement of process safety elements within facilities; (2) benchmarking of process safety elements among facilities; and (3) use of incident data collection from various sources for industrial safety performance assessment.
The methods presently available for measurement of process safety within facilities are deficient because the results are strongly dependent on user judgment. Performance benchmarking among facilities is done within closed groups of organizations. Neither the questionnaires nor the results are available to the public. Many organizations collect data on industrial incidents. These organizations differ from each other in their interests, data collection procedures, definitions, and scope, and each of them analyzes its data to achieve its objectives. However, there have been no attempts to explore the potential of integrating data sources and harnessing these databases for industrial safety performance assessment.
In this study we developed models to pursue the measurement of samples of the strata described above. The measurement methodologies employed herein overcome the disadvantages of existing methodologies and increase their capabilities
- …