輸入子系統
輸入子系統
輸入子系統通常是一個獨立的模塊,由從操作系統讀數據的函數或子程序組成,處於詞法分析器的底層。把它同識別單詞的機構分隔開來,使程序的結構比較清晰。同時,也使產生的代碼更易於移植。分析程序中的大多數依賴於系統的操作都集中在輸入層。
在擬定了輸齣子系統的設計方案后,系統設計人員即可著手設計輸入子系統。為了生產出用戶所規定的輸出產品,其中包括數據分析人員所要的輸出結果(例如數據分析人員所需的參考數據,如果這些參考數據必須利用數據處理系統來處理的話),就必須使數據處理系統能夠接受實現這兩個目的所需要的全部輸入。輸入予系統的主要設計目的便是為了實現這一點。
為了將各種必要的輸入編製成一份完整的清單,在討論輸入子系統的設計方法之前,我們有必要先對幾種信息源作一番考查。其中比較明顯的兩種信息源是用戶(和輸齣子系統的設計方案)和數據分析人員。此外,系統設計人員還必須對各種有關的數據收集系統的性能規格進行研究,特別是這些系統所產生的數據結果的特徵。
列出了各種必要輸入的詳細表格后,即可開始實際設計。請參考下圖所示的輸入子系統模型圖,我們可以把該子系統的設計過程看作是這樣一種過程,它將一套記錄數據的媒體和格式通過處理變成另一套記錄數據的媒體和格式。前者是由各種數據收集系統直接產生的,後者則必須是非常便於分析子系統存取的。變換后的數據經過編目分類,存儲在一個或幾個系統資料庫中。這裡所說的資料庫是指利用單種格式存儲在單種記錄媒體中的數據集合。因為對典型的大容量遙感數據的存取能力是衡量數據處理系統總體有效性能的關鍵標誌,因此對輸入子系統中的資料庫提出規格要求是輸入子系統的設計重點。
輸入子系統的實現需要滿足以下需求:
①輸入子系統要為每個輸入設備在/dev/目錄下生成一個設備文件,以方便應用程序讀取指定輸入設備產生的事件。
②對於每一個輸入設備,在輸入子系統只需要實現其事件獲取即可,至於事件如何處理、如何到達設備文件則不需要考慮。
③Linux輸入設備可以分為事件類(如USB滑鼠、USB鍵盤、觸摸屏等)、MOUSE類(特指PS/2介面的輸入設備)、遊戲桿類3種,為這些輸入設備實現的設備文件的介面必須有所差別。因此,輸入子系統需要為不同類型的輸入設備實現正確的設備文件介面。
為實現這些目的,輸入子系統輸入通過以下部分實現:
為實現需求①,輸入子系統為每個輸入設備都實現一個設備驅動,如圖所示。每個設備驅動都可以動態註冊到輸入子系統,或從輸入子系統中註銷。
輸入子系統
a.設備的匯流排類型、廠商、產品、版本號、名稱等身份信息;
b.設備可產生的事件類型;
c.各事件類型的分量。
當輸入設備發生輸入事件時。驅動程序要把輸人事件向輸入子系統報告。
Linux內核源碼為一些常用的輸入設備提供了驅動源碼。這些源碼分別在目錄下的多個子目錄下,這些子目錄的內容如下表所列。
輸入子系統
為實現目的①和③,輸入子系統為每種輸入設備類型都實現一個事件管理器。事件管理器管理自己類型下的所有輸入設備的設備驅動。每個事件管理器都可以動態註冊到輸入子系統,或從輸入子系統中註銷。
Linux的輸入設備主要分為事件類、MOUSE類、遊戲桿類型,所以內核源碼為這3種類型的輸入設備分別實現了evdev、mousedev、joydev事件管理器。輸入子系統的事件管理器和設備驅動的關係如下圖所示。
輸入子系統
輸入子系統
事件管理器為每個設備文件維護了一個輸入事件緩衝區,如下圖所示。
輸入子系統
輸入子系統使用了核心模塊管理所有註冊的設備驅動和事件管理器。同時,核心模塊為設備驅動和事件管理器提供了註冊/註銷函數。另外.事件管理器和設備驅動之間溝通也由核心模塊提供橋樑。核心模塊的實現文件為。總的來說,設備驅動、核心模塊、事件管理器構成了輸入子系統,整體框圖如下圖所示。
聯機數據輸入子系統(ODE),ODE是Online data entRy聯機數據輸入的縮寫,它是由ESA-IRS開發的提供用戶使用的輔助系統。它的功能較單一,結構也比較簡單。主要功能是:用戶可通過終端聯機將自己的數據存入ESA-IRS的汁算機系統。它也提供了對數據進行各種操作如增加、刪除的功能,並和其他文檔一樣可進行聯機的或離線的顯示及列印。根據用戶需要,也可將用戶數據進行裝入、倒排等處理,生成如其他文獻庫一樣的聯機檢索文檔。IRS已用這種方式對它的用戶,或對每天每個用戶運行情況等進行了管理,建立了一系列ODE文件,如ODE·USER,ODE LOG,在原始文獻聯機訂購系統中也用ODE方式建立了用戶地址文檔,供文獻提供者使用。
使用ODE系統的終端設備必須是TEL42型高速終端,或IRS開發的雙文字顯示終端EVRAB,EURAB終端畫畫分成兩個部分,一部分是歐洲語言(英、德,法、西文),另一部分為阿拉伯語。它的兩個畫面字元相當TEL42的—個畫面。TEL42終端是一個屏幕22行,每行80字元,共21X 80=1760字元,為ODE系統規定的—·個信息塊,也可稱一頁。ODE的操作基本以塊為單位。
ODE系統的內部數據組織有多種形式,對有共同格式的信息決,提供一種MASK手段,即將這種格式預先建好,並存在ODE系統的文件中,需要時可調出使用,每個文件最多可有10種MASK。如文獻型的數據組織,MASK即可包含篇名,作者,出版日期,機構,類型,來源,分類號,主題間,文摘等數據項名。如是人事檔案類型,·則可·為姓名姓別,年齡、工作單位、工資、工齡,專業等數據項名,這些數據項名就可做在一個MASK中成為MASK1,MASK2等等。並可在終端上編製簡單的程序來建立被保護的MASK,即使用該MASK時,游標可向前,或向後跳過規定的數據項名,只停在要輸入或更新的數據起始位上。
ODE數據的保密有兩種手段,一是文件存取使用文件所有者給定的文件名,二是系統設立了讀鍵和寫鍵。文件所有者可利用它們將文件的讀或寫加密,使只有知道讀鍵的用戶才可以打開文件得到顯示,也只有知道寫鍵的用戶才可以聯機輸入和修改數據。讀、寫鍵可隨時聯機修改。