SlideShare a Scribd company logo
TOPPERSプロジェクト認定 12012/06/02
2.2 カーネルオブジェクト
安積卓也(⽴命館⼤学)
最終更新⽇ : 2012/ 5/18
TOPPERSプロジェクト認定 22012/06/02
概要
• カーネルオブジェクトのコンポーネント化
– 例:タスクの利⽤
• 複合コンポーネント
– 周期タスク
• 例:周期タスクを利⽤したカウントアッププログラム
– 初期化ルーチン
• require カーネルセルタイプ
TOPPERSプロジェクト認定 32012/06/02
カーネルオブジェクトのコンポーネント化
• カーネルオブジェクト
• 例:タスクの利⽤
TOPPERSプロジェクト認定 42012/06/02
カーネルオブジェクトのコンポーネント化
• カーネルオブジェクト⼀覧
アクティブなセルタイプ
– タスク
– 初期化処理ルーチン
– 終了処理ルーチン
– 割込みサービスルーチン
– 周期ハンドラ
– アラームハンドラ
その他のセルタイプ
– セマフォ
– イベントフラグ
– データキュー
– 優先度データキュー
– 固定⻑メモリプール
– 割込み要求ライン
– カーネル
TOPPERSプロジェクト認定 52012/06/02
カーネルオブジェクトのコンポーネント化
• カーネルオブジェクト
– タスク
– セマフォ
– データキュー
• 利点
– 静的APIを⾃動⽣成
– ソフトウェアの部品化を
促進 テンプレート
コード
TECS CDL(コンポーネント記述言語)
シグニチャ記述
(インタフェースの定義) セルタイプ記述
(コンポーネントの定義) 組上げ記述
(コンポーネントの
構成の定義)
TECS
ジェネレータ
ヘッダ
インタフェース
コード
Cコンパイラ
セルタイプコード
(コンポーネントの
ソースコード)
リンカ
アプリケーション
開発者
コンポーネント
開発者
アプリケーションモジュ
ール
コンポーネント図
製品 エンドユーザー
コンポーネント
仕様開発者
仕 様 の
規定
設計
設計
利用
カーネル設定
ファイル
コンフィギュレータ
カーネル設定
コード
TOPPERSプロジェクト認定 62012/06/02
カーネルオブジェクトのコンポーネント化
• カーネルオブジェクト
– タスク
– セマフォ
– データキュー
• 利点
– 静的APIを⾃動⽣成
– ソフトウェアの部品化を
促進 テンプレート
コード
TECS CDL(コンポーネント記述言語)
シグニチャ記述
(インタフェースの定義) セルタイプ記述
(コンポーネントの定義) 組上げ記述
(コンポーネントの
構成の定義)
TECS
ジェネレータ
ヘッダ
インタフェース
コード
Cコンパイラ
セルタイプコード
(コンポーネントの
ソースコード)
リンカ
アプリケーション
開発者
コンポーネント
開発者
アプリケーションモジュ
ール
コンポーネント図
製品 エンドユーザー
コンポーネント
仕様開発者
仕 様 の
規定
設計
設計
利用
カーネル設定
ファイル
コンフィギュレータ
カーネル設定
コードタスク
CRE_TSK(TSKID_tTask_LogTask_Task,
{ TA_ACT, &tTask_CB_tab[0], tTask_start_task, 3, 131072, NULL });
周期ハンドラ
CRE_CYC( CYCHDLRID_tCyclicHandler_CyclicHandler,
{ TA_NULL, &tCyclicHandler_CB_tab[0], tCyclicHandler_start, 2000, 0 } );
セマフォ
CRE_SEM(SEMID_tSemaphore_SerialPort1_ReceiveSemaphore, { TA_NULL, 0, 1 });
TOPPERSプロジェクト認定 72012/06/02
タスクのシグニチャ記述(⼀部抜粋)
/* タスク本体を呼び出すためのシグニチャ*/
signature sTaskBody {
void main(void);
};
/* タスク例外処理ルーチン本体を呼び出すシグニチャ*/
signature sTaskExceptionBody {
void main([in] TEXPTN pattern);
};
/* タスクを操作するためのシグニチャ(タスクコンテキスト⽤)*/
signature sTask {
ER activate(void);
ER_UINT cancelActivate(void);
ER terminate(void);
...
};
/* タスクを操作するためのシグニチャ(⾮タスクコンテキスト⽤) */
signature siTask {
ER activate(void);
ER wakeup(void);
...
};
asp+tecs/include/kernel.cdl
TOPPERSプロジェクト認定 82012/06/02
タスクのセルタイプ定義(前半)
[active]
celltype tTask {
[inline] entry sTask eTask; /* タスク操作(タスクコンテキスト⽤)*/
[inline] entry siTask eiTask; /* タスク操作(⾮タスクコンテキスト⽤)*/
call sTaskBody cBody; /* タスク本体 */
[optional] call sTaskExceptionBody cExceptionBody;
/* タスク例外処理ルーチン本体 */
attr{
};
factory {
};
FACTORY {
};
};
[inline]で指定された受け⼝はinline関数として実装する
⽣成されるテンプレートコードもinline関数が⽣成される
[optional]で指定された呼び⼝は未結合を許す
セルタイプコード(C⾔語の実装コード)では、
呼び出す前に結合されているかの確認をする必要がある
asp+tecs/include/kernel.cdl
TOPPERSプロジェクト認定 92012/06/02
[optional]の例
void tTask_start_exception(TEXPTN texptn, intptr_t exinf)
{
CELLCB *p_cellcb = (CELLCB *) exinf;
if(is_cExceptionBody_joined()){
cExceptionBody_main(texptn);
}
}
asp+tecs/tecs_kernel/tTask.c
[active]
celltype tTask {
...
[optional] call sTaskExceptionBody cExceptionBody;
/* タスク例外処理ルーチン本体 */
...
};
asp+tecs/include/kernel.cdl
結合されているかどうか?
TOPPERSプロジェクト認定 102012/06/02
タスクのセルタイプ定義(後半)
celltype tTask {
...
attr{
ID id = C_EXP("TSKID_$id$");
[omit] ATR taskAttribute = C_EXP("TA_NULL");
[omit] ATR exceptionAttribute = C_EXP("TA_NULL");
[omit] PRI priority;
[omit] SIZE stackSize;
};
factory {
write("tecsgen.cfg",
"CRE_TSK(%s, { %s, $cbp$, tTask_start_task, %s, %s, NULL });",
id, taskAttribute, priority, stackSize);
};
FACTORY {
write("tecsgen.cfg", "#include ¥"$ct$_tecsgen.h¥"");
};
};
各セルごとに出力
セルタイプで一度だけ出力
C_EXP(“”);はC⾔語での表現
コンポーネント記述で意味解釈をしないことを⽰す
asp+tecs/include/kernel.cdl
TOPPERSプロジェクト認定 112012/06/02
celltype tTask {
...
factory {
write("tecsgen.cfg",
"CRE_TSK(%s, { %s, $cbp$, tTask_start_task, %s, %s, NULL });",
id, taskAttribute, priority, stackSize);
};
FACTORY {
write("tecsgen.cfg", "#include ¥"$ct$_tecsgen.h¥"");
};
};
ファクトリ
• セル(コンポーネント)⽣成時に静的APIなどを
開発者が意図的に出⼒するために使⽤する
出力したいファイル名 出力内容
printf形式で出力
asp+tecs/include/kernel.cdl
TOPPERSプロジェクト認定 122012/06/02
ファクトリでの名前置換
ID id = C_EXP(“TSKID_$id$”);
write("tecsgen.cfg","CRE_TSK(%s, { %s, $cbp$, tTask_start_task, %s, %s, NULL });",
id, taskAttribute, priority, stackSize);
$id$ … セルタイプ名とセル名を '_' で連結したものに置換
$cell$ … セル名に置換
$cb$ … セルの CB の C ⾔語名に置換
$cbp$ … セルのCB へのポインタ(CB が⽣成されない場合はNULL に置換)
$cb_proto$ … セルの CB の C ⾔語名(プロトタイプ宣⾔⽤)に置換
$ct$ … セルタイプ名に置換
$idx$ … セルの CB の IDX (idx_is_id の場合は整数、そうでない場合は CB へのポインタ)に置換
$ID$ … セルの ID(idx_is_id の場合 IDX に⼀致)に置換
$$ … $ に置換
CRE_TSK(TSKID_tTask_MainTask, { TA_ACT, &tTask_CB_tab[1],
tTask_start_task, MAIN_PRIORITY, STACK_SIZE, NULL });
例えば、セルタイプ名tTask、セル名MainTaskの場合
セル名セルタイプ名
tecsgen.cfg
TOPPERSプロジェクト認定 132012/06/02
tecsgen.cfg
i
INCLUDE("target_timer.cfg");
INCLUDE("syssvc/banner.cfg");
#include "tSample1.h"
#ifdef CPUEXC1
DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
#endif /* CPUEXC1 */
tSample1.cfg
INCLUDE("tecsgen.cfg");
#include "cb_type_only.h"
#include "tTask_tecsgen.h"
CRE_TSK(TSKID_tTask_LogTask_Task, { TA_ACT, &tTask_CB_tab[0],
tTask_start_task, 3, 131072, NULL });
DEF_TEX(TSKID_tTask_LogTask_Task, { TA_NULL,
tTask_start_exception });
...
#include "tInitializeRoutine_tecsgen.h"
ATT_INI({ TA_NULL, NULL, tInitializeRoutine_start });
#include "tTerminateRoutine_tecsgen.h"
ATT_TER({ TA_NULL, NULL, tTerminateRoutine_start });
#include "tISR_tecsgen.h"
ATT_ISR({ TA_NULL, NULL, 2, tISR_start, 1 });
CFG_INT( 2,{ TA_NULL, -2});
#include "tCyclicHandler_tecsgen.h"
CRE_CYC( CYCHDLRID_tCyclicHandler_CyclicHandler, {
TA_NULL, &tCyclicHandler_CB_tab[0], tCyclicHandler_start, 2000, 0 } );
#include "tAlarmHandler_tecsgen.h"
CRE_ALM(ALMHDLRID_tAlarmHandler_AlarmHandler,
{ TA_NULL, &tAlarmHandler_CB_tab[0], tAlarmHandler_start});
CRE_SEM(SEMID_tSemaphore_SerialPort1_ReceiveSemaphore, {TA_NULL, 0, 1});
CRE_SEM(SEMID_tSemaphore_SerialPort1_SendSemaphore, { TA_NULL, 1, 1 });
#include "syssvc/tLogTask.h"
ATT_TER({ TA_NULL, 0, tLogTask_terminate });
TOPPERSプロジェクト認定 142012/06/02
タスクセルの使い⽅
• タスクのインスタンスの記述
①タスク処理本体と結合
②タスクの属性の設定:カーネル起動時のタスクの状態
• TA_ACT:実⾏可能状態
• TA_NULL(デフォルト):休⽌状態
③タスクの優先度:1が最⾼優先度
④スタックサイズ:バイト
cell tTask MainTask {
/* 呼び⼝の結合 */
cBody = Sample1.eMainTask; //①
/* 属性の設定 */
taskAttribute = C_EXP(“TA_ACT”); //②
priority = MAIN_PRIORITY;//③
stackSize = STACK_SIZE; //④
};
記述の順番は
結合と属性の設定
どちらが先でもよい
TOPPERSプロジェクト認定 152012/06/02
カーネルオブジェクトのコンポーネント化
• カーネルオブジェクト
• 例:タスクの利⽤
TOPPERSプロジェクト認定 162012/06/02
例:タスクセルの利⽤
• タスクセルの利⽤⽅法を理解する
– 組上げ記述
• Displayセルを利⽤する
• tSample.cdlにタスクを⽣成するコンポーネント記述
する
tHelloTaskBody
HelloTaskBody
tTask
StartTask
tDisplay
Display
TOPPERSプロジェクト認定 172012/06/02
タスクコンポーネントの使い⽅(組み上げ)
/*
* タスク
*/
cell tHelloTaskBody HelloTaskBody{
cDisplay = Display.eDisplay; // ディスプレイの呼び⼝
};
cell tTask StarterTask{
taskAttribute = C_EXP("TA_ACT");
priority = 5;
stackSize = 1024;
cBody = HelloTaskBody.eBody;
};
tHelloTaskBody
HelloTaskBody
tTask
StartTask
tDisplay
Display
/*
* ディスプレイ
*/
cell tDisplay Display{
width = 100;
depth = 8;
cellWidth = 6;
charWidth = (100 / 6);
charDepth = (8);
};
asp+tecs/tecs_lib/mindstorms_nxt/
tNXTMiddle_inst.cdl asp+tecs/nxt_sample/sample_hello/tSample.cdl
TOPPERSプロジェクト認定 182012/06/02
TECSジェネレータの設定
• tecsgen(TECSジェネレータ)へのシンボリックリ
ンクを張る
– tecs_package/asp+tecs/に移動
し、../bin/tecsgen.exeへのシンボリックリンク
tecsgen.exeを作成
$ cd tecs_package/asp+tecs/
$ ln -s ../bin/tecsgen.exe tecsgen.exe
TOPPERSプロジェクト認定 192012/06/02
コンパイラの設定
• 環境に依存する定義は、
target/mindstorms_nxt_gcc/Makefile.targetに記
述されおり、各⾃の環境に応じて変更する必要があ
る
1. クロスツールチェーンのパス
• 使⽤するクロスツールチェーン(GNU ARM)のパスを,
GCC_TARGETに定義する.
• デフォルト: GCC_TARGET =
/usr/local/GNUARM/bin/arm-elf
2. ダウンロードツールのパス
• NexTTool.exeのパスを,NEXTTOOLに定義する.
• デフォルト: NEXTTOOL =
/usr/local/nexttool/NexTTool.exe
TOPPERSプロジェクト認定 202012/06/02
ビルド⼿順
1. プロジェクトディレクトリに移動
2. TECSジェネレータの実⾏
– コンポーネントの⽣成と結合に関するファイル、
およびコンポーネントに関する定義ファイルが
gen/以下に⽣成される。
3. 依存関係
4. コンパイル&リンク
• asp.rxeとrxe.shが⽣成される
$ cd /nxt_sample/sample_hello/
$ make tecs TECSジェネレータの実⾏
$ make depend 依存関係の更新
$ make コンパイル&リンク
TOPPERSプロジェクト認定 212012/06/02
ジェネレータが⾃動⽣成するファイル
• Makefile.depend
• Makefile.tecsgen
• Makefile.templ
• global_tecsgen.h
• sDisplay_tecsgen.h
• tDisplayBody_factory.h
• tDisplayBody_templ.c
• tDisplayBody_tecsgen.c
• tDisplayBody_tecsgen.h
• tHelloTaskBody_factory.h
• tHelloTaskBody_templ.c
• tHelloTaskBody_tecsgen.c
• tHelloTaskBody_tecsgen.h
• tmp_C_src.c
依存関係
⾃動⽣成した
ファイル⽤の
Makefile
セルタイプ毎に
⾃動⽣成されるファイル
テンプレート
セルの結合コード
ファクトリ⽤ヘッダ
Makefileの
テンプレート
型の定義など
各シグニチャ
の定義
中間ファイル
TECSジェネレータが使⽤
TOPPERSプロジェクト認定 222012/06/02
Makefile.tecsgen
• TECSジェネレータがコンパ
イルに必要な情報を⾃動的
に⽣成する
・・・
CELLTYPE_COBJS = ¥
tTask.o ¥
tISR.o ¥
tLCD.o ¥
tDisplayBody.o ¥
tBluetoothBody.o ¥
tCheckNXTButtonBody.o ¥
tInitializeTaskNXTBody.o ¥
....
・・・
#
# TECSが⽣成する定義のインクルード
#
-include gen/Makefile.tecsgen
....
asp+tecs/nxt_sample/sample_hello/Makefile
TOPPERSプロジェクト認定 232012/06/02
複合コンポーネント
• 周期タスク
• 例:周期タスクセルの利⽤
• 初期化ルーチン
TOPPERSプロジェクト認定 242012/06/02
周期タスク
void handler(void)
{
iact_tsk(タスクID);
}
void task(intptr_t exinf)
{
タスク処理
}
CRE_CYC(CALCID_CYCHDR, {
TA_NULL, 0, vCalcIdHandler, 10, 0 });
CRE_TSK(TASK1, { TA_NULL, 0, task,
MID_PRIORITY, STACK_SIZE, NULL });
• ITRONでは、周期タスクを提供していない
• 周期タスクは、周期ハンドラがタスクを周期的に起
動することで実現している
TOPPERSプロジェクト認定 252012/06/02
周期タスク:複合セルタイプ(複合コンポーネント)
• 複数のセルを⼀つのセルと
して扱う技術
• 利⽤者は周期タスクセルを
⽣成するだけでよい
周期ハンドラの
処理本体
(タスク起動)
周期ハンドラ タスク
周期タスク(tCyclicTask)
TOPPERSプロジェクト認定 262012/06/02
複合コンポーネント
• 周期タスク
• 例:周期タスクセルの利⽤
• 初期化ルーチン
TOPPERSプロジェクト認定 272012/06/02
例:周期タスクセルの利⽤
• 周期タスクセルの利⽤⽅法を理解する
– 組上げ記述
• Displayセルを利⽤する
• Displayに数字をカウントアップする
tCounterTaskBody
CounterTaskBody
tCyclicTask
CounterTask
tDisplay
Display
TOPPERSプロジェクト認定 282012/06/02
周期タスクセルの使い⽅(組み上げ)
/*
cell tCounterTaskBody CounterTaskBody{
cDisplay = Display.eDisplay; // ディスプレイの呼び⼝
};
cell tCyclicTask CounterTask{
cyclicAttribute = C_EXP("TA_STA");
cyclicTime = 1000;
cyclicPhase = 1;
priority = 5;
stackSize = 1024;
cBody = CounterTaskBody.eBody;
};
/*
* ディスプレイ
*/
cell tDisplay Display{
width = 100;
depth = 8;
cellWidth = 6;
charWidth = (100 / 6);
charDepth = (8);
};
asp+tecs/tecs_lib/mindstorms_nxt/
tNXTMiddle_inst.cdl asp+tecs/nxt_sample/sample_counter/tSample.cdl
tCounterTaskBody
CounterTaskBody
tCyclicTask
CounterTask
tDisplay
Display
TOPPERSプロジェクト認定 292012/06/02
周期タスクセルの使い⽅
• 周期タスクのインスタンス化の記述
①周期タスクの属性の設定:カーネル起動時の周期タスクの状態
• TA_STA:起動
• TA_NULL(デフォルト):休⽌状態
②起動周期(ミリ秒)
③起動位相
④タスクの優先度
⑤スタックサイズ
⑥タスク処理本体と結合
cell tCyclicTask CounterTask{
cyclicAttribute = C_EXP(“TA_STA”);①
cyclicTime = 1000;②
cyclicPhase = 1;③
priority = 5;④
stackSize = 1024;⑤
cBody = CounterTaskBody.eBody;⑥
};
TOPPERSプロジェクト認定 302012/06/02
複合コンポーネント
• 周期タスク
• 例:周期タスクセルの利⽤
• 初期化ルーチン
TOPPERSプロジェクト認定 312012/06/02
TECSにおける初期化
1. 初期化ルーチンとセルを1対1に対応させる
• カーネルオブジェクトの初期化ルーチンを利⽤
• 例:ディスプレイ
TOPPERSプロジェクト認定 322012/06/02
TOPPERS/ASP+TECSの初期化順序
1. メモリ領域などの初期化
– BSS領域の初期化
– DATA領域の初期化
2. セル管理ブロックの初期化
3. ターゲット依存部の初期化
4. 各モジュールの初期
• タスクなどのカーネルオブジェクト
の初期化
5. 初期化ルーチンの実⾏
6. カーネル動作の開始
/*
* カーネルの起動
*/
void
sta_ker(void)
{
/* ターゲット依存の初期化 */
target_initialize();
/*
* 各モジュールの初期化 */
initialize_tmevt();
initialize_object();
/* 初期化ルーチンの実⾏ */
call_inirtn();
/* カーネル動作の開始*/
kerflg = true;
LOG_KER_ENTER();
start_dispatch();
assert(0);
}
asp+tecs/kernel/startup.c
TOPPERSプロジェクト認定 332012/06/02
初期化処理ルーチン:カーネルオブジェクト
/* 初期化処理ルーチン本体を呼び出すためのシグニチャ */
signature sInitializeRoutineBody {
void main(void);
};
/* 初期化処理ルーチン */
[active]
celltype tInitializeRoutine {
call sInitializeRoutineBody cInitializeRoutine;
attr {
[omit] ATR attribute = C_EXP("TA_NULL");
};
factory {
write("tecsgen.cfg",
"ATT_INI({ %s, $cbp$, tInitializeRoutine_start });",
attribute);
};
};
asp+tecs/include/kernel.cdl
TOPPERSプロジェクト認定 342012/06/02
⽣成される初期化ルーチンの静的API
ATT_INI({ TA_NULL, &tInitializeRoutine_CB_tab[0],
tInitializeRoutine_start });
write("tecsgen.cfg",
"ATT_INI({ %s, $cbp$, tInitializeRoutine_start });",
attribute);
asp+tecs/include/kernel.cdl
TOPPERSプロジェクト認定 352012/06/02
初期化の例
• ディスプレイの例
– Displayをインスタンス
化すれば、初期化ルーチ
ンも⾃動的に⽣成される
2010/06/20 TOPPERSプロジェクト認定 35
tDisplay
Display
DisplayBody
tInitializeRoutine
InitializeDisplay
SPI
LCD
TOPPERSプロジェクト認定 362012/06/02
require
カーネルセルタイプ
TOPPERSプロジェクト認定 372012/06/02
require
• require
– RTOSのAPIなど共通して使われる機能について、
結合を明⽰することなく使⽤できる仕組み
– require の指定先は、シングルトンのセルタイプ
の受け⼝
TOPPERSプロジェクト認定 382012/06/02
例:require
[singleton]
celltype tKernel{
[inline] entry sKernel eKernel;
[inline] entry siKernel eiKernel;
};
celltype tStarterTaskBody{
require tKernel.eKernel;
/*以下省略*/
};
}
void
eBody_main()
{
/*処理省略*/
delay(100);
/*処理省略*/
exitTask();
}
signature sKernel{
ER sleep(void);
ER sleepTimeout([in] TMO timeout);
ER delay([in] RELTIM delayTime);
ER exitTask(void);
ER getTaskId([out]ID *p_taskId);
/*以下省略*/
};
asp+tecs/include/kernel.cdl
asp+tecs/include/kernel.cdl
asp+tecs/nxt_sample/sample_seminar/
tStartTaskBody.c
asp+tecs/nxt_sample/sample_seminar/tSample.cdl
TOPPERSプロジェクト認定 392012/06/02
著者リスト
• カーネルオブジェクトのコンポーネント化編
• 安積 卓也(⽴命館⼤学)
• 例:タスクセルの利⽤
• 安積 卓也 (⽴命館⼤学)
• ⽯川 拓也 (名古屋⼤学)
• ⼭⼝ 英之 (名古屋⼤学)
• 複合コンポーネント, 初期化ルーチン, require
• 安積 卓也(⽴命館⼤学)
• 例:周期タスクセルの利⽤
• 安積 卓也(⽴命館⼤学)
• ⽯川 拓也 (名古屋⼤学)

More Related Content

What's hot

9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
 
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎Insight Technology, Inc.
 
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
Tetsuya Hasegawa
 
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
Tetsuya Hasegawa
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Hironobu Isoda
 
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
Kiyoshi Ogawa
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In LockRyota Watabe
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
Kiyoshi Ogawa
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
Kiyoshi Ogawa
 
SAStruts Seminar In Tripodworks
SAStruts Seminar In TripodworksSAStruts Seminar In Tripodworks
SAStruts Seminar In Tripodworkstripodworks
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
Kenji Kazumura
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
NTT DATA Technology & Innovation
 
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
Tetsuya Hasegawa
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncKoji Shinkubo
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3openrtm
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
Tetsuya Hasegawa
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
AdvancedTechNight
 

What's hot (20)

9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
 
Ll tiger clojure
Ll tiger clojureLl tiger clojure
Ll tiger clojure
 
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
 
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
 
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In Lock
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
 
SAStruts Seminar In Tripodworks
SAStruts Seminar In TripodworksSAStruts Seminar In Tripodworks
SAStruts Seminar In Tripodworks
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
 
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_sync
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 

Similar to カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)

PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
Masahiko Sawada
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方Satoshi Nagayasu
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介Shintaro Hosoai
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
久司 中村
 
SQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなしSQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなし
Kazuki Minamitani
 
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
次朗 永島
 
エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半
Tetsuya Morimoto
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)
Noriyoshi Shinoda
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
Yuta Shimakawa
 
Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本
Damper Matsu
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
NSaitoNmiri
 
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Shu Sugimoto
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
 

Similar to カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2) (20)

PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
Ll xcode
Ll xcodeLl xcode
Ll xcode
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
 
SQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなしSQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなし
 
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
 
エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半エキ Py 読書会02 2章後半
エキ Py 読書会02 2章後半
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)
 
Trait in scala
Trait in scalaTrait in scala
Trait in scala
 
What is template
What is templateWhat is template
What is template
 
Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本Jetpack Composeのパフォーマンスの基本
Jetpack Composeのパフォーマンスの基本
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
 
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 

カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)