Võ Duy Thành CHƯƠNG CÁC TÁC VỤ – TASKS Một giải pháp đưa có tên Đa nhiệm Giải pháp chứng minh mô hình chuẩn cho hệ thống điều khiển kiện hệ thống sử dụng ngắt Ý tưởng giải pháp phân chia vấn đề lớn thành nhánh nhỏ đơn giản để giải Mỗi vấn đề – sub-problem trở thành tác vụ - task Mỗi tác vụ làm việc đơn giản Sau đó, giả thiết tác vụ chạy song song với Trên thực tế, tác vụ không chạy song song hệ thống đa vi xử lý Trong trường hợp xét, tác vụ chia sẻ vi xử lý Cũng giống chương trình khác, tác vụ bao gồm mã lệnh để thực chức mà tác vụ phải thực (do người lập trình thiết kế) Mã lệnh chứa hàm tương tự hàm main() ngôn ngữ lập trình C Điều làm nên khác biệt tác vụ ngữ cảnh – context chứa ngăn xếp – stack Hình – Task ? Mỗi tác vụ bao gồm : - Mã nguồn chứa chức tác vụ - Một ngăn xếp – stack để chứa ngữ cảnh tác vụ - Một hôp thư – mail box (tùy chọn) để phục vụ cho việc truyền thông với tác vụ khác Chú ý rằng, (nhiều hữu dụng) ta tạo nhiều tác vụ từ hàm chung Như nói, điều làm cho tác vụ tách biệt khác biệt với tác vụ khác ngăn xếp Đây thực tế lập trình hướng đối tượng kiểu cổ điển Ta nghĩ hàm tác vụ việc định nghĩa class Và tác vụ tạo từ hàm ví dụ class Mặc dù thấy tác vụ độc lập, chúng cần phải hợp tác với để thực mục đích chung thiết kế sẵn cho hệ thống Vì vậy, tác vụ cần phải có chế truyền thông mà thông qua đó, chúng kết nối, đồng với tác vụ khác Trong trường hợp này, ta gọi chế Hộp thư – mail box Tài liệu chỉ mang tính tham khảo Nguyên văn tiế ng nước ngoài của Doug Abott Võ Duy Thành Bảng miêu tả cấu trúc mã nguồn tác vụ Đối số data dùng để tham số hóa tác vụ Vai trò giống với đối số argv argc hàm main() với ngôn ngữ C Đối số thực quan trọng trường hợp nhiều tác vụ tạo từ hàm Sự tác vụ thể giá trị đối số Bảng 1: Cấu trúc thông thường tác vụ Một tác vụ khởi động với vài khởi tạo (có thể bao gồm khởi tạo đối số data) Sau đó, thông thường, tác vụ vào vòng lặp không giới hạn Tại vài ̣ t sư ̣ kiện đó xảy ra", có thể, sư ̣ kiê ̣ n đó điểm vòng lặp, đợi "mô ̣ c gư ̣ c chỉ đơn gia ̣ định thờ i Trong chờ sư ̣ kiê ̣ n, tác ̉ i tới mail box, hoă ̉ n là tràn bô tin đươ ̣ ng bô ̣ vi xư ̣ t vài tác vụ khác sẵn sàng ̉ và không sư ̉ du ̉ lý Mô vụ không là m gì ca ̣ ng hoă ̣ c hoa ̣ t đô ̣ ng sử dụng vi xử lý hoạt đô ̣ kiê ̣ n mà tác vụ chờ xảy ra, tác vụ "thứ c dâ ̣ y" và, ví dụ, nhâ ̣ n lâý tin, giải Khi sư ̣ t sẵn dư ̣ a mô ̣ t ̣ thống yêu cầu mã tin hoạt động theo các yêu cầu đă ̀ ̣ nh switch() Sau thư ̣ c hiê ̣ n xong yêu câu, tác vụ lại quay trơ ̉ i câu lê ̉ lại phân định bơ ̣ n trạng thái chờ kiê ̣ c chờ mô ̣ t sư ̣ kiê ̣ n Có thể thấy rằng, tât́ tác vụ giành phần lớn thờ i gian cho viê xảy Đây cun ̃ g chi ́nh lý để đa nhiệm hoạt động Tài liệu chỉ mang tính tham khảo Nguyên văn tiế ng nước ngoài của Doug Abott