從UNIX到IBM主機(jī)系統(tǒng)的程序移植探討_第1頁
從UNIX到IBM主機(jī)系統(tǒng)的程序移植探討_第2頁
從UNIX到IBM主機(jī)系統(tǒng)的程序移植探討_第3頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

從UNIX到IBM主機(jī)系統(tǒng)的程序移植探討

摘要:本文介紹了UNIX平臺與IBM主機(jī)系統(tǒng)平臺之間的差異,并對跨平臺移植過程中應(yīng)考慮的主要問題和解決方法進(jìn)行了探討。

關(guān)鍵詞:IBM主機(jī)系統(tǒng);移植;作業(yè)控制語言;初始化器

1引言

IBM主機(jī)系統(tǒng),又稱IBM大型機(jī),是20世紀(jì)60年代發(fā)展起來的計算機(jī)系統(tǒng),在全世界各大國家中肩負(fù)著銀行、保險、證券、通訊等行業(yè)的數(shù)據(jù)與信息處理工作,因為其獨具的高安全性、高穩(wěn)定性和強(qiáng)大的數(shù)據(jù)處理能力,迄今無可替代。

近幾年來,主機(jī)系統(tǒng)的前景不斷看好。從1994年起,IBM開始對大型機(jī)進(jìn)行深入的技術(shù)改造,采用了新的CMOS技術(shù),極大地縮小了大型機(jī)的系統(tǒng)體積,降低了能耗和散熱成本,提高了性能價格比。另一方面,分布式計算開始變得龐雜起來,許多公司的管理費用激增,而且由于數(shù)據(jù)分散,在數(shù)據(jù)的互訪和集中管理方面,安全和準(zhǔn)確性都不夠高,許多企業(yè)開始轉(zhuǎn)向使用大型機(jī)。大型機(jī)在總體擁有成本上已經(jīng)比分布計算廉價,制造業(yè)、保險、航空、運輸及大型零售企業(yè)的大量事務(wù)處理對大型機(jī)的要求越來越高,這是大型機(jī)重新被人們認(rèn)可的原因之一。

2分布式與大型機(jī)

分布式計算在短期內(nèi)給企業(yè)帶來了高效,但隨著時間的延續(xù),企業(yè)系統(tǒng)擴(kuò)大,數(shù)據(jù)分散存放在上百臺服務(wù)器上,數(shù)據(jù)的查詢成為問題,數(shù)據(jù)的互訪和對大量數(shù)據(jù)的開采利用變得困難起來,一個新的趨勢——再集中開始出現(xiàn)。如何將分布處理和集中計算結(jié)合起來,成為許多企業(yè)考慮的問題。大型機(jī)的系統(tǒng)完整性和大存儲量的優(yōu)勢顯示出來,開始承擔(dān)用戶再集中需求的任務(wù)。

在總體擁有成本上,隨著時間的推移,小型機(jī)系統(tǒng)漸漸顯現(xiàn)出極高的使用成本?;蛟S人們在使用一年UNIX后,會說UNIX性價比高,但隨著業(yè)務(wù)的增加,系統(tǒng)變得分散龐雜起來,維護(hù)費用增加。大型機(jī)挺過了關(guān)鍵的10年暗淡期,終于峰回路轉(zhuǎn)。因此,越來越多的企業(yè)開始關(guān)注IBM主機(jī)系統(tǒng),將自己的系統(tǒng)移植到主機(jī)系統(tǒng)上來。

3移植平臺間的差異

3.1主機(jī)操作系統(tǒng)Z/OS與UNIX

目前IBM主機(jī)的主流操作系統(tǒng)Z/OS是使用最廣泛的基于64位Z體系結(jié)構(gòu)大型機(jī)操作系統(tǒng),它給在大型機(jī)上的應(yīng)用程序員提供了穩(wěn)定、安全和可持續(xù)運行的環(huán)境。

