ソフトウェアトランザクショナルメモリとは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > その他コンピュータ製品 > 排他制御 > ソフトウェアトランザクショナルメモリの意味・解説 

ソフトウェアトランザクショナルメモリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/02/19 19:55 UTC 版)

計算機科学において、ソフトウェアトランザクショナルメモリ: software transactional memory, STM)は、データベーストランザクションに似た並行性制御機構であり、並列計算を行う際の共有メモリへのアクセス法である。この機構はロックベースの同期を用いた並行性制御の代替手段として機能し、ノンブロッキングな方法で実装される物もある。ここでいうトランザクションとは、共有メモリに対する一連の読み出しと書き込みを実行するコードを意味する。論理的にはこれらの読み出しと書き込みは、時間的なある一点で行われ、他のトランザクションからはその間の状態は見えない。トランザクションを行うためにハードウェアにサポートさせるアイデア(ハードウェアトランザクショナルメモリ)は、1986年に Tom Knight により論文と特許として出された。そのアイデアを普及させたのが Maurice Herlihy と J.Eliot B. Moss である。1995年、Nir Shavit と Dan Touitou がこのアイデアをソフトウェアのみで行うトランザクショナルメモリ (STM) に拡張した。STM は近年非常に研究が進み、実用的な実装も進展している。




「ソフトウェアトランザクショナルメモリ」の続きの解説一覧

ソフトウェアトランザクショナルメモリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/26 23:32 UTC 版)

Clojure」の記事における「ソフトウェアトランザクショナルメモリ」の解説

それぞれに10個の値の入った長さ100配列(vector)があり、10×100=1,000個の異な連続した数が格納されている。これら100個のvector16個のスレッド共有する。各スレッドは、ランダムに2つvector選びそれぞれの配列ランダムな位置決めて二つ配列要素内容交換する、という作業Clojure言語のソフトウェアトランザクショナルメモリを使って行う。この作業300,000繰り返しても、最初に格納されていた1,000個の数はどれひとつとして失われるとがない。 (defn run [nvecs nitems nthreads niters] (let [vec-refs (vec (map (comp ref vec) (partition nitems (range (* nvecs nitems))))) swap #(let [v1 (rand-int nvecs) v2 (rand-int nvecs) i1 (rand-int nitems) i2 (rand-int nitems)] (dosync (let [temp (nth @(vec-refs v1) i1)] (alter (vec-refs v1) assoc i1 (nth @(vec-refs v2) i2)) (alter (vec-refs v2) assoc i2 temp)))) report #(do (prn (map deref vec-refs)) (println "Distinct:" (count (distinct (apply concat (map deref vec-refs))))))] (report) (dorun (apply pcalls (repeat nthreads #(dotimes [_ niters] (swap))))) (report)))(run 100 10 16 300000)

※この「ソフトウェアトランザクショナルメモリ」の解説は、「Clojure」の解説の一部です。
「ソフトウェアトランザクショナルメモリ」を含む「Clojure」の記事については、「Clojure」の概要を参照ください。

ウィキペディア小見出し辞書の「ソフトウェアトランザクショナルメモリ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ソフトウェアトランザクショナルメモリ」の関連用語

ソフトウェアトランザクショナルメモリのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ソフトウェアトランザクショナルメモリのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのソフトウェアトランザクショナルメモリ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのClojure (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS