送信バッファというひとつの資源をコンソール・ドライバ・スレッドと割込み処理という異なるコンテキストから操作していることで送信バッファについて「排他処理」を考える必要があります。

資源を操作する前に「ロック処理」を行って、他のスレッドがその資源を操作する際にはロックが解除されるまでスリープ状態に入って待ち合わせるという方法があります。

このような動作を「スレッド間で同期を取る」というようにいいます。

ロックとロック解除、ロック中の待ち合わせを行うようなサービスをシステム・コールとしてOSに実装する必要があります。

このためのOSの機能は「ミューテックス」と呼ばれます。さらにミューテックスを拡張し、資源を同時操作でききるユーザ数を指定できるようにしたものを「セマフォ」と呼びます。

「ミューテックス」は上限1の「セマフォ」です。