Tính sống còn

Một phần của tài liệu Các nguyên lý và kỹ thuật kiểm chứng chất lượng phần mềm (Trang 40 - 42)

5. Phương pháp nghiên cứu

2.4.3 Tính sống còn

Nói một cách thân mật, thuộc tính an toàn chỉ rõ rằng “một số điều tồi tệ

không bao giờ xảy ra”. Đối với các thuật toán loại trừ lẫn nhau, từ “bad” nghĩa là nhiều hơn một tiến trình trong đoạn tới hạn của nó, trong khi đối với các đèn giao thông, “bad” là tình huống mà bất cứ khi nào một giai đoạn sáng đỏ không được đứng trước bởi giai đoạn ánh sáng màu vàng.

Một thuật toán có thể dễ dàng đáp ứng một thuộc tính an toàn bởi việc làm đơn giản là không làm gì như thể điều này sẽ không bao giờ dẫn đến tình huống “bad”. Đây thường là điều không mong muốn, các thuộc tính an toàn được bổ sung bằng các thuộc tính mà yêu cầu một số tiến độ. Những tính chất như vậy được gọi là thuộc tính “sống còn” (hoặc đôi khi là “progress” properties). Bằng trực giác, chúng nói rằng có một sốđiều tốt sẽ xảy ra trong tương lai.

Trong cách tiếp cận của chúng ta, một thuộc tính sống còn (trên AP) được định nghĩa như một thuộc tính LT mà không loại trừ bất kỳ tiền tố nào. Nói một cách thân mật, nó nghĩa là bất kỳ tiền tố hữu hạn nào có thể được mở rộng mà kết quả dấu vết vô hạn thỏa mãn thuộc tính sống còn được xem xét. Điều này trái ngược với thuộc tính an toàn nơi mà nó phải có một dấu vết hữu hạn (the “bad prefix”) để kết luận rằng một thuộc tính an toàn bị bác bỏ.

Định nghĩa 2.4: Thuộc tính LT Plive trên AP là một thuộc tính sống còn bất kỳ

khi nào ( ) ( )*

2AP live

Pref P = .

Do đó, một thuộc tính sống còn (trên AP) là một thuộc tính LT P mà mỗi tiền tố hữu hạn có thể được mở rộng tới một tiền tố vô hạn mà thỏa mãn P. Nói cách

khác, P là một thuộc tính sống còn nếu và chỉ nếu với mọi tiền tố hữu hạn

*

w (2 )∈ AP tồn tại một tiền tố vô hạn ( )2AP ω

σ∈ thỏa mãn σ∈P.

Ví dụ: Repeated Eventually and Starvation Freedom (việc được làm cuối cùng cũng sẽ xảy đến và nạn đói tự do)

Trong bối cảnh của các thuật toán loại trừ lẫn nhau, thuộc tính an toàn tự nhiên mà đòi hỏi đảm bảo tình trạng thuộc tính loại trừ lẫn nhau mà các quá trình không bao giờ xảy ra cùng một lúc trong các đoạn tới hạn của chúng. (Sự kiện này là một bất biến). Thuộc tính sống còn điển hình được khẳng định:

-(eventually) mỗi Tiến trình cuối cùng sẽ bước vào đoạn tới hạn của nó. -(repeated eventually: việc được làm cuối cùng cũng sẽ xảy đến) mỗi Tiến trình sẽ bước vào đoạn tới hạn của nó vô hạn.

-(starvation freedom) mỗi Tiến trình chờ đợi cuối cùng sẽ bước vào đoạn tới hạn của nó.

Ta hãy xem làm thế nào mà những thuộc tính sống còn này được hình thức hóa như các thuộc tính LT và ta hãy kiểm tra rằng chúng là thuộc tính sống còn. Như trong ví dụ về bữa ăn tối của các nhà Triết học, chúng ta sẽ đối xử với các mệnh đề nguyên tử wait1, crit1, wait2, crit2 với waiti biểu thị các trạng thái mà Tiến trình Pi được yêu cầu truy nhập tới đoạn tới hạn của nó và đang trong giai đoạn chờ đợi của nó. Giờ chúng ta hình thức hóa 3 thuộc tính bởi thuộc tính LT trên

{ 1 1 2 2}

AP= wait crit wait crit, , , .

Thuộc tính đầu tiên (eventually) bao gồm tất cả các tiền tố vô hạn A A0 1…với

j

A ⊆AP mà (∃ ≥j 0. crit1∈Aj) (∧ ∃ ≥j 0. crit2∈Aj)với yêu cầu rằng P1 và P2 trong đoạn tới hạn của chúng ít nhất là một lần.

Thuộc tính thứ hai (repeated eventually) đặt ra điều kiện

1 1

( k 0.∀ ≥ ∃ ≥j k crit. ∈Aj) (∧ ∀ ≥ ∃ ≥k 0. j k crit. ∈Aj)nói rằng P1 và P2 là vô hạn lần trong đoạn tới hạn của chúng. Công thức này được tóm tắt bởi

1 2

(∞∃j≥0.critAj) (∧ ∞∃j≥0.critAj).

1 1 2 2 ( 0.( ( . )) ( 0.( ( . )) j k j k j wait A k j crit A j wait A k j crit A ∀ ≥ ∈ ⇒ ∃ ≥ ∈ ∧ ∀ ≥ ∈ ⇒ ∃ ≥ ∈

Nó biểu đạt rằng mỗi Tiến trình mà đang chờ đợi sẽ được yêu cầu truy nhập vào đoạn tới hạn tại một vài thời điểm sau đó. Chú ý rằng ởđây chúng ta hoàn toàn giả thiết rằng một Tiến trình mà bắt đầu chờ đợi để yêu cầu truy nhập vào đoạn tới hạn không bao giờ “từ bỏ” chờđợi, ví dụ, nó liên tục chờđợi cho đến khi nó được công nhận truy cập.

Tất cả các thuộc tính đã kể ở trên là thuộc tính sống còn, như bất kỳ tiền tố hữu hạn nào trên AP là một tiền tố của một tiền tố vô hạn, ở đây điều kiện tương ứng nắm giữ. Ví dụ, với starvation freedom, một dấu vết hữu hạn trong đó một Tiến trình đang chờ đợi nhưng không bao giờ được yêu cầu truy nhập vào đoạn tới hạn của nó có thể luôn luôn được mở rộng tới một dấu vết vô hạn mà thỏa mãn thuộc tính starvation freedom.

Một phần của tài liệu Các nguyên lý và kỹ thuật kiểm chứng chất lượng phần mềm (Trang 40 - 42)

Tải bản đầy đủ (PDF)

(86 trang)