ファイルシステムの構造 外部記憶装置のパーティション(区画) ファイルシステムとパーティション(区画) ファイルシステムのmount

Slides:



Advertisements
Similar presentations
ネットワーク・プログラミ ング カーネルの役割とプロセス生成. 1.1 OS の役割 仮想マシン OS はハードウェアの多様性 をカプセル化し、利用者を 複雑な処理から開放する。 プロセス管理 時間多重化により各プロセ スに CPU を割当てる。 メモリ管理 メモリ空間の多重化により、 各プロセスにメモリを割当.
Advertisements

プロセスの生成とコマンドの実行 プロセスの生成とコマンドの実行 プロセス生成のシステムコール プロセス生成のシステムコール プロセス生成のプログラム例 プロセス生成のプログラム例 プログラム実行のシステムコール プログラム実行のシステムコール 子プロセスの終了を待つシステムコール 子プロセスの終了を待つシステムコール.
プログラミング演習I 2004年4月21日(第2回) 木村巌.
■プロセスとfileの関係 プロセスが一つファイルをオープンすると以下のようなデータ構造が作られる。
■ディレクトリエントリキャッシュ linuxではdentryという構造体に、ファイルパス名の情報を格納しメモリ上にキャッシングしている。
Unix の ファイルシステム(File System)
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
■パス検索 各種ファイルを操作するには、まずパス名をiノードに変換しなければならない。 以下にパス名をiノードに変換する関数の説明を行う。
Linux インストール      のための基礎知識 物理実験 I 情報実験第9回 2003/12/12 中神 雄一.
物理学情報処理演習 2. UNIX 補足自習用テキスト.
システムプログラミング 第6回、7回 main関数の引数 usageメッセージ システムコールのエラーメッセージ ファイル
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
データ構造とアルゴリズム 第10回 mallocとfree
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
オペレーティングシステム (OSの機能と構造)
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
構造体.
Linuxカーネルについて 2014/01.
演習問題の答え #include #include #define NUM 5 typedef struct { // 構造体の定義 float shincho; // 身長 float taiju; // 体重 } shintai; void hyouji(shintai.
インターネット技術特論 B:コマンドライン, shell 山口 実靖
オペレーティングシステム2005 デバイス管理 (1)
データ構造とプログラミング技法 (第2回) ー線形構造ー.
システムプログラミング 第6回、7回、8回 情報工学科 篠埜 功.
データ構造とアルゴリズム (第2回) ー線形構造ー.
システムプログラミング 第9回 、10回 ハードリンク、シンボリックリンク プロセスの生成
システムプログラミング 第12回 プロセス間通信 情報工学科 篠埜 功.
Cプログラミング演習.
iioLoadFile()とiioMallocImageBuffer()の補足
iioLoadFile()とiioMallocImageBuffer()の補足
プログラミング 4 記憶の割り付け.
木の走査.
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
プログラミング入門2 第11回 情報工学科 篠埜 功.
演習1の解答例の解説 2004年10月21日 海谷 治彦.
演習2の解答例 2006年12月22日 海谷 治彦.
演習1の解答例の解説 2006年11月8日 海谷 治彦.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
ネットワーク・プログラミング ソケットオプションとスレッド.
C言語演習 情報ネットワーク特論.
オペレーティングシステム2006 ファイル管理 (3) 演習へのヒント他
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
簡易データベース 情報画像工学実験 I : 実験2 担当:関屋大雄(工学部1号棟515室)
オペレーティングシステム (OSの機能と構造)
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
システムプログラミング 第12回 プロセス間通信 情報工学科 篠埜 功.
システムプログラミング 第6回 システムコールのエラーメッセージ ファイルシステム 情報工学科 篠埜 功.
オペレーティングシステムJ/K 2004年10月4日
システムプログラミング 第12回 プロセス間通信 情報工学科 篠埜 功.
ネットワーク・プログラミング デバイスドライバと環境変数.
ネットワーク・プログラミング Cプログラミングの基礎.
ネットワーク・プログラミング 非同期I/Oとスレッド同期制御.
システムプログラミング 第9回 、10回 ハードリンク、シンボリックリンク プロセスの生成
ネットワーク・プログラミング TCPサーバ.
ネットワーク・プログラミング メッセージの作成とセマフォ.
ネットワーク・プログラミング ソケットプログラミングと共有メモリ.
ネットワーク・プログラミング 1対多のプロセス間通信.
オペレーティングシステム (OSの機能と構造)
C言語プログラミング・課題 ファイルを読み込んで、その内容を表示するプログラムを作成せよ。
ネットワーク・プログラミング パイプライン通信とシグナル.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
ネットワーク・プログラミング プロセスとファイルシステム管理.
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
プログラミング演習II 2003年11月19日(第6回) 木村巌.
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
Presentation transcript:

