オペレーティング システム自体は、(インストールされているスペース以外に) リソースを占有しますか?

オペレーティング システム自体は、(インストールされているスペース以外に) リソースを占有しますか?

オペレーティング システムに関するコースを終えたばかりですが、オペレーティング システムの定義がまだよくわかりません。オペレーティング システム自体は CPU やメモリなどのリソースを消費しますか? たとえば、スケジューリング アルゴリズムでは、タスクを比較してどのタスクが最初に実行されるかを判断するためにある程度の処理能力が必要であり、タスクが保持されるデータ構造はスペースを消費します。

また、仮想メモリをどのように処理するかを知る行為には、リソースを消費する計算が必要ですよね?

仮に、1 つのプログラムのみがインストールされ、オペレーティング システムがインストールされていないコンピュータでそのプログラムを実行すると、同じコンピュータでオペレーティング システムがインストールされている場合よりも、プログラムの実行が速く完了することになります。これは本当でしょうか。

編集:このコースは完全にダメだったことに同意します。娯楽のために、OSの定義をここに示します。

オペレーティング システムとは何ですか? • 定義はいくつか考えられます 1. {Microsoft、Apple、Linux コミュニティ、Google} が提供するコード 2. 自分で書いたものではないが、依存しているコード 3. 特権モードで実行されるコード 4. 動作させるコード 5. クラッシュさせるコード (かなりシニカルな定義) 6. その他多数...

OS とは何か • 抽象化 – コンピュータ上で実行されるアプリケーションがコンピュータのリソースにアクセスするための適切なインターフェイスを提供する – 「適切」の定義方法に大きく依存 • さまざまな懸念に対処する方法 – 時間内のパフォーマンス – 空間内のパフォーマンス – 共有とリソース管理 – 耐障害性 – セキュリティ – 市場性

この教科書の嘲笑100 ドル以上を費やさなければならなかったこのソフトウェアでは、オペレーティング システムを「ほとんどすべてのものが依存するソフトウェア」と定義しています。これはまだ漠然としていますが、この用語は業界全体でかなり漠然とした方法で使用されています。

答え1

オペレーティング システム自体は、(インストールされているスペース以外に) リソースを占有しますか?

はい。

オペレーティング システムに関するコースを終えたばかりですが、オペレーティング システムの定義がまだよくわかりません。

低レベルでは、オペレーティング システムは他のプログラムと何ら変わりはありません。結局のところ、オペレーティング システムは CPU 命令の集まりにすぎません。唯一の違いは、OS の命令がプログラムの命令とは (多かれ少なかれ) 異なる動作を行うことです。

OSを説明する最良の方法は、メタプログラムつまり、なんかやってるこのプログラムにより、他の何かを実行するプログラム。

オペレーティング システム自体が CPU やメモリなどのリソースを消費することはありますか?

はい、もちろん。

たとえば、スケジューリング アルゴリズムでは、どのタスクが最初に実行されるかを比較するためにある程度の処理能力が必要であり、タスクが保持されるデータ構造によってスペースが占有されます。

まさにその通りです。OS の関数は CPU 命令の集まりに過ぎず、ユーザー プログラム内の関数と同様に、スペースを占有し、CPU 上で実行する必要があります。

また、仮想メモリをどのように処理するかを知る行為には、リソースを消費する計算が必要ですよね?

当然。

仮に、1 つのプログラムのみがインストールされ、オペレーティング システムがインストールされていないコンピュータでそのプログラムを実行すると、同じコンピュータでオペレーティング システムがインストールされている場合よりも、プログラムの実行が速く完了することになります。これは本当でしょうか。

わずかに。

CPUは非常に高速で、多く命令を短時間で実行します。さらに、オペレーティング システムは、可能な限り最適化されるように設計および調整されているため、CPU とメモリの使用量は最小限に抑えられています (少なくとも理論上は)。そのため、スケジューリング、メモリ管理、タスク切り替え、ハードウェア駆動などに使用するアルゴリズムは、比較的少ないリソースしか使用しません。これはタスク マネージャーで確認できます。実行中のプログラムがなく、OS が最小限に抑えられている場合、使用されるメモリは非常に少なく、CPU は「0%」で動作します。(繰り返しますが、これは理論上の話です。たとえば、Windows は最近「肥大化」しているため、もう当てはまらない可能性があります。)

答え2

オペレーティング システムに関するコースを受講したばかりなら、返金を求めるべきです。あなたの質問はあまりにもナイーブなので、宿題の問題の解答を探しているのではないとは到底信じられません。

OS の現代的な見方は、アプリケーションがメモリ、CPU、I/O デバイスなどのコンピューター上のリソースにアクセスするために使用できるサービス プロバイダーの集合体です。OS とアプリケーションの境界線が正確にどこに引かれるかは宗教的な問題です (Andrew Tanenbaum と Linus Torvalds の論争を参照)。

現代のオペレーティング システムは、分離されたマシン抽象化をアプリケーションに提供します。たとえば、他のアプリケーションは、他のアプリケーションが使用しているメモリにアクセスできません。これを安全かつ確実に行うために、抽象化を管理する重要なコードは、通常、OS カーネルと呼ばれるものに分離されます。ここでも、カーネルに配置されるものとユーザー空間の共有ライブラリとの間の境界線は議論の余地があります。

本当に、この種のことが OS コースで扱われていなかったら、一体何だったのでしょうか?

関連情報