Enviar búsqueda
Cargar
Shizuoka go lang csp
•
0 recomendaciones
•
1,105 vistas
Makoto Kishimoto
Seguir
同期通信によるモデルのチャネルを使った実装----食事する哲学者問題を例に
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 18
Descargar ahora
Descargar para leer sin conexión
Recomendados
Rbpdf gem library
Rbpdf gem library
Jun Naitoh
20101211 gunma.web#3 LanguaGegenerationLoss
20101211 gunma.web#3 LanguaGegenerationLoss
ivoryworks .
2019-01_正月三が日でGolangを触ってみた
2019-01_正月三が日でGolangを触ってみた
Igarashi Toru
社内勉強会1 go lang
社内勉強会1 go lang
Tsuyoshi Nakamura
Communicating with Channels
Communicating with Channels
jlongster2
csp (concentrated solar power) technology
csp (concentrated solar power) technology
Arvind Dautaniya
Go言語でBot開発やってみた
Go言語でBot開発やってみた
Akihiko Horiuchi
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
Recomendados
Rbpdf gem library
Rbpdf gem library
Jun Naitoh
20101211 gunma.web#3 LanguaGegenerationLoss
20101211 gunma.web#3 LanguaGegenerationLoss
ivoryworks .
2019-01_正月三が日でGolangを触ってみた
2019-01_正月三が日でGolangを触ってみた
Igarashi Toru
社内勉強会1 go lang
社内勉強会1 go lang
Tsuyoshi Nakamura
Communicating with Channels
Communicating with Channels
jlongster2
csp (concentrated solar power) technology
csp (concentrated solar power) technology
Arvind Dautaniya
Go言語でBot開発やってみた
Go言語でBot開発やってみた
Akihiko Horiuchi
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
CHP survey
CHP survey
Makoto Kishimoto
some SHA1 implementation
some SHA1 implementation
Makoto Kishimoto
Visulan intro
Visulan intro
Makoto Kishimoto
20151121
20151121
Makoto Kishimoto
FZ and DAZ in denormals
FZ and DAZ in denormals
Makoto Kishimoto
Tech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presen
Makoto Kishimoto
Subprocess no susume
Subprocess no susume
Makoto Kishimoto
Node handson
Node handson
Makoto Kishimoto
app-c.odp
app-c.odp
Makoto Kishimoto
Más contenido relacionado
Más de Makoto Kishimoto
CHP survey
CHP survey
Makoto Kishimoto
some SHA1 implementation
some SHA1 implementation
Makoto Kishimoto
Visulan intro
Visulan intro
Makoto Kishimoto
20151121
20151121
Makoto Kishimoto
FZ and DAZ in denormals
FZ and DAZ in denormals
Makoto Kishimoto
Tech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presen
Makoto Kishimoto
Subprocess no susume
Subprocess no susume
Makoto Kishimoto
Node handson
Node handson
Makoto Kishimoto
app-c.odp
app-c.odp
Makoto Kishimoto
Más de Makoto Kishimoto
(9)
CHP survey
CHP survey
some SHA1 implementation
some SHA1 implementation
Visulan intro
Visulan intro
20151121
20151121
FZ and DAZ in denormals
FZ and DAZ in denormals
Tech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presen
Subprocess no susume
Subprocess no susume
Node handson
Node handson
app-c.odp
app-c.odp
Shizuoka go lang csp
1.
同期通信によるモデルのチャネルを 使った実装——食事する哲学者問題 を例に 岸本 誠
2.
Go(Go言語)について ● GoogleのKen Thompson, Rob Pikeらによって 設計・開発 ● 基本的にはC言語風 ● 型の記法はAlgol(Pascal)系 ● Cの嫌な点はほとんどを改善 ● GCはあるが、オブジェクトetc の機能はほどほど
3.
Go(Go言語)について(cont) ● GAEクラウドで使える コンパイラ言語として重宝 ● インタプリタ的な実行も可能 ● 現在1.4.x ● Google Native Client
(NaCl) 対応などが進行中
4.
チャネル ● CSPから影響を受けている、 Go言語の 主要機能の一つ ● ライブラリではない ● スローガン Do not
communicate by sharing memory; instead, share memory by communicating. (共有メモリによって通信せず、 通信によってメモリを共有せよ)
5.
ゴルーチン・チャネル・通信 ● ゴルーチン → いわゆるスレッド ● チャネル → 通信の口(ソケットの ようなもの、first
class) ● チャネル通信 → ライブラリ関数ではなく そういう構文がある
6.
ゴルーチン・チャネル・通信 ● ゴルーチン ● 構文 go <関数呼出> ● 例 go foo() ● 無名関数をその場で作って 呼出すこともできる
7.
ゴルーチン・チャネル・通信 ● チャネル ● 型: データ型名の前に chan を付ける 例:
chan int ● 生成: 言語組込みの型を作る 汎用組込関数 make で作る 例: ch := make(chan int[, size]) ● サイズの指定もできる
8.
ゴルーチン・チャネル・通信 ● チャネル通信 ● 送信は「送信文」 例: ch <- 10 ● 受信は「受信演算子」(前置) 例: v
:= <-ch <-ch // 受信するだけ
9.
ゴルーチン・チャネル・通信 ● チャネル通信(cont) ● select文 ● caseに送受信イベントを列挙 ● CSPの外部選択 ● CSPについては次で
10.
CSPとは ● Communicating Sequential Processes ● C・A・R・ホーア(クイック ソートや公理的意味論)考案 ● 参考資料 『並行システムの検証と実装』
11.
サンプル「食事する哲学者の問題」 ● 素朴に実装すると、並行するプ ロセスがデッドロックし得る例 ● デッドロック回避アルゴリズム や同期プリミティブのサンプル ● ここでは『並行システムの検証 と実装』の§4.4から
12.
サンプル「食事する哲学者の問題」 http://commons.wikimedia.org/wiki/File:Dining_philosophers.png
13.
サンプル「食事する哲学者の問題」
14.
サンプル「食事する哲学者の問題」 ● 方針 ● Go言語の機能を紹介するもの とする ● JCSP版のようなCSPモデル になるべく沿った形には、し ない ● 簡単な修正で、デッドロック するものとしないものを示す
15.
CSPによるモデルの記述 ● 以下、全て前述の出典より
16.
CSPによるモデルの記述
17.
CSPによるモデルの記述
18.
サンプル「食事する哲学者の問題」 ● ソースコード解説 ● ( https://gist.github.com/metanest/ e58bb0e8c013f52ccd7d
) ● デモ
Descargar ahora