$ make clean |




nsh> sem_test start |
nsh> sem_test foo |
nsh> sem_test bar |
nsh> sem_test add |
nsh> sem_test foo |
| タスク1(優先度=100) |
セマフォ値 |
タスク2(優先度=200) |
||
|---|---|---|---|---|
| タスク起動 |
1 |
|||
| 資源のロック(sem_wait) |
----> |
1 |
||
| ロック成功 |
<---- |
0 |
タスク起動 | |
| 0 |
<---- |
資源のロック(sem_wait) |
||
| 資源の利用 |
0 |
待たされる |
||
| 資源の利用 | 0 |
待たされる |
||
| 資源のアンロック(sem_post) | ----> | 1 |
待たされる | |
| 実行権の放棄 |
0 |
----> |
ロック成功 |
|
| 0 |
資源の利用 |
|||
| 0 |
資源の利用 |
|||
| 1 |
<---- |
資源のアンロック(sem_post) |
| タスク1(優先度=100) |
セマフォ値 |
タスク2(優先度=100) |
||
|---|---|---|---|---|
| タスク起動 |
1 |
|||
| 資源のロック(sem_wait) |
----> |
1 |
||
| ロック成功 |
<---- |
0 |
タスク起動 |
|
| 資源の利用 |
0 |
FIFOなので動けない |
||
| 資源の利用 |
0 |
FIFOなので動けない |
||
| 資源のアンロック(sem_post) |
----> |
1 |
FIFOなので動けない |
|
| 実行権の放棄 |
1 |
FIFOなので動けない | ||
| |
1 |
<---- |
資源のロック(sem_wait) | |
| 0 |
----> |
ロック成功 | ||
| |
0 |
資源の利用 |
||
| 1 |
<---- |
資源のアンロック(sem_post) |
nsh> sem_test test |