Trang Chủ Phát triển Thuật toán của dekker là gì? - định nghĩa từ techopedia

Thuật toán của dekker là gì? - định nghĩa từ techopedia

Mục lục:

Anonim

Định nghĩa - Thuật toán của Dekker's nghĩa là gì?

Thuật toán của Dekker là thuật toán được biết đến đầu tiên giải quyết vấn đề loại trừ lẫn nhau trong lập trình đồng thời. Nó được ghi có vào Th. J. Dekker, một nhà toán học người Hà Lan, người đã tạo ra thuật toán cho một bối cảnh khác. Thuật toán của Dekker được sử dụng trong quá trình xếp hàng và cho phép hai luồng khác nhau chia sẻ cùng một tài nguyên sử dụng mà không bị xung đột bằng cách sử dụng bộ nhớ dùng chung để liên lạc.

Techopedia giải thích Thuật toán của Dekker's

Thuật toán của Dekker sẽ chỉ cho phép một quy trình duy nhất sử dụng tài nguyên nếu hai quy trình đang cố gắng sử dụng cùng một lúc. Điểm nổi bật của thuật toán là cách nó giải quyết vấn đề này. Nó thành công trong việc ngăn chặn xung đột bằng cách thực thi loại trừ lẫn nhau, nghĩa là chỉ một quá trình có thể sử dụng tài nguyên tại một thời điểm và sẽ chờ nếu một quy trình khác đang sử dụng nó. Điều này đạt được với việc sử dụng hai "cờ" và "mã thông báo". Các cờ cho biết liệu một quá trình có muốn vào phần quan trọng (CS) hay không; giá trị bằng 1 có nghĩa là ĐÚNG rằng quá trình muốn vào CS, trong khi 0 hoặc FALSE, nghĩa là ngược lại. Mã thông báo, cũng có thể có giá trị 1 hoặc 0, biểu thị mức độ ưu tiên khi cả hai quá trình có cờ được đặt thành TRUE.


Thuật toán này có thể thực thi thành công loại trừ lẫn nhau nhưng sẽ liên tục kiểm tra xem phần quan trọng có sẵn hay không và do đó làm lãng phí thời gian xử lý đáng kể. Nó tạo ra vấn đề được gọi là đồng bộ hóa bước khóa, trong đó mỗi luồng chỉ có thể thực hiện đồng bộ hóa nghiêm ngặt. Nó cũng không thể mở rộng vì nó chỉ hỗ trợ tối đa hai quá trình để loại trừ lẫn nhau.

Thuật toán của dekker là gì? - định nghĩa từ techopedia