Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch

RTOS

• Phần lõi (Kernel): Thực hiện việc lập lịch (schedules

tasks)

• Tác vụ (Tasks): Là các hoạt động hiện tại với các

trạng thái riêng của nó (PC, registers, stack, etc.)Universität Dortmund - 3 -

RTOSUniversität Dortmund - 4 -

CÁC YÊU CẦU VỚI RTOS

• Kích thước nhỏ (lưu trữ toàn bộ trong ROM)

• Sử dụng hệ thống ngắt

• Không nhất thiết phải có các cơ chế bảo vệ

• Tăng tốc độ truyền thông giữa các quá trình

• Khi các quá trình ứng dụng đang thực hiện thì các yêu

cầu hệ thống điều hành có thể được thực hiện thông

qua các lời gọi hàm thay vì sử dụng cơ chế ngắt mềm

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 1

Trang 1

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 2

Trang 2

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 3

Trang 3

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 4

Trang 4

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 5

Trang 5

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 6

Trang 6

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 7

Trang 7

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 8

Trang 8

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 9

Trang 9

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 15 trang xuanhieu 2520
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch

Bài giảng Thiết kế hệ thống nhúng - Chương 5: RTOS Hệ điều hành thời gian thực - Bài 9: RTOS và Kỹ thuật lập lịch
 Universität Dortmund
CHƯƠNG 5: RTOS – HỆ ĐIỀU HÀNH THỜI- 1 -
 GIAN THỰC
 Bài 9: RTOS và Kỹ thuật lập lịch
Universität Dortmund - 2 -
 RTOS
 • Phần lõi (Kernel): Thực hiện việc lập lịch (schedules 
 tasks)
 • Tác vụ (Tasks): Là các hoạt động hiện tại với các 
 trạng thái riêng của nó (PC, registers, stack, etc.)
Universität Dortmund - 3 -
 RTOS
Universität Dortmund - 4 -
 CÁC YÊU CẦU VỚI RTOS
 • Kích thước nhỏ (lưu trữ toàn bộ trong ROM)
 • Sử dụng hệ thống ngắt
 • Không nhất thiết phải có các cơ chế bảo vệ
 • Tăng tốc độ truyền thông giữa các quá trình
 • Khi các quá trình ứng dụng đang thực hiện thì các yêu
 cầu hệ thống điều hành có thể được thực hiện thông 
 qua các lời gọi hàm thay vì sử dụng cơ chế ngắt mềm
Universität Dortmund - 5 -
 CÁC NHIỆM VỤ (Tasks)
 • Các nhiệm vụ = Code + Data + State (trạng thái)
 • Trạng thái của nhiệm vụ được lưu trữ trong khối 
 điều khiển nhiệm vụ (Task Control Block - TCB) 
 khi nhiệm vụ không được thực hiện trên CPU
 • Một TCB điển hình:
Universität Dortmund - 6 -
 Các trạng thái của nhiệm vụ
 • Executing: Đang thực hiện trên CPU
 • Ready: Có thể chạy trên CPU nhưng một nhiệm vụ 
 khác đang sử dụng CPU
 • Blocked: Đợi sự kiện (I/O, signal, resource, etc.)
 • Dormant: Tạo ra nhưng chưa được thực hiện
 • Terminated: Không còn tác động nữa
 RTOS thực hiện một cơ chế chuyển trạng thái cho 
 mỗi nhiệm vụ và quản lý quá trình chuyển trạng thái.
Universität Dortmund - 7 -
 Task States Transitions
Universität Dortmund - 8 -
 Bộ lập lịch RTOS
 • Thực hiện cơ chế chuyển trạng thái
 • Chuyển giữa các nhiệm vụ
 • Thuật toán chuyển:
 1.Lưu trữ trạng thái hiện tại vào TCB
 2.Tìm TCB mới
 3.Khôi phục trạng thái từ TCB mới
 4.Tiếp tục
 • Chuyển đổi giữa trạng thái EXECUTING -> READY:
 1.Nhiệm vụ được thực hiện tuần tự: NON-PREEMPTIVE
 2.RTOS chuyển trạng thái cho các nhiệm vụ ưu tiên cao hơn: 
 PREEMPTIVE
Universität Dortmund - 9 -
 Quá trình lập lịch
 Mục đích: Đảm bảo yêu cầu về thời gian
 • Lập lịch trước khi chạy (static): Xác định chính xác 
 giản đồ thời gian cho các nhiệm vụ tại thời điểm thiết kế
 • Lập lịch khi chạy chương trình (dynamic): Lập lịch 
 được thực hiện tự động bởi RTOS, dựa trên sự ưu tiên. 
