# HG changeset patch # User Masataka Kohagura # Date 1398056242 -32400 # Node ID d5040bb4527d414dc7eeb71355529b6e8ebd172f # Parent 6f6f482b9f12cc0f9d0b3b971286724b75e16f03 fix diff -r 6f6f482b9f12 -r d5040bb4527d paper/io.tex --- a/paper/io.tex Sun Apr 20 22:21:07 2014 +0900 +++ b/paper/io.tex Mon Apr 21 13:57:22 2014 +0900 @@ -1,12 +1,10 @@ \section{並列処理向け I/O の設計と実装} -\subsection{従来のファイル読み込みの実装と問題点} 従来は mmap や read でファイルの読み込みの実装を行っていた。 -read で実装を行うと、ファイル読み込みを行ってから Task が並列に動く。 -しかし、ファイルの大きさが大きくなると、read の時間が大きくなってしまう。 -読み込んでいる間 Task が走らないので、CPU の待ち時間が増えてオーバーヘッドとなる。 mmap とは、sys/mman.h に含まれている関数で、ファイルの読み込み等に使用される関数である。 +ユーザ(プロセスの)メモリ空間にファイルのマッピングを行う UNIX のシステムコールであり、 +mmapした領域にアクセスされるときに、そのファイルが実メモリに展開される。 \begin{tiny} \begin{table}[ht] @@ -212,6 +210,8 @@ %\end{figure} IO\_0 は、SPE\_ANY よりも priority を高く設定しているので、IO\_0 で設定された Read Task に SPE\_ANY で設定した 文字列検索 Task に割り込まれることがなくなる。 +Cerium では、並列処理を pthread で記述しており、pthread\_getschedparam()でIO\_0 の priority を設定している。 +pthread\_getschedparam は、〜をする関数である。 (図\ref{fig:io0}) \begin{figure}[htbp]