Achour Mostéfaoui
email: achour.mostefaoui@univ-nantes.fr

Michel Raynal
email: raynal@irisa.fr

Two-Bit Messages are Sufficient to Implement Atomic Read/Write Registers in Crash-prone Systems

Keywords: Asynchronous message-passing system, Atomic read-write register, Message type, Process crash failure, Sequence number, Upper bound

Atomic registers are certainly the most basic objects of computing science. Their implementation on top of an n-process asynchronous message-passing system has received a lot of attention. It has been shown that t < n/2 (where t is the maximal number of processes that may crash) is a necessary and sufficient requirement to build an atomic register on top of a crash-prone asynchronous message-passing system. Considering such a context, this paper presents an algorithm which implements a single-writer multi-reader atomic register with four message types only, and where no message needs to carry control information in addition to its type. Hence, two bits are sufficient to capture all the control information carried by all the implementation messages. Moreover, the messages of two types need to carry a data value while the messages of the two other types carry no value at all. As far as we know, this algorithm is the first with such an optimality property on the size of control information carried by messages. It is also particularly efficient from a time complexity point of view.

Introduction

Since Sumer time [START_REF] Kramer | History Begins at Sumer: Thirty-Nine Firsts in Man's Recorded History[END_REF], and -much later-Turing's machine tape [START_REF] Turing | On computable numbers with an application to the Entscheidungsproblem[END_REF], read/write objects are certainly the most basic communication objects. Such an object, usually called a register, provides its users (processes) with a write operation which defines the new value of the register, and a read operation which returns the value of the register. When considering sequential computing, registers are universal in the sense that they allow to solve any problem that can be solved [START_REF] Turing | On computable numbers with an application to the Entscheidungsproblem[END_REF].

Register in message-passing systems In a message-passing system, the computing entities communicate only by sending and receiving messages transmitted through a communication network. Hence, in such a system, a register is not a communication object given for free, but constitutes a communication abstraction which must be built with the help of the underlying communication network and the local memories of the processes.

Several types of registers can be defined according to which processes are allowed to read or write the register, and the quality (semantics) of the value returned by each read operation. We consider here registers which are single-writer multi-reader (SWMR), and atomic. Atomicity means that (a) each read or write operation appears as if it had been executed instantaneously at a single point of the time line, between its start event and its end event, (b) no two operations appear at the same point of the time line, and (c) a read returns the value written by the closest preceding write operation (or the initial value of the register if there is no preceding write) [START_REF] Lamport | On interprocess communication, Part I: basic formalism[END_REF]. Algorithms building multi-writer multi-reader (MWMR) atomic registers from single-writer single-reader (SWSR) registers with a weaker semantics (safe or regular registers) have been introduced by L. Lamport in [START_REF] Lamport | On interprocess communication, Part I: basic formalism[END_REF][START_REF] Lamport | On interprocess communication, Part II: Algorithms[END_REF] (such algorithms are described in several papers and textbooks, e.g., [START_REF] Attiya | Distributed computing: fundamentals, simulations and advanced topics[END_REF][START_REF] Lynch | Distributed algorithms[END_REF][START_REF] Raynal | Concurrent programming: algorithms, principles and foundations[END_REF][START_REF] Vitányi | Atomic shared register access by asynchronous hardware[END_REF]).

Many distributed algorithms have been proposed, which build a register on top of a message-passing system, be it failure-free or failure-prone. In the failure-prone case, the addressed failure models are the process crash failure model, or the Byzantine process failure model (see, the textbooks [START_REF] Attiya | Distributed computing: fundamentals, simulations and advanced topics[END_REF][START_REF] Lynch | Distributed algorithms[END_REF][START_REF] Raynal | Communication and agreement abstractions for fault-tolerant asynchronous distributed systems[END_REF][START_REF] Raynal | Distributed algorithms for message-passing systems[END_REF]). The most famous of these algorithms was proposed by H. Attiya, A. Bar-Noy, and D. Dolev in [START_REF] Attiya | Sharing memory robustly in message passing systems[END_REF]. This algorithm, which is usually called ABD according to the names of its authors, considers an n-process asynchronous system in which up to t < n/2 processes may crash (it is also shown in [START_REF] Attiya | Sharing memory robustly in message passing systems[END_REF] that t < n/2 is an upper bound of the number of process crashes which can be tolerated). This simple and elegant algorithm, relies on (a) quorums [START_REF] Vukolic | Quorum systems, with applications to storage and consensus[END_REF], and (b) a simple broadcast/reply communication pattern. ABD uses this pattern once in a write operation, and twice in a read operation implementing an SWMR register (informal presentations of ABD can be found in [START_REF] Attiya | Robust simulation of shared memory: 20 years after[END_REF][START_REF] Ruppert | Implementing shared registers in asynchronous message-passing systems[END_REF]).

Content of the paper ABD and its successors (e.g., [START_REF] Attiya | Efficient and robust sharing of memory in message-passing systems[END_REF][START_REF] Mostéfaoui | Time-efficient read/write register in crash-prone asynchronous message-passing systems[END_REF][START_REF] Vukolic | Quorum systems, with applications to storage and consensus[END_REF]) associate an increasing sequence number with each value that is written. This allows to easily identify each written value. Combined with the use of majority quorums, this value identification allows each read invocation to return a value that satisfies the atomicity property (intuitively, a read always returns the "last" written value).

Hence, from a communication point of view, in addition to the number of messages needed to implement a read or a write operation, important issues are the number of different message types, and the size of the control information that each of them has to carry. As sequence numbers increase according to the number of write invocations, this number is not bounded, and the size of a message that carries a sequence number can become arbitrarily large.

A way to overcome this drawback consists in finding a modulo-based implementation of sequence numbers [START_REF] Israeli | Bounded time-stamps[END_REF], which can be used to implement read/write registers. Considering this approach, one of the algorithms presented in [START_REF] Attiya | Sharing memory robustly in message passing systems[END_REF] uses messages that carry control information whose size is upper bounded by O(n 5 ) bits (where n is the total number of processes). The algorithm presented in [START_REF] Attiya | Efficient and robust sharing of memory in message-passing systems[END_REF] reduced this size to O(n 3 ) bits. Hence the natural question: "How many bits of control information, a message has to carry, when one wants to implement an atomic read/write register?". This is the question that gave rise to this paper, which shows that it is possible to implement an SWMR atomic register with four types of message carrying no control information in addition to their type. Hence, the result: messages carrying only two bits of control information are sufficient to implement an SWMR atomic register in the presence of asynchrony and up to t < n/2 unexpected process crashes. Another important property of the proposed algorithm lies in its time complexity, namely, in a failure-free context and assuming a bound ∆ on message transfer delays, a write operation requires at most 2∆ time units, and a read operation requires at most 4∆ time units.

Roadmap

The paper is made up of 5 sections. The computing model and the notion of an atomic register are presented in Section 2. The algorithm building an SWMR atomic register, where messages carry only two bits of control information (their type), in an asynchronous message-passing system prone to any minority of process crashes is presented in Section 3. Its proof appears in Section 4. Finally, Section 5 concludes the paper.

Computation Model and Atomic Read/Write Register

Computation model

Processes The computing model is composed of a set of n sequential processes denoted p 1 , ..., p n . Each process is asynchronous which means that it proceeds at its own speed, which can be arbitrary and remains always unknown to the other processes.

A process may halt prematurely (crash failure), but executes correctly its local algorithm until it possibly crashes. The model parameter t denotes the maximal number of processes that may crash in a run. A process that crashes in a run is said to be faulty. Otherwise, it is correct or non-faulty. Given a run, C denotes the set of correct processes.

Communication Each pair of processes communicate by sending and receiving messages through two unidirectional channels, one in each direction. Hence, the communication network is a complete network: any process p i can directly send a message to any process p j .A process p i invokes the operation "send TYPE(m) to p j " to send to p j the message m, whose type is TYPE. The operation "receive TYPE() from p j " allows p i to receive from p j a message whose type is TYPE.

Each channel is reliable (no loss, corruption, nor creation of messages), not necessarily first-in/first-out, and asynchronous (while the transit time of each message is finite, there is no upper bound on message transit times).

Let us notice that, due to process and message asynchrony, no process can know if an other process crashed or is only very slow. Notation In the following, the previous computation model is denoted CAMP n,t [∅] (unconstrained Crash Asynchronous Message-Passing).

Atomic read/write register

Definition A concurrent object is an object that can be accessed by several processes (possibly simultaneously). An SWMR atomic register (say REG) is a concurrent object which provides exactly one process (called the writer) with an operation denoted REG.write(), and all processes with an operation denoted REG.read(). When the writer invokes REG.write(v) it defines v as being the new value of REG. An SWMR atomic register is defined by the following set of properties [START_REF] Lamport | On interprocess communication, Part I: basic formalism[END_REF].

• Liveness. An invocation of an operation by a correct process terminates.

• Consistency (safety). All the operations invoked by the processes, except possibly -for each faulty process-the last operation it invoked, appear as if they have been executed sequentially and this sequence of operations is such that:

-each read returns the value written by the closest write that precedes it (or the initial value of REG if there is no preceding write), -if an operation op1 terminates before an operation op2 starts, then op1 appears before op2 in the sequence.

This set of properties states that, from an external observer point of view, the read/write register appears as if it is accessed sequentially by the processes, and this sequence (a) respects the real time access order, and (ii) belongs to the sequential specification of a register. More formal definitions can be found in [START_REF] Lamport | On interprocess communication, Part I: basic formalism[END_REF][START_REF] Misra | Axioms for memory access in asynchronous hardware systems[END_REF]. (When considering any object defined by a sequential specification, atomicity is also called linearizability [START_REF] Herlihy | Linearizability: a correctness condition for concurrent objects[END_REF], and it is then said that the object is linearizable.)

Necessary and sufficient condition

The constraint (t < n/2) is a necessary and sufficient condition to implement an atomic read/write register in CAMP n,t [∅] [START_REF] Attiya | Sharing memory robustly in message passing systems[END_REF]. Hence, the corresponding constrained model is denoted CAMP n,t [t < n/2].

An Algorithm with Two-Bit Messages

A distributed algorithm implementing an SWMR atomic register in

CAMP n,t [t < n/2] is described in Fig- ure 1.
As already indicated, this algorithm uses only four types of messages, denoted WRITE0(), WRITE1(), READ(), and PROCEED(). The messages WRITE0() and WRITE1() carry a data value, while the messages READ() and PROCEED() carry only their type.

Notation and underlying principles

