2011-12-26 10 views
0

スレッドを使用して「3レベルスケジューリング」を実装しようとしています。要するに、私は3つのレベルのスケジューリングのシミュレーションをしたいと思います。プログラミング言語は重要ではなく、どんな提案も歓迎されます。3レベルスケジューリングスレッドの実装

+0

3レベルスケジューリングの実装で直面している問題のいくつかを教えてください。どのようなシミュレーションをしたいですか?あなたが良い答えを受け取ることを望むならば、あなたの質問を投稿するのに少しの努力を示してください! – Matteo

+0

実際に私の学校のプロジェクトですが、まだ理解できません。インターネットには十分な資料がないので、プロジェクトの実装段階を開始することさえできませんでした。 "プロセス1がブロックされていて、プロセス2が実行されています"などの出力を持つ非常に単純なシミュレーションになります。3レベルスケジューリングの実装に関連する情報は見つかりませんでした。さらに、3レベルスケジューリングの擬似コードをカバーする情報はありません。それは私があなたの助けを求めている理由です。ありがとう! – alprncekol

答えて

0

I/Oコール中の典型的なタイマー入力または割り込みによって、カーネル内部 - スレッドまたはプロセス - が中断されます。これにより、制御をカーネルのスケジューラに戻すことができます。

切り替えスレッドは、次に実行可能なスレッドを決定するスケジューラによって行われます。今

、あなたはほとんどこのをシミュレートしたい場合 - あなたはスレッドがある有限のタスクを実行し、いくつかのセマフォ/ミューテックスに対して待っている自分自身をフックアップしておく必要があります。これらのミューテックス/セマフォを制御下に置く何らかの種類のマスタスレッドがあります。マスタスレッドは、何らかの方法で目的のアルゴリズムを実行して、アクセスを許可するスレッドを決定します。

唯一の違いは、マスタスレッド自体がカーネル内にないユーザ空間にあるため、実際に実行中のスレッドを覆すことはできません。タスクの割り当てを効率的に(よく振る舞うスレッド間で)どれだけ効果的に行うかのシミュレーションしか制御できません。

これは、問題の考え方に関する非常に基本的な最初のステップです。件名に関する詳しい情報を追加してください。あなたの答えを進化させるためにあなたの質問を修正してください。

関連する問題