ファイルシステムの構造 外部記憶装置のパーティション(区画) ファイルシステムとパーティション(区画) ファイルシステムのmount ファイルシステムのun-mount ファイルシステムの領域レイアウト ファイルシステムの階層化木構造 領域レイアウト情報のシステムコール 領域レイアウト情報のstatfs構造体 領域レイアウト情報を得る

外部記憶装置のパーティション(区画) ハードディスクは幾つかの区画に分れている ハードディスクの各区画をパーティションと呼ぶ。 パーティション1 パーティション2 パーティション3

ファイルシステムとパーティション(区画) ファイルシステムはパーティション毎に構成されている。 ファイルシステムは、ディレクトリによって階層化された木構造を形成する。 パーティション1 / bin home usr パーティション2 パーティション3 / / me you bin a.c

ファイルシステムのmount 異なるパーティション上のファイルシステムを、特定のパーティション上のファイルシステムに統合することが出来る Linuxが起動されると、各パーティションはマウントされ、統合されたファイルシステムが出来る パーティション2にあるファイルa.cは、絶対パス/home/me/a.cで示される パーティション1 / bin home usr パーティション2 パーティション3 / / me you bin a.c mount 統一された ファイルシステム / bin home usr me you bin a.c

ファイルシステムのun-mount 特定のパーティション上のファイルシステムに統合されているファイルシステムを、再び、異なるパーティション上のファイルシステムに分離することが出来る ファイルシステムを再び分離することをアンマウント(un-mount)と呼ぶ 統一された ファイルシステム / bin home usr me you bin a.c Un-mount パーティション1 / bin home usr パーティション2 パーティション3 / / me you bin a.c

ファイルシステムの領域レイアウト statfs構造体 ファイルシステム の種類 f_type ブート ブロック スーパ ブロック f_bsize  ブロックサイズ グループ ディスクリプタ パーティ ション0 ブロック グループ 0 f_blocks  全ブロック数 データブロック ビットマップ f_bfree  空ブロック数 ブロック グループ 1 f_bavail  iノード ビットマップ f_files  iノードの総数 iノード テーブル 。 f_ffree  空iノード数 データ ブロック f_fsid  ブロック グループ N f_namelen f_spare[6]

ファイルシステムの階層化木構造 /lost+found /vmlinux /usr /usr/bin /usr/src /usr/spool root inode ino=2 Directory 2 . .. 3 lost+found 26 vmlinuz 32 usr data block inode ino=32 17 bin 53 src 18 spool ino=26 Regular Linux Kernel object ino=17 42 yacc 68 gdb ino=68 ino=18 “/var/spool” /lost+found /vmlinux /usr /usr/bin /usr/src /usr/spool /usr/bin/yacc /usr/bin/gdb

statfs スーパブロックの情報を取出す 領域レイアウト情報のシステムコール インクルードファイル #include <sys/vfs.h> 書式 int statfs(const char *path, struct statfs *buf); 戻値 成功時 0 失敗時 -1 statfs スーパブロックの情報を取出す インクルードファイル #include <unistd.h> 書式 void sync(void); 戻値 なし sync スーパブロックを更新する statfs構造体 ファイルシステム の種類 f_type  f_bsize  ブロックサイズ f_blocks  全ブロック数 f_bfree  空ブロック数 f_bavail  f_files  iノードの総数 f_ffree  空iノード数 f_fsid  f_namelen f_spare[6]

statfs構造体 領域レイアウト情報のstatfs構造体 ファイルシステム の種類 f_type ブート ブロック スーパ ブロック f_bsize  ブロックサイズ グループ ディスクリプタ パーティ ション0 ブロック グループ 0 f_blocks  全ブロック数 データブロック ビットマップ f_bfree  空ブロック数 ブロック グループ 1 f_bavail  iノード ビットマップ f_files  iノードの総数 iノード テーブル 。 f_ffree  空iノード数 データ ブロック f_fsid  ブロック グループ N f_namelen f_spare[6]

領域レイアウト情報を得る ndf.c #include <stdio.h> % ./ndf / #include <unistd.h> #include <stdlib.h> #include <sys/vfs.h> int main(int argc,char *argv[]) { struct statfs buf[1]; sync(); if (statfs(argv[1],buf)<0) { fprintf(stderr,"Cannot read super block!\n"); exit(EXIT_FAILURE); } fprintf(stderr,"%4.1f %% free\n",100.0*buf[0].f_bfree/buf[0].f_blocks); return EXIT_SUCCESS; % ./ndf / 40.2 % free %