Câu 1: Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ tương hỗ.
3 posters
Trang 1 trong tổng số 1 trang
Câu 1: Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ tương hỗ.
Vấn đề về đoạn tương tranh:
Các tiến trình tác động liên quan đến thao tác tài nguyên dùng chung, sử dụng các mã lệnh trong quá trình thực hiện thì xảy ra tranh chấp gọi là đoạn tương tranh.
Tính loại trừ lẫn nhau: tại một thời điểm chỉ có thể chấp nhận cho một tiến trình đăng nhập(được chờ ở vùng đang nhập) và vùng tương tranh để thực thi. Khi thực thi xong sẽ thông báo cho các tiến trình đang chờ ở vùng đăng nhập tiếp tục thực hiện.
Code:
While(1)
{
Remainder section // chưa ảnh hưởng đến tài nguyên dùng chung
Entry section // các tiến trình(1 lệnh hoặc chuỗi lệnh) được chờ tại đây.
Critical section //vùng tương tranh
Exit section // tiến trình thực hiện xong thoát và thông báo cho tt kế tiếp thực thi.
Remainder section
}
Lưu ý: tại mỗi thời điểm chỉ cho phép 1 tiến trình vận hành được đăng nhập vào vùng tương tranh.
Ví dụ: trở lại vấn đề viết đơn xin việc của thầy. Nếu 1 tiến trình vào và sửa tên của đơn xin việc nhưng lại chưa kịp sửa người làm đơn. Và một tiến trình khác lại chụp tấm đơn xin việc này => Không đồng bộ => không đảm bảo được tính loại trừ tương hỗ.
Giải quyết: tại mỗi thời điểm cho chỉ cho phép một người sử đơn xin việc mà thôi, sửa xong thì người kế tiếp muốn làm gì thì làm.
Bài giảng của Thầy phần này Hưng hiểu là như vậy, Thầy và các bạn cho ý kiến để tụi em có bài thi làm tốt hơn. Thanks
Admin
Nếu ví dụ về Đơn xin việc như trên là chưa đúng. Giả sử có 1 đơn dạng như sau trong vùng nhớ chung (ví dụ, trong Buffer) được các tiến trình cùng "Share":
. Nội dung đơn này phải được đảm bảo tính toàn vẹn (Integrity), ví dụ: Phía trên là Lê Văn Ba thì phía dưới cũng phải là Lê Văn Ba.
. Nếu vài tiến trình (hơn 1) cùng sửa đơn trên một lúc (không đảm bảo được tính Loại trừ lẫn nhau) thì nội dung của nó có thể không đúng. Ví dụ, giả sử tiến trình P1 (nhà sản xuất) sửa Lê Văn Ba phía trên thành Lê Văn Bàng, trong khi P2 (nhà sản xuất khác) sửa Lê Văn Ba phía dưới thành Lê Văn Bá, mà có tiến trình P3 (nhà tiêu thụ) nào đó "lấy" đơn về dùng (để in ra) thì kết quả sẽ không nhất quán như sau:
Các tiến trình tác động liên quan đến thao tác tài nguyên dùng chung, sử dụng các mã lệnh trong quá trình thực hiện thì xảy ra tranh chấp gọi là đoạn tương tranh.
Tính loại trừ lẫn nhau: tại một thời điểm chỉ có thể chấp nhận cho một tiến trình đăng nhập(được chờ ở vùng đang nhập) và vùng tương tranh để thực thi. Khi thực thi xong sẽ thông báo cho các tiến trình đang chờ ở vùng đăng nhập tiếp tục thực hiện.
Code:
While(1)
{
Remainder section // chưa ảnh hưởng đến tài nguyên dùng chung
Entry section // các tiến trình(1 lệnh hoặc chuỗi lệnh) được chờ tại đây.
Critical section //vùng tương tranh
Exit section // tiến trình thực hiện xong thoát và thông báo cho tt kế tiếp thực thi.
Remainder section
}
Lưu ý: tại mỗi thời điểm chỉ cho phép 1 tiến trình vận hành được đăng nhập vào vùng tương tranh.
Ví dụ: trở lại vấn đề viết đơn xin việc của thầy. Nếu 1 tiến trình vào và sửa tên của đơn xin việc nhưng lại chưa kịp sửa người làm đơn. Và một tiến trình khác lại chụp tấm đơn xin việc này => Không đồng bộ => không đảm bảo được tính loại trừ tương hỗ.
Giải quyết: tại mỗi thời điểm cho chỉ cho phép một người sử đơn xin việc mà thôi, sửa xong thì người kế tiếp muốn làm gì thì làm.
Bài giảng của Thầy phần này Hưng hiểu là như vậy, Thầy và các bạn cho ý kiến để tụi em có bài thi làm tốt hơn. Thanks
Admin
Nếu ví dụ về Đơn xin việc như trên là chưa đúng. Giả sử có 1 đơn dạng như sau trong vùng nhớ chung (ví dụ, trong Buffer) được các tiến trình cùng "Share":
ĐƠN XIN VIỆC
Kính gửi: Giám đốc công ty Phương Nam
Tôi tên là: Lê Văn Ba
..........(nội dung đơn).............
TP Hồ Chí Minh, ngày 12 tháng 11 năm 2010
Người làm đơn
....(chữ ký)....
Lê Văn Ba
Kính gửi: Giám đốc công ty Phương Nam
Tôi tên là: Lê Văn Ba
..........(nội dung đơn).............
TP Hồ Chí Minh, ngày 12 tháng 11 năm 2010
Người làm đơn
....(chữ ký)....
Lê Văn Ba
. Nội dung đơn này phải được đảm bảo tính toàn vẹn (Integrity), ví dụ: Phía trên là Lê Văn Ba thì phía dưới cũng phải là Lê Văn Ba.
. Nếu vài tiến trình (hơn 1) cùng sửa đơn trên một lúc (không đảm bảo được tính Loại trừ lẫn nhau) thì nội dung của nó có thể không đúng. Ví dụ, giả sử tiến trình P1 (nhà sản xuất) sửa Lê Văn Ba phía trên thành Lê Văn Bàng, trong khi P2 (nhà sản xuất khác) sửa Lê Văn Ba phía dưới thành Lê Văn Bá, mà có tiến trình P3 (nhà tiêu thụ) nào đó "lấy" đơn về dùng (để in ra) thì kết quả sẽ không nhất quán như sau:
ĐƠN XIN VIỆC
Kính gửi: Giám đốc công ty Phương Nam
Tôi tên là: Lê Văn Bàng
..........(nội dung đơn).............
TP Hồ Chí Minh, ngày 12 tháng 11 năm 2010
Người làm đơn
....(chữ ký)....
Lê Văn Bá
Kính gửi: Giám đốc công ty Phương Nam
Tôi tên là: Lê Văn Bàng
..........(nội dung đơn).............
TP Hồ Chí Minh, ngày 12 tháng 11 năm 2010
Người làm đơn
....(chữ ký)....
Lê Văn Bá
DONGTANHUNG(I92C)- Tổng số bài gửi : 26
Join date : 17/09/2010
Age : 41
Đến từ : HCM
Re: Câu 1: Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ tương hỗ.
Ví dụ khác về vùng tương tranh.
Vùng tương tranh là cái bảng. Ở 1 thời điểm chỉ có 1 sinh viên lên thao tác trên đó.Sau khi sinh viên đó xong thì sinh viện khác với đc lên bảng thao tác.
Admin
Vùng hay Đoạn tương tranh (Đoạn "Găng") là đoạn mã của tiến trình, còn cái bảng nói tới ở trên là "Vùng tranh chấp" !
Vùng tương tranh là cái bảng. Ở 1 thời điểm chỉ có 1 sinh viên lên thao tác trên đó.Sau khi sinh viên đó xong thì sinh viện khác với đc lên bảng thao tác.
Admin
Vùng hay Đoạn tương tranh (Đoạn "Găng") là đoạn mã của tiến trình, còn cái bảng nói tới ở trên là "Vùng tranh chấp" !
TruongHuuHien(I92C)- Tổng số bài gửi : 76
Join date : 13/09/2010
Age : 36
Đến từ : HCM City
Re: Câu 1: Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ tương hỗ.
TruongHuuHien(I92C) đã viết:Ví dụ khác về vùng tương tranh.
Vùng tương tranh là cái bảng. Ở 1 thời điểm chỉ có 1 sinh viên lên thao tác trên đó.Sau khi sinh viên đó xong thì sinh viện khác với đc lên bảng thao tác.
Admin
Vùng hay Đoạn tương tranh (Đoạn "Găng") là đoạn mã của tiến trình, còn cái bảng nói tới ở trên là "Vùng tranh chấp" !
Cám ơn Thầy và bạn Hiền đã cho em thêm một ý về Vùng hay đoạn tương tranh nữa. Hiểu kỹ được vấn đề này thì ứng dụng đèn hiệu Mutex hoặc Synch mới thông được .
DONGTANHUNG(I92C)- Tổng số bài gửi : 26
Join date : 17/09/2010
Age : 41
Đến từ : HCM
Re: Câu 1: Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ tương hỗ.
Oh year có ví dụ của Thầy rùi. Đưa vào bộ nhớ thui.
TruongHuuHien(I92C)- Tổng số bài gửi : 76
Join date : 13/09/2010
Age : 36
Đến từ : HCM City
Re: Câu 1: Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ tương hỗ.
Thanks Thầy nhiều, thật sự cũng nhớ nhưng đúng là không thể nào mô tả cặn kẽ như tác giả được.
DONGTANHUNG(I92C)- Tổng số bài gửi : 26
Join date : 17/09/2010
Age : 41
Đến từ : HCM
Đoạn tương tranh
Cảm ơn Thầy và bạn DONGTANHUNG đã giải thích rõ hơn về vấn đề này
hoainam_I83C- Tổng số bài gửi : 40
Join date : 03/12/2009
Similar topics
» Thảo luận Bài 7
» Thảo luận Bài 7
» Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ lẫn nhau
» Thảo luận Bài 7
» Thảo luận Bài 7
» Thảo luận Bài 7
» Vấn đề về đoạn tương tranh(miền găng) và Tính loại trừ lẫn nhau
» Thảo luận Bài 7
» Thảo luận Bài 7
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết