Skip to main content

Posts

Showing posts from April, 2016

Một số khái niệm hay dùng khi làm việc với RTOS

Brief Góp nhặt một số kiến thức hay dùng khi làm việc với các hệ điều hành thời gian thực. 1. Mutex Mutex là gì? Mutual exclusion: Trên một hệ điều hành thường có nhiều chương trình (hay tác vụ - task) chạy đồng thời. Mutex giúp ngăn chặn việc hai task cùng truy cập vào 1 tài nguyên (memory, register gọi chung là critical section) của hệ thống trong cùng một thời điểm. Ví dụ, ta có 1 cái FIFO, task 1 đang read FIFO, task 2 lại write FIFO, nếu task 1 chưa lấy xong phần dữ liệu cần thiết mà task 2 lại write đè vào đúng vị trí task 1 đang read, nó sẽ làm sai lệch dữ liệu mà task 1 đang đọc. Lưu ý: Cơ chế mutex được dùng trong cả thiết kế hardware và software. Dùng trong chương trình như thế nào? Hiểu đơn giản, mutex giống như cái khóa tủ dùng chung khi vào hiệu sách hay siêu thị. Để mở được tủ thì phải có khóa. Dùng xong tủ thì phải trả lại chìa khóa lại cho thằng khác dùng ví dụ 1: void task1() {        //Đợi lấy chìa khóa để mở tủ        osMutexWait();         //Cất