Notation p w denotes the writer process, v x denotes the x th value written by p w , and v 0 is the initial value of the register REG that is built.

Underlying principles

The principle that underlies the algorithm is the following. First, each process (a) manages a local copy of the sequential history made up of the values written by the writer, and (b) forwards, once to each process, each new value it learns. Then, in order that all processes obtain the same sequential history, and be able to read up to date values, each process p i follows rules to forward a value to another process p j , and manages accordingly appropriate local variables, which store sequence numbers.

• Rule R1. When, while it knows the first (x -1) written values, and only them, p i receives the x th written value, it forwards it to all the processes that, from its point of view, know the first (x -1) written values and no more. In this way, these processes will learn the x th written value (if not yet done when they receive the corresponding message forwarded by p i ). • Rule R2. The second forwarding rule is when p i receives the x th written value from a process p j , while it knows the first y written values, where y > x. In this case, p i sends the (x + 1) th written value to p j , and only this value, in order p j increases its local sequential history with its next value (if not yet done when it receives the message from p i ). • Rule R3. To ensure a correct management of the local histories, and allow a process to help other processes in the construction of their local histories (Rules R1 and R2), each process manages a sequence number-based local view of the progress of each other process (as far as the construction of their local history is concerned).

As we are about to see, translating these rules into an algorithm, provides us with a distributed algorithm where, while each process locally manages sequence numbers, the only control information carried by each message is its type, the number of different message types being very small (namely 4, as already indicated) 1 .

Local data structures

Each process p i manages the following local data structures.

• history i is the prefix sequence of the values already written, as known by p i ; history i is accessed with an array like-notation, and we have history i [0] = v 0 . As there is a single writer p w , history w represents the history of the values written so far.

• w_sync i [1.
.n] is an array of sequence numbers; w_sync i [j] = α means that, to p i 's knowledge, p j knows the prefix of history w until history w [α]. Hence, w_sync i [i] is the sequence number of the most recent value known by p i , and w_sync w [w] is the sequence number of the last value written (by p w ).

• r_sync i [1.
.n] is an array of sequence numbers; r_sync i [j] = α means that, to p i 's knowledge, p j answered α of its read requests. • wsn, rsn and sn are auxiliary local variables, the scope of each being restricted to the algorithm implementing an operation, or the processing of a message, in which it occurs.

Channel behavior with respect to the message types WRITE0() and WRITE1()

As far as the messages WRITE0() and WRITE1() are concerned, the notation WRITE(0, v) is used for WRITE0(v), and similarly, WRITE(1, v) is used for WRITE1(v).

When considering the two uni-directional channels connecting p i and p j , the algorithm, as we will see, requires (a) p i to send to p j the sequence of messages WRITE(1, v 1 ), WRITE0(0, v 2 ), WRITE(1, v 3 ), ..., WRITE(x mod 2, v x ), etc., and (b) p j to send to p i the very same sequence of messages WRITE(1, v 1 ),

WRITE0(0, v 2 ), WRITE(1, v 3 ), ..., WRITE(x mod 2, v x ), etc.
Moreover, the algorithm forces process p i to send to p j the message WRITE(x mod 2, v x ), only when it has received from p j the message WRITE((x -1) mod 2, v x-1 ). From the point of view of the write messages, these communication rules actually implement the alternating bit protocol [START_REF] Bartlett | A note on reliable full-duplex transmission over halfduplex links[END_REF][START_REF] Lynch | Reliable full-duplex file transmission over half-duplex telephone lines[END_REF], which ensures the following properties:

• Property P1: each of the two uni-directional channels connecting p i and p j allows at most one message WRITE(-, -) to bypass another message WRITE(-, -), which, thanks to the single control bit carried by these messages allows the destination process (e.g., p i ) to process the messages WRITE(-, -) it receives from (e.g., p j ) in their sending order. • Property P2: p i and p j are synchronized in such a way that 0

≤ |w_sync i [j] -w_sync j [i]| ≤ 1.
This is the translation of Property P1 in terms of the pair of local synchronization-related variables

w_sync i [j], w_sync j [i] .
Let us insist on the fact that this "alternating bit" message exchange pattern is only on the write messages. It imposes no constraint on the messages of the types READ() and PROCEED() exchanged between p i and p j , which can come in between, at any place in the sequence of the write messages sent by a process p i to a process p j .

The algorithm implementing the write() operation

This algorithm is described at lines 1-4, executed by the writer p w , and line 11-18, executed by any process.

Invocation of the operation write() When p w invokes write(v x ) (we have then w_sync w [w] = x -1), it increases w_sync w [w] and writes v x at the tail of its local history variable (line 1). This value is locally identified by its sequence number x = wsn. Then p w sends the message WRITE(b, v x ), where b = (wsn mod 2), to each process p j that (from its point of view) knows all the previous write invocations, and only to these processes. According to the definition of w_sync w [1..n], those are the processes p j such that w_sync w [j] = wsn-1 = w_sync w [w]-1 (line 2). Let us notice that this ensures the requirement p i needs to satisfy when it sends a message in order to benefit from the properties provided by the alternating bit communication pattern.

Finally, p w waits until it knows that a quorum of at least (n-t) processes knows the value v x is it writing. The fact that a process p j knows this x th value is captured by the predicate w_sync w [j] = wsn(= x) (line 3). (2) for each j such that w_syncw[j] = wsn -1 do send WRITE(b, v) to pj end for; Reception of a message WRITE(b, v) from a process p j When p i receives a message WRITE(b, v) from a process p j , it first waits until the waiting predicate of line 11 is satisfied. This waiting statement is nothing else than the the reception part of the alternating bit algorithm, which guarantees that the messages WRITE() from p j are processed in their sending order. When, this waiting predicate is satisfied, all messages sent by p j before WRITE(b, v) have been received and processed by p i , and consequently the message WRITE(b, v) is the swn th message sent by p j (FIFO order), where wsn = w_sync i [j]+1, which means that history j [wsn] = v (line 12). When this occurs, p i learns that v is the next value to be added to its local history if additionally we have w_sync i [i] = wsn -1. In this case (predicate of line 13), p i (a) adds v at the tail of its history (line 14), and (b) forwards the message WRITE(b, v) to the processes that, from its local point of view, know the first (wsn -1) written values and no more (line 15, forwarding Rule R1).

end operation. %--------------------------------------------- when WRITE(b, v) is received from pj do (11) wait b = (w_synci[j] + 1) mod 2 ; (12) wsn ← w_synci[j] + 1; (13) if (wsn = w_synci[i] + 1) (14
If wsn < w_sync i [i], from p i 's local point of view, the history known by p j is a strict prefix of its own history. Consequently, p i sends to p j the message WRITE(b ′ , v ′ ), where b ′ = ((wsn + 1) mod 2) and v ′ = history i [wsn + 1] (line 16 applies the forwarding Rule R2 in order to allow p j to catch up its lag, if not yet done when it will receive the message WRITE(b ′ , v ′ ) sent by p i ). Finally, as p j sends to p i a single message per write operation, whatever the value of wsn, p i updates w_sync i [j] (line 18). Remark As far as the written values are concerned, the algorithm implementing the operation write() can be seen as a fault-tolerant "synchronizer" (in the spirit of [START_REF] Awerbuch | Complexity of network synchronization[END_REF]), which ensures the mutual consistency of the local histories between any two neighbors with the help of an alternating bit algorithm executed by each pair of neighbors [START_REF] Bartlett | A note on reliable full-duplex transmission over halfduplex links[END_REF][START_REF] Lynch | Reliable full-duplex file transmission over half-duplex telephone lines[END_REF].

The algorithm implementing the read() operation

This algorithm is described at lines 5-10 executed by a reader p i , and lines 19-22 executed by any process.

Invocation of the operation read()

The invoking process p i first increments its local read request sequence number r_sync i [i] and broadcasts its read request in a message READ(), which carries neither additional control information, nor a data value (lines 5-6). If p i crashes during this broadcast, the message READ() is received by an arbitrary subset of processes (possibly empty). Otherwise, p i waits until it knows that at least (nt) processes received its current request (line 7).

When this occurs, p i considers the sequence number of the last value in its history, namely sn = w_sync i [i] (line 8). This is the value it will return, namely history i [sn] (line 10). But in order to ensure atomicity, before returning history i [sn], p i waits until at least (nt) processes know this value (and may be more). From p i 's point of view, the corresponding waiting predicate translates in "at least (nt) processes p j are such that w_sync i [j] ≥ sn".

Reception of a message READ() sent by a process p j When a process p i receives a message READ() from a process p j (hence, p j issued a read operation), it considers the most recent written value it knows (the sequence number of this value is sn = w_sync i [i], line [START_REF] Ruppert | Implementing shared registers in asynchronous message-passing systems[END_REF], and waits until it knows that p j knows this value, which is locally captured by the sequence number-based predicate w_sync i [j] ≥ sn (line 20). When this occurs, p i sends the message PROCEED() to p j which is allowed to progress as far as p i is concerned.

The control messages READ() and PROCEED() (whose sending is controlled by a predicate) implement a synchronization which -as far as p i is concerned-forces the reader process p j to wait until it knows a "fresh" enough value, where "freshness" is locally defined by p i as the last value it was knowing when it received the message READ() from p j (predicate of line 20).

Reception of a message PROCEED() sent by a process p j When p i receives a message PROCEED() from a process p j , it learns that its local history is as fresh as p j 's history when p j received its message READ(). Locally, this is captured by the incrementation of r_sync i [j], namely p j answered all the read requests of p i until the (r_sync i [j]) th one.

Proof of the Algorithm

Let us remind that C is the set of correct processes, p w the writer, and v x the x th value written by p w . Due to page limitation, the missing proofs are given in an Appendix.

Lemma 1 ∀i, j: w_sync i [j] increases by steps equal to 1.

Lemma 2 ∀i, j : w_sync

i [i] ≥ w_sync j [i]. Lemma 3 ∀i: w_sync i [i] = max{w_sync i [j]} 1≤j≤n . Lemma 4 ∀i: history[0..w_sync i [i]] is a prefix of history[0..w_sync w [w]].
Lemma 5 ∀i ∈ C, ∀j : we have: R1:

(w_sync i [i] = w_sync i [j] = x) ⇒ p i sent x messages WRITE(-, -) to p j , R2: (w_sync i [i] > w_sync i [j] = x) ⇒ p i sent x + 1 messages WRITE(-, -) to p j . Lemma 6 ∀i, j ∈ C, if w_sync i [i] = x, there is a finite time after which w_sync i [j] ≥ x.
Proof Let us first notice that, due to Lemma 7, all WRITE(-, -) messages received by correct processes will eventually satisfy the predicate line 11 and will be processed.

The proof is by contradiction. Let us assume that there exists some correct process p j such that w_sync i [j] stops increasing forever at some value y < x. Let us first notice that there is no message WRITE(-, -) in transit from p j to p i otherwise its reception by p i will entail the incrementation of w_sync i [j] from y to y + 1, contradicting the assumption. So, let us consider the last message WRITE(-, -) sent by p j to p i and processed by p i . There are three cases to consider when this message is received by p i at line 11. (Let us remind that, due to to Lemma 3,

w_sync i [i] ≥ w_sync i [j].) • Case 1. w_sync i [i] = w_sync i [j] = y-1 < x-1.
The variables w_sync i [i] and w_sync i [j] are both incremented at lines 14 and 18 respectively to the value y < x. As by assumption, w_sync i [i] will attain the value x, it will be necessarily incremented in the future to reach x. The next time w_sync i [i] is incremented, a message WRITE(-, -) is sent by p i to p j (at line 15). Due to Lemma 5, p i sent y + 1 messages WRITE(-, -) to p j and eventually w_sync j [i] will be equal to y + 1. When the last of these messages arrives and is processed by p j , there are two cases.

-Case w_sync j [j] = y (as p i sent y + 1 messages WRITE(-, -) to p j , w_sync j [j] cannot be smaller than y). In this case, w_sync j [j] = y is increased, and a message WRITE(-, -) is necessarily sent by p j to p i (line 15). This contradicts the assumption that the message we considered was the last message sent by p j to p i . -Case w_sync j [j] ≥ y + 1. In this case, as p i sent previously y messages to p j , we necessarily have w_sync j [i] = y. In this case, the predicate of line 13 is false, while the one of line 16 is satisfied. Hence, p j sends a message WRITE(-, -) to p i . A contradiction.

• Case 2. w_sync i [i] = w_sync i [j] + 1 = y < x. In this case, when p i receives the last message WRITE(-, -) from p j , the variable w_sync i [j] is incremented at line 18 to the value y < x. Moreover, by the contradiction assumption, no more message WRITE(-, -) is sent by p j to p i .

Hence, we have now w_sync i [i] = w_sync i [j] = y < x, and the variable w_sync i [i] will be incremented in the future to reach x. A reasoning similar to the previous one shows that p j will send a message WRITE(-, -) to p i in the future, which contradicts the initial assumption.

• Case 3. w_sync i [i] > w_sync i [j] + 1.
The reception by p i of the last message WRITE(-, -) from p j entails the incrementation of w_sync i [j] to its next value. However as

w_sync i [i] > w_sync i [j]
remains true, a message WRITE(-, -) is sent by p i to p j at line 16. Similarly to the previous cases, the reception of this message by p j will direct it to send another message WRITE(-, -) to p i , contradicting the initial assumption.

Hence, w_sync i [j] cannot stop increasing before reaching x, which proves the lemma. ✷ Lemma 6

Lemma 7 No correct process blocks forever at line 11.

Lemma 8 If the writer does not crash during a write operation, it terminates it.

Proof Let us first notice that, due to Lemma 7, the writer cannot block forever at line 11.

When it invokes a new write operation, the writer p w first increases the write sequence number w_sync w [w] to its next value wsn (line 1). If p w does not crash, it follows from Lemma 6 that we eventually have w_sync i [i] ≥ w_sync w [i] = wsn at each correct process p i . Consequently, the writer cannot block forever at line 3 and the lemma follows.

✷ Lemma 8

Lemma 9 If a process does not crash during a read operation, it terminates it.

Proof Let us first notice that, due to Lemma 7, the reader cannot block forever at line 11. Each time a process p i executes a read operation it broadcasts a message READ() to all the other processes (line 6). Let us remind that its local variable r_sync i [i] counts the number of messages READ() it has broadcast, while r_sync i [j] counts the number of messages PROCEED() it has received from p j (line 22) in response to its READ messages READ().

When the predicate of line 7 becomes true at the reader p i , there are at least (nt) processes that answered the r_sync i [i] messages READ() it sent (note that r_sync i [i] is incremented line 5 and p i does not send messages READ() to itself). We claim that each message READ() sent by p i to a correct process p j is eventually acknowledged by a a message PROCEED() send by p j to p i . It follows from this claim and line 22 executed by p i when it receives a message PROCEED(), that the predicate of line 7 is eventually satisfied, and consequently, p i cannot block forever at line 7.

Proof of the claim. Let us consider a correct process p j when it receives a message READ() from p i . It saves w_sync i [i] in sn and waits until w_sync j [i] ≥ sn (lines [START_REF] Ruppert | Implementing shared registers in asynchronous message-passing systems[END_REF][START_REF] Turing | On computable numbers with an application to the Entscheidungsproblem[END_REF]. Due to Lemma 6, the predicate w_sync j [i] ≥ sn eventually becomes true at p j . When this occurs, p j sends the message PROCEED() to p i (line 21), which proves the claim.

Let us now consider the wait statement at line 9, where sn is the value of w_sync i [i] when the wait statement of line 7 terminates. Let p j be a correct process. Due to Lemma 6 the predicate w_sync i [j] ≥ sn eventually holds. As this is true for any correct process p j , p i eventually exits the wait statement, which concludes the proof of the lemma.

✷ Lemma 9

Lemma 10 The register that is built is atomic.

Proof Let read[i, x] be a read operation issued by a process p i which returns the value with sequence number x (i.e., history i [x]), and write[y] be the write operation which writes the value with sequence number y (i.e., history w [y]). The proof of the lemma is the consequence of the three following claims. When p k received the message READ() from p i , we had w_sync k [k] = x, and p k waited until w_sync k [i] ≥ x (line 20) before sending the message PROCEED() that allowed p i to progress in its waiting at line 7. As w_sync i [i] ≥ w_sync k [i] (Lemma 2), it follows that we have w_sync i [i] ≥ x, when p i computes at line 8 the sequence number sn of the value it will return at line 10). Hence, the index y = sn computed by p i at line 8 is such that y = sn = w_sync i [i] ≥ x.

Proof of Claim 3. On one side, when read[i, x] stops waiting at line 9, there is a quorum Q ri of at least (nt) processes p k such that w_sync i [k] ≥ x (predicate of line 9 at p i ). Due to Lemma 2, we have then w_sync k [k] ≥ x for any process p k of Q ri , when read[i, x] terminates.

On the other side, when read[j, y] stops waiting at line 7 (which defines the value it returns, namely, history j [y]), there is a quorum Q rj of at least (nt) processes p ℓ such that (due to the waiting predicate of line 20) w_sync ℓ [j] ≥ sn(ℓ), where sn(ℓ) is the value of w_sync ℓ [ℓ] when p ℓ receives the message READ() from p j .

As each of Q ri and Q rj contains at least (nt) processes, and there is a majority of correct processes, there is at least one correct process in their intersection, say p m . It follows that we have w_sync m [m] ≥ x when read[i, x] terminates, and w_sync m [j] ≥ sn(m), where sn(m) is the value of w_sync m [m], when p m received the message READ() from p j . As w_sync m [m] never decreases, and p m receives the message READ() from p j after read[i, x] terminated, we necessarily have sn(m) ≥ x. Hence, w_sync m [j] ≥ x, when p m sends PROCEED() to p j . As (Lemma 2) w_sync j [j] ≥ w_sync m [j], it follows that the index sn computed by p i at line 8 is such that sn = y ≥ x.

✷ Lemma 10

Theorem 1 The algorithm described in Figure 1 Proof The message content part of the theorem is trivial. A read generates n messages READ(), and each of generates a message PROCEED(). A write operation generates (n -1) messages WRITE(b, -) from the writer to the other processes, and then each process forward once this message to each process. ✷ T heorem 2

Concluding Remarks

The aim and the paper As indicated in the introduction, our aim was to investigate the following question: "How many bits of control information messages have to carry to implement an atomic register in CAMP n,t [t < n/2]?".

As far as we know, all the previous works addressing this issue have reduced the size of control information with the use of a "modulo n" implementation technique. Table 1 presents three algorithms plus ours. These three algorithms are the unbounded version of the ABD algorithm [START_REF] Attiya | Sharing memory robustly in message passing systems[END_REF], its bounded version, and the bounded algorithm due to H. Attiya [START_REF] Attiya | Efficient and robust sharing of memory in message-passing systems[END_REF]. They all associate a sequence number with each written value, but differently from ours, the last two require each message to carry a "modulo representative" of a sequence number.

For each algorithm, the table considers the number of messages it uses to implement the write operation (line 1), the read operation (line 2), the number of control bits carried by messages (line 3), the size of local memory used by each process (line 4), the time complexity of the write operation (line 5), and the time complexity of the read operation (line 6), both in a failure-free context. For time complexity it is assumed that message transfer delays are bounded by ∆, and local computations are instantaneous. The values appearing in the table for the bounded version of ABD and Attiya's algorithm are from [START_REF] Attiya | Efficient and robust sharing of memory in message-passing systems[END_REF][START_REF] Ruppert | Implementing shared registers in asynchronous message-passing systems[END_REF]. The reader can see that the proposed algorithm is particularly efficient from a time complexity point of view, namely, it is as good as the unbounded version of ABD. The result presented in the paper As we have seen, our algorithm also uses sequence numbers, but those remain local. Only four types of messages are used, which means that each implementation message carries only two bits of control information. Moreover, only two message types carry a data value, the other two carry no data at all. Hence, this paper answers a long lasting question: "it is possible to implement an atomic register, despite asynchrony and crashes of a minority of processes, with messages whose control part is constant?". The unbounded feature of the proposed algorithm (when looking at the local memory size) is due to the fact that the algorithm introduces a fault-tolerant version of a "synchronizer"2 suited to the implementation of an atomic register, which disseminates new values, each traveling between each pair of processes in both directions, in such a way that a strong synchronization is ensured between any pair of processes, independently from the other processes, (namely, ∀i, j : 0 ≤ |w_sync i [j] -w_sync j [i]| ≤ 1). This fault-tolerant synchronization is strong enough to allow sequence numbers to be eliminated from messages. Unfortunately, it does not seem appropriate to allow a local modulo-based representation of sequence numbers at each process.

In addition to its theoretical interest, and thanks to its time complexity, the proposed algorithm is also interesting from a practical point of view. Due to the O(n) message cost of its read operation, it can benefit to read-dominated applications and, more generally, to any setting where the communication cost (time and message size) is the critical parameter 3 .

A problem that remains open

According to the previous discussion, a problem that still remains open is the following. Is it possible to design an implementation where (a) a constant number of bits is sufficient to encode the control information carried by messages, and (b) the sequence numbers have a local modulobased implementation? We are inclined to think that this is not possible.

  local variables initialization: historyi[0] ← v0; w_synci[1..n] ← [0, . . . , 0]; r_synci[1..n] ← [0, . . . , 0]. operation write(v) is % invoked by pi = pw (the writer) % (1) wsn ← w_syncw[w] + 1; w_syncw[w] ← wsn; historyw[wsn] ← v; b ← wsn mod 2;

  ) then w_synci[i] ← wsn; historyi[wsn] ← v; b ← wsn mod 2;[START_REF] Mostéfaoui | Time-efficient read/write register in crash-prone asynchronous message-passing systems[END_REF] for each ℓ such that w_synci[ℓ] = wsn -1 do send WRITE(b, v) to p ℓ end for[START_REF] Raynal | Communication and agreement abstractions for fault-tolerant asynchronous distributed systems[END_REF] else if (wsn < w_synci[i]) then b ← (wsn + 1) mod 2; send WRITE(b, historyi[wsn + 1]) to pj end if[START_REF] Raynal | Distributed algorithms for message-passing systems[END_REF] end if; (18) w_synci[j] ← wsn. when READ() is received from pj do (19) sn ← w_synci[i]; (20) wait (w_synci[j] ≥ sn); (21) send PROCEED() to pj. when PROCEED() is received from pj do (22) r_synci[j] ← r_synci[j] + 1.

Figure 1 :

 1 Figure 1: Single-writer multi-reader atomic register in CAMP n,t [t < n/2] with counter-free messages

  ) wait z ≥ (nt) where z is the number of processes pj such that w_syncw[j] = wsn ;

	(4) return()
	end operation.
	operation read() is % the writer can directly returns historyi[w_synchi[i]] %
	(5) rsn ← r_synci[i] + 1; r_synci[i] ← rsn;

