テトリス, スレッドプール, ROS, Queue, アセンブリ
その他
bashでもなく, zshでもなく, cshでもなく, 純粋なshで動く, テトリスの公式ガイドラインにそったテトリスを作りたい.
本稿では, スレッドプールの仕組みを理解して, C++を用いて, スレッドプールを自身で実装できることを目指します. 対応環境は, C++14 からを想定しています.
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
本稿では, スレッドプールの仕組みを理解して, C++を用いて, スレッドプールを自身で実装できることを目指します. 対応環境は, C++14 からを想定しています.
ここには,ROS2に関する情報が書かれます.
豆知識
Pipenv仮想パッケージ環境上でROS2ノードを動かす.
タスクの切り替えをする際, その時のCPUの状態を保存する必要があります. このCPUの状態をコンテキストと呼びます. あるタスクから離れるときはコンテキストの保存を行い, あるタスクに復帰するときはコンテキストの復帰を行います.
ここでは, コンテキストに関する詳しい説明とコンテキストの保存と復帰の方法について説明します.
RTOSは, 組み込み系のシステムで用いられることが多いです.
一般OSと同様にタスクの切り替えを行う点は同じですが, タスクの切り替え規則に特色があります[1]. タスクの実行可能状態になるまでの時間の最悪値が保証されるように作られています.
Pipenv仮想パッケージ環境上でROS2ノードを動かす.
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
RTOSは, 組み込み系のシステムで用いられることが多いです.
一般OSと同様にタスクの切り替えを行う点は同じですが, タスクの切り替え規則に特色があります[1]. タスクの実行可能状態になるまでの時間の最悪値が保証されるように作られています.