Skip to content

Đồng bộ tiến trình

Published: at 04:22 AMSuggest Changes

Table of contents

Open Table of contents

1. Race condition

Trong bài toán Producer & Consumer, biến count được truy xuất bởi cả 2 quá trình Producer và Consumer. Trong bài toán Cấp PID, next_available_pid() được gọi tới khi một process thực hiện fork(), vậy nếu có 2 processes cùng thực hiện fork() thì sao? \ -> cần một cơ chế để đảm bảo thự tứ trước sau -> race condition

2. Vùng tranh chấp - Critical Section

Là vùng của các tiến trình, mà tại đó thực hiện việc truy cập các dữ liệu được chia sẻ chung và tại 1 thời điểm chỉ có 1 tiến trình được truy cập.

Qúa trình truy cập critical section của tiến trình:

2.1. Giải pháp Peterson

int turn;
boolean flag[2];

2.2. Giải pháp Peterson và kiến trúc hiện đại

Ở các kiểu kiến trúc hiện đại, một vài tính chất không giúp ích giải pháp Peterson:

Dẫn đến, flagturn bị đổi chỗ -> Memory Barrier


Previous Post
Coffee Store Chatbot
Next Post
Vector Calculus