前に書きました質問の答えです。間違えやご指摘ありましたら、遠慮なく怒ってください。



  1. プロセスとスレッドの違いを述べなさい。
    プロセスとは実行されたEXEのことであり、一つのプロセスには少なくとも一つのスレッドが存在する。スレッドは独自で存在することは不可能である。

  2. Windows Serviceとは何か?普通のEXEと比べてどのようなライフサイクルの違いがあるか?
    Windows Serviceは開始、一時停止、停止の状態がある。サービスが開始している状態だったら、再スタートすることができる。これは設定を変えた後、またはキャッシュなどの問題が発生したときに有効である。Windows Serviceはユーザがログインしていなくても自動的にスタートするように設定しておけばプロセスを開始してくれる。

  3. Windowsにおける一つのプロセスが処理できる最大のメモリの容量は?これはシステムに対するバーチャルメモリの最大値とは異なるか?これはシステムデザインにどのように影響するのか?
    この質問はちょっとリサーチが必要です。私には今のところよくわかりません。

  4. EXEとDLLの違いは?
    EXEにははプロセスをスタートさせるエントリーポイントがあり、独自で実行することができる。DLLはEXEのコンテキストで動作する。DLLは必ずEXEから呼び出されて初めて動作するものである。
    TaskManager.gif

  5. 厳密な型と弱い型の違いは?どちらが好ましいか?またそれはどうしてか?
    厳密な型を使用するとオブジェクトのメンバーを使用するときにキャストしなくてもすむ。つまり、Boxingと呼ばれる手法でクラスを一般的なObjectに格納しておき、それをUnboxingして元の型に変換(キャスト)するときにシステムに多少の負荷がかかる。厳密な型はそれがなくシステムにはそれほど負荷がかからない。もっと大きな利点は、実行時のエラーよりもコンパイル時のエラーにより、より多くのバグをコンパイル時に発見できるのが厳密な型の利点である。従って、厳密な型が好ましい。

  6. Windows Serverファミリーには3つのコンポーネントコンテイナーが存在するが、それらをすべてあげよ。
    COM+, .NET Remoting, IIS (?) これはとっても自信がないです。

  7. PIDとは何か?システムの問題を解決するときにどのように役立つか?
    PID = Process IDで、それぞれのプロセスを見分ける。プロセスが暴走したり、メモリーリークを起こしているときにはそれを元にプロセスをkillすることが可能である。

  8. いくつのプロセスが一つのTCP/IPのポートをリッスンできる
    一つだけ。

  9. GACとは何か?それによってどのような問題が解決されるか?
    Global Assembly Cacheの略。複数のアプリケーションで一つのDLLを共有するためのメカニズム。バージョンごとに登録できるのでDLL Hellのような事態を避けることができる。(ちなみに私はほとんどこの技術を使ったことはありません。必要性を感じない・・・)

コメント書き込み