B4になったので
講義がほとんどないのでノートがありません。
いまさらって感じだけど
第6回 第7章 プロセスとその管理
7.1 プログラム実効制御とプロセス
1.プロセス=プログラムの実行単位
OSがプログラムに対して行う必要があること
- 中断時の実行環境の退避と中断点から実行再開さきること
- プログラムの状態管理
- 実行中・I/O待ちetc.
2.プロセス=仮想マシン
各プログラムは論理的には自分専用のプロセッサが与えられるように見える
最近のOSでは、プロセスごとに自分専用のメモリ空間を持つ
3.プロセスによる並列処理
プロセスは論理的には並列に実行されている
実際はプロセッサ1つで同時に実行できるのは1つ
- マルチプロセッサなら、本当に複数同時に実行
- プロセッサとI/Oは並列に動作可能
複数ユーザ向けのOSとシングルユーザ向けのOSが存在する。
まあ、それだけ
7.2 プロセスの実現
1.プロセスを構成するもの
その他さまざまな情報をOSが管理しなければならない
2.プロセスの状態の管理
- 実行中状態
- レディ状態,実行可能状態
- 待ち状態(実行できない状態)
レディから待ちに遷移することはなく、待ちから実行中に遷移することもない。それ以外はありうる。
7.3 プロセススケジューリング
いつ、どのプロセスを実行するかを決める。
プロセススケジューラの仕事
- プロセスの状態を管理する
- 実行するべきプロセスを選択する
- 選択したプロセスにプロセッサの制御を渡す
基本的には将来のことを考えるのではなく、今何をすべきかを考えることでスケジュール処理を行う。
第6回
第6章残り
ファイルスペースの割り当て方法
- 固定長割り当て方式
- 固定長のブロック単位で領域を割り当てる
- 空きブロック―リストまたはビットマップを作って管理管
- 利点
- ファイルのサイズを変えるのが容易
- ディスクの中に無駄な空き領域ができるのを防ぐ
- 欠点
- ファイルを構成するブロックが分散することにより効率が低下する(フラグメンテーション)
- 中間的な方法(こっちを使う)
- 固定長割り当て方式が基本
- なるべく連続した領域に割り当てる→ボリュームが一杯に近づくと効率が落ちる
- UNIXでは10%のリザーブ領域(ユーザーからは見えない利用できない領域が存在する)を使わせない
- WINDOWSではデフラグによりフラグメンテーションをなくすことができる。
第5回 正規表現*1
言語上の演算
第4章 オペレーティングシステムの構成
4.1 OSのハードウェア構成
実行モード(jikko mode)
名前には非常にばらつきがある
基本的な概念
割り込み(interrupt)と例外(exception)
現在の作業を一旦中止して別の作業に移るような機能の総称
- 割り込み(外部割込み)
- 現在プロセッサの実行しているプログラムとは無関係に行われる
- 入出力割込み・タイマ割り込み
- 例外(内部割込み)
- 現在プロセッサの実行しているプログラムが例外的な状況になったというイベントによって発生する
- 演算例外(0除算例外・オーバーフロー例外)・バスエラー・特権命令違反
- カーネル呼び出し割り込み(一種の例外的状況)
割り込みの処理
- 割り込みハンドラ
- 割り込みサービスルーチン(ISR)
- 割り込みハンドラは特権モードで実行
例外の処理
- 例外ハンドラ
- 例外ハンドラも特権モードで実行
- カーネル呼び出し割り込み
- スーパバイザコール
- ソフトウェア割り込み
- トラップ
割り込みマスク
- 割り込みを禁止している状態のこと
- 例外はマスクされたら困るのでマスクしたり禁止したりはできないのが普通
4.2 割込みとマルチプログラミング
そのまんま
4.3 OSの核:カーネル(kernel)
カーネルのつづりを入力していると頭の中でけーねになってしまう
一般的に特権モードで実行される
- 実行するプログラムを切り替(換)える
- 割り込みが起こったら対処する
- 入出力装置への指令
- カーネルのほとんどの動作は割り込み禁止モードで行われる。
- 割り込み処理中に割り込みが発生することを防ぐことができる
*1:privileged