[START_REF] Bartlett | A note on reliable full-duplex transmission over halfduplex links[END_REF]

for each j ∈ {1, ...n} \ {i} do send READ() to pj end for;

[START_REF] Herlihy | Linearizability: a correctness condition for concurrent objects[END_REF]

wait z ≥ (nt) where z is the number of processes pj such that r_synci[j] = rsn ; (8) let sn = w_synci[i]; (9) wait z ≥ (nt) where z is the number of processes pj such that w_synci[j] ≥ sn ; (10) return(historyi[sn])

•

  Claim 1. If read[i, x] terminates before write[y] starts, then x < y. • Claim 2. If write[x] terminates before read[i, y] starts, then x ≤ y. • Claim 3. If read[i, x] terminates before read[j, y] starts, then x ≤ y.Claim 1 states that no process can read from the future. Claim 2 states that no process can read overwritten values. Claim 3 states that there is no new/old read inversion[START_REF] Attiya | Distributed computing: fundamentals, simulations and advanced topics[END_REF][START_REF] Raynal | Concurrent programming: algorithms, principles and foundations[END_REF].Proof of Claim 1. Due to Lemma 4, the value returned by read[i, x] is history i [x] = history w [x] = v x .As each write generate a greater sequence number, and p w has not yet invoked write(v y ), we necessarily have y > x. terminates, there is a quorum Q w of at least (nt) processes p i such that w_sync w [j] = x. On another side, read[i, y] obtains messages PROCEED() from a quorum Q r at least (nt) processes (lines 22 and 7). As |Q w | ≥ nt, |Q r | ≥ nt, and nt > n/2, we haveQ w ∩ Q r = ∅. Let p k be a process of Q w ∩ Q r . As w_sync w [k] = x,and w_sync k [k] ≥ w_sync w [k] (Lemma 2), and write[x] is the last write before read[i, y], we have w_sync k [k] = x when read[i, y] starts.

	Proof of Claim 2.
	It follows from lines 1-3 that when write[x]

Table 1 :

 1 A few algorithms implementing an SWMR atomic register in CAMP n,t [t < n/2]

	line	What is	ABD95 [3]	ABD95 [3]	H. Attiya's	Proposed
	number	measured	unbounded seq. nb bounded seq. nb algorithm [1] algorithm
	1	#msgs: write	O(n)	O(n 2 )	O(n)	O(n 2 )
	2	#msgs: read	O(n)	O(n 2 )	O(n)	O(n)
	3	msg size (bits)	unbounded	O(n 5 )	O(n 3 )	2
	4	local memory	unbounded	O(n 6 )	O(n 5 )	unbounded
	5	Time: write	2∆	12∆	14∆	2∆
	6	Time: read	4∆	12∆	18∆	4∆

Such a constant number of message types is not possible from a "modulo f (n)" implementation of sequence numbers carried by messages. This is because, from a control information point of view, each of the values in {0, 1, . . . , f (n) -1} defines a distinct message type.

As introduced in[START_REF] Awerbuch | Complexity of network synchronization[END_REF], and presented in textbooks such as[START_REF] Attiya | Distributed computing: fundamentals, simulations and advanced topics[END_REF][START_REF] Lynch | Distributed algorithms[END_REF][START_REF] Raynal | Distributed algorithms for message-passing systems[END_REF].

In addition to the way they use sequence numbers, an interesting design difference between our algorithm and ABD-like algorithms is the following. When a process receives a message READ(), it has two possibilities. Either send by return the last written value it knows, as done in ABD-like algorithms. Or wait until it knows that the sender has a value as up to date as it own value, and only then send it a signal, as done in our algorithm with the message PROCEED().

Acknowledgments

This work has been partially supported by the French ANR project DISPLEXITY, which is devoted to computability and complexity in distributed computing, and the Franco-German ANR project DISCMAT devoted to connections between mathematics and distributed computing.

A Proof of the Lemmas 1-5 and Lemma 7

Lemma 1 ∀i, j: w_sync i [j] increases by steps equal to 1.

As this lemma is used in all other lemmas, it will not be explicitly referenced. Proof Let us first observe that, due to the sending predicates of line 2 (for the writer), and lines 15 and 16 for any process p i , no process sends a message WRITE(-, -) to itself.

As far as w_sync i [i] is concerned, and according to the previous observation,we have the following. The writer increases w_sync w [w] only at line 1. Any reader process p i increases w_sync i [i] at line 14, and due to line 12 and the predicate of line 13, the increment is 1. Let us now consider the case of w_sync i [j] when i = j. An incrementation of such a local variable occurs only at line 18, where (due to line 12) we have wsn = w_sync i [j] + 1, and the lemma follows.

✷ Lemma 1

Lemma 2 ∀i, j :

Proof Let us first observe, that the predicate is initially true.

Proof The lemma is trivially true for the writer process p w . Let us consider any other process p i , different from p w . The proof is by induction on the number of messages WRITE(-, -) received by p i . Let P (i, m) be the predicate w_sync i [i] = max{w_sync i [j]} 1≤j≤n , where m is the number of messages WRITE(-, -) processed by p i . The predicate P (i, 0) is true. Let us assume P (i, m ′ ) is true for any m ′ such that 0 ≤ m ′ ≤ m. Let p j be the process that sends to p i the (m + 1) th message WRITE(b, -), and let w_sync i [i] = x when p i starts processing this message. There are four cases to consider.

• Case 1. When the message WRITE(-, -) from p j is processed by p i , we have w_sync i

As the predicate of line 13 is satisfied when this message is processed, p i updates w_sync i [i] to the value (x + 1) at line 14. Moreover, it also updates w_sync i [j] to the same value (x + 1) at line 18. As P (i, m) is true, it follows that P (i, m + 1) is true after p i processed the message.

• Case 2. When the message WRITE(-, -) from p j is processed by p i , we have

to its next value (line 18), which is smaller than x. As P (i, m) is true, it follows that P (i, m + 1) is true after p i processed the message.

• Case 3. When the message WRITE(-, -) from p j is processed by p i , we have

In this case, both the predicates of lines 13 and 16 are false. It follows that p i executes only the update of line 18, and we have then w_sync i [j] = w_sync i [i] = x. As P (i, m) is true, P (i, m + 1) is true after p i processed the message.

• Case 4. When the message WRITE(-, -) from p j is processed by p i , we have w_sync i Proof The proof of this lemma rests on the properties P1 and P2 provided by the underlying "alternating bit" communication pattern imposed on the messages WRITE(-, -) exchanged by any pair of processes p i and p j . If follows from these properties (obtained from the use of parity bits carried by every message WRITE(-, -), and the associated wait statement of line 11) that, p i sends to p j the message WRITE(-, v x ), only after it knows that p j received WRITE(-, v x-1 ). Moreover, it follows from the management of the local sequence numbers w_sync i [1.

.n], that no process sends twice the same message WRITE(-, v x ). Finally, due to the predicate of line 11, two consecutive messages WRITE(0, -) and WRITE(1, -) sent by a process p i to a process p j are processed in their sending order. The lemma then follows from these properties, and the fact that, when at lines 13-14 a process p i assigns a value v to history i [x], this value was carried by x th message WRITE(-, v) sent by some process p j , and is the value of history j [x]. It follows that no two processes have different histories, from which we conclude that history

Lemma 5 ∀i ∈ C, ∀j : we have:

Proof Both predicates are initially true (w_sync i [i] = w_sync i [j] = 0 and no message was previously sent by p i to p j ). The variables involved in the premises of the predicates R1 and R2 can be modified in the execution of a write operation (if p i is the writer), or when a message WRITE(-, -) arrives at process p i from process p j . Let us suppose that R1 and R2 are true until the value x, and let us show that they remain true for the value (x + 1).

During the execution of a write operation, if w_sync w [w] = w_sync w [j] = x, the local variable w_sync w [w] is incremented to (x+1), and the (x+1) th message WRITE(-, -) is sent by p w to p j (lines 1-2). R1 and R2 remain true. If w_sync w [w] > w_sync w [j] = x, the local variable w_sync w [w] is incremented at line 1, but no message is sent to p j at line 2, which falsifies neither R1 nor R2. When a process p i receives a message WRITE(-, -) from a process p j , there are also two cases, according to the values of w_sync i [i] and w_sync i [j] when p i starts processing the message at line 12.

