...

Linux応答時間の実力

by user

on
Category: Documents
6

views

Report

Comments

Transcript

Linux応答時間の実力
Linux コーナ
ハードを隠ぺいしたお任せ OS を組み込みで使う可能性を探る
実験リサーチ!
カーネル内部
とことん可視化計画
Linux応答時間 の 実力
第
10 回 ファイル・システムの陰で行われる
海老原 祐太郎
物理メモリの読み書き時間
CAT724+EB724A
SH-4Aマイコン
SH7724
print 関数を埋め込んで実験します.
さらに,ファイル読み書き時間を観察します.
Linux はプロセスが複数動いている OS なので,ディ
スクの読み書きには長めの遅延が生じます.その遅
延を緩和する機能が Linux には備えられているた
め,これも実験してみます.
(編集部)
RAMとI/Oするためのドライバを
作ってprint関数を埋め込んでおく
DDR2 SDRAM(256Mバイト)
RAMディスク 32Mバイト
CPU
32MバイトをRAM
ディスク領域とする
こんな実験
チカラ
図 1 こんな実験…縁の下の力もち! ファイル・システムのはたら
きを探る! RAM の読み出し / 書き込みドライバに print 関数を埋め
込んで動作させる
● ディスク I/O 用ドライバを作って動きや遅延
時間を観察する
今回は,物理メモリの読み書き時間を調べてみます.
Linux では,ディスクのリード / ライトにキャッ
シュを活用しています(1).まず,Linux のファイル・
システムがどのように動いているか,どのように
キャッシュを使っているかを見てみます.
図 1 に 示 す よ う に デ ィ ス ク I/O 用 の ドライバに
アプリケーション1
256M バイトの DRAM のうち,32M バイトを RAM
ディスクとして使い,だれが,どのタイミングでディ
スク I/O 処理を行っているかを print 関数を使って可
視化します(実験 1)
.これに 8M バイトのパーティ
ション領域を確保し,vfat ファイル・システムを搭載
して書き込み時間を観察します(実験 2)
.
・実験 1…ファイルの読み書きを観察してみる
アプリケーション2
open()
read()
write()
close()
アプリケーション3
open()
read()
write()
close()
open()
read()
write()
close()
system call
VFS 仮想ファイル・システム
ext2
ext3
ユーザ空間
ページ・キャッシュ
jfs
xfs
vfat
カーネル空間
バッファ・キャッシュ 1
バッファ・キャッシュ 2
バッファ・キャッシュ 3
ブロック型ドライバ1
ブロック型ドライバ2
ブロック型ドライバ3
ディスク1
(ハードウェア)
ディスク2(ハードウェア)
ディスク3(ハードウェア)
ソフトウェア
ハードウェア
図 2 アプリケーションから物理ディスクにアクセスするしくみ
jfs,xfs,vfat は ext2 や ext3 と同じようにバッファ・キャッシュとやりとりする
2014 年 12 月号
第 1 回 電源投入からカーネルが起動するまでの動作(2013 年 11 月号)
第 2 回 ハード制御で需要! 割り込み処理を時間で終わらせる三つのしくみ(2013 年 12 月号)
第 3 回 マルチタスク OS のキモ! タスク切り替えの基本動作(2014 年 1 月号)
153
Fly UP