Trang Chủ Phát triển Loại trừ lẫn nhau (mutex) là gì? - định nghĩa từ techopedia

Loại trừ lẫn nhau (mutex) là gì? - định nghĩa từ techopedia

Mục lục:

Anonim

Định nghĩa - Loại trừ lẫn nhau (Mutex) có nghĩa là gì?

Loại trừ lẫn nhau (mutex) là một đối tượng chương trình ngăn chặn truy cập đồng thời vào tài nguyên được chia sẻ. Khái niệm này được sử dụng trong lập trình đồng thời với một phần quan trọng, một đoạn mã trong đó các quy trình hoặc luồng truy cập vào một tài nguyên được chia sẻ. Mỗi lần chỉ có một luồng sở hữu mutex, do đó, một mutex có tên duy nhất được tạo khi chương trình bắt đầu. Khi một luồng chứa tài nguyên, nó phải khóa mutex khỏi các luồng khác để ngăn truy cập đồng thời của tài nguyên. Khi phát hành tài nguyên, luồng sẽ mở khóa mutex.

Techopedia giải thích Loại trừ lẫn nhau (Mutex)

Mutex đi vào hình ảnh khi hai luồng làm việc trên cùng một dữ liệu cùng một lúc. Nó hoạt động như một khóa và là công cụ đồng bộ hóa cơ bản nhất. Khi một chủ đề cố gắng để có được một mutex, nó sẽ nhận được mutex nếu nó có sẵn, nếu không thì chủ đề được đặt thành điều kiện ngủ. Loại trừ lẫn nhau làm giảm độ trễ và chờ đợi bận rộn bằng cách sử dụng hàng đợi và chuyển đổi ngữ cảnh. Mutex có thể được thi hành ở cả cấp độ phần cứng và phần mềm.

Vô hiệu hóa các ngắt cho số lượng hướng dẫn nhỏ nhất là cách tốt nhất để thực thi mutex ở cấp hạt nhân và ngăn ngừa tham nhũng của các cấu trúc dữ liệu được chia sẻ. Nếu nhiều bộ xử lý chia sẻ cùng một bộ nhớ, một cờ được đặt để bật và tắt việc thu thập tài nguyên dựa trên tính khả dụng. Cơ chế chờ-bận thực thi mutex trong các lĩnh vực phần mềm. Điều này được trang bị các thuật toán như thuật toán của Dekker, thuật toán làm bánh trắng đen, thuật toán của Szymanski, thuật toán của Peterson và thuật toán làm bánh của Lamport.

Độc giả lẫn nhau và đọc / ghi mã lớp mutex có thể được xác định để triển khai mutex hiệu quả.

Loại trừ lẫn nhau (mutex) là gì? - định nghĩa từ techopedia