Windowsの仕組み

  1. Windowsの仕組み


    1. windowsはなぜ動くのか

      以下テキストの概略です。テキストは基本的には問答形式になっています。メモリ管理については詳しいですが、ファイル管理や実際の操作についての説明は少ないようです。

      1章 Windowsが使われるワケ
        Windowsは使いやすい?
      2章 オペレーティング・システムとは
       「プログラムの実行のされ方」の切り口で説明しています。
      3章 Windowsとは
       主にWIndowsの歴史です
      4章 マルティタスクのふしぎ
       タスクとプロセスは同じ意味で、この本のコア部です(DLL,物理アドレス)。
      5章 マルティウインドウのふしぎ
       ウインドウの操作に関する説明(イベント、メッセージ)
      6章 ハードウエアサポート
        主に周辺装置へのOSのサポートです(P&P、WDM)
      7章 プログラム連携のふしぎ
       プロセス間の通信の説明(クリップボード、DDE)
      8章 ネットワーク連携のふしぎ
       ネットワークの基礎(IP,TCP)

      ここでは、主に4章に関して説明します。詳細はテキストを熟読してください。

  2. システムコール


    1. ライブラリとシステムコール(2章)

      ライブラリ(例:printf())を経由して、システムコールが実行される。

  3. マルティタスクのふしぎ(4章)

    1. 複数のプログラムの共存

      複数のプログラムをどのようにメモリーに配置するか?
      プログラムをリロケータブル(再配置可能)にする。
       >セグメントレジスタ、

      どのように複数のプログラムを実行するのか?
       区切りがきたらシステムコールを「発行」する
       タイマー割り込みを利用する。


      システムコールは API(Application Interface)とも呼ばれます。)

    2. メモリの保護

      メモリ保護の仕組みは?
       他のプログラムの侵略を防ぐ
       特権モードとは?

      メモリーが不足しませんか?
       仮想記憶とは
       ページング方式



    3. ライブラリの共有

      DLLとは
      DLLの仕組み
       「仲立ち関数」スタブ


  4. Windowsの高度な操作


    1. システム管理プロセス

       システムを管理するため多くのプロセスが自動的に起動され、待機しています。自動起動の有無は、コントロールパネルの「管理ツール」にある「サービス」で設定されます。


    2. Windowsの仮想記憶設定

       マイコンピュータをクリックして、システムのプロパティを出します。「詳細設定」の設定で仮想メモリのサイズや使用ドライブが指定できます。また、タスクマネージャで使用中のメモリ量を知ることができます。


  5. プログラム連携のふしぎ(7章 参考)


    1. タスク・プロセス

      プログラムとタスク・プロセスの違い
       タスクとプロセスは同じ?

    2. プロセス間通信

       そのメリットは?

      プロセス間通信の手法
       共有メモリ−、
       メッセージ行列

    3. データの受け渡し

      クリップボード
       コピー&ペースト
       その仕組み

      DDEとは
       クリップボードとの違い
       サーバーとクライアント


    4. プロセス間の同期

       待ち合わせ、
       排他、数量規制
       ミューテックス、セマフォ、イベント

    5. リソース競合と排他制御

       複数のプロセスが同じ資源(リソース;ファイル、メモリ、装置など)を必要とする場合があります。リソースが同時には利用できない場合、一方の利用が完了するまで他のプロセスの実行を中断する必要があります。たとえば、A,B 二つのプロセスが データ count を一つ増加させる場合を考えます。現在のcountの値が2とします。A,Bがこの順に実行すればcountは4になります。
       1.プロセスAがcountの値を増やすため、countの値を読む
       2.countを増加し、保存する(countは3になる)
       3.プロセスBがcountの値を増やすため、countの値を読む(3)
       4.countを増加し、保存する(countは4になる)
       しかし、1.でAが読んだ後、何らかの原因でAの処理が中断し、Bの処理が先に進行するとまずいことになります。
       1.プロセスAがcountの値を増やすため、countの値を読む(2)
       2.プロセスBがcountの値を増やすため、countの値を読む(2)
       3.プロセスBがcountを増加し、保存する(countは3になる)
       4.プロセスAがcountを増加し、保存する(countは3になる)

       問題は、プロセスAが処理を終了する前に、Bが処理を始めてしまったことにあります。このような場合、リソース count に対する排他制御が必要で、プロセスAはcountの処理をはじめる前にリソースの占有を宣言し、他のプロセスが同じリソースを利用する場合、前の利用者の利用終了を待ち合わせる必要があります。これを排他制御といい、プロセス管理の仕事の一つです。

  6. 演習・テスト


    1. 演習/課題

      リロケータブルプログラムの必要性、仕組みを説明してください。

      メモリー保護の必要性、仕組みを説明せよ

      DLLの必要性、仕組みを説明せよ

    2. 小テスト

      ■OSにおけるAPIの説明として適切なものはどれか(H18年 基本情報)

       1.アプリケーションがハードウエアを直接操作する仕組み
       2.アプリケーションからOSの機能を利用する仕組み
       3.アプリケーション間でネットワークを利用して通信する仕組み
       4.利用者の利便性をはかるため、メニュー項目を統一する仕組み

      ■タスク管理の役割として適切なものは(H20 基本情報)
       1. 補助記憶装置へのアクセス手段を装置に依存しないで提供する
       2.仮想記憶空間を提供する
       3.正確かつ効率的に装置を動作させる
       4.マルティプログラミングの制御を行い、CPUを効率的に利用する