-
プログラムの実行の進み方プロセスをメモリとプロセッサに割り付けることで実行が進む 2 2
-
プロセス or (OSによっては)タスクプログラム+実行の状態 2 3
-
プロセス管理においてOSが担当する仕事プロセス割り付け, プロセススイッチ 2 4
-
プロセス割り付けプロセスをメモリの特定の領域におく。プロセスを作るときに必要な処理。2 4
-
プロセススイッチ or プロセスディスパッチ or プロセッサへの割り付けプロセッサにプロセスを、プロセッサで実行するために対応づける 2 4
-
プロセス領域メモリに割り付けられるプロセスの実体を格納している領域 2 5
-
プロセスとジョブの違い実質的には同じものだが、ジョブはユーザからみた処理単位である一方、プロセスはOS側からみた処理単位である。 2 5
-
マルチプログラミング複数個のプログラムの実行を切り替えることで同時に実行されているように見せかける, OS第2世代 2 6
-
マルチタスキング1プロセッサ対多プロセス, OS第3世代 2 6
-
マルチプロセッシング多プロセッサ対多プロセス 2 6
-
プロセスの状態実行中(実行中プロセス数はプロセッサあるいはコアの数で決まる)、実行可能(プロセッサが割り付けられれば実行できる)、待ち 2 7
-
各プロセス状態の遷移要因実行中→実行可能:横取り、実行可能→実行中:ディスパッチ、実行中→待ち:事象待ちブロック、待ち→実行可能:事象発生ウェイクアップ 2 8
-
実行中のプロセス(ブロック・横取り)の状態遷移は何により行われる?割り込み処理、これによりプロセススイッチ(プロセスの切り替え)が発生する 2 10
-
ブロック割り込み要因は?内部割り込み。代わりに他のプロセスをディスパッチする。入出力処理の例でいくとSVC(システムコール)に相当する。 2 11
-
ウェイクアップ割り込み要因は?外部割り込み。 入出力処理の例でいくと入出力割り込みに相当する。2 12
-
内部割り込みと外部割り込みの"内部と外部"は何に対する内・外か?プロセッサの内部と外部
-
プロセス領域内に具体的には何があるか?コード(テキストセグメント), データ(データセグメント), ヒープ, スタック, 共有ライブラリ
-
コード(テキストセグメント、共有ライブラリ)とは?テキストセグメント:ユーザプログラムの命令コードを収めた部分、共有ライブラリ:複数のユーザプログラムから共通して呼び出されるプログラムコード領域、 どちらも実行前にその領域のメモリが割り付けられる(読み出しのみ)
-
データセグメント(データ)とは?ユーザプログラムで大域変数として宣言されたデータ領域, リンク時に領域が決められ,実行前にその領域のメモリが割り付けられる(読み出しと書き込み)
-
ヒープとは?プログラム実行時の動的割付け用メモリ領域(C言語でいうmallocやfree), 実行中にその領域のメモリが割り付け[割り付けと解放の順番は任意] (読み出しと書き込み)
-
スタックとは?スタックフレーム(関数呼び出しごとに連続した領域に順次作られ, 活性レコードとも呼ぶ)を格納。実行中にその領域のメモリが割り付け[割り付けと解放の順番はLIFO] (読み出しと書き込み)
-
スタックフレームの構成要素は?関数の引数、局所変数、戻り番地、前のフレームへのポインタなど 4 17
-
プロセス領域(コード、データ、ヒープ、スタック)のうち、プロセス間共有されるのはどれか?問題なく共有可能なのはコード、プログラムでデータ参照の整合性をくずさないように工夫すればプロセス間で共有可能なのはデータ・ヒープ、プロセス間での共有が不可能なのがスタックである。
-
PCB(プロセス制御ブロック) orプロセスコンテクストの役割プロセス状態を格納する、実行可能キューを作る
-
プロセススケジューリングとは?スケジューリング方式に基づいて次に実行すべきプロセスを選択すること。実行可能のプロセスから1個選んで、そのプロセスを実行可能から実行中状態へと遷移させる。この際ディスパッチの結果として横取りが発生する。
-
プロセスディスパッチとは?プロセススケジューリングにより選択されたプロセスにプロセッサを割り付けること
-
プロセッサ(CPU)利用率の公式(プロセッサの有効動作時間)/(総稼働時間), プロセッサ(CPU)利用率は高い方がよい
-
ターンアラウンド時間(TAT)とは?プロセスの到着(生成)から完了(消滅)までの時間, TATは小さい方がよい 4 27
-
待ち時間とは?プロセスの到着から完了までに実行可能キューで費やす時間 4 27
-
応答時間とは?プロセスの到着から応答を開始するまでの時間(実質的には実行中になるまでの時間) 4 27
-
代表的なスケジューリングアルゴリズムのうち横取りなしのものは?FCFS(First Come First Served),SJF(Shortest Job First) 4 28
-
代表的なスケジューリングアルゴリズムのうち横取りありのものは?SRT[shortest remaining time first], ラウンドロビン, 優先度順, 多重レベル 4 28
-
横取りなしスケジューリングとその例実行中状態になったプロセスは、入出力等でブロックするか終了しない限り、別の状態に遷移しない。例:FCFS(到着順)、SJF(最短要求時間順)(§5p2)
-
横取りありスケジューリングとその例実行中状態のプロセスが、ブロックや終了以外で、実行可能状態に遷移する(プロセスのプロセッサへの割り付けを「横取り」する)ことがある。例:ラウンドロビン、SRT(最小残余時間順)、優先度順、多重レベル(§5p2)
-
ラウンドロビン横取りがあることを除けば、FCFSと同じ。実行中のプロセスを、一定時間ごとに横取り(§5p3)
-
ラウンドロビンにおいてタイムスライスの時間を長くする長所・短所は?長所:プロセッサの利用率が上がる, 短所:FCFSとあまり変わらなくなり、TATが増加する(§5p4)
-
ラウンドロビンにおいてタイムスライスの時間を短くする長所・短所は?長所:TATが小さくなる, 短所:プロセッサ利用率が下がる(§5p4)
-
優先度順のスケジューリングプロセスに優先度をつけて、実行可能キューにあるプロセスのうち優先度の高いものからディスパッチする。SJFやSRTはそれぞれ処理時間、残余時間の短いプロセスに高い優先度をつけた優先度順とみなせる。(§5p13)
-
無限のブロック、飢餓いったん付与した優先度が固定されて変更されない場合に、特定のプロセスが永久に実行されないこと(§5p13)
-
エージング実行可能キューに長時間つながれているプロセスについては、優先度を時間経過につれて徐々に高くしていく(§5p13)
-
多重レベルスケジューリング優先度ごとに実行可能キューを作る(§5p14)
-
優先度が高いキューが空のときはどうする?次に優先度の高いキューのプロセスをディパッチ(§5p14)
-
多重レベルフィードバックスケジューリングこのスケジューリングでは、プロセスの実行可能キュー間の移動を行う(§5p14)
-
飢餓状態を避けるためにどうするか(二つ)①エージング(待ち時間が長いプロセスは優先度を上げる)②プロセッサを多く消費するプロセスは優先度を下げる(特定のプロセスによるプロセッサの占有を抑える)(§5p15)
-
UNIXでのスケジューリング実装では、どのような手法が取り入れられているか直近のプロセッサ消費量が大きいと、プロセスの優先度が低くなる(§5p15)
-
スレッド(thread)プロセスの中の「マシン命令の実行の流れ(制御フロー)」で、プロセッサにおける「動的な実行単位」(§5p17)
-
スレッドを考慮するプロセスでは何ができるか?1プロセスで複数の実行の状態を持つことができる(並行実行が可能)(§5p17)
-
なぜスレッドが必要か?(2つ)①1プロセス内での並行処理が記述できる ②マルチプロセッサ・マルチコアへの対応 (§5p17)
-
スレッドの特徴は?(2つ)①プロセスよりも生成や消滅が簡単にできる ②プロセスと比べて、コンテクスト(実行に必要な情報)が小さいため、空間サイズは小さい (§5p18)
-
プロセッサとスレッドの最近の取り扱いは?プロセスは、「プロセッサ以外のハードウェア資源(メモリなど)に割り付ける単位」 スレッドは、「プロセッサへ割り付ける単位」 (§5p19)
-
スレッドコンテクスト[PCB(プロセス制御ブロック)]は、プロセス制御ブロック中で、どのような領域をスレッドごとにもつか(5つ)①プロセッサの状態 ②コンディション(プロセッサのフラグ類) ③プログラムカウンタ ④汎用レジスタ ⑤プロセス領域のうちのスタックフレームと、スレッド生成後に作られたヒープ (§5p20)
-
スレッドコンテクストとプロセス制御ブロック(PCB)との関係は?PCBのうち、プロセッサに関係した部分だけが、スレッドごとに別々に作成される (§5p22)
-
スレッド間の通信はどのようにするか?1. メモリに、共有データの置き場所を作る 2. 送信側スレッドはデータを置く 3. 受信側スレッドはデータを読み出す (§5p23)
-
カーネルでのスレッドの処理(1プロセス1スレッドのとき)プロセスが入出力処理等の事象待ちシステムコールを実行→そのプロセスはブロックして、別のプロセスをディスパッチ (§5p24)
-
カーネルでのスレッドの処理(1プロセス複数スレッドのとき)あるスレッドが事象待ちシステムコールを実行 →1スレッドのときのようにプロセスをブロックするとプロセス内の全スレッドがブロックしてしまう (§5p24)
-
カーネルスレッドはなぜ必要?カーネルスレッドは、あるユーザスレッドがシステムコールを実行したとき、別のユーザスレッドに切り替えるのに必要 (§5p25)
-
ユーザプログラムで制御するスレッドユーザスレッド(§5p26)
-
カーネルが制御するスレッドカーネルスレッド(§5p26)
-
ユーザスレッドの処理は?ユーザがスレッドライブラリを用いて生成し、制御する(とユーザプログラムで記述する) (§5p27)
-
カーネルスレッドの処理は?特権モードで動作する。カーネル空間で実行され、カーネルにより実行が制御される。カーネルがスイッチを行う。 (§5p28)
-
スレッドの利用例は?Solaris(UNIX系OS) (§5p30)
-
ユーザスレッドとカーネルスレッドの間を対応付けるものは?LWP(lightweightprocess, 軽量プロセス) (§5p30)
-
ユーザスレッド数とカーネルスレッド数の理想的な対応関係は?等しい 5 31
ログイン