1.5 オペレーティングシステムの概念

1.5 オペレーティングシステムの概念
さだ
1.5.1 プロセス
• 基本的には,実行中のプログラムのこと
– マルチタスクなOSではプロセスは並列動作している(ように見える)
• 構成
– コアイメージ(アドレス空間)
• 実行可能なプログラム,データ,スタック
– プロセステーブル
• レジスタの内容も含む
• プロセス木
– プロセスは木構造の親子関係をもつ
• UID
– 各プロセスには実行したユーザのUIDが割り当てられる
– プロセスが生成した子プロセスには同様のUID
1.5.2 デッドロック
• 二つ以上のプロセスが同時に同一のリソース
を使用しようとすること
– 例えば二つのプロセスが同時にCD-Rを焼こうと
する時など
1.5.3 メモリ管理
• 詳しくは4章で
• 単純なモデル
– 1つのプログラムのみメモリに存在
• より複雑なモデル
– 多数のプログラムがメモリに同時に存在
– これをOSが管理
• 32ビットCPUの場合
– アドレス空間は4GB
– 初期のプログラムはこういうプロセスを容認しなかった
– 現在は仮想メモリという技術を用いて対応
1.5.4 入出力
• 詳しくは5章で
• コンピュータには入出力(I/O)装置が存在
– キーボード,モニタ,プリンタなど
1.5.5 ファイル
•
•
•
6, 10, 11章で詳しく
ファイルの操作にはシステムコールが必要
ディレクトリ
–
–
•
ファイル階層は木構造
–
•
•
プロセスに比べファイルは階層が深く,寿命が長い
作業ディレクトリ
ファイル記述子
–
•
ファイルのグルーピング
パス名でファイルを指定
ファイルオープン時に返される整数
特殊ファイル(UNIX)
–
ブロック型特殊ファイル
•
–
キャラクタ型特殊ファイル
•
•
ディスクのようなランダムアクセス可能なモデル
キャラクタストリームを入出力するモデル
パイプ
–
–
プロセス間通信実現手法の一つ
ファイルのように,プロセス間でデータを送受信できる
1.5.6 セキュリティ
• 9章で詳しく
• パーミッションなど
– 所有者,グループ,その他の
– 読み出し,書き込み,実行権限
– rwxr-x--x
1.5.7 シェル
• OSの一部ではないが,OSの機能を頻繁に
利用する
• プロンプト
– コマンド待ちであることをユーザに通知
• 標準入出力を変更することが可能
– sort < file1 > file2
– ls | less
1.5.8 概念の再利用
• コンピュータ科学は技術主導型
• 技術の変化がアイディアを消滅,復活させる
– 例:インタプリタ
•
•
•
•
初期のコンピュータはハードワイヤで命令セットを変更できなかった
マイクロプログラミングの登場でハードワイヤは時代遅れに(インタプリタの登場)
RISCプロセッサの登場でインタプリンタは遅いとして使われなくなった
インターネットを介して送られるJavaアプレットはインタプリタ(ネットワーク遅延の
方が大きい)
– 例:動的リンク
• MULTICSでソフトウェアが動作中でもライブラリを変更できるようにしたかった
– しかし,MULTICSは忘れ去られた
• 現在のOSで動的リンクが復活
– あまりにグラフィックスライブラリが巨大なため