甲府方重信Blog

...Shigenobu Koufugatas Blog

  • Increase font size
  • Default font size
  • Decrease font size
Error
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
Home 業務日誌 Adaプログラミング Adaチュートリアル セクション13.3 - Protected型

Adaチュートリアル セクション13.3 - Protected型

E-mail Print PDF

セクション 13.3 - Protected型

Protected型は、複数のタスクが1つのデータにアクセスするときにデータの一貫性の保護を提供するための受身のデータオブジェクトです。 Protected型は、1995年に付け加えられたのですが、非常に有効です。 Protected型は、「セマフォ」あるいは「モニター」のより先進的な形式であると考えることが出来ます。

 

 

Protected型は、開発者によって定義された保護された一連の操作を通じてのみタスクがアクセスすることが出来るデータを含む事が出来ます。三種類の保護された操作が用意されています。

  1. Protected関数、これは内部データに対するリードオンリー・アクセスを提供します。複数のタスクが同時に、Protected関数を呼び出すかもしれません。
  2. Protectedプロシージャー、これは内部データに対する排他的なリードライト・アクセスを提供します。あるタスクがProtectedなプロシージャーを実行している時、他のタスクはこの保護された型を中断することが出来ません。
  3. Protectedエントリー、これは、Protectedプロシージャーにバリアーを追加したようなものです。バリアーは、呼び出し元が先に進む前に、trueとならなければならないような、ある論理表現です。このバリアーは、通常、保護された型による保護されたある内部データの値に依存するようになっています。呼び出し元がリクエストを発行した時、もしこのバリアーがtrueではなければ、 呼び出し元はバリアーがtrueになるまでの間、待ち行列に入れられ待たされます。

「フル・コンテキスト・スイッチ」と呼ばれるオーバーヘッドが高い操作は、Protected型の実装には通常必要ないので、Protected型は非常に効率的になります。 Protected型は、しばしば割り込みの停止、priority ceiling lockingもしくは、スピン・ロックといったテクニックを使用して実装されます。実際、Protected型はしばしば、セマフォ・ディレクトリを利用するよりも効率的なことがあります。これはちょっとびっくりするような事です。もしプログラマーがなぜProtected型がそこまで効率的なのか興味がある場合は、次のページをご覧ください。 Ada Rationale (Part 2, section 9.1.3) しかしながら、これはまた、全ての保護された操作が、短時間かつ高速であるべきということを意味します。重要な処理は、どか別の場所で行われるべきということです。保護された操作は、一般的に、値をインクリメントさせたり、デクリメントさせるような操作であるとか、フラグのセットであるとか、アクセス値の設定であるとか、そのような簡単な操作であるべきです。 長い操作は、システムのレイテンシーの最高値を増加させるかもしれません。 (この時間は、システムが新しい状況に応答するためにかかる時間を指しています), そのため、多くのシステムにおいては、よいことではありません。

Protected型は、単一のインスタンスとして作成することが出来ます。 (例、単一のProtected変数) もしくは、フルのAda型として。 後者として、プログラマーは通常の型で行えるようなことは何でも出来ます。レコードあるいは、配列にそれらをおくことを含めて。

出典: http://www.adahome.com/Tutorials/Lovelace/s13s3.htm

Last Updated on Friday, 01 June 2012 18:21  

ニュース速報

リナックスアカデミーから受託している某教育案件の件で、(株)びぎねっとで、打合せを行った

弊社で受けている部分も若干の影響があったので、資料を修正する必要がある

現在、作業中の資料1と、今後作成する資料2

これらに基づき、資料3と、資料4を作成する

講義ガイドについては、別途作成の予定(資料5、及び資料6)