[OS] CPU Scheduling
5199 ワード
プロセス属性分類
CPU burstとI/O burstを交互に使用します.
I/O-bound process
CPU-bound process
CPU Scheduler & Dispatcher
どちらもハードウェアではなくオペレーティングシステムにあります.
CPU Scheduler
アテンション
Dispatcher
スケジュールが必要
ステータスの変更は次のとおりです.
1. Running -> Blocked (ex. I/O 요청하는 시스템 콜)
2. Running -> Ready (ex. 할당 시간 만료로 timer interrupt)
3. Blocked -> Ready (ex. I/O 완료 후 인터럽트)
4. Terminate
1,4:プリエンプト不可2、3:プリエンプト(->強制プリエンプト)
Scheduling Criteria
パフォーマンス・インデックス(=パフォーマンス・メトリック、パフォーマンス・メトリック)
システム側(H/W、OS)
CPUを入力して使い切る時間
レディーQで並んで待っている時間
待機CPUの総待ち時間
レディキューからCPUを最初に取得するまでの時間
待ち時間とは異なり、待ち時間は最初のCPUを取得する時間である.
Scheduling Algorithms
FCFS(First-Come First-Service)
SJF(Shortest-Job-First)
CPUが見つかれば、CPUクラッシュが完了するまでCPU
新しいCPUバースト時間の短いプロセスが到着すると、CPUが占有されます.
この方法はShortest Remaining Time First(SRTF)です.
Averageの待ち時間が最も少ないアルゴリズムです.(SRTF)
Priority Scheduling
priority = predicted next CPU burst time
RR(Round Robin)
👉 どのプロセスも(n-1)q timeunit以上を待つことはありません.
Multilevel Queue
Multilevel Feedback Queue
割り当て時間が最小のRRキューに最初に割り当てられます.
時間が終わると、低級に変わります.
処理時間が短い場合、優先度が高いほど、長いほど優先度が低くなります.
Multiple-Processor Scheduling
複数のCPUがある場合、スケジューリングはさらに複雑になります.
同一プロセッサの場合(同一プロセッサ)
Load Sharing
Symmetric Multiprocessing(SMP)
Asymmetric Multiprocessing
Real-Time Scheduling
必ず規定の時間内に完成するように手配しなければならない.
一般的なプロセスに比べて、より高い優先度を持つ必要があります.
Thread Scheduling
->オペレーティングシステム、カーネルは関与しません.
->オペレーティングシステム参加(調整)
Algorithm Evaluation
performance index
実際のシステムにおいてアルゴリズムを実装し、実際の動作の性能を測定する
上記の実測方法よりも簡単な方法
シミュレーションプログラムを用いて作成した後,trace(入力データ)比較結果(ATT値導出)を入力する.
cf) ATT: Averaget Turnaround Time
Reference
この問題について([OS] CPU Scheduling), 我々は、より多くの情報をここで見つけました https://velog.io/@ayoung0073/OS-CPU-Schedulingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol