時々刻々と するコンピュータシステム自身の し、
資源の をはかる
・資源( )とは … コンピュータシステムの構成要素
資源一覧
| 資源 | OSの機能 |
|---|---|
| CPU |
( ・ ) |
| メモリ(主記憶装置) | |
| 補助記憶装置 | ( ) |
| 入出力装置 | |
| ユーザインターフェース |
・CPU管理 … どのタスクにCPUを割り当てるかを制御する
➢ タスク(プロセス)とは
メモリ上にロードされている (命令列とデータ)と
それを実行するのに必要な (プログラムカウンタ、スタック etc...)
・記憶管理 …
管理
・データ管理 … 補助記憶装置の に左右されないようにファイルや
ディレクトリを扱えるようにする(ファイルシステムの構成)
・入出力管理 … の制御
入出力装置への
入出力装置の ( )
・ユーザインターフェース管理 … OSの顔を作る( 、 の構築)
・CPU管理
・
から見た に与えるまとまった仕事の単位
1個以上の から構成される
・ ・
から見た仕事の単位や を割り当てる単位
(タスクとプロセスは同義語)
・タスク … マニュアルなどで使う実用上の表現
・プロセス … 学術的な表現
・ジョブとタスクの例

① …
② …
・OSの種類
・ OS
一時に一個のタスクのみを実行

・ OS
複数のタスクを並列処理

・ジョブの種類
・ 処理 … 複数の事象をまとめて1つの入力にする処理
・ 処理 … ある事象の発生に伴い、直ちに対応を行う処理
・ジョブとタスクの関係
・次のA,B,Cの作業を順に行うジョブを考える
A ランダムな信号により計測を開始データを収集する
B 収集したデータに処理を加える
C 処理結果を印刷する
A,B,Cを1つのタスクで実現する場合と、3つのタスクで実現する場合で
どちらが効率がいいか
➢ シングルタスクOS …

➢ マルチタスクOS
・1つのタスクで実現する場合… に依存
・3つのタスクで実現する場合… に依存

シングルタスクよりも …
厳密には…
➢ 複数タスクの場合は、タスク間のオーバーヘッドがある
→ 最大処理量は1タスクに及ばない
➢ 平均処理サイクルが最大処理量を超えなければ
応答の早い方が計測範囲は広い
・ジョブとタスク
・タスクの分割は
… ジョブがタスクに
・実際には … この例では が使われるのが一般的
➢ プロセス … を割り当てる単位
➢ … を使う単位、CPU以外はプロセスの物を共用
・プロセス管理
・主に3つの状態に分けて管理
プロセスの状態

① … ② … ③ … ④ …
⑤ … ⑥ … ⑦ …
・スケジューリング
・スケジューリングの目標
・ の向上
・ 短縮
・公平な
・応答時間の
・ の処理
・特定プロセスの
・スケジューリングの種類
➢ 到着順
➢ ラウンドロビン
➢ 処理時間順
➢ デッドライン時間順
➢ 優先度順
➢ 多重フィードバック
・プログラムによる負荷
・I/Oに負荷をかけるプログラム
(I/Oバウンドなプログラム)
・処理時間が に拘束される
・ は連続して 状態
CPUは
・CPUに負荷をかけるプログラム
(CPUバウンドなプログラム)
・処理時間が に拘束される
・重たい計算などでCPUは
入出力装置は
・具体的に
➢ CPUバウンド優先だと...

➢ I/Oバウンド優先だと...

・CPUに着目して比較
➢ CPUバウンド優先 …
➢ I/Oバウンド優先 …
・割り込みができるとさらに効率UP
・優先順位が同じ場合は?
➢ 均等に割り当て
・ 等で平等に時間を配分する
➢ 実行権の取得
・ で を得たタスクが動く
・実行権方式のデメリット
➢ 早くとったタスクがかなり長い処理だったら?
… そのタスクの に が回らない
・対応策
➢ タスク自らが になる
➢
➢
・資源の管理
➢ タスクが資源を使用する場合
・
・
・
・資源の競合
➢ マルチタスクの場合、 が を使用したい場合がある。
例)
・タスクA → 計算結果をバッファに保存
・タスクB → ファイルのデータを加工してバッファに保存
・排他制御
➢ 使用している場合は など、 ようにする
・ロック
データの読み書きを する
➢ ロックの種類( )
・ ロック
他のプロセスが
・ ロック
他のプロセスが
➢ 実装による違い
により2つの区別がある
・ ロック
データの読み出し時に し、
データ更新の に
− 変更なし →
− 変更あり →
・ ロック
データの読み出し時に
※ロックのモード選択は 次第
・セマフォ
・ロックの考察
次の観点で各自考察してみよう
・ロックのメリット
・ を保てる
・モードによっては
・ロックのデメリット
・ロックされていると、
・ わからない
・タイミングによっては
➢
・例
− プロセスA … ファイルaに情報を加工し、ファイルbに書き込む
− プロセスB … ファイルbの情報を加工し、ファイルaに書き込む
問)プロセスAとBを同時に走らせた場合どうなるか?

・回避方法
− を付ける
− どちらかのプロセスを
− 開始時に
・ロックのその他の活用法
➢
例)速いプロセスAと遅いプロセスBの同期
- が に必要なリソース(X)を
- は(X)の処理で
- が追い付いたら(X)の
➢ の利用
には を利用するのが一般的
例)速いプロセスAと遅いプロセスBの同期
- が使用するリソース(X)のセマフォを にする
- は(X)の処理で
- が追い付いたら(X)のセマフォを にする
