汎用OSのように、タスクの消費時間により優先度を変化させることは通常おこなわない。ただし、時間制約のない低優先度のタスクを複数同居させる場合など、それらのタスクでは優先度を共通とし、自発的にCPUを手放す協調的マルチタスクや、タイマ割込みにより順番に切り替えるタイムシェアリング的なスケジューリングを同居させることもある。
実行可能リスト上のタスク数が少ないなら、単純な双方向線形リストが最適である。状況によって実行可能タスク数が増えるなら、優先度に従ってソートされたリストを使用し、最高優先度のタスクを探すためにリスト全体を検索する必要がないようにすべきである。そうすると、あるタスクを実行可能タスクのリストに追加する際にリスト全体を探索して、そのタスクより低い優先度のタスクを見つけ、その前の位置にタスクを追加（挿入）する必要が生じる。この探索期間中ずっとプリエンプションを禁止してはいけない。探索中の真にクリティカルな期間だけプリエンプションを禁止することで、例えば探索中に割り込みが発生してより高優先度のタスクが実行可能となったら、現に実行可能リストに挿入しようとしている低優先度タスクよりも先に実行可能リストに挿入して実行するようにしなければならない。
タスク間通信とリソース共有.
シングルプロセッサシステムでは、アプリケーションをカーネルモードで実行して割り込みマスクの制御も可能なら、共有リソースへの同時アクセスを防ぐ方法としてはそれが最も効率的（オーバヘッドが小さい）である。割り込みがマスクされていると、実行中タスクはCPUを独占することができ、他のタスクや割り込みが制御を奪うことはできない。そのためクリティカルセクションは効率的に保護される。タスクがクリティカルセクションを抜けたとき、割り込みマスクが解除され、保留されていた割り込みがあれば、その処理が実行される。割り込みマスクは、クリティカルセクションの期間が割り込み処理遅延時間の要求指標を守る範囲内でなければならない。一般にこの方法はクリティカルセクションがソースコードでほんの数行でループが含まれていない場合のみ適用される。ハードウェアのビットマップレジスタを複数のタスクが操作する場合、この方法による排他が理想的である。
メモリアロケーション.