タグ付けされた質問 「process-scheduling」

6
要素の繰り返しなしでペアのセットから組み合わせを生成する
ペアのセットがあります。各ペアの形式は(x、y)で、x、yは範囲の整数に属します[0,n)。 したがって、nが4の場合、次のペアがあります。 (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 私はすでにペアを持っています。次に、n/2整数が繰り返されないようにペアを使用して組み合わせを作成する必要があります(つまり、各整数は最終的な組み合わせで少なくとも1回出現します)。理解を深めるための正しい組み合わせと間違った組み合わせの例を次に示します 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] ペアができたら、可能性のあるすべての組み合わせを生成する方法を誰かが提案できますか?

4
協調スケジューリングは、I / O操作を実行するときにプロセスを一時停止しますか?
多くのオペレーティングシステムのリファレンスでは、協調的な(プリエンプティブとは対照的な)マルチタスクでは、プロセスがCPUを明示的に自発的に中断するまで保持します。実行中のプロセスがすぐに満たされないI / O要求を実行する(たとえば、まだ利用できないキーストロークを要求する)場合、スケジューラはそれを中断しますか、それとも要求が処理されるまでCPUを本当に保持しますか? [「I / Oのブロック」を「すぐに満たすことができないI / O要求を実行する」に置き換えるように編集しました。]

3
「ソフト」リアルタイムオペレーティングシステムが実際に提供する保証
「ハード」リアルタイムオペレーティングシステムとは何かを知っていると思います。これは、アプリケーションプログラマとの契約を提供するスケジューラを備えたオペレーティングシステムです。アプリケーションは、各リソース割り当て要求に期限を提供します。 場合は期限の要求がある実行可能な、スケジューラは、各リソースが締め切り前に要求しているアプリケーションに割り当てられることを保証します。この保証は、アプリケーションプログラマが特定のリクエストの最大レイテンシと最小スループットについて推論できるようにするのに十分です。 「ソフト」リアルタイムシステムについて私が見つけたすべての定義は、私には無意味に思えます。 ウィキペディアによると 結果の有用性は期限後に低下し、システムのサービス品質が低下します。 うーん。はい。その基準では、Windows 95はソフトリアルタイムシステムであり、3BSDもLinuxもそうでした。ウィキペディアは素晴らしい情報源ではありませんが、Googleの次のヒット数はそれほど良くありません。例えばhttp://users.ece.cmu.edu/~koopman/des_s99/real_time/は言います ソフトリアルタイムシステムでは、まれにしか発生しないピーク負荷での動作の低下は許容されます。 それは契約ではありません、それは何も言うことのない派手な方法です。 実際のオペレーティングシステムによって提供される実際のソフトリアルタイムの保証/契約の例は何ですか? 私はフォームの答えを探しています: (OS名)でプログラマーが(プログラマーが何をする必要があるか)を行うと、オペレーティングシステムは(システム保証を)保証します。

1
2レベルのスケジューラはスワッピングの管理にのみ役立つのですか?
2レベルのスケジューリングは、システムがRAMに収まらないより多くのプロセスを実行している場合に役立ちます。低レベルのスケジューラは常駐プロセスを切り替え、高レベルのスケジューラはプロセスのグループを入れ替えます。 Andrew Tanenbaumのオペレーティングシステム:設計と実装、第1版では、2レベルのスケジューリングについて他に言及していません。演習2.22では、2レベルのスケジューリングを使用する理由を尋ねています。それが読解チェックとしてあるのか、それとも本文に明記されていない他の理由があるのか​​はわかりません。 2レベルのスケジューリングは、メモリ以外のリソースの競合を管理するのに役立ちますか?

3
マルチプログラミングとマルチタスクの違いは何ですか
マルチプログラミングとマルチタスクを明確に区別するのは難しいと感じています。 私の主な情報源はWikipediaでしたが、WPの記事は、評判の低い情報源(大学の教授など)とは少し矛盾しているようです。 私がWPを読んだとき、マルチプログラミングは、プロセスがI / Oを待機しているときにコンテキストを切り替えることにより、CPUスループットを向上させる基本的な方法です。 マルチプログラミングでは、プログラムがタイムリーに実行されるという保証はありません。実際、最初のプログラムは、周辺機器へのアクセスを必要とせずに何時間も実行することができます。 協調時分割と同義で、協調マルチタスクは、(それは同義ではないしている)マルチプログラミング上の改良です。CPUは定期的にコンテキストを切り替えて同時実行の印象を与えますが、プロセスは引き続き生成される必要があり、設計が不十分なプログラムはシステムの残りの部分を使い果たす可能性があります。 プリエンプティブマルチタスクは、スケジューリングをより積極的に制御し、一部のプロセスを他のプロセスよりも優先させます。 この概要は正しいですか?そうでない場合は、WPが正しくないためか、WPを誤って読み取ったためですか? 一部のソースがマルチプログラミングとマルチタスクを混同しているように見えるのはなぜですか?

4
オペレーティングシステムのコンテキストで割り込みとはどういう意味ですか?
私は、夏の間、Silberschatz、Galvin Gagne(第8版)によるオペレーティングシステムコンセプトを読むことにしました。オペレーティングシステムに関連する割り込みとその役割-私を混乱させるトピックにたどり着きました。 テキストは、オペレーティングシステムが「init」などの最初のプロセスを開始し、「イベント」が発生するまで待機することを示しています。このイベントは通常、割り込みによって通知されます。また、割り込みはハードウェアまたはソフトウェアのどちらからでも発生する可能性があると述べています。これはどのように機能しますか?オペレーティングシステムは割り込みによって駆動されていますか? 私はいくつかの全体像の理解を探しています。

2
ラウンドロビンスケジューリング:プロセスを複数回リストすることを許可しますか?
ラウンドロビンスケジューラでは、プロセスリストにプロセスを複数回追加すると、優先度を高くすることができます。 これがどれほど実用的なアプローチなのかと思います。プロセスに長いタイムスライスを与える(利点:切り替え時間を短縮する)か、優先度の高いプロセスの個別のリストを維持するなど、他の手法に比べてどのような利点がありますか。特に、プロセスを複数回リストすると、公平性と反応性にどのように影響しますか? (Andrew Tanenbaumのオペレーティングシステムの演習2.16から:Design and Implementation 1st ed。)

1
スレッドはどのように異なるOSに実装されていますか?
私はこれに出くわしたRobert LoveによるLinuxカーネル開発を読んでいました Linuxは、スレッドのサポートに興味深いアプローチを採用しています。これは、スレッドと通常のプロセスを区別しません。カーネルにとって、すべてのプロセスは同じです。たまたま、リソースを共有するプロセスもあります。 OS(詳細はアスパイア)とカーネルについてはあまり知りません。そのため、上記の引用は、さまざまなOS(少なくともWindows、Linux、Unixなどの一般的なOS)でのスレッド実装について疑問を投げかけました。 誰かがOSでスレッドサポートを提供するためのさまざまな手法を説明できますか?(そしてオプションでそれらを対比する)

4
プロセススケジューリングにおける護送効果
私が護送船団の効果を理解しているように、道路システムの車両通行の状況で。動きの遅い車両グループがシステムを通過するため、コンボイの影響を直接受けていないエリアでも交通が遅くなります。 これは、CPUスケジューリングのコンテキストでどのように適用されますか?これは類似の状況ではないようです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.