Networks Business Online Việt Nam & International VH2

Nhập Môn Hệ Điều Hành – Đối với linux 2 trở về trước, Linux cung cấp khả năng lập lịch thời gian – StuDocu

Đăng ngày 04 October, 2022 bởi admin
Đối với linux 2 trở lại trước, Linux phân phối năng lực lập lịch thời hạn thực cùng với bộ lập lịch cho những tiến trình không theo thời hạn thực sử dụng thuật toán lập lịch UNIX truyền thống lịch sử được diễn đạt trong Phần 9. Linux 2 về cơ bản gồm có năng lực tàng trữ thời hạn thực giống như những bản phát hành trước đó và một bộ lập lịch được sửa đổi đáng kể cho những tiền giải quyết và xử lý không theo thời hạn thực. Chúng ta cần kiểm tra hai nghành này lần lượt .Real Time scheduling :3 lớp lập lịch của linux :

-SCHED_FIFO

– SCHED_RR- SCHED_OTHERtrong mỗi lớp, nhiều mức độ ưu tiên hoàn toàn có thể được sử dụng, với mức độ ưu tiên trong những lớp thời hạn thực cao hơn mức độ ưu tiên cho lớp SCHED_OTHER. Các giá trị mặc định như sau : Các lớp ưu tiên thời hạn thực nằm trong khoanh vùng phạm vi trọn vẹn từ 0 đến 99 và những lớp Sched_Other nằm trong khoảng chừng từ 100 đến 139. Số thấp hơn tương tự với mức ưu tiên cao hơn .Đối với chuỗi FIFO, những quy tắc sau được vận dụng :

  1. Hệ thống sẽ không làm gián đoạn một luồng FIFO đang thực thi ngoại trừ trong
    các trường hợp sau:

a. Một luồng FIFO khác có mức độ ưu tiên cao hơn đã sẵn sàng chuẩn bị .b. Luồng FIFO đang thực thi sẽ bị chặn khi chờ một sự kiện, ví dụ điển hình như I / O .c. Luồng FIFO đang thực thi tự nguyện từ bỏ bộ giải quyết và xử lý sau một cuộc gọi tới Sched_yield nguyên thủy .

  1. Khi một luồng FIFO đang thực thi bị ngắt, nó sẽ được đặt trong hàng đợi được link với mức độ ưu tiên của nó .
  2. Khi một luồng FIFO trở nên chuẩn bị sẵn sàng và nếu luồng đó có mức ưu tiên cao hơn luồng đang thực thi thì sẽ được ưu tiên trước và luồng FIFO sẵn sàng chuẩn bị có mức ưu tiên cao nhất sẽ được thực thi. Nếu có nhiều hơn một luồng có mức ưu tiên cao nhất, thì luồng đã chờ lâu nhất sẽ được chọn .

Chính sách SCHED_RR tương tự như chính sách SCHED_FIFO, ngoại trừ việc bổ
sung dấu thời gian được liên kết với mỗi luồng. Khi một luồng Sched_RR đã thực
thi cho dấu thời gian của nó, nó sẽ bị tạm ngưng và một luồng thời gian thực có
mức độ ưu tiên bằng hoặc cao hơn được chọn để chạy.

