Muốn biết cơ chế lập lịch nào được sử dụng trong 15.04, chia sẻ thời gian hoặc thời gian thực, tôi khá chắc chắn rằng FIFO, Round Robin, SJF của nó?
PS: Mới dùng Linux
Muốn biết cơ chế lập lịch nào được sử dụng trong 15.04, chia sẻ thời gian hoặc thời gian thực, tôi khá chắc chắn rằng FIFO, Round Robin, SJF của nó?
PS: Mới dùng Linux
Câu trả lời:
Lập lịch xử lý
Bộ lập lịch xử lý xử lý phân bổ tài nguyên CPU để thực hiện các quy trình và nhằm mục đích tối đa hóa việc sử dụng CPU tổng thể đồng thời tối đa hóa hiệu suất tương tác.
Vì kernel 2.6,23 (tương đương với Hardy 8.04 LTS) Bộ lập lịch hoàn toàn công bằng (CFS) dựa trên "Thời hạn cầu thang xoay". Tổng quan từ kernel.org :
CFS là viết tắt của "Bộ lập lịch hoàn toàn công bằng" và là bộ lập lịch xử lý "máy tính để bàn" mới được Ingo Molnar triển khai và sáp nhập vào Linux 2.6.23. Nó là sự thay thế cho mã tương tác SCHED_OTHER của trình lập lịch vani trước đó.
80% thiết kế của CFS có thể được tóm tắt trong một câu duy nhất: CFS về cơ bản mô hình hóa một "CPU đa tác vụ chính xác, lý tưởng" trên phần cứng thực.
"CPU đa tác vụ lý tưởng" là CPU (không tồn tại :-)) có sức mạnh vật lý 100% và có thể chạy từng tác vụ với tốc độ chính xác bằng nhau, song song, mỗi tốc độ 1 / nr_rucky. Ví dụ: nếu có 2 tác vụ đang chạy, thì nó chạy mỗi nhiệm vụ với 50% sức mạnh vật lý --- tức là thực sự song song.
Trên phần cứng thực, chúng ta chỉ có thể chạy một tác vụ duy nhất cùng một lúc, vì vậy chúng tôi phải giới thiệu khái niệm "thời gian chạy ảo". Thời gian chạy ảo của một tác vụ chỉ định thời gian tiếp theo của nó sẽ bắt đầu thực thi trên CPU đa tác vụ lý tưởng được mô tả ở trên. Trong thực tế, thời gian chạy ảo của một tác vụ là thời gian chạy thực tế của nó được chuẩn hóa thành tổng số tác vụ đang chạy.
Bộ lập lịch I / O
Lập lịch đầu vào / đầu ra là phương pháp mà hệ điều hành sử dụng để quyết định các hoạt động I / O của khối thứ tự nào sẽ được gửi đến khối lượng lưu trữ.
Bài viết của Phoronix về lập lịch : Linux 3.16: Bộ lập lịch I / O Hạn chót thường dẫn đầu với một ổ SSD.
Bạn có thể thay đổi bộ lập lịch I / O bằng cách nối thêm tùy chọn "thang máy =" thành "GRUB_CMDLINE_LINUX_DEFAULT =" trong grub.
Có lẽ dễ dàng hơn (giả sử sda và thời hạn) để làm điều đó như thế này:
Để hiển thị danh sách các lịch trình có sẵn:
cat /sys/block/sda/queue/scheduler
Và để thay đổi lịch trình (có thể được thực hiện nhanh chóng):
echo deadline > /sys/block/sda/queue/scheduler
Từ kernel / git / torvalds / linux.git
Bạn có thể kiểm tra những gì đang được sử dụng với (giả sử sda là primurine):
cat /sys/block/sda/queue/scheduler