【TOPPERS】ITRON総合スレ3【NORTi】【HOS】 (880レス)
上下前次1-新
抽出解除 レス栞
667(4): 654 2011/08/11(木) 23:31:02.90 AAS
突っ込みどころ満載とか言っていたけど、さらに追加かもしれないが、具体的に書こう。
TOPPERS/FMP1.2 のソース wai_flgの部分だ。
wobj_make_wait();
について、t_acquire_nested_tsk_lock_self()のように、割り込みがあったら戻り値をNULLにして
retryに飛んだらよい。 ということなんだけどな。
つまりwaitQue検索時に適当な割合で割り込み許可と割り込み有無チェックをいれるわけだな。
eventflg.c のline:350〜line:371
retry:
t_acquire_obj_lock(&GET_OBJLOCK(p_flgcb));
if ((p_flgcb->p_flginib->flgatr & TA_WMUL) == 0U
&& !queue_empty(&(p_flgcb->wait_queue))) {
release_obj_lock(&GET_OBJLOCK(p_flgcb));
ercd = E_ILUSE;
}
else if (check_flg_cond(p_flgcb, waiptn, wfmode, p_flgptn)) {
release_obj_lock(&GET_OBJLOCK(p_flgcb));
ercd = E_OK;
}
else {
if ((my_p_pcb = t_acquire_nested_tsk_lock_self(&GET_OBJLOCK(p_flgcb))) == NULL){
goto retry;
}
p_runtsk = my_p_pcb->p_runtsk;
p_winfo_flg = (WINFO_FLG *)(&(p_runtsk->winfo_obj));
p_winfo_flg->waiptn = waiptn;
p_winfo_flg->wfmode = wfmode;
p_runtsk->tstat = (TS_WAITING | TS_WAIT_FLG);
wobj_make_wait((WOBJCB *) p_flgcb, p_runtsk);
release_nested_tsk_lock(my_p_pcb);
669(1): 元ITRON名無しさん ◆4WD27e3i1o 2011/08/16(火) 23:14:53.08 AAS
>>665 >>667
突っ込みどころ満載すぎて引用できないよ….ごめんね.
670(1): 667 2011/08/17(水) 15:07:31.79 AAS
>669
夏休みモードなんかな(自分はそうだけど)
2.1 実装方針とモデル
サービスコールの大部分を一つの割込み禁止区間として実
装している
TOPPERS/JSP --->
スタンダードプロファイルの機能セットの範囲内では,この方法でもそれほど
悪い結果にはならない.(user.txt)
ところが
TOPPERS/FI4 ---> 同じ文面(動的生成のみ追記されている)(fi4_user.txt)
フルセットなのにスタンダードプロファイルでは、ってちょっとまじめに考えているのかと....
名古屋大でのカーネル内部構造の講義において
TOPPERS/JSP
「割り込み許可にしなかったのはテストの時間がかかりリリースの時期にマッチ
しないと判断したことがある」
--->
TOPPERS/FMP -->スピンロックにおいて割り込み応答性のため、
割り込み許可するロジックを実装。
テストの問題は?
---> TTSPによって、割り込みを起こすテストを網羅することも比較的容易にテスト可能になった。
それだったら、TOPPERS/JSPやASPでも、TTSPを利用することで割り込み許可するべきじゃないのか?
と思うけど、ニーズがないというか性能評価までして使うユーザーがいないということなのかな
672: 667 2011/08/17(水) 17:38:01.91 AAS
>>971
>>「マルチプロセッサ対応のSMPカーネル」
>と書けば、TOPPERS/SMPのことと理解されるのに違いないこと
>>ですね。
>ダウト
じゃあ、それとは限らないという意見なので、誤解されてもしかたないことでもない
ということなんかな。
まぁ誤解を与えたわけだし、あやまってるし、そうでもないよといわれてもどっちでもいいことなんだけどな
676(1): 元ITRON名無しさん ◆4WD27e3i1o 2011/08/21(日) 00:17:10.68 AAS
>>667
で,割と本質なFMPでの実装の話だっけね.
これは別にJSP/ASPの割込み禁止区間を問題視して割込みを開けているわけではないよね.
プロセッサ内排他に比べてプロセッサ間排他の時間があまりにも読めないので,仕方なく開けているのではないかな.
もし,JSP/ASPの割込み禁止区間の長さがこの実装の理由なら,whileループでぐるぐる回る[i]set_flg のほうは更に頑張るはずだよね.(あとはソースコード読みなおしてみて)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 1.398s*