著者
笹田 耕一
雑誌
第52回プログラミング・シンポジウム予稿集
巻号頁・発行日
vol.2011, pp.145-152, 2011-01-07

プログラミング言語Rubyはスレッドプログラミングをサポートする。スレッド処理機構を実現するため、Ruby1.8処理系はユーザレベルスレッドを独自に実装していたが、我々は最新のRuby1.9処理系において、OSなどが提供するネイティブスレッドを用いる方式で実装した。具体的には、POSIX Tthread (Pthread)と Windowsスレッドに対応している。しかし、このRuby1.9処理系のスレッド実装は次のような問題点がある。(1)タイマスレッドが定期的に監視を行うため、CPUを低消費電力状態に保つことができない(2)複数CPUでのCPU利用権の放棄がうまくいかない。我々はこれらの問題に対して、(1)タイマスレッドの改善(2)CPU利用権の受け渡し方式の変更、を行うことで問題点を解決し、スレッド実装を改善した。本稿では既存のRuby処理系でのスレッド実装について述べ、問題点をまとめ、この改善手法について述べる。そして、改善後のRuby処理系の性能について評価した結果を示す。
著者
五味真幹 鵜川始陽 岩崎英哉
雑誌
第52回プログラミング・シンポジウム予稿集
巻号頁・発行日
vol.2011, pp.125-132, 2011-01-07

半導体記憶素子であるフラッシュメモリを使用した記憶装置の一種として、Solid State Drive(SSD)が、価格の低下や速度の向上に伴い、近年注目を集めている。HDDと比べ、読み書きが速い、耐衝撃性が高い、消費電力が小さいといった利点の反面、書き換え可能回数に上限がある、記憶容量当たりの単価が高いといった欠点もある。そのため、一般的なマシンにおいてはSSDとHDDを併用し、相補的に利用することが重要視されている。そこで本研究では、SSDとHDDの併用によって、ファイルアクセスを高速化するファイルシステムUnion-Extended Cache File System(UECFS)を提案し、実装する。UECFSは、ファイルへのアクセス頻度に応じて、SSDかHDDのどちらかへファイルを自動配置する。ファイルの配置先は、ファイルのアクセス頻度の変化に応じて、動的に変更する。アクセス頻度の高いファイルのみをSSDに自動配置するため、SSDの使用量を抑えつつ、ファイルアクセスの高速化が可能である。また、ユーザはSSDとHDDのどりたにファイルが配置されているか意識しなくてよい。UECFSは、UnionFSを拡張して実装した。UnionFSは、Linux向けに実装されているファイルシステムであり、異なる複数のディレクトリを重ねてマウントし、単一のディレクトリの様に扱うことが出来る。UECFSは、UnionFSの機能を利用して、SSD上のディレクトリとHDD上のディレクトリを重ねてマウントし、独自のファイル自動配置機構により、ファイルアクセスを高速化する。UECFSをLinux Kernel 2.6.30.10に実装し、実験を行ったところ、ファイルがSSDに自動配置されることにより、ファイルアクセスが高速化することを確認した。