「OS自作ゼミ」の応募課題は、合計3問で構成されています。回答は、ソースコードや出典情報などを除いた本文が4096字以下になることを目指してください。これは厳密な制限ではありませんが、簡潔で明瞭な回答は、良質なソフトウェアと同様に高く評価されるでしょう。 基本的に応募は加点方式で評価します。ただし、回答作成にあたり文献やWebページを参考にした場合は、適切に出典や引用元を明記してください。 ## 問1 OS自作ゼミで挑戦してみたいことを教えてください。また、それを実現するための方針を具体的に説明してください。 トピックの例としては、コンテキストスイッチやページング、ネットワーク通信の実装、何らかのデバイスドライバの実装などが挙げられますが、OS自作の範疇に含まれるものであれば、どのようなものでも構いません。具体的に回答できればできるほど、OS自作ゼミで過ごす時間が有意義になることでしょう。 ## 問2 有限な資源を管理して適切に分配することは、OSの主要な役割のひとつです。そのなかでもメモリは、CPUが扱うデータを保持しておくという重要な役割を果たしています。 ここに、4GBのメモリを有するコンピューターがあると仮定します。アプリケーションAは1GBのメモリを、アプリケーションBは2GBのメモリを、アプリケーションCは3GBのメモリを要求しているものとします。すべてのアプリケーションを同時に動かすためには、1+2+3=6GBのメモリが必要ですが、このコンピューターには4GBのメモリしかありません。 このような状況に置かれたとき、OSはアプリケーションの要求に対してどのように対応するのが適切でしょうか?あなたの考えを聞かせてください。 ヒント:現実に使われているOSでは、このような場合にどのような挙動をするでしょうか?もし良いアイディアが思いつかない場合は、調べてみると面白い発見があるかもしれません。もちろん、調べたことを引用する場合は、出典の明記をお忘れなく。 ## 問3 どのようなプログラミング言語でも構わないので、OSによって強制終了されてしまうプログラムを作成して、そのソースコードを添付してください。そして、そのプログラムを強制終了することがなぜ許されるのか、そしてOSはどのような流れでそのプログラムを強制終了することになるのか、OSの視点に立って説明してください。