2009-10-21 37 views
18

Các thuật toán lập kế hoạch nào mà hạt nhân Linux sử dụng?Các thuật toán lập kế hoạch nào mà hạt nhân Linux sử dụng?

Tôi có thể tìm thêm thông tin về hạt nhân của Linux ở đâu? (Khóa học đầu tiên của hệ điều hành ... cấp độ sinh viên)

+0

Bạn có nghĩa là "Thuật toán lập lịch trình nhân Linux sử dụng"? –

+0

mm có thể, tiếng anh của tôi không tốt. Tôi có nghĩa là, FCFS, vòng robin hoặc những gì sử dụng hạt nhân Linux để xử lý các quy trình. – Nick

+0

Đó là một chút cũ, nhưng hãy thử đọc [trang này] (http://web.archive.org/web/20141016155917/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html). Thật không may, có vẻ như chính sách của trang web này đối với các câu trả lời hữu ích như vậy, ngay cả những câu trả lời đã giúp mọi người trong _7 năm, là họ nên bị xóa ...) – user200783

Trả lời

1

tôi tin rằng "bộ lập lịch hoàn toàn công bằng" đang được sử dụng với nhân mới nhất. Tôi nghĩ rằng bạn có thể có số lượng thông tin tốt nếu bạn chỉ tìm kiếm thông tin đó trong google.

liên kết: http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

7

Các hạt nhân Linux có thuật toán lập lịch trình có sẵn khác nhau cho cả lịch trình và cho I/O lịch. Tải xuống từ số www.kernel.org và gọi

make menuconfig 

Bạn sẽ nhận được danh sách đầy đủ tất cả các tùy chọn có sẵn với trợ giúp được tích hợp sẵn. Một anh chàng đã từng lập trình lên lịch O (1) của mình là Con Kolivas. Chắc chắn phải có một cái nhìn vào những gì ông đã làm. Tôi đã từng là một đột phá lớn.

+1

Nó sẽ được tốt đẹp nếu bạn có thể vui lòng đề cập đến các thể loại trong menuconfig rằng các schedulers có thể được tìm thấy. – recluze

0

Tôi nghĩ hạt nhân Linux thực sự có một vài lịch trình khác nhau mà bạn có thể chọn từ lúc biên dịch. Để tìm hiểu thêm về hạt nhân Linux, bạn có thể tải xuống mã nguồn hạt nhân (hoặc duyệt qua mã nguồn trực tuyến) và tìm trong thư mục Tài liệu. Ví dụ: scheduler thư mục con có thể hữu ích. Bạn cũng có thể chỉ cần nhìn vào mã, rõ ràng.

+0

Trình lên lịch IO có các thuật toán khác nhau. Trình lên lịch quy trình không. –

2

Như những người khác đã đề cập, có một số thuật toán lập lịch có sẵn, theo mục đích sử dụng.

Kiểm tra this article nếu bạn muốn tìm hiểu thêm về lập lịch trong Linux.

0

Linux Kernel cho phép ba thuật toán lập lịch trình khác nhau chủ yếu

  1. công việc ngắn nhất đầu tiên
  2. Vòng Lập lịch Robin
  3. Thuật toán lập lịch ưu tiên dựa trên ưu tiên.

Phương pháp lập kế hoạch thứ ba mà nó khác với phiên bản thấp hơn các phiên bản Linux như 2.4

+2

làm thế nào nó có thể làm SJF với hiểu biết thời gian của công việc trước khi tay? – pinkpanther

+0

@pinkpanther Nó quan sát các hành vi trong quá khứ của chúng và di chuyển chúng lên xuống trong hàng đợi ưu tiên tương ứng. –

5

Nếu bạn chỉ muốn kiểm tra những gì Scheduler hệ thống Linux của bạn đang sử dụng và đó có sẵn, bạn có thể chạy lệnh sau:

cat /sys/block/sda/queue/scheduler 

Điểm giữa [] là cái đang sử dụng tại thời điểm này. Những cái khác có sẵn. Để thay đổi nó:

sudo bash -c 'echo deadline > /sys/block/sda/queue/scheduler' 

Hãy cẩn thận để đặt nó trở lại mặc dù, trừ khi bạn biết những gì bạn đang làm và muốn.

Mặc định (trong distro Ubuntu mới hơn ít nhất) là CFQ (Hoàn toàn Fair Scheduling):

http://en.wikipedia.org/wiki/CFQ

Phỏng vấn tác giả (Jens Axboe):

http://kerneltrap.org/node/7637

Các vấn đề liên quan