15.04ではどのようなスケジューリングアルゴリズムが使用されていますか?変更することはできますか?


12

15.04、タイムシェアリング、またはリアルタイムで採用されているスケジューリングメカニズムを知りたいのですが、そのFIFO、ラウンドロビン、SJFを確信していますか?

PS:Linuxの新機能

回答:


14

プロセススケジューラ

プロセススケジューラは、プロセスを実行するためのCPUリソースの割り当てを処理し、全体的なCPU使用率を最大化すると同時に、インタラクティブなパフォーマンスを最大化することを目的としています。

カーネル2.6.23(Hardy 8.04 LTS以降)以降、「階段の期限の回転」に基づく完全に公平なスケジューラ(CFS)kernel.orgからの概要

CFSは「Completely Fair Scheduler」の略で、Ingo Molnarによって実装され、Linux 2.6.23に統合された新しい「デスクトップ」プロセススケジューラです。これは、以前のバニラスケジューラのSCHED_OTHER対話性コードに代わるものです。

CFSの設計の80%を1つの文にまとめることができます。CFSは基本的に、実際のハードウェア上で「理想的で正確なマルチタスクCPU」をモデル化します。

「理想的なマルチタスクCPU」は、物理パワーが100%であり、各タスクを正確に同じ速度で、それぞれ1 / nr_running速度で並行して実行できる(存在しない:-))CPUです。たとえば、2つのタスクが実行されている場合、それぞれが50%の物理電力で実行されます。つまり、実際には並列に実行されます。

実際のハードウェアでは、一度に実行できるタスクは1つだけなので、「仮想ランタイム」の概念を導入する必要があります。タスクの仮想ランタイムは、次のタイムスライスが上記の理想的なマルチタスクCPUで実行を開始するタイミングを指定します。実際には、タスクの仮想ランタイムは、実行中のタスクの総数に正規化された実際のランタイムです。


  • カーネル2.4:O(n)スケジューラー ; そのカーネルにはUbuntuリリースはありません。
  • カーネル2.6.0から2.6.22:O(1)スケジューラー。Warty 4.10(最初のリリース)は2.6.8を使用しました。Gutsy 7.10は、2.6.22以前を使用した最後のものでした。

I / Oスケジューラー

入出力スケジューリングは、オペレーティングシステムがブロックI / O操作をストレージボリュームに送信する順序を決定するために使用する方法です。

スケジューリングに関するPhoronixの記事:Linux 3.16:Deadline I / O Schedulerは一般的にSSDでリードしています。


I / Oスケジューラーを変更するには、grubのオプション「elevator =」を「GRUB_CMDLINE_LINUX_DEFAULT =」に追加します。

ただし、次のように行う方が簡単です(sdaと締め切りを想定)。

  • 利用可能なスケジューラのリストを表示するには:

    cat /sys/block/sda/queue/scheduler
    
  • そして、スケジューラーを変更するには(オンザフライで実行できます):

    echo deadline > /sys/block/sda/queue/scheduler
    

kernel / git / torvalds / linux.gitから


何が使用されているかを確認できます(sdaを大草原と仮定):

cat /sys/block/sda/queue/scheduler

これは、Ubuntu 15.04でデフォルトで使用されるスケジューリングメカニズムがタイムシェアリングアルゴリズム、CFSであることを意味しますか?または、OTHER、RR、FIFOが付属していますか?私はここに私の情報を得ました:manpages.ubuntu.com/manpages/hardy/man2/…–
leslie_lyj

Hardyのマンページを見ています。それは少し古いです;) 'cfq'がデフォルトです。kernel / git / torvalds / linux.gitへの追加リンクを参照してください。
リンツウィンド

1
...これは、ディスクCPUスケジューラを混同していませんか?彼らは全く異なる獣です。CPUスケジューラは次に実行するプロセスを決定し、ディスクスケジューラはディスク内のデータブロックへのアクセス方法を決定します。たとえば、wiki.archlinux.org / index.php
Maximizing_performanceを

そうではありませんが、この質問の主なポイントは、Ubuntu 15.04が実行されているプロセススケジューリングメカニズムを明確にすることでした。(私が明確ではなかった場合ごめんなさい)
-leslie_lyj

2
@Rmanoこれは、情報を実際に使用するためのものではないことを前提としています。しかし、私の中の神経症はすべて消えた>:-Dこれで遊んでみたい人は誰でも専門家であると期待されるべきである:X
Rinzwind
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.