$ 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 |