1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phần 4: Lập lịch trong hệ thời gian thực – Scheduling

4 612 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 266,87 KB

Nội dung

Võ Duy Thành Phần 4: I Lập lịch hệ thời gian thực – Scheduling Scheduling: Các tác vụ (task) hoạt động giám sát kernel thời gian thực Chúng bao gồm: - Một tập hợp dịch vụ thực công việc đồng hoá giao tiếp truyền thông tác vụ - Một lập lịch (scheduler) với chức khẳng định có tác vụ với mức ưu tiên cao thực thi Bộ lập lịch xét tác vụ máy trạng thái (state machine) Tất kernel có mô hình trạng thái nó, nhiên, thông thường mô hình trạng thái nảy phức tạp Hình 4.1 cho bạn thấy mô hình trạng thái mang tính khái niệm tác vụ Trong hình, ta thấy có trạng thái: - Đang thực thi (Running): có tác vụ nằm trạng thái Một tác vụ tự động chuyển từ trạng thái Đang thực thi sang trạng thái Khoá (Blocked) việc chờ đợi kiện xảy Trong hệ thống có chiếm quyền thực thi (chúng ta đề cập đến sau), lập lịch bắt tác vụ trạng thái Đang thực thi xuống trạng thái Sẵn sàng (Ready) có tác vụ với mức ưu tiên cao chuyển đến trạng thái Sẵn sàng Chúng ta gọi chiếm quyền thực thi (preemption) - Sẵn sàng (Ready): tác vụ sẵn sàng để hoạt động lại có mức ưu tiên thấp tác vụ thực thi, tác vụ chuyển đến trạng thái chờ Tác vụ chuyển đến trạng thái Đang thực thi trở thành tác vụ có mức ưu tiên cao - Khoá (Blocked): tác vụ bị khoá tác vụ đợi kiện xảy ra, ví dụ tin, tin nhắn gửi đến hộp thư tác vụ đó, hay thời gian chờ tác vụ kết thúc… Running (Đang Bị chiếm quyền thực thi) tác vụ có mức ưu tiên cao Chờ kiện xảy Nếu có mức ưu tiên cao Ready Blocked (Khoá) Sự kiện xuất (Sẵn sàng) Hình 4.1 – Mô hình trạng thái tác vụ Tài liệu mang tính tham khảo Nguyên văn tiếng nước Doug Abbott 4/1 Võ Duy Thành II Lập lịch có chu kỳ: Có nhiều tác vụ mà công việc thức dậy theo chu kỳ, làm vài công việc quay trở lại ngủ tiếp Có vài phương pháp để thực tác vụ kiểu hình 4.2 Trong tất hệ điều hành, tìm thấy lệnh gọi hàm trễ Delay(), vài hàm có chức tương tự Hàm làm cho tác vụ bị khoá thời gian xác định cho trước, thông thường thời gian biểu diễn xung đồng hồ (clock tick) Hình 4.1a cho ta thấy việc thực tác vụ ta sử dụng lệnh Delay() tác vụ có tính chu kỳ Trong trường hợp này, khoảng thời gian trễ clock tick Hoạt động hệ thống phụ thuộc vào thời gian thực thi tác vụ Nếu thời gian thực nhỏ tick tác vụ thức dậy sau tick mong muốn Tuy nhiên, tác vụ hoạt động tick, đó, sau tác vụ gọi lệnh Delay(), bị khoá clock tick Thế nhưng, ví dụ này, tác vụ thực tế thức dậy sau xung clock tick Đó điều mong muốn Một phương án khác, hệ thống có, trình bày hình 4.2b Trong trường hợp này, lập lịch đánh thức tác vụ vào thời điểm thích hợp mà không quan tâm đến thời gian thực tác vụ Do đó, thay dùng hàm Delay(), tác vụ có tính chu kỳ gọi hàm WaitTilNext() Hàm khóa tác vụ phiên thực 10 Xung(Tick) Thời gian thực 4.1a) Tác vụ thi nhỏ tick thực thi với lệnh Thời gian thực Delay() thi lớn tick 10 Xung(Tick) Thời gian thực 4.1b) Tác vụ lập thi nhỏ tick lịch theo chu kỳ Thời gian thực thi lớn tick Hình 4.2 – Các tác vụ có tính chu kỳ Tài liệu mang tính tham khảo Nguyên văn tiếng nước Doug Abbott 4/2 Võ Duy Thành III Lập lịch không theo chu kỳ: Một số tác vụ phải phản ứng lại kiện xảy ngẫu nhiên thời điểm khác Một kiện việc gói liệu từ mạng gửi đến nơi, việc công tắc đóng lại để bể nước đầy kết thúc việc convert tín hiệu tương tự sang số ADC cần đọc Thông thường, kiện không đồng giao tiếp với máy tính thông qua ngắt Chương trình dịch vụ ngắt phải có cách để kết nối xuất ngắt với tác vụ chịu trách nhiệm xử lý kiện IV Lập lịch theo kiểu chiếm quyền thực thi lập lịch chiếm quyền thực thi Có phương thức cho việc lập lịch tác vụ: chiếm quyền thực thi không chiếm quyền thực thi Xét tác vụ: tác vụ có mức ưu tiên thấp thực tác vụ có mức ưu tiên cao bị khoá để chờ kiện xảy ra, kiện thông báo tín hiệu ngắt Hình 4.3a cho thấy xảy hệ thống tính chiếm quyền ưu tiên Chương trình dịch vụ ngắt ISR làm cho tác vụ với mức ưu tiên cao chuyển từ trạng thái Khoá sang trạng thái Sẵn sàng Tuy nhiên, đến ISR thực xong tác vụ với mức ưu tiên thấp tiếp tục thực thi điểm bị ngắt Sau đó, tác vụ bị khoá để chờ kiện tác vụ chuyển sang trạng thái thực thi Hình 4.3b ứng với trường hợp hệ thống có tính chiếm quyền ưu tiên Điểm khác biệt lập lịch gọi đến cuối chương trình dịch vụ ngắt Bộ lập lịch xác định tác vụ có mức ưu tiên cao trạng thái Sẵn sàng chuyển lên trạng thái thực thi Do đó, tác vụ với mức ưu tiên thấp bị chiếm quyền thực thi Một hệ thống tính chiếm quyền thực thi muốn tất tác vụ phải “những công dân tốt” cách tự nguyện trao trả xử lý cho tác vụ khác để chắn điều: tác vụ có hội để sử dụng xử lý Các hệ Windows trước dạng Linux khác, hệ điều hành có tính chiếm quyền thực thi Linux chuẩn không quan tâm đến vấn đề thời gian thực thời gian dài, vấn đề chiếm quyền thực thi không đề cập Các hệ thống có tính chiếm quyền thực thi cung cấp cho ta nhiều thời gian phản ứng dự đoán tác vụ có mức ưu tiên cao xử lý Đây điểm cốt lõi thời gian thưc: khả đảm bảo thời gian lớn để phản ứng lại kiện Trong hệ thống không chiếm quyền thực thi, chẳng có để đảm bảo thời gian tác vụ nhường lại xử lý cho tác vụ khác Mặt khác, hệ thống có chiếm quyền ưu tiên, vấn đề tranh chấp tài nguyên hệ thống đáng quan tâm cẩn thận Tài liệu mang tính tham khảo Nguyên văn tiếng nước Doug Abbott 4/3 Võ Duy Thành Tín hiệu ngắt 4.3a) Không chiếm ISR quyền thực thi Sẵn sàng Ưu tiên cao Ưu tiên thấp Khoá ISR 4.3b) Có chiếm quyền thực thi Ưu tiên cao Ưu tiên thấp Hình 4.3 - Lập lịch: có chiếm quyền thực thi Hai phương án khác tận dụng để xử lý tác vụ có mức ưu tiên Trong phương thức lập lịch kiểu vòng lặp robin, tác vụ thực thi đến bị khoá (block) để chờ kiện xuất có tình nguyện nhường (yield) xử lý lại Sự khác biệt khoá nhường chỗ: trường hợp thứ 2, tác vụ quay trở lại trạng thái Sẵn sàng (ready) Xét trường hợp danh sách Sẵn sàng có tác vụ thứ tự A, B, C Các tác vụ có mức ưu tiên Tác vụ A đứng đầu danh sách chuyển đến trạng thái Thực thi Khi tác vụ A nhường (yield) xử lý, tác vụ B trở thành trạng thái thực thi danh sách Sẵn sàng sau: BCA Khi B nhường, C chuyển trạng thái danh sách chuyển thành: CAB Như vậy, tất tác vụ hoạt động thành vòng tròn, chúng hoạt động theo kiểu nhường Các tác vụ có mức ưu tiên thấp trạng thái Sẵn sàng không thực tất tác vụ bị khoá Nhát cắt thời gian biến thể vòng lặp robin Trong đó, quy định tác vụ nhận lượng thời gian định hay gọi nhát cắt thời gian Việc làm bảo vệ tác vụ khỏi trường hợp chiếm dụng xử lý lâu Do đó, tác vụ chạy bị khoá, tình nguyện nhường hay hạn thời gian cho phép Tuỳ thuộc vào hoàn cảnh yêu cầu, tác vụ có lượng thời gian cho phép khác Xét khía cạnh đó, vòng lặp robin dạng khác vòng lặp polling Tài liệu mang tính tham khảo Nguyên văn tiếng nước Doug Abbott 4/4

Ngày đăng: 10/08/2016, 09:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN