バイナリセマフォにおける不可分なロックとアンロック操作だけで、プロセス間の任意の協調作動を実現できることを証明したのは誰か
エドガー・ダイクストラ
カーネル 
 エドガー・ダイクストラは論理的観点から、バイナリセマフォにおける不可分なロックとアンロック操作だけで、プロセス間の任意の協調作動を実現できることを証明した。しかしそのような方式は一般に安全性や効率性が欠如しており、メッセージパッシング方式の方が柔軟性が高い。他の方式もいくつかあり、現代のカーネルでは共有メモリやRPCなどのシステムをサポートしていることが多い。
並列計算 
 Bernstein’s conditionsでは、異なるプロセス間でメモリは共有されないと仮定している。そのため、アクセスの順序性を確保する手段として、セマフォなどの同期機構が必要となる。 並列計算 
 1969年、ハネウェルが最初の Multics システムを発表した。これは、最大8プロセッサまでが並列に動作可能な対称型マルチプロセッサシステムであった。カーネギーメロン大学では1970年代に C.mmp というマルチプロセッサ開発プロジェクトが行われ、大規模と言える初のマルチプロセッサであった。同期機能を持ったキャッシュ（MESIプロトコル参照）を持ったプロセッサ群をバスで接続する形態のマルチプロセッサ機としては、1984年の Synapse N+1 が最初である。 並列計算 
 一方のスレッドが変数 V をロックできた場合、もう一方は V がアンロックされるまで待たされることになる。これによってプログラムの正しい実行が保証される。ロックはプログラムの正しい実行の保証には必須だが、それによってプログラムの実行速度は大幅に低下する。 並列計算 
 典型的なクラスター方式として Beowulf がある。これはTCP/IPイーサネットLANで普通のコンピュータ群を相互接続してクラスターを構成できる。Beowulf の当初の開発者は Thomas Sterling と Donald Becker であった。 並列計算 
 複数の変数のロックには複数のロックが必要であり、それによってデッドロックが発生する可能性が生じる。不可分なロックは複数の変数を一度にロックするものである。その場合、対象変数群の一部がロックできなければ、全体のロックができないと見なされる。個別にロックされる2つの変数をロックする必要のあるスレッドが2つ存在したとして、一方のスレッドが一方の変数だけをロックし、もう一方のスレッドがもう一方の変数だけをロックするという状況が発生しうる。このような場合、双方のスレッドはロックできていない変数をロックしようとして待ち続け、結果としてデッドロックとなる。 電気工学 
 半導体素子の微細化の絶え間ない進展は、VLSI製造プロセスの発展をもたらし、完全なシステムをひとつのチップに実装する技術を実現した。マイクロプロセッサはこの進展の成果で、コンピュータ工学の関連分野とかかわる。 電気工学 
 しかし、電気に関する研究が本格化するのは19世紀になってからである。ゲオルグ・オームは1827年、導体における電流と電位差の関係を定式化した（オームの法則）。1831年、マイケル・ファラデーは電磁誘導現象を発見した。ジェームズ・クラーク・マクスウェルは電気と磁気の統一理論を確立し、1873年に “Electricity and Magnetism”（抄訳「電気と磁気」）という論文を発表した。 並列計算 
 1970年代のマイクロプロセッサの開発以来、コンピュータの主なアーキテクチャ上の進化はワードサイズ（プロセッサが一度に処理できるビット幅）を倍々にしていくことで成されてきた。ワードを大きくすることで、従来のワードサイズでは多数の命令を必要としていた大きな変数の処理が、より少ない命令数で実行可能となる。例えば、8ビットのプロセッサで2つの16ビットの整数を加算する場合を考える。まず、2つのデータの下位8ビットを通常の加算命令で加算し、その後上位8ビットをキャリー付き加算命令で加算することで、下位8ビットで発生したキャリーを考慮する。つまり、8ビットプロセッサでは1つの演算に2つの命令を必要とし、16ビットプロセッサならそれを1命令で実行できる。 並列計算 
 最初に定義された一貫性モデルは、レスリー・ランポートの逐次一貫性モデルである。逐次一貫性とは、並列プログラムを並列実行したときの結果と、それと等価な逐次プログラムの結果が同じという特性である。プログラムが逐次一貫性を持つとは、「…任意の実行の結果が、それを全プロセッサが逐次的順序で実行された場合と同じであり、その順序がプログラム内で指定された順序と同じである」ことを意味する。 並列計算 
 全主記憶に同じレイテンシおよび帯域幅でアクセスできるコンピュータアーキテクチャを UMA (Uniform Memory Access) と呼ぶ。これは共有メモリシステム（メモリが物理的に分散していない場合）しか実現できない。それ以外のアーキテクチャはNUMA (Non-Uniform Memory Access) と呼ぶ。分散メモリシステムはNUMAである。