Professional Documents
Culture Documents
Chuong 2 - Process Synchronization
Chuong 2 - Process Synchronization
MỤC TIÊU
Hiểu được vấn đề tranh chấp giữa các tiến trình trong hệ điều
hành Biết được các giải pháp để giải quyết tranh chấp
Hiểu được các vấn đề trong giải quyết tranh chấp
Biết được các yêu cầu của các giải pháp trong việc giải quyết tranh chấp và
phân nhóm các giải pháp
Giới thiệu về race condition
Giới thiệu các giải pháp tổng quát để giải quyết tranh chấp
Phân tích các chi tiết các vấn đề trong việc giải quyết tranh chấp
Yêu cầu của giải pháp trong việc giải quyết tranh chấp
Phân nhóm các giải pháp
◼Khảo sát các process/thread thực thi đồng thời và chia sẻ dữ liệu
(qua shared memory, file).
◼Nếu không có sự kiểm soát khi truy cập các dữ liệu chia sẻ thì có
thể đưa đến ra trường hợp không nhất quán dữ liệu (data
inconsistency).
◼Để duy trì sự nhất quán dữ liệu, hệ thống cần có cơ chế bảo đảm
sự thực thi có trật tự của các process đồng thời.
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.3
NỘI DUNG
I. Tổng quan giao tiếp tiến trình
II. Tài nguyên găng, đoạn găng
III. Vấn đề đồng bộ hóa
IV. Nhóm giải pháp Busy Waiting
V. Nhóm giải pháp Sleep & Wake up
VI. Semaphore
VII. Monitors
VIII.Các ví dụ kinh điển
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.4
▪ Tiện lợi
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.5
7
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.7
10
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.10
◼ Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng.Có nhiều
domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
◼ Type: định nghĩa các đặc điểm liên lạc
◼ a) độ tin cậy
11
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.11
◼ Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
◼ Hủy một
socket
12
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.12
NHIỀU TIẾN TRÌNH CHUNG SỐNG HÒA BÌNH
TRONG CÙNG MỘT HỆ THỐNG
• ÑÖØNG HY VOÏNG
• An toaøn khi caùc tieán trình hoaøn toaøn ñoäc laäp
– Laøm sao coù ñöôïc ??
• Thöïc teá
– Caùc tieán trình chia seû taøi nguyeân chung (File system,
CPU...) – Concurrent access => bugs.
• Ví duï : Deâ con qua caàu
CÁC VẤN ĐỀ
➢Tranh chấp
▪ Nhiều tiến trình truy xuất đồng thời một tài nguyên mang bản chất
không chia sẻ được.
• Vấn đề tranh đoạt điều khiển (race condition)
▪ Kết quả?
• Khó biết, nhưng thường là sai.
▪ Luôn luôn nguy hiểm?
• Nếu cân nhắc kỹ càng có thể giảm bớt sự nguy hiểm.
CÁC VẤN ĐỀ
➢Phối hợp
▪ Các tiến trình không biết tương quan xử lý của nhau để điều chỉnh
hoạt động nhịp nhàng.
• Phối hợp xử lý (Rendez-vous)
▪ Kết quả: khó biết, thường không ăn khớp.
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.20
ĐOẠN GĂNG
➢Đoạn găng (Critical Section) hay miền găng là đoạn mã có tác
động đến các tài nguyên găng, chỉ cho phép một tiểu trình (tiến
trình) thi hành tại một thời điểm.
▪ Tiểu trình (tiến trình) được gọi là đi vào miền găng.
▪ Loại trừ hỗ tương và miền găng là hai khái niệm cùng một mục đích.
ĐOẠN GĂNG
➢Cấu trúc chương trình khi có đoạn găng
<noncritical section>
<enter critical section> {kiểm tra và xác lập quyền vào đoạn
găng} <critical section>
<exit critical section> {xác nhận khi rời đoạn găng}
<noncritical section>
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.36
GIẢI PHÁP PHẦN MỀM
➢Giải pháp phần mềm Peterson đáp ứng được cả 3 điều
kiện: ➢Mutual Exclusion :
▪ Pi chỉ có thể vào CS khi: interest[j] == F hay turn == i
▪ Nếu cả 2 muốn về thì do turn chỉ có thể nhận giá trị 0 hay 1 nên chỉ có 1
tiến trình vào CS
➢Progress
▪ Sử dụng 2 biến interest[i] riêng biệt => trạng thái đối phương không khóa
được mình.
➢Bounded Wait : interest[i] và turn đều có thay đổi giá trị. ➢Không thể mở
}
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.41
SEMAPHORE
➢Được đề nghị bởi Dijkstra năm 1965
➢Các đặc tính: Semaphore s;
SEMAPHORE
➢Semaphore được xem như là một resource
▪ Các tiến trình “yêu cầu” semaphore : gọi Down(s)
• Nếu không hoàn tất được Down(s) : chưa được cấp
resource – Blocked, được đưa vào s.L
➢Cần có sự hỗ trợ của HĐH
▪ Sleep() &
Wakeup()
SEMAPHORE
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.47
SEMAPHORE
➢Tổ chức “độc quyền truy xuất”
SEMAPHORE
➢Là một cơ chế tốt để thực hiện đồng bộ
▪ Dễ dùng cho N tiến trình
➢Nhưng ý nghĩa sử dụng không rõ ràng
▪ MutualExclusion : Down & Up
▪ Rendez-vous : Down & Up
▪ Chưa phân biệt qua mô hình
➢Khó sử dụng đúng
▪ Dễ nhầm lẫn
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.50
MONITOR
➢Đề xuất bởi Hoare(1974) & Brinch (1975)
➢Là cơ chế đồng bộ hóa do NNLT cung cấp
▪ Hỗ trợ các chức năng như Semaphore
▪ Dễ sử dụng và kiểm soát hơn Semaphore
• Đảm bảo Mutual Exclusion một cách tự động
• Sử dụng biến điều kiện để thực hiện Synchronization
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.51
Operating System
Silberschatz, Galvin and Gagne ©2018
Concepts – 10th Edition 1.58
CÁC VÍ DỤ KINH ĐIỂN
➢Producer –Consumer
➢Readers –Writers
➢Dinning Philosophers
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.59
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.63
PRODUCER –CONSUMMER : GIẢI PHÁP
MONITOR
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.64
MESSAGE
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 1.66
Database
R2 R3
▪ W cập nhật nội dung CSDL ▪ Rs
▪ W đang cập nhật CSDL thì các Rs truy cập CSDL ?
▪ Các Rs đang truy cập CSDL thì W muốn cập nhật CSDL ?
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.72
READERS & WRITERS : GIẢI PHÁP
SEMAPHORE
Operating
Silberschatz, Galvin and Gagne ©2018
System Concepts – 10th Edition 1.73