• Case 1. w_sync i [i] = w_sync i [j] = x. In this case, the predicate of line 13 is satisfied. It follows that both w_sync i [i] and w_sync i [j] are incremented to (x + 1) (at line 14 for w_sync i [i] and line 18 for w_sync i [j]). Moreover, when p i executes line 15 we have w_sync i [i] = w_sync i [j] -1, and consequently p i sends a message WRITE(-, -) to p j (the fact this message is the (x + 1) th follows from the induction assumption). Hence, R1 and R2 are true when p i terminates the processing of the message WRITE(-, -) received from p j . • Case w_sync i [i] > w_sync i [j] = x. In this case, w_sync i [j] is incremented to x + 1 at line 18, while w_sync i [i] is not (because the predicate of line 13 is false). Two sub-cases are considered according to the values of w_sync i [i] and w_sync i [j].

-If w_sync i [i] = x+1 (this is the value w_sync i [j] will obtain at line 18), the predicate of line 16 is false, and no message is sent to p j . R1 and R2 remains true, as, by the induction assumption, p i already sent (x + 1) messages WRITE(-, -). -If w_sync i [i] > x+1, the predicate of line 16 is satisfied, and the (x+2) th message WRITE(-, -) is sent to p j at this line, maintaining satisfied the predicates R1 and R2.

iii

Lemma 7 No correct process blocks forever at line 11.

Proof

The fact that the waiting predicate of line 11 is eventually satisfied follows from the following observations.

• As the network is reliable, all the messages that are sent are received. Due to lines 2 and 15-16, this means that, for any x, if WRITE(-, v x ) is received while m = WRITE(-, v x-1 ) has not, then m will be eventually received. • The message exchange pattern involving any two messages WRITE(0, -) and WRITE(1, -) (sent consecutively) exchanged between each pair of processes is the "alternating bit pattern", from which it follows that no two messages WRITE(b, -) (with the same b) can be received consecutively. • It follows that the predicate of line 11 is a simple re-ordering predicate for any pair of messages such that WRITE(-, v x ) was received before WRITE(-, v x-1 ). When this predicate is not satisfied for a message m = WRITE(b, -), this is because a message m ′ = WRITE(1b, -), will necessarily arrive and be processed before m. After that, the predicate of line 11 becomes true for m. ✷ Lemma 7


Simon Pouil

François Oberhänsli

Paco Bustamante

Marc Metian
email: m.metian@iaea.org

Investigations of temperature and pH variations on metal trophic transfer in turbot (Scophthalmus maximus) fish

Keywords: Metal trophic transfer, Trace elements, Teleost, Ocean acidification, Global warming

Studying dietary metal transfer kinetics is essential to gain a better understanding in global metal accumulation rates and its impacts in marine fish. While there exists a solid understanding on the influence of various biotic factors on this transfer, metal assimilation in fish might be also affected by abiotic factors, as has been observed in marine invertebrates. The present study therefore aim to understand the potential effects of two climate-related master variables, temperature and pH, on the assimilation efficiency (AE) of essential (Co and Zn) and nonessential (Ag) metals in the turbot Scophthalmus maximus using radiotracer tools. Juvenile turbots were acclimated for 8 weeks at two and two temperatures (17° C and 20° C) and pH (7.5 and 8.0) regimes, under controlled laboratory conditions and then fed with radio-labelled shrimp ( 57 Co, 65 Zn and 110m Ag). Assimilation efficiencies of Co and Ag in juvenile turbot, determined after a 21-d depuration period, were not affected by pre-exposition to the different environmental conditions. In contrast, temperature did significantly influence Zn AE (p<0.05), while pH variations did not affect the assimilation of any of the metals studied. In fact, temperature is known to affect gut physiology, specifically the membrane properties of anterior intestine cells where Zn is adsorbed and assimilated from the ingested food. These results are relevant to accurately assess the influence of abiotic factors in AEs of metals in fish as they are highly element-dependant and also modulated by metabolic processes.

Introduction

Metals are typically found in the marine environment at low concentrations. Some metals are metabolically required at the correct amount for organisms, such as Co and Zn (i.e. essential metals), and others can be toxic even at very low concentrations, such as Ag (i.e. non-essential metals). Anthropogenic activities tend to increase metal concentrations in coastal environments, which can cause detrimental effects to the organisms living in these areas. This is particularly problematic due to the emergence of new emission sources, especially for Ag, including cloud seeding, nano-particles, or electronic component manufacturing [START_REF] Lanceleur | Long-term records of cadmium and silver contamination in sediments and oysters from the Gironde fluvial-estuarine continuum: evidence of changing silver sources[END_REF]. Fish are exposed to these metals from both the dissolved and the particulate phases [START_REF] Warnau | Radiotracer techniques: a unique tool in marine ecotoxicological studies[END_REF]. Since food has been recognized as a pathway of major importance for metal intake in fish [START_REF] Xu | Exposure and potential food chain transfer factor of Cd, Se and Zn in marine fish Lutjanus argentimaculatus[END_REF][START_REF] Mathews | Dominance of dietary intake of metals in marine elasmobranch and teleost fish[END_REF], investigating the factors influencing the trophic transfer of metals in fish is of paramount importance.

