C言語でスレッド (Pthread) 2007年1月11日 海谷 治彦.

Slides:



Advertisements
Similar presentations
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作 第4回 マルチスレッドとネットワーク. 今日の内容 マルチスレッド – ローディングの進捗表示とか – 処理高速化も見込めます ネットワーク通信 – 必然的にマルチスレッドを扱います.
Advertisements

情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
連続系アルゴリズム演習 第2回 OpenMPによる課題.
応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
Javaのスレッドについて 2005年7月6日 海谷 治彦.
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
オペレーティングシステム 第5回 プロセスの相互排除
オペレーティングシステムJ/K 2004年10月7日
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
の まとめ 2007/04/02 (Mon) / d;id:hzkr
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
CONCURRENT PROGRAMMING
スレッドとプロセス 本題: スケジューリング
第8章 Web技術とセキュリティ   岡本 好未.
進捗 Javaバイトコード変換による 細粒度CPU資源管理
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
オペレーティングシステム 第3回( ) デッドロックと排他制御.
プログラミング論 関数ポインタ と 応用(qsort)
プログラミング 2 ファイル処理.
FlexとBison+アルファ -実習編-
マルチスレッド処理 マルチプロセス処理について
R流・C#マルチスレッドの復讐 2009年05月16日 R・田中一郎
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
ソケットプログラム(TCP,UDP) EasyChat開発2
演習1の解答例の解説 2004年10月21日 海谷 治彦.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
Nakano School of Business 経営情報ビジネス科 【 C言語入門(Test2)】
デジタル画像とC言語.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
演習1の解答例の解説 2006年11月8日 海谷 治彦.
TCP/IPとプロセス間通信 2007年1月12日 海谷 治彦.
先進的計算基盤システムシンポジウム SACSIS2007併設企画 マルチコアプログラミングコンテスト 「Cellスピードチャレンジ2007」
東京工科大学 コンピュータサイエンス学部 亀田弘之
関数への道.
そろそろvolatileについて一言いっておくか
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB: 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎
オブジェクト指向プログラミングと開発環境
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
C言語 はじめに 2016年 吉田研究室.
実践ロボットプログラミング LEGO Mindstorms NXT で目指せロボコン! WEB: 著者:藤吉弘亘,藤井隆司,鈴木裕利,石井成郎
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
プログラムが実行されるまで 2002年4月14日 海谷 治彦.
同期処理のモジュール化を 可能にする アスペクト指向言語
6.5 セマフォ セマフォ(semaphore): 複数のタスク(もしくはスレッド)が「同期」または「相互排除」の制御のために取得(acquire)・リリース(release)できるカーネルオブジェクトの総称.
ネットワーク・プログラミング Cプログラミングの基礎.
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
第5回 プログラミングⅡ 第5回
バネモデルの シミュレータ作成 精密工学科プログラミング基礎 資料.
情報処理Ⅱ 第7回 2004年11月16日(火).
第28回世界コンピュータ将棋選手権アピール文章 作成:井本 康宏 作成日:2018/3/吉日
SMP/マルチコアに対応した 型付きアセンブリ言語
演算子のオーバーロード.
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
第2章 数値の入力と変数 scanfと変数をやります.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

C言語でスレッド (Pthread) 2007年1月11日 海谷 治彦

目次 簡単な例 Mutex 同期

コンパイルの仕方 Mac10の場合,ただコンパイルすればよい. Linux, BSD他,一般的なLinuxでは, gcc なんか.c –lthread と追加ライブラリの指定が必要. 無論,pthread用のヘッダーがいる 以降のサンプルで

sample1.c 最も基本的なコードの形 pthread_create でスレッドを作成および開始 この時点で実行の中身となる関数を指定する pthread_join で指定スレッドが終わるのを待つ コレがないとthread実行が始まる前にmainスレッドが終わってしまう. ためしにコメントアウトしてみよう. なんか実行してもあまり並列処理っぽくない(涙) pthread_setconcurrency があると並行っぽい 利用したい CPU 数をシステムに要求する関数.

sample2.c 実際に実行される関数への引数を渡す方法. 基本的にアドレスを1個しかわたせない.

sample3.c usleepを使って,並列っぽく見せた.

sample4.c バッファーにある文字列をログファイルに0.1秒おきに書き込む. キーボード入力があったら,バッファーを更新する. 結果として,入力された文字の時系列情報を記録できる. 並列動作っぽい.

sample5.c クイックソート あんまり実行結果も面白くないけど,効果的なスレッド化の例. もし,複数のCPUを使ってスレッドを実行できれば,ホントに早い (はず).

mutex 変数等の相互排斥を行うための仕組み. Javaのsynchronized とほぼ役目は同じ.

sample6.c sample7.c 二つのスレッドが共有変数をそれぞれ加算する. たした数が合わない. 一時的に関数のローカル変数にいれようが,いれまいが,ダメ.

sample8.c mutex = Mutual Execlusion Lock = 相互排除ロック pthread_mutex_t をlock/unlockして排他制御. 要は同じmutexを同時にlockできるのは1つのスレッドのみ. Javaのsynchronized にほぼ同じ.

同期 Javaのwait, notify, notifyAllに相当するロック中のスレッドを起こす方法.

sample9.c 生産者,消費者問題 pthread版 はっきりいってJavaをみながら移植. 生産者,消費者はそれぞれ一人.

Javaとの対比