東アジア中世の論理で並行処理の不変条件を再構築する
Reconstructing Concurrency Invariants Through Medieval East Asian Logic
宋代から元代の中国と高麗後期の東アジアには、状態機械を扱う独自の構造的枠組みが存在した。邵雍の組み合わせ論、秦九韶らの多項式行列代数、蘇頌の水運儀象台などがその例だ。これらを現代の低レベル並行プログラミングの視点から再評価すると、ポインタの可視性とヒープ資源の破棄を分離するための精密な記号言語が得られる。本稿では、共有メモリの解放をめぐる競合を古典的な手続き構文で定式化し、C11アトミック操作を用いた4つの手法(乾・坤・坎・離)を提示する。乾は正統な不変条件、坤は非対称なハンドオフ、坎は解放後使用の罠、離は無差別な消去として分析され、参照の寿命が割り当てられた記憶域の境界を超えてはならないという原則が導かれる。
乾為正法, 坤為仄法. — 乾は正統な規則であり、坤は斜めの便法である。
- jrapdx3
これは興味をそそられた。記事を入手しようとした。項目をクリックしてもサイトが取得できず、接続もできなかった。
- gg582
C11でメモリ再利用の不変条件(可視性、UAF、CAS)を古い八卦構造にマッピングするという馬鹿げたクロスオーバーを試した。驚くほどうまく1:1で対応した。パズルとコードスニペットはここに置いた。
- gg582
この投稿は、ちょっと型破りな思考実験として書いた。
アイデアは、メモリ再利用とポインタ可視性の概念(EBRやRCUで見られるもの)を取り上げ、それを中世東アジアの状態機械論理——具体的には宋元時代の構造的・マトリクス的アイデア——にマッピングすることだった。
実際のコードに根ざすために、C11アトミックを使った小さな並行デアロケーションパズルを設定し、4つの古典的な八卦パターン(乾、坤、坎、離)を現実世界のメモリ不変条件に直接マッピングした:
* 解放前にCASで可視性を取り消す(正統な安全な再利用)
* 非対称なパイプラインハンドオフ
* 早すぎる解放による古典的なuse-after-freeバグ
* 盲目的な`memset`ゼロ埋めによる競合状態
これは、古代の構造的枠組みが、現代の低レベルシステムプログラミングに興味深い象徴的語彙を提供できるかどうかを、哲学的な空虚にせずに見てみる試みだ。ここにいる何人かはこのクロスオーバーを面白いと思うかもしれない。