A key parameter for understanding metal trophic transfer in fish is the assimilation efficiency (AE; [START_REF] Wang | Assimilation efficiencies of chemical contaminants in aquatic invertebrates: a synthesis[END_REF]. Numerous studies have focused on the determination of factors influence metalAE in several aquatic species, including fish (e.g. [START_REF] Xu | Exposure and potential food chain transfer factor of Cd, Se and Zn in marine fish Lutjanus argentimaculatus[END_REF][START_REF] Zhang | Effects of Zn pre-exposure on Cd and Zn bioaccumulation and metallothionein levels in two species of marine fish[END_REF][START_REF] Pouil | Influence of food on the assimilation of essential elements (Co, Mn, and Zn) by turbot Scophthalmus maximus[END_REF]. For example, the importance of the composition and nature of the food source, both qualitatively and quantitatively, on metal AE has been determined in different species of marine fish (e.g. [START_REF] Wang | Bioaccumulation kinetics and exposure pathways of inorganic mercury and methylmercury in a marine fish, the sweetlips Plectorhinchus gibbosus[END_REF][START_REF] Wang | Dietary bioavailability of cadmium, inorganic mercury, and zinc to a marine fish: Effects of food composition and type[END_REF][START_REF] Pouil | Influence of food on the assimilation of essential elements (Co, Mn, and Zn) by turbot Scophthalmus maximus[END_REF].

Similarly, the influence of the physiological state and life-stage of the organism on metal AE, have also been studied in several fish species (e.g. [START_REF] Zhang | Effects of Zn pre-exposure on Cd and Zn bioaccumulation and metallothionein levels in two species of marine fish[END_REF][START_REF] Zhang | Size-dependence of the potential for metal biomagnification in early life stages of marine fish[END_REF][START_REF] Pouil | Comparative study of trophic transfer of the essential metals Co and Zn in two tropical fish: a radiotracer approach[END_REF]. These different studies have shown that biological, physiological, and ecological factors can importantly influence AE of trace metals. Nevertheless, the trophic transfer of metals can also be impacted by environmental variables (abiotic factors) as it has been shown in marine invertebrates [START_REF] Lee | Effects of salinity, temperature and food type on the uptake and elimination rates of cd, Cr, and Zn in the asiatic clam Corbicula fluminea[END_REF] or in freshwater fish [START_REF] Van Campenhout | Assimilation efficiencies of Cd and Zn in the common carp (Cyprinus carpio): effects of metal concentration, temperature and prey type[END_REF]. Surprisingly, such an influence, to the best of our knowledge, has been not documented in the literature on marine fish.

Temperature and pH are two key environmental variables influencing marine fish physiology. For example, temperature, one of the main abiotic driver of fish physiology [START_REF] Beitinger | Physiological and ecological correlates of preferred temperature in fish[END_REF], was shown to affect gut transit time or the activity of the enzymes involved in the digestion process when fish are chronically exposed to temperatures away from their thermic preferences [START_REF] Edwards | Effect of temperature on rate of passage of food through the alimentary canal of the plaice Pleuronectes platessa L[END_REF][START_REF] Miegel | Effect of water temperature on gut transit time, digestive enzyme activity and nutrient digestibility in yellowtail kingfish (Seriola lalandi)[END_REF]. Effects of environmental pH on fish physiology seems to be, in the other hand, more limited [START_REF] Kroeker | Meta-analysis reveals negative yet variable effects of ocean acidification on marine organisms[END_REF]. However, few studies indicated that pH can alter the structure and functioning of the digestive tract (e.g. [START_REF] Frommel | Organ damage in Atlantic herring larvae as a result of ocean acidification[END_REF], and even the digestive enzyme activities [START_REF] Pimentel | Oxidative stress and digestive enzyme activity of flatfish larvae in a changing ocean[END_REF][START_REF] Rosa | Deficit in digestive capabilities of bamboo shark early stages under climate change[END_REF] of early stages of marine fish.". The variation of temperature and pH may occur simultaneously, and organisms can be affected differently by them. Indeed, interactions of temperature with pH could theoretically generate a simple sum of the effect of each individual factor (additive effect) or more complex situations (antagonistic or synergistic effects) as explained by [START_REF] Flynn | Ocean acidification exerts negative effects during warming conditions in a developing Antarctic fish[END_REF]. In their natural environment, marine fish are most probably facing these possible complex interactions.

In this context, the present study aims to assess the possible effects of two environmental variables (temperature and pH) on the assimilation of two essential (Co and Zn) and one non-essential (Ag) metals in the juvenile turbot Scophthalmus maximus. Radiotracer techniques were used to determine depuration parameters in controlled conditions of juvenile turbot previously acclimated at two pH (7.5 and 8.0) and two temperatures (17° C and 20° C) after a single-feeding with radiolabelled shrimp.

Materials and Methods

Origin and acclimation of fish

Juvenile turbot Scophthalmus maximus were purchased from a fish farm (France Turbot, www.france-turbot.com) and shipped to the International Atomic Energy Agency premises in the Principality of Monaco. Fish were randomly placed in four 20-L aquaria (n=8) and acclimated for minimum of 1 month to laboratory conditions (open circuit, water renewal: 60 L h -1 ; 0.45µm filtered seawater; salinity: 38; light/dark: 12h/12h). During this period, the fish were fed one time per day (as described by [START_REF] Pouil | Trophic transfer of 110m Ag in the turbot Scophthalmus maximus through natural prey and compounded feed[END_REF][START_REF] Pouil | Influence of food on the assimilation of essential elements (Co, Mn, and Zn) by turbot Scophthalmus maximus[END_REF]) with a ration of 1.5% of their biomass with 1.1-mm pellets (proteins: 55% and lipids: 12%; Le Gouessant, www.legouessant.com).

After this period, fish were acclimated to the target pH and temperature values (see Table 1) for 8 weeks prior to the radiotracer exposure (i.e. One single-feeding using radiolallebed shrimp following by 21 days of depuration as described in the section 2.2.2.).

Juveniles were maintained under controlled temperature and pH conditions in a crossed experimental design (2 temperatures x 2 pH levels). The two temperatures were 17° C and 20° C and the two pH values were 8.00 (pCO2 of approx. 450 μatm) and 7.50 (pCO2 of approx. 1800 μatm). We choose these values because the food conversion efficiency (FCE) in juvenile turbot is optimal at 17.4±0.5°C at normal pH (Imslad et al. 2001) and also to simulate the projections over the next two centuries (T°C: +3° C and pH: -0.5; [START_REF] Orr | Anthropogenic ocean acidification over the twenty-first century and its impact on calcifying organisms[END_REF]IPCC 2013).

Concerning the method used to regulate the seawater pH, we followed the recommendations of the Guide to best practices for ocean acidification research and data reporting [START_REF] Riebesell | Guide to best practices for ocean acidification research and data reporting[END_REF]. The pHNBS was monitored every 15 minutes in each aquarium to within ±0.05 pHNBS units using a pH probe connected a multi-probe aquaristic computer (IKS ComputerSysteme, www.iks-aqua.com) that bubbled pure CO2 into the aquaria.

Temperature in each aquarium was also monitored, using a dedicated probe connected to the same computer. The pH probes were calibrated weekly using Tris-HCl and NBS buffer solutions (Dickson et al. 2007). Total alkalinity was measured by titration using Methrom 809 Titrando calibrated with NBS buffers, Tris-HCl ( Batch 150, Dickson 2016) andreference materials (Batch 137, Dickson 2016). The pCO2 was determined from pH, temperature and total alkalinity measurements using the R package seacarb [START_REF] Lavigne | Seacarb: seawater carbonate chemistry with R. R package version 3[END_REF].

Experimental procedures

Shrimp radiolabelling

Since crustaceans dominated the natural diet of turbot [START_REF] Sparrevohn | Diet, abundance and distribution as indices of turbot (Psetta maxima L.) release habitat suitability[END_REF][START_REF] Florin | Feeding habits of juvenile flatfish in relation to habitat characteristics in the Baltic Sea[END_REF] we used shrimp as radiolabeled prey. Preparation of the 80 radiolabelled shrimp Palaemon sp. (approx. 1 to 2 cm in total length) was carried out by exposing them for 7 days in aerated 20-L aquarium (closed circuit; 0.45µm filtered seawater; salinity: 38; temperature: 17°C; pH: 8.00; light/dark: 12h/12h). Radiotracers of high specific activity were purchased from Polatom, Poland ( 57 Co as CoCl2 in 0.1 M HCl, t1/2 = 272 days; 65 Zn as ZnCl2 in 0.1M HCl, t1/2 = 244 days and 110m Ag as AgNO3 in 0.1 M HNO3, t1/2 = 252 days). Seawater was spiked with the with small volumes (> 0.2 mL) of radiotracers (nominal activity of 2 kBq L -1 for 57 Co and 8 kBq L -1 for 65 Zn and 110m Ag). No change in pH was detectable in the aquarium (close circuit) after the tracer additions. During the 7day exposure, seawater was renewed and spiked 4 times to eliminate ammonia generated by shrimp excretion and keep the radiotracer activity constant. The activity of the radiolabelled metal tracers in seawater was checked before and after each seawater renewal, to determine time-integrated activities [START_REF] Warnau | Biokinetics of selected heavy metals and radionuclides in the common Mediterranean echinoid Paracentrotus lividus: sea water and food exposures[END_REF][START_REF] Rodriguez Y Baena | A single vs. double spike approach to improve the accuracy of 234 Th measurements in small-volume seawater samples[END_REF]. Each organism was kept isolated during the duration of the experiment in a buoyant cylindrical polystyrene container (drilled to allow for free water circulation) in order to avoid cannibalism. The shrimps were fed with non-contaminated minced mussels one time during each water renewal.

Exposure of turbot via radiolabelled shrimp

A total of 8 acclimatized turbot were randomly selected for each experimental treatment (wet weight were 22.4±3.4g, 22.1±3.8g, 22.3±5.4g and 23.7±4.2g respectively for the turbot exposed to pH 8.0 at 17° C:, pH 8.0 at 20° C, pH 7.5 at 17° C and pH 7.5 at 20° C). Slits cut into the fins were performed on anesthetized fish to facilitate individual recognition (see e.g. [START_REF] Pouil | Influence of food on the assimilation of essential elements (Co, Mn, and Zn) by turbot Scophthalmus maximus[END_REF]). For the last three feedings before the exposure to radiolabelled shrimp (5% of their biomass per day), fish, previously fed with pellets, were fed with non-labelled shrimp. The experiment consisted of a single feeding of fish in the different experimental conditions with radiolabelled shrimp.

To facilitate ingestion, radiolabelled shrimp were cut into pieces. During and after the 5-min radiolabelled feeding, an additional turbot was placed in each aquarium to assess any possible radiotracer recycling from seawater due to leaching from the radiolabelled food or, later on, from fish depuration. After radiolabelled feeding, all the fish (including control individual of each condition) were regularly radio-analysed to follow the radiotracer depuration kinetics over 21 days. During the first week of depuration turbot were fed using non-labelled shrimp and then fed daily with non-labelled pellets (1.5% of their biomass) to cover their nutritional needs.

Radioanalysis

The radioactivity of the tracers was measured using a high-resolution γ-spectrometer system composed of 4 Germanium -N or P type -detectors (EGNC 33-195-R, Canberra ® and Eurysis ® ) connected to a multi-channel analyser and a computer equipped with a spectra analysis software (Interwinner 6, Intertechnique ® ). The radioactivity in living organisms and samples was determined by comparison with standards of known activity and of appropriate geometry (calibration and counting). Measurements were corrected for background and physical radioactive decay. Living organisms were placed in counting tubes (diameter: 160 mm, height: 80 mm) filled with clean seawater (at the appropriated conditions of pH and temperature) during the counting period. The counting period was adjusted to obtain a propagated counting error less than 5% (e.g. Rodriguez y [START_REF] Rodriguez Y Baena | A single vs. double spike approach to improve the accuracy of 234 Th measurements in small-volume seawater samples[END_REF] and varied between 15 and 60 min in order to maintain fish health and ensure normal behaviour. Variations of temperature and pH during the counting have not exceeded +2° C and -0.2 respectively.

Data treatment and statistical analysis

Depuration of radiotracers was expressed as the percentage of remaining radioactivity [(radioactivity at time t divided by the initial radioactivity measured in the organism at the beginning of the depuration period; following methods developed in [START_REF] Warnau | Biokinetics of selected heavy metals and radionuclides in the common Mediterranean echinoid Paracentrotus lividus: sea water and food exposures[END_REF]]. The depuration kinetics of Ag were best fitted using a two-component exponential model:

𝐴 𝑡 = 𝐴 0𝑠 . 𝑒 -𝑘 𝑒𝑠 𝑡 + 𝐴 0𝑙 . 𝑒 -𝑘 𝑒𝑙 𝑡
where At and A0 are the remaining activities (%) at time t (d) and 0, respectively; ke is the depuration rate constant (d -1 ). "s" and "l" subscripts are related to the shortand long-lived component, respectively. The "s" component represents the depuration of the radiotracer fraction that is weakly associated with the organisms and rapidly eliminated (i.e. proportion associated with the faeces). The "l" component describes the depuration of the radiotracer fraction that is actually absorbed by the organism and eliminated slowly. The long-lived component allows estimating the assimilation efficiency (AE) of the radiotracer ingested with food (AE = A0l). When depuration of the assimilated fraction of Co and Zn elements was extremely slow, the long-term depuration rate constant (kel) might not be significant different from 0, then Tb1/2l tends +∞ and thus the "l" component of the model could therefore be simplified and replaced by a constant (as shown by [START_REF] Pouil | Influence of food on the assimilation of essential elements (Co, Mn, and Zn) by turbot Scophthalmus maximus[END_REF]). The equation becomes:

𝐴 𝑡 = 𝐴 0𝑠 . 𝑒 -𝑘 𝑒𝑠 𝑡 + 𝐴 0𝑙 with A0l = AE For the short-lived component, a biological half-life can be calculated (Tb1/2) from the corresponding depuration rate constant according to the relation Tb1/2s = ln2/kes. Model constants and their statistics were estimated by iterative adjustment of the model and Hessian matrix computation, respectively, using the non-linear curve-fitting routines in the Statistica ® software 7.0.

Comparison of assimilation of metals among the different experimental conditions was performed using two-way ANOVA on kes and AE calculated for each individual turbot (the best fitting model obtained for the entire set of turbots was applied to individuals; Zar 1996). For Co, two individuals per condition with an insufficient initial activity (i.e. activity measured 2 hours after the radiolabelled feeding) have been excluded from statistical analysis.

The level of significance for statistical analyses was always set at α=0.05. All the statistical analyses were performed using R software 3.0.1 (R Core Team 2014).

Results

In order to evaluate whether different abiotic factors (i.e. pH and temperature) affect metal assimilation in the juvenile turbot Scophthalmus maximus, depuration kinetics of two essential (Co and Zn) and one non-essential metals (Ag) were followed after a pulse-chase feeding, using radiolabelled shrimp. During the whole experimental period (i.e. 8 weeks of acclimation to the targeted pH and temperature values and 3 weeks of depuration) where the fish were exposed to four different conditions (combinations of two pH and two temperatures; see the Material and methods section), only a limited growth of the individuals was measured and no mortality was recorded.

Before the single-feeding, the activity level of each metal in the shrimps was measured: the average activities (per wet wt) were 205 Bq 57 Co g -1 , 21365 Bq 65 Zn g -1 and 13462 Bq 110m Ag g -1 . During the entire experiment, no activity was measured in the control turbot.

Whole-body depuration kinetics of 57 Co, 65 Zn, and 110m Ag in turbot were best fitted by a two-phase model (simpleexponential model and a constant; Fig. 1; R 2 : 0.89 -0.99). A large proportion (71 -96 %) of the ingested radiotracers was associated with the short-term component for all the studied elements. This component was characterized by a very rapid loss (Tb1/2s ranged from 0.3 to 0.7 d). Comparison of kes determined for each individual turbot indicated that, for all the elements (Co, Zn and Ag), there is no significant difference (pANOVA > 0.05, Fig. 2) independently of the pH and temperature conditions. Estimated AEs in turbot were ranged from 19 % to 29 % for Zn whereas Co and Ag were very poorly assimilated by turbot (AE < 9 % for Co and AE < 5 % for Ag; Fig. 2). Statistical analyses carried out on individual estimated AEs revealed that neither pH nor temperature significantly affected the trophic transfer of Ag and Co in turbots (p>0.05; Fig. 2). In contrast, a significant effect of the temperature was observed between the two treatments at pH 8.0 for Zn (pANOVA = 0.03; Fig. 2) but not at the lower pH.

Discussion

Scientists increasingly realize that single-stressor experiments may not be appropriate to assess the realistic effects of environmental variables in marine habitats [START_REF] Wernberg | A decade of climate change experiments on marine organisms: procedures, patterns and problems[END_REF]. In this context, the present study analysed the combined effects of two abiotic factors on the assimilation efficiency of three metals in a coastal marine fish, turbot. Temperature and pH are important drivers of fish physiology and are subject to important fluctuations at various temporal scales, especially in coastal environments, therefore it is important to better understand the influence of such environmental factors on the assimilation of metals in marine fish.

The main result of this study is that the temperature and pH together have limited influence on the AE of Ag and Co, while the Zn AE appears to be only influenced by temperature. At optimal pH for the turbot (pH = 8.0), increasing the seawater temperature resulted in a significantly increase of Zn AE, which could result either from:

(1) the gut passage of Zn reduced at lower temperature and/or (2) less Zn was strongly retained by the body at lower temperature. In some flatfish species (i.e., the winter flounder Pseudopleuronectes americanus and the European plaice Pleuronectes platessa), anterior intestine is the most important body compartment involved in Zn assimilation [START_REF] Pentreath | Some further studies on the accumulation and retention of 65Zn and 54Mn by the plaice, Pleuronectes platessa L[END_REF][START_REF] Shears | Regulation of Zn 2+ uptake from the gastrointestinal tract of a marine teleost, the winter flounder (Pseudopleuronectes americanus)[END_REF]. For this element, although the mechanisms of transfer from the gut lumen to the intern compartment (adsorption) not completely elucidated yet, it seems dominated by active processes involving specific transporters [START_REF] Bury | Nutritive metal uptake in teleost fish[END_REF]. Temperature variations have been shown to provoke changes in the structure and the protein status of the gut cell membranes [START_REF] Hazel | Thermal adaptation in biological membranes: is homeoviscous adaptation the explanation?[END_REF][START_REF] Zehmer | Thermally induced changes in lipid composition of raft and non-raft regions of hepatocyte plasma membranes of rainbow trout[END_REF] or in digestive enzyme kinetics [START_REF] Smit | Influence of temperature on the rate of gastric juice sectretion in the brown bullhead, Ictalurus nebolosus[END_REF][START_REF] Brett | Effect of temperature on the rate of gastric digestion in finger ling sockeye salmon, Oncorhynchus nerka[END_REF] which can in turns possibly influence the active transport mechanisms of Zn and lead to the increase of Zn AE observed in this study at the highest temperature.

In the current experimental setup, AE of Zn was much higher (AE >19%) compared to the AEs for Ag and Co, both being poorly assimilated by the turbot (AE < 9 %). These results are in accordance with the literature (Zn AE: 17 -32 %, Ag AE: 0.3 -3 %, Co AE: 5 -43 %; see [START_REF] Mathews | Assimilation and retention of metals in teleost and elasmobranch fishes following dietary exposure[END_REF][START_REF] Pouil | Trophic transfer of 110m Ag in the turbot Scophthalmus maximus through natural prey and compounded feed[END_REF][START_REF] Pouil | Influence of food on the assimilation of essential elements (Co, Mn, and Zn) by turbot Scophthalmus maximus[END_REF] and could explain why temperature only influenced Zn AE. Indeed, for these other metals (Co and Ag), a poor assimilation makes difficult to highlight any significant effect. A temperature-dependent effect on Zn assimilation has been already shown in a freshwater fish: the common carp Cyprinus carpio (fed with Zn contaminated prey; [START_REF] Van Campenhout | Assimilation efficiencies of Cd and Zn in the common carp (Cyprinus carpio): effects of metal concentration, temperature and prey type[END_REF]). However, in marine fish, although temperature-dependent effect on metal assimilation was not identified yet, [START_REF] Pouil | Comparative study of trophic transfer of the essential metals Co and Zn in two tropical fish: a radiotracer approach[END_REF] have also shown, using the concentration index defined by [START_REF] Rouleau | Accumulation of silver from the diet in two marine benthic predators: the snow crab (Chionoecetes opilio) and American plaice (Hippoglossoides platessoides)[END_REF], that the intestine is involved in the absorption process of Zn in the silver moony Monodactylus argenteus (one of the two species studied in their work). As discussed by [START_REF] Van Campenhout | Assimilation efficiencies of Cd and Zn in the common carp (Cyprinus carpio): effects of metal concentration, temperature and prey type[END_REF], one of the possible explanations for the observed differences might be possibly explained by the higher concentration of Zn transporters in the intestine of fish exposed to higher temperatures.

In contrast to temperature, fewer studies investigated the influence of pH on the assimilation of metals by marine biota [START_REF] Lacoue-Labarthe | Effects of ocean acidification on trace element accumulation in the early-life stages of squid Loligo vulgaris[END_REF][START_REF] Götze | Interactive effects of CO₂ and trace metals on the proteasome activity and cellular stress response of marine bivalves Crassostrea virginica and Mercenaria mercenaria[END_REF][START_REF] Ivanina | Effects of environmental hypercapnia and metal (Cd and Cu) exposure on acid-base and metal homeostasis of marine bivalves[END_REF], and to the best of our knowledge, even none has investigating the influence of pH on metal trophic transfer in fish. However, in the context of the current ocean acidification, some authors have recently highlighted the effects of the partial pressure of CO2 (pCO2) on the digestion of fish [START_REF] Pimentel | Oxidative stress and digestive enzyme activity of flatfish larvae in a changing ocean[END_REF][START_REF] Rosa | Deficit in digestive capabilities of bamboo shark early stages under climate change[END_REF]. Indeed, these authors have shown that the activity of the digestive enzymes in marine fish is dependent of the pCO2. Usually, pH values were converted in pCO2 from seawater carbonate chemistry. In the present study, in addition to the constant monitoring of pH, the total alkalinity has also been regularly monitored (see section Materials and Methods). Thus, pH values were converted in pCO2.

In the present paper, we have used an integrated approach for assessing the effect of pH on fish physiology using assimilation efficiency as end-point but no effect of the pH was found on the trophic transfer of the three studied metals in turbot.

Temperature and pH can interact in different ways on the physiology of marine organisms (Boyd and Hutchins 2012; [START_REF] Gunderson | Multiple stressors in a changing world: the need for an improved perspective on physiological responses to the dynamic marine environment[END_REF]). In the present study, we did not find any combined effect of pH and temperature on metal assimilation. Contrasting responses regarding the bioaccumulation of metal in marine organisms have been reported in the scientific literature. Temperature can affect the bioconcentration of essential (Co, Mn, Se and Zn) and non-essential (Cd and Ag) metals with similar patterns at different pH (7.60, 7.85 and 8.10) as already demonstrated in cuttlefish eggs [START_REF] Lacoue-Labarthe | Effects of increased pCO2 and temperature on trace element (Ag, Cd and Zn) bioaccumulation in the eggs of the common cuttlefish, Sepia officinalis[END_REF][START_REF] Lacoue-Labarthe | Temperature and pCO2 effect on the bioaccumulation of radionuclides and trace elements in the eggs of the common cuttlefish, Sepia officinalis[END_REF]). However, [START_REF] Belivermiş | Limited effects of increased CO2 and temperature on metal and radionuclide bioaccumulation in a sessile invertebrate, the oyster Crassostrea gigas[END_REF] have shown, in Pacific oyster Crassostrea gigas, that the effects of temperature on the bioaccumulation of Cd, Co and Mn were dependent of the pH conditions (7.5, 7.8 and 8.1). Even if the relations between temperature and pH effects can be complex to interpret, the absence of effect of the temperature at the lower pH (i.e. 7.5) observed in our study could be related to antagonistic effects of these abiotic factors. Thus, further studies investigating a wider range of exposure of temperature and pH and based on a mechanistic approach will be needed to support this assumption.

Conclusions

This study provides new information on the assimilation efficiency of two essential (Co and Zn) and one nonessential (Ag) metals in marine fish (turbot). Our results suggest that two abiotic factors (pH and temperature) do not have a significant role in the assimilation efficiency of Co and Ag, however temperature have a slightly effect on Zn assimilation in the juvenile turbot Scophthalmus maximus. Based on these results, further studies should be carried out in order to cover a wider range of exposure of temperature and pH to assess precisely its effect on Zn assimilation in fish, taking into account the high variability of the responses between marine organism [START_REF] Parker | Populations of the Sydney rock oyster, Saccostrea glomerata, vary in response to ocean acidification[END_REF], and the adaptive capacities of organisms, especially in the context of global change where organisms are facing long-term modifications of the environmental conditions.

Figure 1 :

 1 Figure1: Influence of temperature and pH (see details of experimental conditions in Table1) on whole-body depuration of 110m Ag,57 Co and 65 Zn in juvenile turbot (n = 6-8; percent remaining activities, means ± SD).

Figure 2 :

 2 Figure 2: Comparison of assimilation efficiencies (AEs) calculated for each individual turbot from the four experimental treatments. The best fitting model obtained for the entire set of turbots (see Fig. 1) was applied to individuals. *p < 0.05.

Table 1 .

 1 Summary of seawater parameters during the different phases (acclimation and depuration) of the experiment on the assimilation of metals in juvenile turbot exposed to different conditions of temperature and pH.

	Experimental phase	Temperature (°C)	pHNBS	Total alkalinity (µmol kg -1 )	pCO2 (µatm)
		16.940.22	7.980.07	25394	51367
		19.760.08	7.980.04	25403	52533
	Acclimation
		16.960.18	7.480.06	25366	1843134
		19.770.12	7.480.04	25346	189645
		16.790.05	7.970.05	25418	56375
		19.620.43	7.950.04	25374	55025
	Depuration
		16.790.06	7.470.05	25404	1867111
		19.570.42	7.500.08	25372	187982

Acknowledgments

The authors are grateful to P. Swarzenski for his constructive comments on this work and H. Jacob for his help with alkalinity measurements. The IAEA is grateful for the support provided to its Environment Laboratories by the Government of the Principality of Monaco.


Fabrice Schmidt

Jean-François Agassant

Michel Bellet

Analytic Models for the Simultaneous Inflation and Extension of a Polymeric Tube

published or not. The documents may come   L'archive ouverte pluridisciplinaire


Fabrice M Schmidt

EXPERIMENTAL STUDY OF THE INJECTION STRETCH/BLOW MOLDING PROCESS

The performance of Poly(Ethylene Terephtalate) bottles produced by the injection stretch/blow molding process depends on three main variables: the initial preform shape, the initial preform temperature and the balance between stretching and blowing rates. In order to characterize process parameters, experiments have been performed on a well instrumented mold. In addition, preform free inflation have been processed and a simplified model of an air volum free blowing has been developed.

Introduction

The injection stretch/blow molding process of PET bottles is a three step process (see Figure 1): first the PET resin is injected in a tube-shaped preform, then this amorphous preform is heated above the glass transition temperature (T g 80°C) and transfered inside a mold.

Finally the preform is inflated with stretch rod assistance in order to obtain the desired bottle shape. This study will deal only with the last step of the process.

The process parameters will induce the thickness distribution of the bottle as well as the biaxial orientation and cristallinity, which in turn govern the transparency and the mechanical properties of the bottle. Thus, in order to measure process parameters and to characterize the rheology of the material under biaxial stretching, experimental work has been conducted on an instrumented blow molding machine.

A few works refer to the experimental investigation of the kinematic of the blow or stretch/blow molding processes (1 to 5). In a recent paper, Haelly and Ryan (5) have filmed parison free/confined inflation in blow molding of different polymers using high speed video camera. In the case of confined parison inflation, they have designed a transparent acrylic mold. Although this work represents a great contribution to the analysis of parison inflation, the technic still remains limited to simple geometries of mold (high curvatures enhance distorsions of the view). In addition, the design of a speficic mold for each blow molding experiment appears to be costly. The use of contacts sensors at the mold wall which permit to identify the contact time between the polymer and the mold seems to be a good compromise.

Instrumented mold of a stretch/blow molding machine

In order to measure stretch/blow molding parameters, experiments have been performed on a properly instrumented mold at SIDEL COMPANY [START_REF] Thomas | Vérification expérimentale d'une thèse sur la modélisation du soufflage avec bi-orientation de bouteilles en P.E.T[END_REF]. For the bottle mold and the preform, we have made the choice of simplified geometries (see Figure 2). The dimensions are summarized in Table 1. The instrumented mold is described summarily in figure 3. The displacement of the stretch rod is controlled and the force exerted on the stretch rod is recorded versus time using a force sensor. The blowing pressure is imposed and recorded versus time using a pressure sensor. Nine contact sensors at the mold wall permit to identify the contact time between the polymer and the mold.

The process parameters of the stretch/blow molding step are refered in Table 2 as well as typical values. The parameters associated with the stretching stage are the velocity of the stretch rod v c which is applied until the preform contacts the bottom of the mold, and Rps the preblowing delay (Rps is the displacement of the stretch rod, in millimeter, without inflation pressure). The parameters associated with the inflation stage are Pps the maximum pre-blowing pressure (low-pressure) imposed during a preblowing time tps for initiating the general trend of the bottle, and Ps the maximum blowing pressure (highpressure) which is applied during a blowing time ts in order to flatten the polymer against the mold wall. The preblowing flow-rate Qps and the blowing flow-rate Qs are not measured.

In previous papers (7, 8), we have pointed out, by plotting the stretching force versus time, that the increasing part and the decreasing part of the stretching force are corresponding respectively to the elastic and viscous response of the PET.

The location of the contact sensors (from n° 1 to n° 9) on the mold wall is indicated in figure 2. Recorded contact times versus number of contact sensors are plotted in figure 4 using the process parameters which are refered in Table 2. When the preblowing delay Rps is increased from 1 mm to 40 mm, all the contact times between the polymer and the mold increase and the contact times are more homogenous in the central part of the bottle. In addition, if we plot the measured thickness distribution versus longitudinal coordinate at the end of the process for the two values of Rps (see figure 5), we note that an increase in the preblowing delay induces more material displacement from the neck to the bottom of the bottle.

Measurement and calculation of the internal pressure

Let us now study the free inflation of a preform without stretching rod. The preform (cf. figure 2) is heated in a silicone oil bath in order to obtain an uniform temperature distribution, this for three different values of temperature (T=95°C, 100°C, 105°C). An inflation pressure p a (t) is applied on the internal surface of the bottle and the differential inflation pressure p a (t) = p a (t)p o (p o atmospheric pressure at ambient temperature) is recorded versus time using a pressure sensor. For each temperature, free inflations have been filmed using video camera. In figure 6, different steps of preform free inflation are presented for T=105°C. In addition, the recorded differential pressure is plotted versus time for three different values of temperature (see figure 7). All the curves are composed of three different parts:

. a first part where the pressure rises to a maximum (less than 3 bars), during which the polymer is not inflated (the internal volume of the preform remains constant);

. a second part where the pressure decreases continuously to a minimum because the internal volume increases;

. the last part of the curve where the pressure increases in order to force the "strain-hardening" phenomenon of the material, which in fact is related to the development of cristallinity under biaxial stretching. This experiment demontrates that the evolution of the internal pressure and the inflation of the preform are highly coupled. It is to be noticed that the recorded internal pressure is significantly different from a constant "nominal" pressure. In order to better understand this pressure evolution, we develop hereafter a simple thermodynamic model. As sketched in figure 8, we consider that air, at temperature T a , flows in the "control volume" V a (t) at a specific flow-rate q with entry velocity field w  e , pressure p e and temperature T e . The specific flow-rate q is constant (cf. pre-blowing stage), so it results in the following relationship between the air mass m a (t) (occupying the volume V a (t)) and q: q  dm a dt  cte  m a t    m o  qt (1) where m o is the air mass at time t = 0. Using the following assumptions:

. no heat transfer between the air volume and the surrounding medium, . air is an ideal gas, the global energy balance during the time step dt over the volume V a (t) may be simplified as:

d dt     Ln(p a V a  ) = d dt     Ln(m a  ) T e T a (2)
where  = 1.4 for the air. It is noteworthy that a very similar relationship has been determined by G. Louiz [START_REF] Louiz | Injection-soufflage de bouteilles en polyseter[END_REF]. In order to obtain a simplified relationship, we make the more criticizable assumption T a T e . Using ( 1) and m a =  a V a , equation ( 2) reduces to:

p a (t) p o = 1  o        m o + qt V a (t)  ( 3
)
where  o is the air specific mass at time t = 0. Knowing the increase of volume V a (t) (due to parison inflation) , this relation should provide the pressure value p a (t) .

However, the experimental determination of the specific flow-rate q is very difficult. In order to overcome this difficulty, we suggest that q should be determined through an inflation test at constant volume V Erreur !. Deriving eq. ( 3) with respect to time, at initial time t = 0, we obtain :

q =  o V o p o dp a (t) dt t = 0 (4)
Once the specific flow-rate q has been experimentally determined, it is possible to express the differential inflation pressure p a (t) :

p a (t) p o =       V o V a (t)        1+ t p o dp a (t) dt t = 0  -1 (5)
This relationship has been introduced in the stretch/blow molding finite element code BLOWUP (10) in which the rheological behavior of the PET is represented by a viscoelastic constitutive equation of Oldroyd-B type. For the calculation of p a (t) using the relationship (5), we proceed as follows: . inflation at a given specific flow-rate of a preform which has not been heated and measurement of the initial slope of the recorded pressure curve, . computation of the initial internal volume of the preform V o , . computation of the internal volume of the preform V a (t) at each time step and application of (5).

Application of preform free inflation

From the first results of preform free inflation issued from numerical simulation it appears that the expansion of the preform and especially the radial expansion is unlimited. This problem, which is not observed experimentally, occurs because the strainhardening phenomenon of the material is not taken into account in the numerical model. Strain-hardening is related to the development of cristallinity under biaxial stretching. The problem of coupling between microstructural evolution and thermomechanical history still remains an open issue. It is not the goal of the present article to discuss such problems. However, a simple model which is able to take into account "in a certain sense" the strainhardening phenomenon has been tested. The relation proposed by G'Sell (11) is based on the assumption that the viscosity depends on the generalized strain. The computed differential inflation pressure and the measured one at T=105 °C are plotted in Figure 9. We note that the agreement is fair between the two curves except in the last part. Experiments have shown that anisotropy occurs during the development of cristallinity. That's why axial expansion still continues while radial expansion is blocked. The proposed model induces isotropic strain-hardening. It results that the expansion of the bubble is limited in the same manner in all directions. If the volume of the preform remains constant, the pressure increases according to the relation (5).

Conclusion

Experimental work has been conducted on an instrumented blow molding machine. Process parameters such as the preblowing delay and the velocity of the stretch rod have exhibited a significant influence on the thickness distribution in the final product. In addition, the use of contacts sensors has permitted to identify the kinematic of confined preform inflation .

A simplified model of an air volum free blowing has been developed and introduced in a finite element code. Due to results issued from numerical simulations, it appears that coupling between microstructural evolution and thermomechanical history should be the next issue of this work.

Figures with captions

Figure

  Figure 1: Description of the injection stretch/blow molding process

1 :Figure 2 :Figure 3 :Figure 4 :

 1234 Figure 1: Description of the injection stretch/blow molding process

Figure 5 Figure 6 :Figure 7 :VFigure 8 :Figure 9 :

 56789 Figure 5: Thickness distribution at the end of the process

Table 1 :

 1 Dimensions of the bottle mold and the preform

		Tables with captions
		Length	Inner radius	External
		(mm)	(mm)	radius (mm)
	Preform	125	9.275	13.025
	Bottle mold	310	44.3	44.3
	Stretching	v c (mm/s)	500
	stage
		R ps (mm)	1
		P ps (Pa)	5.10 5
	Preblowing	D ps (s)	0.3
	stage
		Q ps (kg/s)	-
		P s (Pa)	40.10 5
	Blowing stage		D s (s)	1.5
		Q s kg/s)	-

Table 2 :

 2 Process parameters

		Keywords
	stretch/blow	molding;	experimental
	investigations; air volum free blowing model;
	calculation of internal pressure

Acknowledgments

This research was supported by SIDEL COMPANY and the French "Ministère de la recherche" (MRT n° 90A 136)