作用
80年代以來(lái),網(wǎng)絡(luò)化和微型化的日趨明顯,傳統(tǒng)的集中式處理和主機(jī)/啞終端模式越來(lái)越不能適應(yīng)人們的需求,在這種情況下,傳統(tǒng)的大型機(jī)和小型機(jī)都陷入了危機(jī)。為了應(yīng)對(duì)危機(jī),一些大型機(jī)和小型機(jī)改變了原先的一些功能和模式,加入以C/S模式為特點(diǎn)的服務(wù)器陣營(yíng),重新適應(yīng)了人們的需求。 在微型計(jì)算機(jī)、UNIX服務(wù)器、集群技術(shù)、工作站的沖擊下,不能適應(yīng)這種變化的傳統(tǒng)小型機(jī)已經(jīng)淘汰,而IBM大型主機(jī)卻長(zhǎng)盛不衰,這其中主要的原因是:RAS(Reliability, Availability, Serviceability 高可靠性、高可用性、高服務(wù)性),I/O處理能力以及ISA。
今日而言,大型主機(jī)在MIPS(每秒百萬(wàn)指令數(shù))已經(jīng)不及微型計(jì)算機(jī)(microcomputer),但是它的I/O能力、非數(shù)值計(jì)算能力、穩(wěn)定性、安全性卻是微型計(jì)算機(jī)所望塵莫及的。
大型主機(jī)和超級(jí)計(jì)算機(jī)(舊稱(chēng)巨型機(jī))的主要區(qū)別:
大型主機(jī)使用專(zhuān)用指令系統(tǒng)和操作系統(tǒng),超級(jí)計(jì)算機(jī)使用通用處理器及UNIX或類(lèi)UNIX操作系統(tǒng)(如linux)。
大型主機(jī)長(zhǎng)于非數(shù)值計(jì)算(數(shù)據(jù)處理),超級(jí)計(jì)算機(jī)長(zhǎng)于數(shù)值計(jì)算(科學(xué)計(jì)算)。
大型主機(jī)主要用于商業(yè)領(lǐng)域,如銀行和電信,而超級(jí)計(jì)算機(jī)用于尖端科學(xué)領(lǐng)域,特別是國(guó)防領(lǐng)域。
大型主機(jī)大量使用冗余等技術(shù)確保其安全性及穩(wěn)定性,所以內(nèi)部結(jié)構(gòu)通常有兩套。而超級(jí)計(jì)算機(jī)使用大量處理器,通常由多個(gè)機(jī)柜組成。
為了確保兼容性,大型主機(jī)的部分技術(shù)較為保守。
現(xiàn)狀
生產(chǎn)大型主機(jī)的企業(yè)有IBM和UNISYS。IBM生產(chǎn)的大型機(jī)在其服務(wù)器產(chǎn)品線中被列為Z系列。該系列服務(wù)器的主機(jī)通常為一個(gè)大機(jī)柜,通過(guò)原生和虛擬方式可運(yùn)行多種操作系統(tǒng),其中最典型的操作系統(tǒng)是IBM大型機(jī)的專(zhuān)用文字界面操作系統(tǒng)Z/OS。IBM大型機(jī)的中央處理器是一塊巨大的陶瓷MCM模塊,其內(nèi)部的多層布線基板上貼裝有多個(gè)集成電路芯片,使用基于z/Architecture架構(gòu)的CISC指令集。SUN公司和HP公司不生產(chǎn)一般意義上的大型主機(jī),但生產(chǎn)性能和用途類(lèi)似于IBM大型主機(jī)的高端UNIX服務(wù)器,這些服務(wù)器通常稱(chēng)作為大型機(jī)級(jí)服務(wù)器。
大型機(jī)性能提升
減少大型機(jī)CPU消耗是個(gè)重要工作。節(jié)約每個(gè)CPU周期,不僅可以延緩硬件升級(jí),還可以降低基于使用規(guī)模的軟件授權(quán)費(fèi)。
IBM Language Environment (LE)編輯器和運(yùn)行時(shí)提供了很多優(yōu)化選項(xiàng)——從而無(wú)須修改源代碼。
編譯時(shí)間選項(xiàng)
通過(guò)LE編譯器優(yōu)化,大型機(jī)程序員可以調(diào)整目標(biāo)代碼,充分發(fā)揮某個(gè)處理器家族計(jì)算性能。
ARCH(架構(gòu))是一個(gè)編輯器選項(xiàng)。ARCH級(jí)會(huì)指示編譯器生成含有針對(duì)目標(biāo)處理器進(jìn)行性能優(yōu)化的機(jī)器指令目標(biāo)代碼。ARCH重要性日益增加,因?yàn)?/span>IBM已經(jīng)推出了數(shù)代服務(wù)器,都包含了針對(duì)性能優(yōu)化設(shè)計(jì)的指令集。
另一種選擇是TUNE,告訴編輯器安排機(jī)器指令順序,確保能夠利用處理器的指令管道與緩存優(yōu)勢(shì)。
程序員需要為生產(chǎn)線上最古老的處理器系列進(jìn)行優(yōu)化。挑錯(cuò)ARCH選項(xiàng),并且操作異常(0C1s)可能會(huì)導(dǎo)致壞的TUNE,并降低性能。
雖然這些選項(xiàng)通常來(lái)說(shuō)只專(zhuān)門(mén)針對(duì)C++編譯器,但IBM已經(jīng)將其擴(kuò)展到COBOL與PL/1高級(jí)語(yǔ)言。
運(yùn)行時(shí)選項(xiàng)
IBM lE同樣提供了多種運(yùn)行時(shí)選項(xiàng),可以提高大型機(jī)性能。
以下是選項(xiàng)指定的層次結(jié)構(gòu):
運(yùn)行時(shí)選項(xiàng)在程序中調(diào)用中指定
使用用戶選項(xiàng)(UOPT)控制會(huì)話(CSECT)連接選項(xiàng)到程序
區(qū)域選秀(ROPT)模塊
CEEPRMxx PARMLIB成員中的全局選項(xiàng)集
CBLPSHOPOPS的常規(guī)處理?xiàng)l件,存儲(chǔ)初始化與堆棧大小是運(yùn)行時(shí)優(yōu)化選項(xiàng),尤其在CICS環(huán)境中。
CBLPSHPOPS。CBPSHPOPS控制LE在進(jìn)入或退出COBOL運(yùn)行時(shí)時(shí),是否執(zhí)行PUSH HANDLE與POP HANDLE CICS命令。PUSH HANDLE命令PUSH HANDLE命令用棧保存所有尚未處理的條件,而POP則將句柄條件從前推動(dòng)。如果任何條件在有未處理句柄的情況下被提出,那么控制會(huì)切換到HANDLE命令指定的錯(cuò)誤運(yùn)行時(shí)。
關(guān)閉CBPSHPOPS選項(xiàng)可以節(jié)約CPU周期,避免額外的PUSH與POP命令。然而,如果沒(méi)有CBPSHPOPS,在較低模塊提出的條件可能會(huì)滲透到?jīng)]有錯(cuò)誤準(zhǔn)備的高級(jí)處理運(yùn)行時(shí)。只有在分析與測(cè)試后才改變配置。
存儲(chǔ)初始化。STORAGE選項(xiàng)通一些參數(shù)控制內(nèi)存初始化,例如新申請(qǐng)的堆段參數(shù),LE釋放的堆段參數(shù)以及初始化?;虍?dāng)控制進(jìn)入運(yùn)行時(shí)進(jìn)行自動(dòng)存儲(chǔ)。
堆初始化往往是CPU周期方面最廉價(jià)的成本。初始化棧存儲(chǔ)則更昂貴,雖然成本取決于子程序調(diào)用次數(shù)。除非你為國(guó)家安全局工作,否則不要使用erase-on-free 清除選項(xiàng)。
要避免LE內(nèi)存共同初始化,遵循編程最佳實(shí)踐,假定存儲(chǔ)是為初始化的,除非在程序中有另外明確指出。
棧和堆大小。LE有自己的內(nèi)存管理器,其目的是減少程序找操作系統(tǒng)或CICS申請(qǐng)更多存儲(chǔ)的次數(shù)。 LE在大塊中獲得內(nèi)存,再根據(jù)需要細(xì)分。當(dāng)塊無(wú)法滿足存儲(chǔ)要求時(shí), LE會(huì)調(diào)用操作系統(tǒng)或CICS申請(qǐng)另一個(gè)塊。一個(gè)初始化堆或棧存儲(chǔ)的明智選擇將減少調(diào)用操作系統(tǒng)內(nèi)存管理次數(shù)并降低CPU使用率。
選擇初始?jí)K大小時(shí)一門(mén)超越科學(xué)的藝術(shù)。分塊過(guò)小會(huì)增加CPU使用,但分塊過(guò)大可能會(huì)降低存儲(chǔ)使用。
在大存儲(chǔ)塊中的碎片在混合應(yīng)用程序中相當(dāng)麻煩。對(duì)于一個(gè)虛擬的應(yīng)用程序,某程序從對(duì)存儲(chǔ)塊中申請(qǐng)512KB大小的堆,而另一個(gè)程序可能會(huì)在相同時(shí)間申請(qǐng)從1MB堆塊中獲得32字節(jié)的堆。隨著程序運(yùn)行,第一個(gè)程序獲得512KB并調(diào)用另外那個(gè)獲得32字節(jié)的程序。當(dāng)?shù)谝粋€(gè)程序試圖獲得512KB時(shí),LE無(wú)法通過(guò)現(xiàn)有的塊滿足需求,而必須申請(qǐng)另外一個(gè)塊。這意味著有幾乎0,5MB的存儲(chǔ)沒(méi)有被使用。
在選擇初始堆和棧大小時(shí),先研究應(yīng)用程序行為。同樣為CICS在每個(gè)用戶存儲(chǔ)分段的開(kāi)頭與結(jié)尾設(shè)置8字節(jié)“崩潰區(qū)”。一個(gè)4-K IBM LE事務(wù)請(qǐng)求(GETMAIN)實(shí)際占用4,112字節(jié),這將導(dǎo)致CICS存儲(chǔ)碎片。堆CICS來(lái)說(shuō),使用4,080字節(jié),非常適合一個(gè)4-K頁(yè)。LE同樣使用一些新的存儲(chǔ)用來(lái)滿足自己使用控制,這也進(jìn)一步降低了留給程序的可用空間。[1]
第一個(gè)采用集成電路工藝的IBM360
1958年,IBM發(fā)布第一臺(tái)全部采用晶體管制造的計(jì)算機(jī)RCA501。1959年,IBM公司相繼推出了7070、7090等大型晶體管計(jì)算機(jī)和I401、I620等中小型晶體管計(jì)算機(jī)。1964年,IBM再接再厲,研制成功世界上第一個(gè)采用集成電路工藝的IBM360系列計(jì)算機(jī)。如圖1所示。
圖1 IBM360
這一時(shí)期的計(jì)算機(jī)費(fèi)用昂貴,基本上只能為國(guó)防、金融、交通、能源等國(guó)家部門(mén)和支柱產(chǎn)業(yè)提供數(shù)據(jù)處理服務(wù)。例如IBM360的研制成本高達(dá)50億美元,甚至是第一顆原子彈造價(jià) 的2.5倍。
為了解決這個(gè)問(wèn)題,當(dāng)時(shí)的學(xué)者提出了效用計(jì)算(utility computing)的概念,其思想淵源來(lái)自于電力行業(yè)。當(dāng)白熾燈和發(fā)電機(jī)問(wèn)世之后,雖然理論上家家戶戶都可以實(shí)現(xiàn)照明了,但是這需要各家各戶都要配置并維護(hù)一臺(tái)發(fā)電機(jī),顯然無(wú)論在經(jīng)濟(jì)上還是技術(shù)上都是不可行的。為此,科學(xué)家和工程師們又相繼發(fā)明了發(fā)電廠、直流供電系統(tǒng)和交流供電系統(tǒng),最終電廠和遠(yuǎn)距離交流供電系統(tǒng)構(gòu)成了電力行業(yè)的核心技術(shù)并延續(xù)至今。
今天我們打開(kāi)電燈照明或者啟動(dòng)空調(diào)取暖時(shí),并不關(guān)心其背后是哪個(gè)發(fā)電廠提供的電力能源,只要按照每月電表的讀數(shù)按時(shí)繳納用電費(fèi)用就可以享受電力帶來(lái)的服務(wù)了。除了電力,我們?nèi)粘I钪薪?jīng)常用到的管道煤氣、自來(lái)水、固定電話等公共服務(wù)都采用了這種方式,那么計(jì)算服務(wù)或者按今天的話來(lái)說(shuō)信息技術(shù)服務(wù)能否按照這種方式發(fā)展呢?這就是效用計(jì)算的理念。
為了使得一臺(tái)大型機(jī)能夠同時(shí)為多個(gè)客戶提供服務(wù),IBM公司在軟件上采用了分時(shí)復(fù)用和虛擬化的設(shè)計(jì)思想,使得多個(gè)客戶在同時(shí)使用同一臺(tái)大型機(jī)時(shí),就好像將其分割成了多個(gè)小型化的虛擬主機(jī),這其實(shí)就是效用計(jì)算的雛形。
|