Mercurial > hg > Papers > 2014 > masakoha-thesis > final
diff preliminary/final-thesis.tex @ 67:2817add546be
fix
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 24 Feb 2014 14:18:43 +0900 |
parents | 927df4d4c4d5 |
children | 9c5f2ffbeb4e |
line wrap: on
line diff
--- a/preliminary/final-thesis.tex Mon Feb 24 12:34:41 2014 +0900 +++ b/preliminary/final-thesis.tex Mon Feb 24 14:18:43 2014 +0900 @@ -58,12 +58,10 @@ \label{fig:includeio} \end{figure} -先行研究では、File Readの部分は mmap 関数を使用して実装していた。mmap 関数での実装の場合はコードの記述が容易である。 - \section{並列処理向け I/O の設計と実装} \subsection{mmap での実装の問題点} - +先行研究では mmap によるファイルの読み込みを行っていた。 mmap でファイルを読み込むタイミングは、mmap 関数が呼ばれたときではなく、mmap した領域に対して何らかのアクセスをしたときに初めてファイルが読み込まれる。 つまり、分割された Task は文字列検索をすぐに行うのではなく、文字列検索を行おうとした時に初めてファイルが格納される。 Task は複数一斉に実行されることが望ましいが、mmap だとそれぞれの Task で読み込みが起こってしまうので、I/O ネックによる Task の待ちが発生する。 @@ -89,10 +87,10 @@ \subsection{I/O 専用 thread の実装} Cerium Task Manager では Task 単位で CPU Type の設定を変更することができる。 -SPE\_ANY という CPU Type を設定すると、Cerium Task Manager 側が自動的に CPU を割り振ってくれる。 -しかし、今回の実装でこのCPU Type を使用してしまうと、Blocked Read Task の隙間時間に Task が割り振られてしまう問題がある。 -その問題を解決するために、IO\_0 という CPU Type を新しく実装した。 -IO\_0 は他の CPU Type よりも priority を高く設定しているので、他の Task に割り込まれることがないようにした。 +SPE\_ANY という Type を設定すると、Cerium Task Manager 側が自動的に CPU を割り振ってくれる。 +しかし、今回の実装でこの Type を使用してしまうと、Blocked Read Task の隙間時間に Task が割り振られてしまう問題がある。 +その問題を解決するために、IO\_0 という Type を新しく実装した。 +IO\_0 は他の Type よりも priority を高く設定しているので、他の Task に割り込まれることがないようにした。 (図\ref{fig:io0}) %% %(図\ref{fig:speany})