SlideShare a Scribd company logo
1 of 6
12章 仮想ファイルシステム
この章では、Linux において他のシステム(Windows など)と共存するために必要不可欠
である仮想ファイルシステム(VFS:Virtual File System)について述べられている。
12.1:VFS の役割
VFS は、仮想ファイルシステムスイッチともいわれるカーネル上のソフトウェア(レイ
ヤ)、である。要は、カーネル上にある便利な自動翻訳ソフトのようなもの。
・対応するファイルシステム
- ディスクベースのファイルシステム(Ext2 以外にも)
- ネットワークファイルシステム(ネット上のファイル)
- 特殊ファイルシステム(カーネルを見るとき)
12.1.1:VFS の中身
共通ファイルモデル=UNIX のファイルモデルを反映
一方で、UNIX 系ファイルでないと再構成される。(特に、FAT→ディレクトリが多い)
*オブジェクト=データ+メソッド(操作)と定義するとオブジェクト指向型であると考
えられる。C++は効率的でない。
・構成要素
- スーパーブロックオブジェクト(一個のファイルシステムに対して1つ)
それぞれのファイルシステムのメタデータを示す。ファイルシステムに対する情報が格納
される。
- i ノードオブジェクト
ファイルの位置やディスクの情報などを含む。
- ファイルオブジェクト
ファイルとメモリ間のやりとりした情報を保存。
- d エントリオブジェクト
・仕組み
(一例)
プロセス→ファイルオブジェクト→d エントリオブジェクト→i ノードオブジェクト→スーパ
ブロックオブジェクト+i ノード→ディスクファイル
15 章 通常ファイルへのアクセス
15.1  read()と write()を用いた通常ファイルへアクセスする方法
15.2 メモリマッピング
15.1
・通常ファイルの読み取りは、ページを基本として行われる。
→カーネルでは常に一度にページのデータ全体を転送
15.2 メモリマッピング
メモリマッピング=先頭リニアアドレス、サイズ、アクセス権を示すメモリリージョンの 
         ページ内のバイトへのアクセスが、通常ファイルの対応するバイトで
         の操作に変換されること(カーネル)
” ” ” ”          共有 と プライベート の 2 種類の方法がある。
共有:メモリリージョンが行う全ての操作は、ディス上のファイルを変更。
プライベート:読み取り専用ファイルで適応される。
・メモリマッピングのデータ構造
=ファイルの i ノード+メモリマッピング用ディスクリプタ+メモリリージョンに割り当
てられた各ページのページディスクリプタ+ファイルオブジェクト
・メモリマッピング
メモリの構造は、
17章 Ext2 ファイルシステム
主に、i ノードブロックのディスク領域の確保とデータブロックのディスク領域の確保につ
いてのお話。
17.1 Ext2 の紹介
17.2 ディスク上に保存されるデータ構造(by Ext2)
17.3 17.2 で示された構造がどのようにしてメモリ内にコピーされるのか。
17.4 Ext2 をディスクパーティション内に作成する方法。
17.1 Ext2 の紹介
歴史:Minix ファイルシステム→Ext FS→Ext2(→Ext3)
主な効率化の要因・特色
・ファイルの長さに応じたブロックサイズの選択
ディスクブロック内の使用率の問題が解決。
→たとえファイルサイズが 1 バイトでも、1 ブロック分を消費するので小さいファイルがた
くさんあるときはブロックサイズを小さくすればディスクの容量を効率的に使用できる。
+ブロックのフラグメント化(他のファイルに割り当てる)
【フラグメント:本来連続した情報であるファイル・空ブロックがディスク内で分断され
た状態。現在はディスクが情報を探す時間の延長を引き起こす原因の一つ】
・1 つのディスクブロック内にあるファイルに短時間でアクセス可能
ディスクブロック⇒複数のグループ と分割されている。
(グループ=スーパブロック+グループディスクリプタ+・・+i ノード+データブロッ
ク:データと i ノードが隣接)
・ファイルの断片化の防止
ファイルサイズが増加しても、先行割り当て(先行予約)によって、ファイルの隣接した位
置のブロックを予約することになっているので問題ない。
・不変ファイルと追記専用ファイルの実装
スーパーユーザーも従わせる。
・・・etc
17.2 ディスク上に保存されるデータ構造(by Ext2)
Ext2 パーティションはブートブロックと、いくつものブロックグループによって構成され
ている。同じファイルに属すデータブロックは、できるだけ同じブロックグループ内に入れ
るようにカーネルがはたらくので、ファイルの断片化はおこりにくくなる。
【ブロックグループの構成】
スーパブロック(コピー)←管理情報
ブロックグループディスクリプタ(コピー)←グループ内の要約(目次)
データブロックビットマップ←データブロックが使用中(1)or 空き(0)を示す
i ノードビットマップ←i ノードが使用中(1)or 空き(0)を示す
一個以上の i ノードの集合(テーブル)
データブロック
<ファイルの種類>
・通常ファイル
 ほとんどが該当する普通のファイル。
 作成時は空であり、データブロックは必要としない。
・ディレクトリ
 ☆Ext2 では、ディレクトリもファイル(ディレクトリエントリ)として扱われる。
 構成は ディレクトリエントリ=
i ノード番号+ディレクトリエントリ自身の長さ+ファイル名の長さ+ファイルの種類
+ファイル名(常に 4 の倍数になるよう null 文字/0 で調節)
*ディレクトリを消す動作の内訳
1.i ノード番号が 1→0
2.ひとつ前のディレクトリエントリの中のディレクトリエントリ自身の長さに  
      消すディレクトリエントリの長さを加算。
・シンボリックリンク
パス名が 60 バイト以内→データブロック不必要(i ノードに記載されている)
パス名が 60 バイト超え→1 つデータブロック必要
・データファイルを要求しないファイル(デバイスファイル・パイプ・ソケット)
→i ノードに記載
    
17.3 17.2 で示された構造がどのようにしてメモリ内にコピーされるのか。
ほとんどの情報は、ファイルシステムのマウント時に RAM へとコピーされる。
非常に頻繁に更新されるデータ(スーパブロックやグループディスクリプタ)はバッファ
キャッシュ内にある。
キャッシュのモードとしては、常にキャッシュ・一定量キャッシュ・動的にキャッシュ・
キャッシュされない、がある。(一定量:特定の数のみ、動的:メモリが不足すると順次開
放、キャッシュされない:空きブロック)
17.4 Ext2 をディスクパーティション内に作成する方法。
ディスクパーティションやディスクのフォーマットファイルシステム
≠ファイルシステムの作成
フォーマット=ブロックの読み書きができるようになる
ファイルシステムの作成=以前説明されたデータ構造を準備
17.5 Ext2 関数(VFS メソッドに対応した)
Ext2 スーパブロック操作
Ext2 i ノード操作
Ext2 ファイル操作
17.6 ディスク領域の管理
ファイルシステムはアクセス時間を向上させるために、ブロックをなるべく連続して保存
しようと試みるが、ブロックはディスクのいろいろなところに散在していることがある。
→ファイルの断片化の防止
・i ノードの作成【ext2_new_inode()】
成功→i ノードオブジェクトのアドレス
失敗→null(/0)を出力
(i ノードの削減は ext2_free_inode())
17.4 Ext2 をディスクパーティション内に作成する方法。
ディスクパーティションやディスクのフォーマットファイルシステム
≠ファイルシステムの作成
フォーマット=ブロックの読み書きができるようになる
ファイルシステムの作成=以前説明されたデータ構造を準備
17.5 Ext2 関数(VFS メソッドに対応した)
Ext2 スーパブロック操作
Ext2 i ノード操作
Ext2 ファイル操作
17.6 ディスク領域の管理
ファイルシステムはアクセス時間を向上させるために、ブロックをなるべく連続して保存
しようと試みるが、ブロックはディスクのいろいろなところに散在していることがある。
→ファイルの断片化の防止
・i ノードの作成【ext2_new_inode()】
成功→i ノードオブジェクトのアドレス
失敗→null(/0)を出力
(i ノードの削減は ext2_free_inode())

More Related Content

What's hot

詳解UNIXプログラミング 第4章 ファイルとディレクトリ
詳解UNIXプログラミング 第4章 ファイルとディレクトリ詳解UNIXプログラミング 第4章 ファイルとディレクトリ
詳解UNIXプログラミング 第4章 ファイルとディレクトリTakaya Kotohata
 
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」Toshiharu Harada, Ph.D
 
Linuxの基本コマンド
Linuxの基本コマンドLinuxの基本コマンド
Linuxの基本コマンド晋 小沼
 
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介Yu Nobara
 
pkgsrcに関する何か - 何かって何?
pkgsrcに関する何か - 何かって何?pkgsrcに関する何か - 何かって何?
pkgsrcに関する何か - 何かって何?Akio OBATA
 
Linuxとファイル
LinuxとファイルLinuxとファイル
LinuxとファイルJun Ishitsuka
 
Next-L Enju 開発ワークショップ #50
Next-L Enju 開発ワークショップ #50Next-L Enju 開発ワークショップ #50
Next-L Enju 開発ワークショップ #50Kosuke Tanabe
 
勉強会資料 LT会 zfsで遊んでみた_公開版
勉強会資料 LT会 zfsで遊んでみた_公開版勉強会資料 LT会 zfsで遊んでみた_公開版
勉強会資料 LT会 zfsで遊んでみた_公開版Ryoma Fujiwara
 

What's hot (8)

詳解UNIXプログラミング 第4章 ファイルとディレクトリ
詳解UNIXプログラミング 第4章 ファイルとディレクトリ詳解UNIXプログラミング 第4章 ファイルとディレクトリ
詳解UNIXプログラミング 第4章 ファイルとディレクトリ
 
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
 
Linuxの基本コマンド
Linuxの基本コマンドLinuxの基本コマンド
Linuxの基本コマンド
 
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
 
pkgsrcに関する何か - 何かって何?
pkgsrcに関する何か - 何かって何?pkgsrcに関する何か - 何かって何?
pkgsrcに関する何か - 何かって何?
 
Linuxとファイル
LinuxとファイルLinuxとファイル
Linuxとファイル
 
Next-L Enju 開発ワークショップ #50
Next-L Enju 開発ワークショップ #50Next-L Enju 開発ワークショップ #50
Next-L Enju 開発ワークショップ #50
 
勉強会資料 LT会 zfsで遊んでみた_公開版
勉強会資料 LT会 zfsで遊んでみた_公開版勉強会資料 LT会 zfsで遊んでみた_公開版
勉強会資料 LT会 zfsで遊んでみた_公開版
 

Viewers also liked

05 後期勉強会一年の部【菅原】
05 後期勉強会一年の部【菅原】05 後期勉強会一年の部【菅原】
05 後期勉強会一年の部【菅原】yu-Linux
 
01 後期勉強会一年の部【前澤】
01 後期勉強会一年の部【前澤】01 後期勉強会一年の部【前澤】
01 後期勉強会一年の部【前澤】yu-Linux
 
03 後期勉強会一年の部【川合】
03 後期勉強会一年の部【川合】03 後期勉強会一年の部【川合】
03 後期勉強会一年の部【川合】yu-Linux
 
Dauerbrenner Frozen wieder zurück auf Platz 1
Dauerbrenner Frozen wieder zurück auf Platz 1Dauerbrenner Frozen wieder zurück auf Platz 1
Dauerbrenner Frozen wieder zurück auf Platz 1SchimmelMartina
 
