Critical Section

Critical Section là phần đoạn mã chạy dùng tài nguyên (đoạn mã này cần được thực thi liên tục), không cho phép có tác nhân khác chen ngang (ngắt, thread, task,...) để tránh đột ngột làm thay đổi giá trị trong tài nguyên (biến toàn cục, bộ nhớ, thanh ghi, ....)

  1. Tắt ngắt

disableInterrupt

criticalSection

enableInterrupt

2. Lệnh nguyên tử (Atomic Instructions)

Test-and-Set, Compare-and-Swap, hoặc LDREX/STREX

Ưu điểm: Không cần tắt ngắt

Nhược điểm: Chỉ hỗ trợ trên một số vi điều khiển

 

Nhanvat

Ủng hộ chúng tôi

Nếu bạn thấy nội dung hữu ích, hãy mời nhóm một ly cà phê để chúng tôi có thêm động lực làm tài liệu và mã nguồn miễn phí

Chuyển khoản (Việt Nam)
Mã QR chuyển khoản ủng hộ InvenCamp
Quét bằng app ngân hàng, hoặc chạm vào mã để chọn app HOANG BA DUY 2154755042
Thẻ quốc tế / PayPal Buy Me A Coffee Mở trang Buy Me a Coffee
Logo

AI InvenCamp

Trực tuyến 24/7

Xin chào! Tôi là trợ lý tự động của InvenCamp. Tôi có thể tra cứu giúp bạn sản phẩm, bài viết hướng dẫn và chính sách có trên website. Bạn cần tìm gì ạ?

Câu hỏi gợi ý: