Changeset 315 for rubycfg_asp/trunk/asp_dcre/test/perf4.c
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/test/perf4.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 54 39 55 40 /* 56 * ã«ã¼ãã«æ§è½è©ä¾¡ããã°ã©ã(4)41 * カーネル性能評価プログラム(4) 57 42 * 58 * act_tsk ï¼iact_tskã®å¦çæéã¨ã¿ã¹ã¯åæãæéãè¨æ¸¬ããããã®ããã°59 * ã©ã ï¼ä»¥ä¸ã®3ã¤ã®æéã測å®ããï¼43 * act_tsk,iact_tskの処理時間とタスク切換え時間を計測するためのプログ 44 * ラム.以下の3つの時間を測定する. 60 45 * 61 * (1) ã¿ã¹ã¯åæããèµ·ãããªãact_tskã®å¦çæéï¼èªã¿ã¹ã¯ãããåªå 62 度 63 * ã®ä½ãã¿ã¹ã¯ã«å¯¾ãã¦act_tskãçºè¡ãï¼ä¼æ¢ç¶æ 64 ããå®è¡ã§ããç¶æ 65 66 * ã«é·ç§»ãããå¦çã®æéï¼ 46 * (1) タスク切換えを起こさないact_tskの処理時間.自タスクよりも優先度 47 * の低いタスクに対してact_tskを発行し,休止状態から実行できる状態 48 * に遷移させる処理の時間. 67 49 * 68 * (2) ã¿ã¹ã¯åæããèµ·ããact_tskã®å¦çæéï¼èªã¿ã¹ã¯ãããåªå 69 度ã®é« 70 * ãã¿ã¹ã¯ã«å¯¾ãã¦act_tskãçºè¡ãï¼ä¼æ¢ç¶æ 71 ããå®è¡ã§ããç¶æ 72 ã«é· 73 * 移ããï¼ã¿ã¹ã¯åæããèµ·ããã¦ï¼é«ãåªå 74 度ã®ã¿ã¹ã¯ã®å®è¡ãå§ã¾ 75 * ãã¾ã§ã®æéï¼ 50 * (2) タスク切換えを起こすact_tskの処理時間.自タスクよりも優先度の高 51 * いタスクに対してact_tskを発行し,休止状態から実行できる状態に遷 52 * 移させ,タスク切換えを起こして,高い優先度のタスクの実行が始ま 53 * るまでの時間. 76 54 * 77 * (3) ã¿ã¹ã¯åæããèµ·ããiact_tskã®å¦çæéï¼å¨æãã³ãã©ããï¼å®è¡ 78 * ç¶æ 79 ã®ã¿ã¹ã¯ãããé«ãåªå 80 度ã®ã¿ã¹ã¯ã«å¯¾ãã¦act_tskãçºè¡ãï¼ä¼ 81 * æ¢ç¶æ 82 ããå®è¡ã§ããç¶æ 83 ã«é·ç§»ããããã¨ã«å¨æãã³ãã©ãããªã¿ã¼ 84 * ã³ãï¼ã¿ã¹ã¯åæããèµ·ããã¦ï¼é«ãåªå 85 度ã®ã¿ã¹ã¯ã®å®è¡ãå§ã¾ã 86 * ã¾ã§ã®æéï¼ 55 * (3) タスク切換えを起こすiact_tskの処理時間.周期ハンドラから,実行 56 * 状態のタスクよりも高い優先度のタスクに対してact_tskを発行し,休 57 * 止状態から実行できる状態に遷移させたあとに周期ハンドラからリター 58 * ンし,タスク切換えを起こして,高い優先度のタスクの実行が始まる 59 * までの時間. 87 60 */ 88 61 … … 95 68 96 69 /* 97 * è¨æ¸¬åæ°ã¨å®è¡æéåå¸ãè¨é²ããæ大æé70 * 計測回数と実行時間分布を記録する最大時間 98 71 */ 99 #define NO_MEASURE 10000U /* è¨æ¸¬åæ°*/100 #define MAX_TIME 1000U /* å®è¡æéåå¸ãè¨é²ããæ大æé*/72 #define NO_MEASURE 10000U /* 計測回数 */ 73 #define MAX_TIME 1000U /* 実行時間分布を記録する最大時間 */ 101 74 102 75 /* 103 * å®è¡æéåå¸ãè¨é²ããã¡ã¢ãªé å76 * 実行時間分布を記録するメモリ領域 104 77 */ 105 78 static uint_t histarea1[MAX_TIME + 1]; … … 108 81 109 82 /* 110 * è¨æ¸¬ã¿ã¹ã¯1ï¼é«åªå 111 åº¦ï¼ 83 * 計測タスク1(高優先度) 112 84 */ 113 85 void task1(intptr_t exinf) … … 118 90 119 91 /* 120 * è¨æ¸¬ã¿ã¹ã¯2ã¨ã¡ã¤ã³ã¿ã¹ã¯ã®å 121 ±æå¤æ° 92 * 計測タスク2とメインタスクの共有変数 122 93 */ 123 94 volatile uint_t task2_count; 124 95 125 96 /* 126 * è¨æ¸¬ã¿ã¹ã¯2ï¼é«åªå 127 åº¦ï¼ 97 * 計測タスク2(高優先度) 128 98 */ 129 99 void task2(intptr_t exinf) … … 135 105 136 106 /* 137 * è¨æ¸¬ã¿ã¹ã¯3ï¼ä½åªå 138 åº¦ï¼ 107 * 計測タスク3(低優先度) 139 108 */ 140 109 void task3(intptr_t exinf) … … 144 113 145 114 /* 146 * è¨æ¸¬ã¿ã¹ã¯4ï¼æä½åªå 147 åº¦ï¼ 115 * 計測タスク4(最低優先度) 148 116 */ 149 117 void task4(intptr_t exinf) … … 155 123 156 124 /* 157 * å¨æãã³ãã©125 * 周期ハンドラ 158 126 */ 159 127 void cyclic_handler(intptr_t exinf) … … 164 132 165 133 /* 166 * ã¡ã¤ã³ã¿ã¹ã¯ï¼ä¸åªå 167 åº¦ï¼ 134 * メインタスク(中優先度) 168 135 */ 169 136 void main_task(intptr_t exinf) … … 178 145 179 146 /* 180 * ã¿ã¹ã¯åæããèµ·ãããªãact_tskã®å¦çæéã®æ¸¬å®147 * タスク切換えを起こさないact_tskの処理時間の測定 181 148 */ 182 149 for (i = 0; i < NO_MEASURE; i++) { … … 188 155 189 156 /* 190 * ã¿ã¹ã¯åæããèµ·ããact_tskã®å¦çæéã®æ¸¬å®157 * タスク切換えを起こすact_tskの処理時間の測定 191 158 */ 192 159 for (i = 0; i < NO_MEASURE; i++) { … … 196 163 197 164 /* 198 * ã¿ã¹ã¯åæããèµ·ããiact_tskã®å¦çæéã®æ¸¬å®ï¼æ¸¬å®åæ°ã¯10åã®1ï¼165 * タスク切換えを起こすiact_tskの処理時間の測定(測定回数は10分の1) 199 166 */ 200 167 task2_count = 0; -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.