程式教育的本質
程式教育的本質程式教育的本質
程式教育的本質NCTU
 
Ezekiel 2 commentary
Ezekiel 2 commentaryEzekiel 2 commentary
Ezekiel 2 commentaryGLENN PEASE
 
Precedent study sep 2016
Precedent study sep 2016Precedent study sep 2016
Precedent study sep 2016jerryycc
 
Guía+para..
Guía+para..Guía+para..
Guía+para..MaryVG
 
Jayers_Portfolio
Jayers_PortfolioJayers_Portfolio
Jayers_PortfolioJim Ayers
 
História da África e Afro-Brasileira - Capítulo 9
História da África e Afro-Brasileira - Capítulo 9História da África e Afro-Brasileira - Capítulo 9
História da África e Afro-Brasileira - Capítulo 9NaniFulber
 
використання личинок озерної жаби Rana ridibunda
використання личинок озерної жаби Rana ridibunda використання личинок озерної жаби Rana ridibunda
використання личинок озерної жаби Rana ridibunda school67dp
 
Ativ1 4 anailzamxf
Ativ1 4 anailzamxfAtiv1 4 anailzamxf
Ativ1 4 anailzamxfanailzamxf
 

Viewers also liked (16)

05 後期勉強会一年の部【菅原】
05 後期勉強会一年の部【菅原】05 後期勉強会一年の部【菅原】
05 後期勉強会一年の部【菅原】
 
01 後期勉強会一年の部【前澤】
01 後期勉強会一年の部【前澤】01 後期勉強会一年の部【前澤】
01 後期勉強会一年の部【前澤】
 
03 後期勉強会一年の部【川合】
03 後期勉強会一年の部【川合】03 後期勉強会一年の部【川合】
03 後期勉強会一年の部【川合】
 
Dauerbrenner Frozen wieder zurück auf Platz 1
Dauerbrenner Frozen wieder zurück auf Platz 1Dauerbrenner Frozen wieder zurück auf Platz 1
Dauerbrenner Frozen wieder zurück auf Platz 1
 
Christmas in spain
Christmas in spainChristmas in spain
Christmas in spain
 
程式教育的本質
程式教育的本質程式教育的本質
程式教育的本質
 
BS
BSBS
BS
 
Ezekiel 2 commentary
Ezekiel 2 commentaryEzekiel 2 commentary
Ezekiel 2 commentary
 
Precedent study sep 2016
Precedent study sep 2016Precedent study sep 2016
Precedent study sep 2016
 
Guía+para..
Guía+para..Guía+para..
Guía+para..
 
Papa francisco
Papa franciscoPapa francisco
Papa francisco
 
Jayers_Portfolio
Jayers_PortfolioJayers_Portfolio
Jayers_Portfolio
 
História da África e Afro-Brasileira - Capítulo 9
História da África e Afro-Brasileira - Capítulo 9História da África e Afro-Brasileira - Capítulo 9
História da África e Afro-Brasileira - Capítulo 9
 
використання личинок озерної жаби Rana ridibunda
використання личинок озерної жаби Rana ridibunda використання личинок озерної жаби Rana ridibunda
використання личинок озерної жаби Rana ridibunda
 
Ativ1 4 anailzamxf
Ativ1 4 anailzamxfAtiv1 4 anailzamxf
Ativ1 4 anailzamxf
 
Las tic’s
Las tic’sLas tic’s
Las tic’s
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Recently uploaded (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

06 後期勉強会一年の部【加藤】

  • 1. 12章 仮想ファイルシステム この章では、Linux において他のシステム(Windows など)と共存するために必要不可欠 である仮想ファイルシステム(VFS:Virtual File System)について述べられている。 12.1:VFS の役割 VFS は、仮想ファイルシステムスイッチともいわれるカーネル上のソフトウェア(レイ ヤ)、である。要は、カーネル上にある便利な自動翻訳ソフトのようなもの。 ・対応するファイルシステム - ディスクベースのファイルシステム(Ext2 以外にも) - ネットワークファイルシステム(ネット上のファイル) - 特殊ファイルシステム(カーネルを見るとき) 12.1.1:VFS の中身 共通ファイルモデル=UNIX のファイルモデルを反映 一方で、UNIX 系ファイルでないと再構成される。(特に、FAT→ディレクトリが多い) *オブジェクト=データ+メソッド(操作)と定義するとオブジェクト指向型であると考 えられる。C++は効率的でない。 ・構成要素 - スーパーブロックオブジェクト(一個のファイルシステムに対して1つ) それぞれのファイルシステムのメタデータを示す。ファイルシステムに対する情報が格納 される。 - i ノードオブジェクト ファイルの位置やディスクの情報などを含む。 - ファイルオブジェクト ファイルとメモリ間のやりとりした情報を保存。 - d エントリオブジェクト ・仕組み (一例) プロセス→ファイルオブジェクト→d エントリオブジェクト→i ノードオブジェクト→スーパ ブロックオブジェクト+i ノード→ディスクファイル
  • 2. 15 章 通常ファイルへのアクセス 15.1  read()と write()を用いた通常ファイルへアクセスする方法 15.2 メモリマッピング 15.1 ・通常ファイルの読み取りは、ページを基本として行われる。 →カーネルでは常に一度にページのデータ全体を転送 15.2 メモリマッピング メモリマッピング=先頭リニアアドレス、サイズ、アクセス権を示すメモリリージョンの           ページ内のバイトへのアクセスが、通常ファイルの対応するバイトで          の操作に変換されること(カーネル) ” ” ” ”          共有 と プライベート の 2 種類の方法がある。 共有:メモリリージョンが行う全ての操作は、ディス上のファイルを変更。 プライベート:読み取り専用ファイルで適応される。 ・メモリマッピングのデータ構造 =ファイルの i ノード+メモリマッピング用ディスクリプタ+メモリリージョンに割り当 てられた各ページのページディスクリプタ+ファイルオブジェクト ・メモリマッピング メモリの構造は、
  • 3. 17章 Ext2 ファイルシステム 主に、i ノードブロックのディスク領域の確保とデータブロックのディスク領域の確保につ いてのお話。 17.1 Ext2 の紹介 17.2 ディスク上に保存されるデータ構造(by Ext2) 17.3 17.2 で示された構造がどのようにしてメモリ内にコピーされるのか。 17.4 Ext2 をディスクパーティション内に作成する方法。 17.1 Ext2 の紹介 歴史:Minix ファイルシステム→Ext FS→Ext2(→Ext3) 主な効率化の要因・特色 ・ファイルの長さに応じたブロックサイズの選択 ディスクブロック内の使用率の問題が解決。 →たとえファイルサイズが 1 バイトでも、1 ブロック分を消費するので小さいファイルがた くさんあるときはブロックサイズを小さくすればディスクの容量を効率的に使用できる。 +ブロックのフラグメント化(他のファイルに割り当てる) 【フラグメント:本来連続した情報であるファイル・空ブロックがディスク内で分断され た状態。現在はディスクが情報を探す時間の延長を引き起こす原因の一つ】 ・1 つのディスクブロック内にあるファイルに短時間でアクセス可能 ディスクブロック⇒複数のグループ と分割されている。 (グループ=スーパブロック+グループディスクリプタ+・・+i ノード+データブロッ ク:データと i ノードが隣接) ・ファイルの断片化の防止 ファイルサイズが増加しても、先行割り当て(先行予約)によって、ファイルの隣接した位 置のブロックを予約することになっているので問題ない。 ・不変ファイルと追記専用ファイルの実装 スーパーユーザーも従わせる。 ・・・etc 17.2 ディスク上に保存されるデータ構造(by Ext2) Ext2 パーティションはブートブロックと、いくつものブロックグループによって構成され ている。同じファイルに属すデータブロックは、できるだけ同じブロックグループ内に入れ るようにカーネルがはたらくので、ファイルの断片化はおこりにくくなる。 【ブロックグループの構成】 スーパブロック(コピー)←管理情報 ブロックグループディスクリプタ(コピー)←グループ内の要約(目次)
  • 4. データブロックビットマップ←データブロックが使用中(1)or 空き(0)を示す i ノードビットマップ←i ノードが使用中(1)or 空き(0)を示す 一個以上の i ノードの集合(テーブル) データブロック <ファイルの種類> ・通常ファイル  ほとんどが該当する普通のファイル。  作成時は空であり、データブロックは必要としない。 ・ディレクトリ  ☆Ext2 では、ディレクトリもファイル(ディレクトリエントリ)として扱われる。  構成は ディレクトリエントリ= i ノード番号+ディレクトリエントリ自身の長さ+ファイル名の長さ+ファイルの種類 +ファイル名(常に 4 の倍数になるよう null 文字/0 で調節) *ディレクトリを消す動作の内訳 1.i ノード番号が 1→0 2.ひとつ前のディレクトリエントリの中のディレクトリエントリ自身の長さに         消すディレクトリエントリの長さを加算。 ・シンボリックリンク パス名が 60 バイト以内→データブロック不必要(i ノードに記載されている) パス名が 60 バイト超え→1 つデータブロック必要 ・データファイルを要求しないファイル(デバイスファイル・パイプ・ソケット) →i ノードに記載      17.3 17.2 で示された構造がどのようにしてメモリ内にコピーされるのか。 ほとんどの情報は、ファイルシステムのマウント時に RAM へとコピーされる。 非常に頻繁に更新されるデータ(スーパブロックやグループディスクリプタ)はバッファ キャッシュ内にある。 キャッシュのモードとしては、常にキャッシュ・一定量キャッシュ・動的にキャッシュ・ キャッシュされない、がある。(一定量:特定の数のみ、動的:メモリが不足すると順次開 放、キャッシュされない:空きブロック)
  • 5. 17.4 Ext2 をディスクパーティション内に作成する方法。 ディスクパーティションやディスクのフォーマットファイルシステム ≠ファイルシステムの作成 フォーマット=ブロックの読み書きができるようになる ファイルシステムの作成=以前説明されたデータ構造を準備 17.5 Ext2 関数(VFS メソッドに対応した) Ext2 スーパブロック操作 Ext2 i ノード操作 Ext2 ファイル操作 17.6 ディスク領域の管理 ファイルシステムはアクセス時間を向上させるために、ブロックをなるべく連続して保存 しようと試みるが、ブロックはディスクのいろいろなところに散在していることがある。 →ファイルの断片化の防止 ・i ノードの作成【ext2_new_inode()】 成功→i ノードオブジェクトのアドレス 失敗→null(/0)を出力 (i ノードの削減は ext2_free_inode())
  • 6. 17.4 Ext2 をディスクパーティション内に作成する方法。 ディスクパーティションやディスクのフォーマットファイルシステム ≠ファイルシステムの作成 フォーマット=ブロックの読み書きができるようになる ファイルシステムの作成=以前説明されたデータ構造を準備 17.5 Ext2 関数(VFS メソッドに対応した) Ext2 スーパブロック操作 Ext2 i ノード操作 Ext2 ファイル操作 17.6 ディスク領域の管理 ファイルシステムはアクセス時間を向上させるために、ブロックをなるべく連続して保存 しようと試みるが、ブロックはディスクのいろいろなところに散在していることがある。 →ファイルの断片化の防止 ・i ノードの作成【ext2_new_inode()】 成功→i ノードオブジェクトのアドレス 失敗→null(/0)を出力 (i ノードの削減は ext2_free_inode())