第19週ファイルアクセス方式オペレーティングシステム
2011年10月30日日曜日
タイムテーブル
• 前回課題の解説
• P223 ファイルアクセス
• Linux 実習
•シラバス記入
2011年10月30日日曜日
前回課題 解説
2011年10月30日日曜日
access_log ファイルに保存されているレコード数を表示
• 1レコード1行なのでファイルの行数を数えれば良い
% wc -l access_log 21668 access_log
2011年10月30日日曜日
2011年 10月21日には何件のアクセスがあったか表示
•当日に作成されたレコード数を抽出して数を数える
% grep ’21/Oct/2011’ access_log | wc -l317
202.223.149.199 - - [21/Oct/2011:17:31:09 +0900] "GET /mediawiki117/ HTTP/1.1" 301 -202.223.149.199 - - [21/Oct/2011:17:31:09 +0900] "GET /mediawiki117/index.php/
2011年10月30日日曜日
アクセス元のIPアドレスを重複をなくして一覧表示1. 最初にcut コマンドをつかっ てIPアドレスの
み抜き出す
2. 抜き出したIPアドレスを重複を取り除いて表示
% cut -d" " -f 1 access_log | sort | uniq192.168.181.48192.168.181.55 :
2011年10月30日日曜日
最もアクセスがあったパスとそのアクセス回数を、アクセス回数の降順にトップ10を 表示
1. cut コマンドでパスのみを抽出
2. uniq コマンドで重複数も表示
3. uniq コマンドの実行結果を降順にソート
4.ソートした結果の先頭10行を表示
2011年10月30日日曜日
cut -d" " -f7 access_log | sort | uniq -c | sort -r | head
2011年10月30日日曜日
P223ファイルアクセス
2011年10月30日日曜日
順次アクセス•シーケンシャルアクセス
• sequential access•ファイルを先頭から順に読み出す
•読みと飛ばし不可
• P223 図8.3
2011年10月30日日曜日
http://www.canstockphoto.jp/%E5%86%85%E9%83%A8-%E3%83%86%E3%83%BC%E3%83%97-5585443.html2011年10月30日日曜日
• 長所
• ファイルに無駄なスペースがない
• バックアップなど一括処理に便利
• 短所
• ファイル途中のレコード追加、レコード削除ができず、全部レコードを書きなおす必要あり
2011年10月30日日曜日
•ランダムアクセス
• random access
•ファイル内の任意の場所のバイトやレコードにアクセスする
直接アクセスファイル
2011年10月30日日曜日
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:HDD_inside.jpg
2011年10月30日日曜日
1.トラック2.ヘッド3.セクター
2011年10月30日日曜日
• 長所
• 読み飛ばしが可能。特定のレコードに短時間でアクセス
• レコードの追加、削除、変更時にファイル全体の書き直しが不要
• 短所
• 管理が複雑
• ファイルスペースに無駄ができる可能性あり
2011年10月30日日曜日
アドレスの指定方式
•アクセスするレコードの位置をどうやって特定するのか?
2011年10月30日日曜日
直接アドレス方式•レコードのキーと値とファイルの位置が直接対応
•例•商品コードが1,2,3,... と連番なら
•レコードも1番目、2番目に格納される
2011年10月30日日曜日
間接アドレス方式
•レコードのキーが数値以外だとディクスのアドレス(数字)に直接変換できない。
•何らかの変換ルールを使ってアドレスに変換する
2011年10月30日日曜日
ハッシュ
P225 図8.52011年10月30日日曜日
問題
2011年10月30日日曜日
シノニム
T Fujisawaも計算したらハッシュ値が”02”に!
2011年10月30日日曜日
チェーン法
http://www.geocities.jp/ky_webid/algorithm/014.html
2011年10月30日日曜日
オープンアドレス法
http://f29.aaa.livedoor.jp/~snaka/PukiWiki/PukiWiki.php?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%B3%AB%C8%AF%B5%BB%BD%D1%BC%D4%2F1.iii.a.%A5%C7%A1%BC%A5%BF%B9%BD%C2%A4
空きが見つかるまで、ハッシュ値を計算し直す(内部で使う値を変えながら)
2011年10月30日日曜日
Linux実習
2011年10月30日日曜日
ワイルドカード
•ファイル名を指定するときに利用
• ”*”は任意の文字を表す
•% ls *
•% ls access*
2011年10月30日日曜日
正規表現
•特別な意味をもった記号を用いて文字列を表現する。ワイルドカードとは使い方が違うので注意。
•特殊文字
• * . ^ 2011年10月30日日曜日
*
•直前の文字の0回以上の繰り返し
• a aa aac bcd acc bbb• a*は a aa にマッチ
• a*c は aacにマッチ
2011年10月30日日曜日
.•任意の一文字
• a aa aac bcd ccc bbb• . は aにマッチ
• .acは aac bcd ccc にマッチ
• .cc はccc にマッチ
2011年10月30日日曜日
.*
•一文字以上の任意の文字列を表す
• a aa aac bcd ccc bbb• a.* は a aa aac にマッチ
• ... は aac bcd ccc bbb にマッチ
2011年10月30日日曜日
^
•先頭を表す
• abc bca cba aaa bbb ccc• ^b.* は bca bbb を表す
• ^.c. は bca ccc を表す
2011年10月30日日曜日
tar コマンド
• tar (Tape Archive) •アーカイブ:書庫、複数のファイルを一つにまとめたファイル
• tar はアーカイブファイルを操作
2011年10月30日日曜日
アーカイブ作成
• % tar cvf ファイル名 追加するファイル1
• 例
• % tar cvf kadai.tar file1 file2 dir1/
2011年10月30日日曜日
アーカイブ内のファイル一覧
•% tar tvf アーカイブファイル
•例•% tar tvf kadai.tar
2011年10月30日日曜日
アーカイブの展開
•% tar xvf ファイル名
•例•% tar xvf kadai.tar
2011年10月30日日曜日