« GPD Pocketとポメラ DM200にLoeのカバーを使っています。 | トップページ | 実は持ってますNikon D850。 〜ファーストインプレッション〜 »

2018年8月17日 (金)

マルチCPU時代の頃の印象深かった思い出。

昔の話。

CPUはマルチ化され、

多CPU

での並列処理が導入された初期の時代。

私は、キャッシュの意味もわからず、

「ん?なんでデータが化けんねん?」

というミスを最初の頃はよくやらかしてました。
(キャッシュコヒーレンシのことね。)


OS(カーネル)設計においては、
並列処理を効率的に行うために
資源をできるだけ分散し、
CPU間の競合(同一資源の取り合い)が起きないようにしておりました。

ですが、
特定の処理にはなるのですが、
あるCPUがその処理を始めたら、
他のCPUではその処理を行わない(排他的に処理をする)ということを
しなければならないケースがあります。


ある日、
上司から
「このプログラムを流す(実行する)と、たまにカーネルパニックするんだけど?」
と報告が???

で、
調べて見ると、
状況証拠から
「ある命令語と次の命令語の間で
CPUの排他処理がないために
データ矛盾を起こしているんではないか?
(説明が難しい。)」
との推論を私は出したのですが。。。

上司からは、
「そんなタイミングでCPUが奪われるかねぇ?」
「その処理、何年も前から存在しているのにホント?」
と。

確かに、
絶対とは言わないけど。。。
発生する可能性は低い。

上司は、
「誰もが納得できるような証拠を出してよ。」
と半信半疑。

そこからは、
ハードウェアの仕様書と格闘し、
OSの中に別のミニOSを組み込んで
(メインメモリを直接書き換えて)
該当する命令語の隙間で
CPUが奪われるように(100%再現できるように)。

このミニOSを作るのに
私ゃ、徹夜しましたよ。

結果は、ビンゴだったんですが、
発生するようになった理由が

CPUの速度が早くなったこと & I/Oデバイスが高速になったこと

も要因でした。

いやー
勉強になったよ。ホント。φ(・ω・ )メモメモ

« GPD Pocketとポメラ DM200にLoeのカバーを使っています。 | トップページ | 実は持ってますNikon D850。 〜ファーストインプレッション〜 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: マルチCPU時代の頃の印象深かった思い出。:

« GPD Pocketとポメラ DM200にLoeのカバーを使っています。 | トップページ | 実は持ってますNikon D850。 〜ファーストインプレッション〜 »

フォト
無料ブログはココログ

bigmoroの関連リンク