Universität Dortmund - 10 -
 Phân bố các nhiệm vụ (1)
 Một chu kỳ của nhiệm vụ (Đối với các nhiệm vụ có chu kỳ - periodic 
 tasks):
 • Các ràng buộc ưu tiên: Xét xem có bất cứ nhiệm vụ nào cần được ưu tiên 
 không.
 • Thời gian xuất hiện-ai (arrival time): Là khoảng thời gian khi sự kiện xảy ra và 
 nhiệm vụ tương ứng được kích hoạt.
 Thời điểm bắt đầu thực thi ri (release time): Thời điểm sớm nhất khi việc xử
 lý đã sẵn sàng và có thể bắt đầu.
 • Thời điểm bắt đầu thực hiện - si (starting time): Là thời điểm mà tại đó tác vụ
 bắt đầu việc thực hiện của mình.
 • Thời gian tính toán/thực thi - ci (Computation time): Là khoảng thời gian cần
 thiết để bộ xử lý thực hiện xong nhiệm vụ của mình mà không bị ngắt.
 • Thời điểm hoàn thành - fi (finishing time): Là thời điểm mà tại đó tác vụ hoàn
 thành việc thực hiện của mình.
 • Thời gian rủi ro/xấu nhất - wi (worst case time): khoảng thời gian thực hiện 
 lâu nhất có thể xảy ra.
 • Thời điểm kết thúc - di (due time): Thời điểm mà tác vụ phải hoàn thành.
Universität Dortmund - 11 -
 Model nhiệm vụ
 Mô hình nhiệm vụ đơn giản:
 • Tất cả các nhiệm vụ phải có yêu cầu khắt khe về chu 
 kỳ thực hiện.
 • Thời gian để hoàn thành nhiệm vụ chính là chu kỳ của 
 nhiệm vụ.
 • Tất cả các nhiệm vụ độc lập – không có ràng buộc về 
 quyền ưu tiên.
 • Không có nhiệm vụ nào có bộ phận không ưu tiên
 • Chỉ có nhiệm vụ xử lý. 
Universität Dortmund - 12 -
 Các kỹ thuật lập lịch
 1. First Come First Serve (FCFS)
 • Các quá tình được xử lý theo thứ tự mà nó xuất hiện yêu cầu và cho 
 đến khi hoàn thành
 • Cơ chế lập lịch này thuộc loại không ngắt được và có ưu điểm là dễ 
 dàng thực thi
 • Không phù hợp cho hoạt động đáp ứng thời gian thực
 2. Shortest Job First (SJF)
 • Tác vụ có thời gian thực thi ngắn nhất sẽ có quyền ưu tiên cao 
 nhất và sẽ được phục vụ trước
 • Không biết trước được thời gian thực thi của các tác vụ tham 
 gia trong chương trình và thông thường phải áp dụng cơ chế 
 tiên đoán và đánh giá dựa vào kinh nghiệm về các tác vụ thực 
 thi trong hệ thống
 • Có thể áp dụng cho các tác vụ cả loại ngắt được và không ngắt 
 được
Universität Dortmund - 13 -
 Các kỹ thuật lập lịch
 3. Rate Monotonic (RM)
 • Phương pháp này dựa trên một số giả thiết sau:
 - Tất cả các tác vụ tham gia hệ thống phải có deadline kiểu chu kỳ
 - Tất cả các tác vụ độc lập với nhau
 - Thời gian thực hiện của các tác vụ biết trước và không đổi
 - Thời gian chuyển đổi ngữ cảnh thực hiện là rất nhỏ và có thể bỏ qua
 • Thuật toán RM được thực thi theo nguyên lý gán mức ưu tiên 
 cho các tác vụ dựa trên chu kỳ của chúng (chu kỳ nhỏ thì 
 mức ưu tiên cao)
 • Với các tác vụ chu kỳ không thay đổi thì RM sẽ là phương 
 pháp lập lịch cho phép ngắt và mức ưu tiên cố định
Universität Dortmund - 14 -
 Các kỹ thuật lập lịch
 3. Earliest Deadline First (EDF)
 • Sử dụng deadline của tác vụ như điều kiện ưu tiên để xử lý 
 điều phối hoạt động
 • Tác vụ có deadline gần nhất sẽ có mức ưu tiên cao nhất và 
 các tác vụ có deadline xa nhất sẽ nhận mức ưu tiên thấp nhất
 4. Minimum Laxity First (MLF)
 • Cơ chế lập lịch này sẽ ưu tiên tác vụ nào còn ít thời gian còn 
 lại để thực hiện nhất trước khi nó phải kết thúc để đảm bảo yêu 
 cầu thực thi đúng
 • Cơ chế lập lịch gán quyền ưu tiên động và dễ đạt được sự tối 
 ưu về hiệu suất thực hiện và sự công bằng trong hệ thống
Universität Dortmund - 15 -
 Các kỹ thuật lập lịch
 5. Round Robin (RR)
 • Mỗi một tác vụ được xử lý/phục vụ trong một khoảng thời gian 
 nhất định và lặp lại theo một chu trình xuyên suốt toàn bộ các 
 tác vụ tham gia trong hệ thống
 • Khoảng thời gian phục vụ cho mỗi tác vụ trong quá trình là một 
 sự thoả hiệp giữa thời gian thực hiện của các tác vụ và thời 
 gian thực hiện một chu trình

File đính kèm:

  • pdfbai_giang_thiet_ke_he_thong_nhung_chuong_5_rtos_he_dieu_hanh.pdf