從本質(zhì)上來說,UNIX是一個計算密集型的操作系統(tǒng),CPU利用率較高,更適用于需要大量計算的環(huán)境;而主機(jī)操作系統(tǒng)Z/OS依賴于其強(qiáng)大的硬件后盾,除了強(qiáng)大的計算能力之外,更突出的是它強(qiáng)大的I/O處理能力,依托硬件上的FICON、ESCON等光纖通道,可同時應(yīng)對大規(guī)模的并發(fā)用戶,因此它是一個I/O密集型的操作系統(tǒng)。兩種系統(tǒng)在很多內(nèi)容上有著不同但又類似之處。

3.2進(jìn)程與地址空間

在UNIX下,一個程序的執(zhí)行通常稱為一個進(jìn)程,操作系統(tǒng)為每個進(jìn)程分配一定的CPU、內(nèi)存資源,使其運行,進(jìn)程與進(jìn)程之間可以通過信號量機(jī)制協(xié)同工作實現(xiàn)并發(fā);而在Z/OS下沒有進(jìn)程的概念,與之對應(yīng)的是地址空間(AddressSpace)的概念,任何用戶的登錄、程序的執(zhí)行、作業(yè)的提交,系統(tǒng)都會為其生成一個地址空間。地址空間之間在批處理方式下一般沒有通信,而通過聯(lián)機(jī)交易處理方式實現(xiàn)程序間通信。

在UNIX下通常會有守護(hù)進(jìn)程(daemon)的概念,在主機(jī)環(huán)境中通常是一個長時間運行的作業(yè)的提交,可以從控制臺為這個守護(hù)作業(yè)提供輸入輸出對象處理。

3.3文件的組織與編輯方式

從文件和數(shù)據(jù)格式上來說,UNIX系統(tǒng)是樹狀的目錄結(jié)構(gòu),數(shù)據(jù)的組織以文件夾與文件的方式保存、管理;而在主機(jī)上,數(shù)據(jù)都保存在數(shù)據(jù)集里,數(shù)據(jù)集分順序數(shù)據(jù)集、分區(qū)數(shù)據(jù)集與VSAM數(shù)據(jù)集,其組織方式?jīng)]有多層樹狀結(jié)構(gòu),分區(qū)數(shù)據(jù)集下可包含稱為member的順序數(shù)據(jù)集,順序數(shù)據(jù)集或VSAM數(shù)據(jù)集存儲實際的數(shù)據(jù)。

數(shù)據(jù)的格式在UNIX下是面向字節(jié),而在Z/OS下是面向記錄的。數(shù)據(jù)的編輯在UNIX下通常是用VI;而在Z/OS下用的是ISPF編輯器。

3.4交互系統(tǒng)的區(qū)別

UNIX下用戶登錄并在Shell環(huán)境下執(zhí)行Shell會話,可以通過發(fā)送遠(yuǎn)程登錄rlogin命令或者遠(yuǎn)程登錄telnet命令連接系統(tǒng),一個用戶可以同時打開多個用戶會話。在主機(jī)環(huán)境下,用戶通過TSO/E和它的菜單驅(qū)動接口ISPF登錄系統(tǒng),一個用戶一次只能有一個活動的會話。

在UNIX系統(tǒng)中,用戶可以通過后綴Shell命令觀察處理進(jìn)程和線程,可通過Kill命令結(jié)束一個任務(wù)。在主機(jī)環(huán)境中,用戶通過作業(yè)處理子系統(tǒng)提供的SDSF查看他們提交作業(yè)的執(zhí)行情況,并可以終止作業(yè)任務(wù)的執(zhí)行。

4移植實例

下面以一個實際項目實例來闡述一套移植過程中要考慮的具體問題。項目以一個在UNIX平臺上實際應(yīng)用的后臺結(jié)息系統(tǒng)為移植對象,考慮系統(tǒng)處理的各種運行機(jī)制和平臺差異,最終將整個系統(tǒng)移植到Z/OS下。

原系統(tǒng)的操作系統(tǒng)為AIX5.0,數(shù)據(jù)庫為INFORMIX10X,開發(fā)語言為C語言,移植后的操作系統(tǒng)為Z/OS1.5,數(shù)據(jù)庫為DB2版本8,開發(fā)語言為C語言。

4.1針對多進(jìn)程考慮

在原系統(tǒng)中有一個主控程序設(shè)計,主控程序是一個主調(diào)度程序,主要負(fù)責(zé)控制并發(fā)的進(jìn)程數(shù)量及狀態(tài),系統(tǒng)支持的并發(fā)數(shù)量由主控程序的參數(shù)設(shè)置,通常設(shè)置為30。主控程序控制的每一個并發(fā)進(jìn)程代表一個部門結(jié)息流程。假設(shè)一次性有1000個部門運行結(jié)息過程,主控程序負(fù)責(zé)調(diào)度,它輪尋所有進(jìn)程,當(dāng)一個進(jìn)程結(jié)束時啟動下一個進(jìn)程,直到所有部門完成。

在Z/OS上沒有進(jìn)程的概念,針對這種后臺批處理的結(jié)息方式,我們通過作業(yè)的方式實現(xiàn),方案是為每個部門的結(jié)息準(zhǔn)備一個JCL作業(yè)。所謂JCL(JobControlLanguage)是作業(yè)控制語言,通過它寫一段作業(yè)腳本提交給系統(tǒng),可以讓系統(tǒng)執(zhí)行相應(yīng)的程序或進(jìn)行相關(guān)的工作。為每個部門結(jié)息準(zhǔn)備一個JCL作業(yè),再準(zhǔn)備一個主JCL作業(yè),這個主JCL的任務(wù)就是去提交所有部門的JCL作業(yè)。

把結(jié)息過程定義為作業(yè)的好處是,在Z/OS里控制作業(yè)的并發(fā)數(shù)量以及作業(yè)調(diào)度的任務(wù)都可以由系統(tǒng)里的作業(yè)處理子系統(tǒng)JES2自動完成。在JES2里,有多個被稱為Initiator的地址空間,每個Initiator都相當(dāng)于UNIX下的一個守護(hù)進(jìn)程,專門處理提交的作業(yè)。

Z/OS中的Intiator是一個自動調(diào)度和處理提交的多個作業(yè)的地址空間,它主要負(fù)責(zé)處理如下任務(wù):

(1)確保同時運行的各項作業(yè)不會產(chǎn)生數(shù)據(jù)集使用上的沖突;

(2)為作業(yè)分配必要的硬件設(shè)備,如磁帶等;

(3)從庫中找到每個作業(yè)需要調(diào)用的可執(zhí)行程序;

(4)當(dāng)一個作業(yè)運行完畢之后,在作業(yè)隊列中清除該作業(yè)并要求處理下一個作業(yè)。

每個Initiator在同一時刻可以處理一個作業(yè),而多個Intiator可以并發(fā)處理多個作業(yè),各個Initiator并發(fā)處理各個作業(yè)都是在保證不出現(xiàn)死鎖的前提下進(jìn)行的。Initiator的數(shù)量可以在系統(tǒng)中設(shè)置,這樣一來就自動實現(xiàn)了并發(fā)數(shù)的控制。比如我希望將并發(fā)數(shù)控制為50,我們在系統(tǒng)中設(shè)置50個Initiator,然后提交主JCL作業(yè),主JCL作業(yè)再一次性提交1000個部門的作業(yè),這些作業(yè)由JES自動調(diào)度給50個Initiator,并實現(xiàn)負(fù)載的均衡。

4.2Makefile的替代

在UNIX平臺上,通常會在準(zhǔn)備好源代碼之后使用make工具進(jìn)行編譯,在執(zhí)行make之前,需要一個命名為Makefile的特殊文件來告訴make需要做什么,該怎么做。通常make工具主要被用來進(jìn)行工程編譯和程序鏈接。

當(dāng)使用make工具進(jìn)行編譯時,以下幾種文件在執(zhí)行make時將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論