酒居敬一(sakai.keiichi@kochi-tech.ac.jp) オペレーティングシステム (ファイル) 2009年11月9日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2009/

Slides:



Advertisements
Similar presentations
入 出 力 管 理入 出 力 管 理 オペレーティングシステム 第 11 回. 入出力装置の分類(1) ブロックデバイス キャラクタデバイス,ストリームデバイス.
Advertisements

ファイル管理(ファイルシス テム) オペレーティングシステム 第 11 回. ファイルとは データの集まりの入れ物 データの集まり自身 データセットと呼ぶ場合もある 両方を意味.
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
オペレーティングシステムJ/K 2004年10月18日(5時限目)
オペレーティングシステム (仮想記憶管理)
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
計算機工学III オペレーティングシステム #14 ファイル: より進んだファイルシステム 2006/07/21 津邑 公暁
計算機システム概論・3回目 本日のトピック:割込みと入出力制御について 割込み制御について 問題点の明確化 割込みとは
Chapter11-4(前半) 加藤健.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
記 憶 管 理(1) オペレーティングシステム 第9回.
計算機工学III オペレーティングシステム #9 主記憶管理:ページング 2006/06/09 津邑 公暁
オペレーティングシステム (割り込み&仮想記憶管理)
基本情報技術概論(第12回) 埼玉大学 理工学研究科 堀山 貴史
入 出 力 管 理 オペレーティングシステム 6/26/09.
序章 第2節 教育機器とコンピュータ 1 パーソナルコンピュータ
~補助記憶装置~  主記憶装置に記憶されるデータは,パソコンの電源を切ると記憶内容が消えてしまう。また,容量にも限界があるので,補助記憶装置にデータを記憶させる。補助記憶装置はパソコンの電源を切っても記憶内容は消えない。補助記憶装置の内容は主記憶装置上で利用することができる。 電源OFF 電源OFF.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
オペレーティングシステムJ/K 2004年10月7日
オペレーティングシステム (OSの機能と構造)
記 憶 管 理(2) オペレーティングシステム 第10回.
オペレーティングシステムJ/K 2004年11月4日
オペレーティングシステム 第14回 ファイルシステム(2)
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
オペレーティングシステム (割り込み処理)
Linuxカーネルについて 2014/01.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
ネストした仮想化を用いた VMの安全な帯域外リモート管理
計算機システムⅡ 入出力と周辺装置 和田俊和.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
第8回入出力制御 デバイスコントローラ ポーリングと割込み 入出力の方式 PIO DMA 入出力のためのソフトウェア技法.
明星大学 情報学科 2010年度後期     コンピュータ設計論  
型付きアセンブリ言語を用いた安全なカーネル拡張
オペレーティングシステム (仮想記憶管理)
オペレーティングシステム (仮想記憶管理)
序章 第2節 教育機器とコンピュータ 1 パーソナルコンピュータ
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
第10回 ファイル管理 論理レコードと物理レコード アクセス方式 ユーザから見たファイルシステム 補助記憶装置の構成
オペレーティングシステム イントロダクション
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
オペレーティングシステム 第2回 割り込みとOSの構成
アルゴリズムとデータ構造1 2005年7月5日
オペレーティングシステムJ/K 2004年11月15日2時限目
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
オペレーティングシステム (ネットワークと分散システム)
オペレーティングシステムJ/K 2004年11月8日
仮想環境を用いた 侵入検知システムの安全な構成法
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
オペレーティングシステム (OSの機能と構造)
システムプログラミング 第6回 システムコールのエラーメッセージ ファイルシステム 情報工学科 篠埜 功.
オペレーティングシステムJ/K 2004年10月4日
オペレーティングシステムJ/K (管理のためのデータ構造)
オペレーティングシステムJ/K (ネットワークと分散システム)
アルゴリズムとデータ構造1 2006年6月23日
アルゴリズムとデータ構造1 2009年6月15日
オペレーティングシステム (ファイル) 2006年11月16日
オペレーティングシステム (ファイル) 2008年11月17日
アルゴリズムとデータ構造 2010年6月17日
オペレーティングシステム (OSの機能と構造)
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

酒居敬一(sakai.keiichi@kochi-tech.ac.jp) オペレーティングシステム (ファイル) 2009年11月9日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2009/

入出力機器 バイト単位で入力と出力できる装置 読み書きする位置が設定(シーク)できるもの 読み書きする位置が設定できないもの シーク可能デバイス DAT HDD シークが比較的速いので二次記憶装置として使われる ランダムにアクセスできるが、アクセス位置を示すポインタは装置側に存在する(メモリと異なる点) 読み書きする位置が設定できないもの シーク不可能デバイス キーボード プリンタ スキャナ 狭い意味での入出力装置

