問題タブ [round-robin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - SQL 2 つのテーブル間のすべての可能なラウンド ロビンの組み合わせ
指定されたテーブル:
Name はすべての Person に対して一意です
可能なすべての n!/((n-2)!2!) ラウンド ロビンの組み合わせを生成できる SQL クエリはどれですか?
Person のカーディナリティは常に 4 に等しいと想定されています
人物の例 = {'Anna','Jerome','Patrick','Michael')
出力:
どんな助けでも大歓迎です。ありがとう!
これが私の答えです(私はOracle SQLを使用しました):
java - リンク リストを使用したラウンド ロビン スケジューラ
非常に単純な OS シミュレーターを作成しようとしていますが、ラウンド ロビン アルゴリズムを機能させるのに苦労しています。基本的に私がやろうとしているのは、プロセスのバースト値を格納する循環リンク リストを作成することです。現在、ヌルポインタ例外が発生しています。リンクされたリストを使用してからしばらく経ちましたので、私のコードに耐えてください:
リンクされたリストを正しく使用していますか? どんな助けでも大歓迎です。編集: System.out.println(process.getFirst()); を入れました。ある種のスタック トレースを取得するための最初の for ループの後、これが私の出力です。
6 5 4 4 3 2 10 9 8 7 6 5 3 2 1 7 6 5 スレッド「メイン」での例外 java.util.NoSuchElementException 4 3 2 1 4 3 1 java.util.LinkedList.getFirst(LinkedList.java:242 ) 2 1 OsSimulator.RR3(OsSimulator.java:61) で OsSimulator.main(OsSimulator.java:79) Java 結果: 1
入力したバースト時間は 6,4,10,7 だったので、正しい軌道に乗っているように見えますが、この行でエラーが発生します
そして今、そのような要素の例外はありません。
c - ラウンドロビン時間スケジューリングのタイムスライス
ラウンドロビンスケジューラのタイムスライスが非常に大きい(たとえば大きすぎる)場合、オペレーティングシステムでどのようなパフォーマンス効果を期待する必要がありますか?
私の唯一の考えは、多くの時間を必要とするプロセスにはメリットがありますが、ほとんどのプロセスはわずかな時間を使用するため、すべての小さなプロセスの完了に遅延が発生するということですか?
例:タイムスライス50、プロセスP1 = 400、P2 = 10、P3 = 150、P4 = 20、P5 = 10、P6 = 10
これは、タイムスライスが小さすぎるか大きすぎる限り、皆さんが共有できるものがあるかどうか疑問に思っている私の最善の推測です。
c# - 一般的な c# ラウンド ロビン (パーティション分割/ソート) キュー
多くの場合、1 人のユーザーがキューをブロックできず、キュー内のアイテムを特定の順序で処理する必要があるアイテムのキューを処理する必要があります。これを行うクラスを頻繁に作成しますが、一般的なバージョンが必要だと思いましたが、見つかりません。
だから私は、タイプ、パーティションのセレクター、およびオブジェクトをキューに追加できるように並べ替えるセレクターを指定できるキュークラスを探しています。オブジェクトを元に戻すと、最初のオブジェクトを取得します私の順序指定子によって順序付けられた次のパーティション。
たとえば、キューの分割方法と並べ替え方法を指定して、次のように呼び出します。
多くのメッセージを追加した後Parallel.ForEach
、キュー内のアイテムを処理しSendDate
、次のUser
. そうすれば、1 人のユーザーが遅い場合、そのユーザーは 1 つのスレッドしか取得しないため、アイテムがキューをブロックすることはありませんが、ユーザーが 1 人しかいない場合は、そのユーザーが唯一のパーティションであるため、すべてのスレッドを取得します。
私はいろいろ調べましたが、これについて C# で適切な一般的な実装を見つけることができませんでした。何か案は?
algorithm - ラウンド ロビン (RR) と加重 (WRR) の Big-O
私は単純な負荷分散サービスを実装しているので、Big-O は将来のパフォーマンスとスケーラビリティの重要な要素になると思います。しかし、両方のアルゴリズム ( WRRとRR )の big-O に関する参照は見つかりませんでした。
両方計算してみました。
(計算が間違っている可能性があることを警告しますが、正しい答えが得られたらすぐに投稿を編集します)
n-> サービス提供ノード数 (および重み)
z-> 待機/未完了タスク数
WRR の場合: O(n n z)
RR の場合: O(z^2)
したがって、本当の問題は、私の計算が正しいかどうかですが、最も重要なのは、(実行中の各ノードに対して) 1 秒あたり数千の送信されたタスクを継続的に負荷分散した場合に、どのアルゴリズムが最も速く実行されるかということです。
いくつかの参考資料:
乾杯!
c - ラウンド ロビン スケジューリング プログラム
私はラウンド ロビン スケジューリング プログラムに取り組んでいます。私の入力は次のとおりです。
タイムスライスは3台!私の出力は次のとおりです。
しかし、プロセス 1、4、および 5 で正しい結果 (WT と FT) が得られません。これが私のコードです。修正して上記の結果を得るのを手伝ってもらえますか?
ありがとうございました
python - Python加重ランダム
20分の1がAを取得し、20分の1がBを取得し、残りがCになるように、加重ラウンドロビンに基づいて異なる値を返す必要があります。
それで:
動作しているように見える基本バージョンは次のとおりです。
このアルゴリズムは正しいですか?もしそうなら、それは改善できますか?
cpu-usage - CPU使用率を計算するこの式はどのように機能しますか?
私はこの質問をされました
10個のI/0バウンドタスクと1個のCpUバウンドタスクを実行しているシステムについて考えてみます。I / Oバウンドタスクが発行され、CPUコンピューティングのミリ秒ごとに1回I / O操作が行われ、各I/O操作が完了するまでに10ミリ秒かかると想定します。また、コンテキスト切り替えのオーバーヘッドが.1ミリ秒であり、すべてのプロセスが長時間実行されるタスクであると想定します。次の場合のラウンドロビンスケジューラのCPU使用率を説明します。
a。タイムクォンタムは1ミリ秒です
b。タイムクォンタムは10ミリ秒です
そして私はそれに対する答えを見つけました
タイムクォンタムは1ミリ秒です。スケジュールされているプロセスに関係なく、スケジューラーはすべてのコンテキストスイッチに対して0.1ミリ秒のコンテキスト切り替えコストを負担します。これにより、CPU使用率は1 / 1.1 * 100 = 91%になります。
タイムクォンタムは10ミリ秒です。I/Oバウンドタスクでは、タイムクォンタムのわずか1ミリ秒を使用した後、コンテキストスイッチが発生します。したがって、すべてのプロセスを循環するのに必要な時間は10 * 1.1 + 10.1です(各I / Oバウンドタスクは1ミリ秒実行されてからコンテキストスイッチタスクが発生しますが、CPUバウンドタスクはコンテキストが発生する前に10ミリ秒実行されます)スイッチ)。したがって、CPU使用率は20 / 21.1 * 100 = 94%です。
私の唯一の質問は、この人がCPU使用率の式をどのように導き出しているのですか?20 / 21.1 * 100 = 94%、1 / 1.1 * 100 = 91%という数字がどこにあるのか理解できないようです。
scheduled-tasks - 到着時間によるラウンドロビン スケジューリング
そのため、授業中、私の教授はラウンド ロビン スケジューリングについて検討していました。次の状況を考慮してください。
私の教授は結果を次のように書き留めました。
が 1 バースト分処理されている場合があり0-1
ます。A
の時点1-2
で、A
は別のバーストの処理中です。時間2-3
B
はバーストなどのために処理されています。
私が混乱しているのは時々6-8
です。B
時間から再処理され5-6
ます。それからC
時間から6-7
、そしてC
再び時間から7-8
。代わりにこれではいけません: