In re-designing the core part of operating systems to support dynamic replacement awareness, we have to make sure that the device drivers are executed safely. Also, we should provide appropriate programming model for dynamic replacement-aware device drivers, to help system programmers struggle against the increased difficulties.
This paper proposes the following two items, to solve the above problems:
The mechanism for implementing device drivers as user program, e.g., a task in Mach, have been discussed in the previous researches. However, these researches ignored the timing constraints that the device drivers have, and their implementation could not avoid the chance of system hang-up when the device drivers are removed. This research successfully avoids these vulnerabilities, and makes success to provide the most appropriate programming environment for device driver programmers. Based on these proposals, the author designs and implements the system service layers for device drivers, and the device drivers on the \Apertos{} operating system. The evaluation has shown that the execution safeness of the device drivers can be made possible with practical execution time.
Though the paper discussess mainly on device drivers, proposals are applicable to design and implementation of various part of the core part of operating systems.
ユーザアプリケーションやファイルシステム、ウィンドウシステムなどの システム上位にあるプログラムは、全てその下にある デバイスドライバなどのオペレーティングシステム基本部に 依存して実行を行っている。 このため、デバイスドライバを動的交換にする際には、 デバイスドライバの実行時安全性を保証しなければならない。 また、システムプログラマの負担を軽減するために、 プログラマに対してプログラミングが容易となるような プログラミングモデルを提供する必要がある。 これまでの研究例では、デバイスドライバをユーザプログラムと 同一のシステムサービス上で取り扱うことが提案されていた。 しかし、それらの実現方法ではデバイスドライバの実行時間制約は保持されず、 デバイスドライバの除去時などにシステム全体が停止する危険性があった。 本論文では以下の2つを提案することで、上記の問題点を解決する:
以上の提案に基づき、\Apertos{}オペレーティングシステム上で デバイスドライバのためのシステムサービス層とデバイスドライバ群を設計・実装した。 本研究の実装は、過去の研究例で実現し得なかったデバイスドライバの 実行安全性を確保しており、またその実装により 効率的な実行を実現していることが示された。
本論文では議論を具体的なものとするため デバイスドライバに関する問題について述べるが、 本論文の主張はオペレーティングシステムの核となるさまざまな部分の 設計・実装に適用可能である。