Lịch trình Linux cố gắng để thể rất hiệu quả
■ Để làm điều đó, nó sử dụng một số dữ liệu phức tạp
cấu trúc
■ Một số những gì nó thực sự mâu thuẫn với các
đề án, chúng tôi đã thảo luận. . . ----- 140 hàng đợi riêng biệt, một cho mỗi cấp độ ưu tiên ■ Trên thực tế, con số này có thể thay đổi một vị trí nhất định ■ Trên thực tế, hai bộ, năng động và hết hạn ■ Ưu tiên 0-99 cho thời gian thực quá trình ■ Ưu tiên 100- 139 cho các quá trình bình thường; giá trị thiết lập thông qua hệ thống tốt đẹp () ------ Sử dụng lượng tử lớn cho quá trình quan trọng ■ Sửa đổi lượng tử dựa trên sử dụng CPU quá trình ■ Bind để CPU ■ Đừng tất cả mọi thứ trong O (1) thời gian ------ Có một chạy riêng biệt xếp hàng cho mỗi bộ xử lý ■ mỗi bộ xử lý chỉ chọn các quá trình từ của hàng đợi riêng để chạy ■ có, nó có thể cho một bộ xử lý được nhàn rỗi trong khi những người khác đã làm chờ đợi ở họ chạy hàng đợi ■ Định kỳ, các hàng đợi được cân đối lại: nếu một hàng chạy vi xử lý là quá dài, một số quy trình được chuyển từ nó đến một hàng đợi của bộ vi xử lý ----- Mỗi tiến trình có một bitmask nói gì CPU có thể chạy trên ■ Thông thường, tất nhiên, tất cả các CPU được liệt kê ■ Quy trình có thể thay đổi mặt nạ ■ Mặt nạ là thừa kế bởi các tiến trình con (và chủ đề), do đó xu hướng giữ chúng trên cùng một CPU ■ Tái cân bằng không ghi đè ái lực ------- Tìm hàng đợi có độ ưu tiên cao nhất với một Runnable quá trình ■ Tìm quá trình đầu tiên trên hàng đợi ■ tính toán kích thước lượng tử của nó ■ Hãy để nó chạy ■ Khi thời gian của nó lên, đặt nó vào danh sách quá hạn ■ Lặp lại ------- 140 hàng đợi riêng biệt, một cho mỗi cấp độ ưu tiên ■ trên thực tế, con số này có thể sẽ bị thay đổi cho trang web ■ Trên thực tế, hai bộ, năng động và hết hạn ■ Ưu tiên 0-99 cho thời gian thực quá trình ■ Ưu tiên 100-139 cho quá trình bình thường; giá trị thiết lập thông qua tốt đẹp () hệ thống gọi --------- Có một bản đồ bit chỉ mà hàng đợi có các quy trình mà đã sẵn sàng để chạy ■ Tìm các bit đầu tiên là thiết lập: ◆ 140 hàng đợi ⇒ 5 số nguyên ◆ Chỉ có một vài so sánh để tìm ra đầu tiên mà không phải là zero ◆ phần cứng hướng dẫn để tìm ra 1-bit đầu tiên ◆ Thời gian phụ thuộc vào số lượng ưu tiên cấp, không phải số của quá trình ----------- Scheduling Cơ chế: làm thế nào để chuyển đổi. • Lập kế hoạch chính sách: khi chuyển đổi và quá trình lựa chọn. Một số kế hoạch mục tiêu: - Thời gian đáp ứng quá trình nhanh - tránh quá đói - thông tốt cho việc làm nền - Hỗ trợ cho quá trình thời gian thực mềm . • Linux sử dụng tự động phân công quá trình ưu tiên cho các quá trình phi thời gian thực tiến trình đang chạy trong một thời gian dài có những ưu tiên của họ giảm trong khi quá trình đó đang chờ đợi có những ưu tiên của họ tăng động.
đang được dịch, vui lòng đợi..