Hình 10 là một ví dụ minh họa sự độc lạ giữa lập lịch FIFO và RR. Giả sử một process có bốn luồng với ba mức ưu tiên tương đối được chỉ định như trong hình 10. giả sử rằng tổng thể những luồng đang chờ chuẩn bị sẵn sàng thực thi khi luồng hiện tại chờ hoặc kết thúc và không có luồng nào có mức độ ưu tiên cao hơn được thức tỉnh trong khi một luồng đang thực thi. Hình 10 cho thấy một luồng trong đó toàn bộ những luồng nằm trong lớp Sched_Fifo. Luồng D thực thi cho đến khi nó đợi hoặc kết thúc. Tiếp theo, mặc dầu luồng B và C có cùng mức độ ưu tiên, luồng B khởi đầu vì nó đã chờ lâu hơn luồng C. Luồng B thực thi cho đến khi nó chờ hoặc kết thúc, sau đó luồng C thực thi cho đến khi nó đợi hoặc kết thúc. Cuối cùng, luồng A thực thi .Hình 10 cho thấy một luồng mẫu nếu tổng thể những luồng nằm trong lớp Sched_RR. Luồng D thực thi cho đến khi nó đợi hoặc kết thúc. Tiếp theo, chủ đề B và C là thời hạn cắt lát, vì cả hai đều có cùng mức độ ưu tiên. Cuối cùng, chuỗi A thực thi .Lớp lập lịch ở đầu cuối là SCHED_OTHER. Một luồng trong lớp này chỉ hoàn toàn có thể thực thi nếu không có luồng thời hạn thực nào sẵn sàng chuẩn bị thực thi .Non-Real-Time scheduling :Để khắc phục những yếu tố này, Linux 2 sử dụng một bộ lập lịch ưu tiên trọn vẹn mới được gọi là bộ lập lịch O ( 1 ). Bộ lập lịch được phong cách thiết kế để thời hạn chọn quy trình thích hợp và gán nó cho bộ giải quyết và xử lý là không đổi, bất kể tải của mạng lưới hệ thống hay số lượng bộ giải quyết và xử lý .Kernel duy trì hai cấu trúc tài liệu lập lịch cho mỗi bộ giải quyết và xử lý trong mạng lưới hệ thống, có dạng sau ( Hình 10 ) :Một hàng đợi riêng không liên quan gì đến nhau được duy trì cho mỗi mức độ ưu tiên. Tổng số hàng đợi trong cấu trúc là MAX_PRIO, có giá trị mặc định là 140. Cấu trúc cũng gồm có một mảng bitmap có size đủ để phân phối một bit cho mỗi mức ưu tiên. Do đó, với 140 mức ưu tiên và từ 32 bit, BITMAP_SIZE có giá trị là 5 .Điều này tạo ra một bitmap 160 bit, trong đó 20 bit bị bỏ lỡ. Bitmap cho biết hàng đợi nào không trống. Cuối cùng, nr_active cho biết tổng số trách nhiệm có trên toàn bộ những hàng đợi. Hai cấu trúc được duy trì : cấu trúc hàng đợi hoạt động giải trí và cấu trúc hàng đợi đã hết hạn .Ban đầu, cả hai bitmap đều được đặt thành tổng thể những số 0 và tổng thể những hàng đợi đều trống. Khi một quy trình tiến độ trở nên sẵn sàng chuẩn bị, nó sẽ được gán cho bảng thời hạn được phê duyệt. Nếu một trách nhiệm được thực thi trước khi nó triển khai xong dấu thời hạn của nó, nó sẽ được trả về một hàng đợi hoạt động giải trí. Khi một trách nhiệm triển khai xong dấu thời hạn của nó, nó sẽ đi vào hàng đợi thích hợp trong cấu trúc hàng đợi đã hết hạn và được gán một dấu thời hạn mới. Tất cả việc lập lịch được triển khai từ giữa những tác vụ trong cấu trúc hàng đợi hoạt động giải trí. Khi cấu trúc hàng đợi hoạt động giải trí trống, một phép gán con trỏ đơn thuần dẫn đến việc quy đổi những hàng đợi hoạt động giải trí và hết hạn, và việc lập lịch liên tục .

Lập lịch trình rất đơn giản và hiệu quả. TRÊN một bộ xử lý nhất định, bộ lập
lịch biểu chọn hàng đợi không có ưu tiên cao nhất. Nếu nhiều nhiệm vụ nằm
trong hàng đợi đó, các nhiệm vụ sẽ được lên lịch theo kiểu vòng tròn.

Linux cũng gồm có một cơ chế để vận động và di chuyển tác vụ từ list hàng đợi của một bộ giải quyết và xử lý này sang bộ giải quyết và xử lý khác. Định kỳ, bộ lập lịch kiểm tra xem liệu có sự mất cân đối đáng kể giữa số lượng tác vụ được giao cho mỗi bộ giải quyết và xử lý hay không. Để cân đối tải, lịch trình hoàn toàn có thể chuyển 1 số ít trách nhiệm. Các tác vụ đang hoạt động giải trí có mức độ ưu tiên cao nhất được chọn để chuyển, vì điều quan trọng hơn là phân phối những tác vụ có mức độ ưu tiên cao một cách công minh .TÍNH toán độ ưu tiên VÀ THỜI GIANMỗi tác vụ không theo thời hạn thực được chỉ định mức độ ưu tiên bắt đầu trong khoanh vùng phạm vi 100 – 139, với giá trị mặc định là 120. Đây là mức độ ưu tiên tĩnh của tác vụ và được chỉ định bởi người dùng. Khi tác vụ thực thi, mức độ ưu tiên động được thống kê giám sát như một hàm của mức độ ưu tiên tĩnh của tác vụ và hành vi thực thi của nó. Bộ lập lịch Linux được phong cách thiết kế để ưu tiên những tác vụ ràng buộc I / O hơn những tác vụ ràng buộc bộ giải quyết và xử lý. Tùy chọn này có khuynh hướng cung ứng phản hồi tương tác tốt. Kỹ thuật được Linux sử dụng để xác lập mức độ ưu tiên động là giữ cho một tab đang chạy xem thời hạn quy trình ngủ ( chờ một sự kiện ) so với thời hạn quy trình chạy. Về thực chất, một trách nhiệm dành phần nhiều thời hạn để ngủ được ưu tiên cao hơn .

Source: https://vh2.com.vn
Category : Ứng Dụng