4,334 research outputs found
A Cyclic Distributed Garbage Collector for Network Objects
This paper presents an algorithm for distributed garbage collection and outlines its implementation within the Network Objects system. The algorithm is based on a reference listing scheme, which is augmented by partial tracing in order to collect distributed garbage cycles. Processes may be dynamically organised into groups, according to appropriate heuristics, to reclaim distributed garbage cycles. The algorithm places no overhead on local collectors and suspends local mutators only briefly. Partial tracing of the distributed graph involves only objects thought to be part of a garbage cycle: no collaboration with other processes is required. The algorithm offers considerable flexibility, allowing expediency and fault-tolerance to be traded against completeness
Automated Verification of Practical Garbage Collectors
Garbage collectors are notoriously hard to verify, due to their low-level
interaction with the underlying system and the general difficulty in reasoning
about reachability in graphs. Several papers have presented verified
collectors, but either the proofs were hand-written or the collectors were too
simplistic to use on practical applications. In this work, we present two
mechanically verified garbage collectors, both practical enough to use for
real-world C# benchmarks. The collectors and their associated allocators
consist of x86 assembly language instructions and macro instructions, annotated
with preconditions, postconditions, invariants, and assertions. We used the
Boogie verification generator and the Z3 automated theorem prover to verify
this assembly language code mechanically. We provide measurements comparing the
performance of the verified collector with that of the standard Bartok
collectors on off-the-shelf C# benchmarks, demonstrating their competitiveness
The irony of choice in recruitment: when similarity turns recruiters to other candidates
Across two experimental studies, we examine the influence of similarity perceptions on recruiters’ job fit perceptions of job applicants. In addition, a robustness study extends the effect of similarity by introducing work-related sources of similarity and tests the relationship between workrelated similarities on similarity perceptions. Moreover, we explore the emotional and cognitive mechanisms behind the effects of similarity perceptions on job fit. We also propose and test a boundary condition, such that, when job desirability is low, the effect of demographic similarity on perceived similarity is reversed. The sample for the three studies consist of specialized master’s students with work experience in human resources management who acted as recruiters in a resume screening situation. The results show that the effects of similarity are not always positive for job fit perceptions. The studies provide evidence that when recruiters perceive applicants as similar to themselves, biased evaluations occur. Finally, we provide results that show the effects of mediation and moderation analysis whereby liking mediates the relationship between similarity perceptions and job fit perceptions through emotional, cognitive and motivational sequential mediators. Additionally, job desirability moderates the relationship between demographic similarity and similarity perceptions so that when job desirability is low, the effect of demographic similarity on perceived similarity is reversed
Scalable, Time-Responsive, Digital, Energy-Efficient Molecular Circuits using DNA Strand Displacement
We propose a novel theoretical biomolecular design to implement any Boolean
circuit using the mechanism of DNA strand displacement. The design is scalable:
all species of DNA strands can in principle be mixed and prepared in a single
test tube, rather than requiring separate purification of each species, which
is a barrier to large-scale synthesis. The design is time-responsive: the
concentration of output species changes in response to the concentration of
input species, so that time-varying inputs may be continuously processed. The
design is digital: Boolean values of wires in the circuit are represented as
high or low concentrations of certain species, and we show how to construct a
single-input, single-output signal restoration gate that amplifies the
difference between high and low, which can be distributed to each wire in the
circuit to overcome signal degradation. This means we can achieve a digital
abstraction of the analog values of concentrations. Finally, the design is
energy-efficient: if input species are specified ideally (meaning absolutely 0
concentration of unwanted species), then output species converge to their ideal
concentrations at steady-state, and the system at steady-state is in (dynamic)
equilibrium, meaning that no energy is consumed by irreversible reactions until
the input again changes.
Drawbacks of our design include the following. If input is provided
non-ideally (small positive concentration of unwanted species), then energy
must be continually expended to maintain correct output concentrations even at
steady-state. In addition, our fuel species - those species that are
permanently consumed in irreversible reactions - are not "generic"; each gate
in the circuit is powered by its own specific type of fuel species. Hence
different circuits must be powered by different types of fuel. Finally, we
require input to be given according to the dual-rail convention, so that an
input of 0 is specified not only by the absence of a certain species, but by
the presence of another. That is, we do not construct a "true NOT gate" that
sets its output to high concentration if and only if its input's concentration
is low. It remains an open problem to design scalable, time-responsive,
digital, energy-efficient molecular circuits that additionally solve one of
these problems, or to prove that some subset of their resolutions are mutually
incompatible.Comment: version 2: the paper itself is unchanged from version 1, but the
arXiv software stripped some asterisk characters out of the abstract whose
purpose was to highlight words. These characters have been replaced with
underscores in version 2. The arXiv software also removed the second
paragraph of the abstract, which has been (attempted to be) re-inserted.
Also, although the secondary subject is "Soft Condensed Matter", this
classification was chosen by the arXiv moderators after submission, not
chosen by the authors. The authors consider this submission to be a
theoretical computer science paper
Java operating systems: design and implementation
Journal ArticleLanguage-based extensible systems such as Java use type safety to provide memory safety in a single address space. Memory safety alone, however, is not sufficient to protect different applications from each other. such systems must support a process model that enables the control and management of computational resources. In particular, language-based extensible systems must support resource control mechanisms analogous to those in standard operating-systems. They must support the separation of processes and limit their use of resources, but still support safe and efficient interprocess communication
Pretenuring for Java
Pretenuring is a technique for reducing copying costs in garbage collectors. When pretenuring, the allocator places long-lived objects into regions that the garbage collector will rarely, if ever, collect. We extend previous work on profiling-driven pretenuring as follows. (1) We develop a collector-neutral approach to obtaining object lifetime profile information. We show that our collection of Java programs exhibits a very high degree of homogeneity of object lifetimes at each allocation site. This result is robust with respect to different inputs, and is similar to previous work on ML, but is in contrast to C programs, which require dynamic call chain context information to extract homogeneous lifetimes. Call-site homogeneity considerably simplifies the implementation of pretenuring and makes it more efficient. (2) Our pretenuring advice is neutral with respect to the collector algorithm, and we use it to improve two quite different garbage collectors: a traditional generational collector and an older-first collector. The system is also novel because it classifies and allocates objects into 3 categories: we allocate immortal objects into a permanent region that the collector will never consider, long-lived objects into a region in which the collector placed survivors of the most recent collection, and shortlived objects into the nursery, i.e., the default region. (3) We evaluate pretenuring on Java programs. Our simulation results show that pretenuring significantly reduces collector copying for generational and older-first collectors. 1
- …