-
コンピューター内で複数のプログラムを実行するために、OSはそれぞれのプログラムを()として管理する
プロセス
-
()ではOSがいくつかのプログラムの実行を切り替えるため、以下の機能が必要になる
・プログラムの実行が中断されたときは、その時の実行環境をOS内の決まった領域に()させ後で実行を()できるようにする
・複数のプログラムの状態<実行中、入出力待ち、実行待ち>をOS内に常に記録しておきプログラムの実行()の判断をする
マルチプログラミング 退避 再開 切り替え
-
このように、実行を管理される対象としてのプログラムは普通のプログラムの概念とは違うものであり、これを指す別の用語としてプロセスまたは()という用語が使われるようになった
タスク
-
プロセスはプログラム実行の一つの()の流れとして定義されている。利用者の側から見れがプログラムの()の流れである。
制御 処理
-
マルチプログラミングの環境においてそれぞれのプログラムを実行する側から見ると、それぞれがあたかも自分用の()を与えられて使っているかのように見える。だが実際は()して使っているため、実際のコンピューター1台に比べて性能的には()なる
プロセッサ 共用 遅く
-
マルチプログラミングにおいて実際のプロセスとは。仮想的な()とそれにより実行される()を合わせた仮想的な()のことである。
プロセッサ プログラム コンピューター
-
★プロセスを構成するもの
1.プロセッサの()
2.()<アドレス>空間
3.開かれている()
4.()の情報
5.()の情報
実行環境 メモリ ファイル 親プロセス 使用ユーザー
-
OS内ではプロセスに関する根幹の情報を()や()、()などという1つのデータ構造に蓄えておく
プロセス制御ブロック プロセス構造体 プロセス記述子
-
プロセスという仮想的なコンピューターは次の状態を持つ
1.()状態:プロセッサを割り当てられて実行中の状態
2.()状態:()の割り当て待ちであり、いつでも実行できる状態
3.()状態:入出力の完了等を待っており、実行はできない状態
実行中 レディ プロセッサ 待ち
-
プロセスの実行を制御するOSのプログラムが()である。これは割り込み処理ルーチンと並んでOSの構成上最も根幹となるプログラムである
プロセススケジューラ
-
プロセススケジューラは次のデータ構造を用いる
・():実行中のプロセスを指すポインタ
・():レディ状態のプロセスの行列
・():待ち状態のプロセスの行列
実行中プロセスポインタ レディキュー 待ちキュー
-
プロセスは()によって表される
プロセス記述子
-
プロセススケジューラは原理的には次の3つのルーチンからなる
・()ルーチン:実行中プロセスを待ち状態にする
・()ルーチン:引数で指定されたプロセスの待ち状態を解除する
・()ルーチン:カーネルの出口の処理を行う
sleep wakeup カーネル出口
-
カーネル出口ルーチン①
1.カーネルでの処理の結果、どれかのプロセスの内部状態が変化したとき、次に実行する()の選択をする
2.選択したプロセスが実行中のプロセスと違う別のプロセスだった場合はプロセスの()が起こる
プロセス 切り替え
-
カーネル出口ルーチン②
3.プロセスを切り替える場合は、選択されたプロセスを()から取り出して()を書き換え<実行中プロセスにする>、これまで実行中だったプロセスをレディキューに入れる
4.プロセスが前に中断されたときのプロセッサ環境を()から取り出してプロセッサにセットする
5.これらがすべて終わるとカーネルモードから()への切り替えが行われる
レディキュー 実行中プロセスポインタ 退避領域 ユーザーモード
-
実行中プロセス及びレディ状態にあるプロセスの中から次に実行するプロセスを選択することを()<CPUスケジューリング>と呼ぶ。このための選択アルゴリズムである()にはさまざまな種類がある
プロセススケジューリング プロセススケジューリングアルゴリズム
-
プロセススケジューリングアルゴリズム①
()順:<FCFS>先に生まれたプロセスを先に処理する。
利点としては単純、公平であるが欠点として長時間実行するプロセスがあったとき、その後に並ぶプロセスはたとえ実行時間が短くとも長時間()ことである
到着 待たされる
-
プロセススケジューリングアルゴリズム②
()のものから:利点としては、プロセス実行完了までの時間の()が最小となるところである。だが欠点としてはプロセスの実行時間をあらかじめ知るのは難しいため、()が困難である点
実行時間最短 平均値 実現
-
プロセススケジューリングアルゴリズム③
()順:プロセスごとに実行の優先度を与えて、それに沿って処理する。
利点としては、()なプロセスが早く実行されるという意味でシステム的な効率は良くなる。欠点としては優先度の()プロセスが沈み込み、いつまでも実行されないことが起こる
優先度 重要 低い
-
プロセススケジューリングアルゴリズム④
():プロセスを順繰りに200ミリ秒や100ミリ秒程度の一定時間<()>ずつ実行することを繰り返す。
利点としてはどのプロセスも公平に()されるが、欠点としては実行切替えが頻繁にあり()が大きい点がある
ラウンドロビン タイムスライス 同時実行 オーバヘッド
-
プロセススケジューリングアルゴリズム⑤
():入出力が頻繁でプロセッサをあまり使わないプロセス<()のプロセスという>の実行優先度を上げ、逆にあまり入出力がなくプロセッサを多く使うプロセス<()またはCPUバウンドのプロセスという>の実行優先度を下げて処理する。利点としては、プロセッサと入出力装置を並行処理させることになり、()の効率が上がる。トータルの()が短くなる。
ダイナミックディスパッチング I/Oバウンド プロセッサバウンド システム全体 プロセス処理時間
-
プロセススケジューリングアルゴリズム⑥
():優先度の付いた複数の()をもつ。プロセスははじめは高い優先度を与えられる。あるレベルで、一定時間内に実行が終わらなければ、次のレベルに落とされる。
利点は、()プロセスの処理が優先される。入出力待ちの解除後、高い優先度が与えられれば、これでダイナミックディスパッチングも実現される。 欠点は、実行時間が()プロセスの沈み込みが激しい
多段フィードバックキュー レディーキュー 短い 長い
-
UNIXなどのプロセスは、プロセスごとに別々のメモリ空間をもっているため、プロセス間でメモリを経由して簡単にデータを渡すということができない。この問題点を解決するために1つのプロセスの中に、さらに複数の制御の流れをもてるようにする。そしてそれらはアドレス空間を共有する。この制御の流れを()または()という。ネットワークのサーバなどの作成には、複数の処理を並行して進めるためなどに()を利用する。
軽量プロセス スレッド スレッド機能
-
1台のコンピューターで複数のプロセッサをもつものを()という。
マルチプロセッサ
-
マルチプロセッサの中でもコンピューター内の複数のプロセッサが主記憶装置を
共用し、またオペレーティングシステムも1コピーであるもののことを()または()と呼ぶ
密結合マルチプロセッサ 対称型マルチプロセッサ
-
マルチプロセッサを用いることでプロセッサの数に比例して性能が向上する性質である()を持つことが期待されるが実際にはOSの内部で並列に実行できないところがネックとなってあるところでプロセッサ数が増えても性能が()してしまう。
スケーラビリティ 飽和
-
プロセッサによってメモリヘのアクセス速度が異なる()<Non-Uniform Memory Access>と呼ばれる環境では、プロセスをどのプロセッサやメモリ領域に配置するかによって性能が変化するため、NUMAを意識したプロセススケジューリングが行われる。
NUMA
-