古典タスクシステムの

メリット:

多数のFSMを逐次実行するための一手段になる

簡単な古典TS(>>2の「最も基本的なTCBの構造」だけで済むTS)ならコードはシンプル

MVCのMとCが分離されているため、タスクシステム(C)を実装すれば、
後は動的に実行される関数(M)の実装に専念できる


デメリット:

逐次実行するFSMの数が少ないならわざわざ使う必要が無い

各TCBのワーク領域割当に苦労する
ワーク領域を動的確保にする場合はガベージコレクトの問題が出る

簡単な古典TSには、TCB間の情報・イベント伝達や、親子関係を持たせる機能などが無い
これらを実装しようとすると、気持ち悪いコードになる可能性が高い
(TCBの逐次実行がウリなのに実行順序を無視したり、グローバル変数にアクセスしたり)
設計・実装にプログラマの良し悪しが出る

TCBから呼ぶ関数内でMVCのMとVを分離せず書くと、今時のプログラミングでは混乱しやすい
(特に、直接API(DirectX等)や、APIが比較的剥き出しになっているラッパーライブラリを使う場合)