Linda是美國Yale大學與科學計算協會共同研製的用於實現並行程式設計的, 與機器無關的程式環境. Linda通過增加一些函式對傳統的程式設計語言進行擴充(如C, Fortran等), 使其能實現並行程式的設計. 將Linda映射到各計算語言中, 就形成了可進行並行計算的程式語言C-Linda, Fortran-Linda. Linda可以運行在共享存儲多處理機, 分布存儲多處理機以及工作站機群系統上.
Linda的虛擬共享存儲器稱為元組空間( Tuple Space), 元組空間由一組有序的元組(tuple)組成, 元組的每個域都包含有實際的數據. 元組空間是相聯存儲器, 元組的標識與選擇是通過域值匹配, 而不是通常採用的地址選擇方法。
Linda提供了以下4種對元組的基本操作:
. out: 將數據放入元組空間, 整個操作是順序進行的;
. eval: 功能同out, 但它是並行執行的;
. in: 從元組空間中選擇匹配的數據, 並將數據從元組空間中刪除;
. rd: 功能同in, 但它不將數據從元組空間中刪除.
當兩個進程需要交換數據時, 它們並不是採用message-passing來直接通訊, 而是通過讀寫Tuple空間來完成(同共享存儲多處理機的並行程式設計). 例如: 如果A進程需要向B進程傳遞數據, 則需要完成以下的操作:
1) A向Tuple空間寫一個數據;
2) B在Tuple空間中讀取需要的數據.
Linda在編譯系統和運行系統上作了很多最佳化工作, 使用Linda編寫的應用程式在效率上能夠接近用傳統message-passing編寫的應用程式。
Linda系統從其特點與功能上看, 適合於處理一個結點上具有多個處理進程, 進程間具有不明確的數據通訊, 且進程間需要較強的同步機制以及全局通訊的實際套用問題。