I/O空間(メモリ空間に置かれている場合もある) 制御方法 入出力制御専用の命令:I/O命令 メモリのようにキャッシュしない  これは、メモリのようにキャッシュ制御できないから I/O空間(メモリ空間に置かれている場合もある) メモリのように空間内にすべて展開しない I/Oポートという、ポートを通じて制御する ポート(Port: 本来の意味は港)に対して入出力する

直接同期制御 プロセッサがハードウェアを直接操作 ハードウェアの状態変化と操作が同期 状態変化を検出する方法→ポーリング ポーリングは時間精度がよい プロセッサは検出にかかりっきり

直接非同期制御 プロセッサがハードウェアを直接操作 ハードウェアの状態変化とプロセッサの動作が非同期 つまり、状態変化を別の手段で知る たとえば、割り込み プロセッサはその間別のことができる

間接制御 バスマスタ転送 I/Oプロセッサ DMA バス使用権を持っているもの→バスマスタ 例: ネットワーク通信ボード, RAIDボード 主記憶を対象にデータを転送 バス使用権を持っているもの→バスマスタ それ以外はバスマスタによってデータが転送される バスマスタになりえるもの→プロセッサ、ディスクI/Fなど I/Oプロセッサ 例: ネットワーク通信ボード, RAIDボード プロセッサの高速化により、減りつつある

非同期入出力(Non-Blocking I/O) 同期/非同期入出力 同期入出力(Blocking I/O) 入出力処理の際、処理の完了まで待たされる 待っている間は何もできない 複数の入出力処理に関して待つしくみがある UNIXではpollシステムコール 非同期入出力(Non-Blocking I/O) 入出力処理の際、処理の完了まで待たない 定期的にポーリングする場合などに使われる

入出力管理 キャラクタデバイス ブロックデバイス 入出力動作で1バイトのデータが入出力できる キーボード、マウス、HDD 基本的にシーケンシャルアクセス ブロックデバイス ファイルシステムが構築できる HDD、フロッピー、CDROM 基本的にランダムアクセス

論理デバイス 直接ハードウェアを操作させると問題がある プロセスはOSの上に複数存在する、一方で、 デバイスは限られた数しかない。 デバイスドライバが間に入る。 ハードウェア構成は同一であるとは限らないが、 同一のインターフェースで使用できるようにしたい OSが使用するデバイスは、一般のプロセスから アクセスされては困る。

2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する 二次記憶 2つ以上の状態間で遷移でき、状態維持にエネルギーを消費しないものを利用して記録する 磁化を利用する HDDやフロッピーやDAT(磁界を変調して書く、磁界を読む) 光磁気ディスクやMD(磁界を変調して書く、カー効果で読む) 電荷を利用する フラッシュROM(電荷を注入して書く、閾値の変化で読む) 結晶構造を利用する CD-RW(加熱による相変化で書く、相変化を読む) 入出力命令で装置上のデータを読み書きする CPUがメモリを参照するのとは少し違う

入出力機器 バイト単位で入力と出力できる装置 読み書きする位置が設定(シーク)できるもの 読み書きする位置が設定できないもの シーク可能デバイス DAT HDD シークが比較的速いので二次記憶装置として使われる ランダムにアクセスできるが、アクセス位置を示すポインタは装置側に存在する(メモリと異なる点) 読み書きする位置が設定できないもの シーク不可能デバイス キーボード プリンタ スキャナ 狭い意味での入出力装置

二次記憶装置などの、装置を抽象化したもの データやプログラムといった情報を記録できるもの ファイルとは? 二次記憶装置などの、装置を抽象化したもの データやプログラムといった情報を記録できるもの バイト単位で読み書きできるもの、として抽象化 基本的には記録媒体+ポインタという構成で使える 所有者やアクセス権や参照カウントなどを保持 統一されたAPIをもつ open/close read/write/seek/readdir ioctl ファイルそのものには構造化する仕組みがない 情報を記録するしくみであり、整理するしくみではない

ディレクトリを指し示すことで構造化できる ディレクトリ(フォルダ)とは? ファイルに関する情報を複数記録したもの 情報はディレクトリエントリに記録 ディレクトリエントリの中でファイルを指し示す 指し示すようにすること → リンクする ディレクトリもファイルの一種である 記録するしくみとしてファイルを使用 ディレクトリエントリがディレクトリを指すこともできる ディレクトリを指し示すことで構造化できる 原理的には有向グラフにできる ただし、一般には木構造とする

各ディレクトリには特別な名前のディレクトリがある  .  ディレクトリそれ自身  .. 親ディレクトリ(rootに近いほうのディレクトリ) 親子関係により木構造としている 原理上、ディレクトリどおしの関係をグラフにすることもできるが、やらない。

ファイル4が、ディレクトリ Dir. DとDir. Eにリンクされている ファイル6が、ディレクトリ Dir. BとDir. Fにリンクされている ファイル8が、ディレクトリ rootとDir. Fにリンクされている UNIXでは通常ファイルを複数のディレクトリからリンクすることができる ファイルは番号で参照され、ファイルの名前と番号はディレクトリで対応付け

ファイルを、実際の記憶装置に写像するもの 記憶装置はバイト単位のデータを読み書きできる装置として仮想的に扱う スーパーブロック ファイルシステム(FS)とは? ファイルを、実際の記憶装置に写像するもの 記憶装置はバイト単位のデータを読み書きできる装置として仮想的に扱う スーパーブロック FSの大きさ、空きブロックの情報などを保持 ファイルが置かれる領域 所有者、時刻、種類、リンク数、使用データブロック データブロック 一定の大きさのブロックに分割されている 例: FAT、i-nodeなどが有名

データブロックの割当て技法 連続割当て 非連続割当て 空き領域の断片化が発生しやすい 空き領域のコンパクションが必要 リンク割当て リンクを逐次たどらないと参照できない。二次記憶装置の性質を考えると、参照するのに時間がかかる。 索引割当て 参照すべき領域は索引(index)を参照すればわかるので、データ領域を参照するのに時間がかからないようにできる。

非連続割当てでは原理的には問題ないが、なぜ問題となるか? フラグメンテーション フラグメンテーション(断片化)とは? 使用しているデータブロックが連続していない状態 非連続割当てでは原理的には問題ないが、なぜ問題となるか? リンク割当てにせよ索引割当てにせよ、データブロックが非連続に配置されていると参照に時間がかかる。 32MB/秒のデータ転送速度と8ミリ秒のシーク速度を持つデバイスでは、たとえば、32KBのデータ転送には1ミリ秒しかかからない。シークがいかに遅いか。

例: i-nodeファイルシステム 二次記憶上に置かれるもの スーパーブロック i-node領域 データブロック領域 FSの大きさ 空き領域の管理表 i-node領域 i-nodeの数がファイル数上限 ファイル データブロック領域 ファイルに含まれる情報

該当ファイルのディレクトリエントリを削除 i-node FSにおけるファイルの削除 該当ファイルのディレクトリエントリを削除 該当ファイルの名前は消える。 名前はディレクトリエントリに入ってる アンリンクするという。 アンリンクしたファイルの参照カウントを減らす 参照カウントが0でなければファイルは消さない。 他のディレクトリからリンクされている場合 実行中の場合(後で説明) mmapされている場合(後で説明) 参照カウントが0ならファイルを消す。

ファイルの種類 通常ファイル デバイススペシャルファイル ソケットやパイプ(次回) 外部装置を抽象化したもの ブロック型とキャラクタ型がある バイト単位で送受信できる通信路を抽象化  UNIXでは、ファイルシステムの構築されたブロック型デバイスをマウントという操作を通じて、木構造の一部に接ぎ木することができる。  すべてのデバイスをファイルとして扱えるようにし、それらすべてのファイルを木構造の階層ディレクトリを通して参照できる。もちろん同じAPIにより参照できる。巨大なシステムをうまく単純化している。

デバイススペシャルファイル キャラクタ型 ブロック型(マウントできるデバイス) キーボードやマウス HDDやフロッピー DAT(テープ) バイト単位で入出力できればすべてキャラクター型 DAT(テープ) バイト単位なら読み書きできる ブロック型(マウントできるデバイス) ファイルシステムを作ることできる装置 ファイルというものは、バイト単位で読み書きできる

プログラムのDemand Loadingができるということ プロセスとファイルシステム プログラムのDemand Loadingができるということ プロセスと実行可能形式ファイルの関連付け ファイルには参照カウントがある プロセスは当該ファイルを実行中ということで参照カウントを+1 プロセスは実行可能形式ファイルのi-node番号を保持 ここでファイルの実体を知ってるから、ロードできる ファイルは、ディレクトリからリンクされて参照されるだけとは限らない 実際にロード作業を行うのはVMMの仕事である

VMM(仮想記憶管理)とファイルシステム 仮想記憶とファイルの関係は一般化してある 仮想記憶では領域を分けて、ファイルと関連付けるしくみがある Demand Loadingのために、実行形式ファイル中のTEXTやDATA領域と該当仮想記憶領域を対応付け そのしくみの一般化 → メモリのマッピング 通常ファイルを仮想記憶空間に写像できる ファイルをメモリのように参照 デバイス中のメモリすらファイルとして仮想化できるが… デバイスファイルをマッピングすることもでる そういうデバイスは、メモリとして参照するのが自然 ファイルとの対応無しにマッピングもできる 単に仮想記憶をプロセスに割当てただけ ファイルの実体と対応がなく、プロセス消滅とともに消えるのみ…