分層與封裝(2) 計(jì)算機(jī)系統(tǒng)的分層結(jié)構(gòu)

? ? 之前我們提到了一種分層結(jié)構(gòu)谭网,互聯(lián)網(wǎng)系統(tǒng)是宏觀的上層汪厨,而計(jì)算機(jī)是細(xì)節(jié)的底層實(shí)現(xiàn)∮湓瘢互聯(lián)網(wǎng)系統(tǒng)是由大量計(jì)算機(jī)互相連接而成的劫乱,大致可以分為數(shù)據(jù)傳遞結(jié)構(gòu)织中、服務(wù)提供結(jié)構(gòu)、和終端結(jié)構(gòu)衷戈。每個結(jié)構(gòu)實(shí)際上都不關(guān)心別的結(jié)構(gòu)里的計(jì)算機(jī)具體是什么型號狭吼、如何實(shí)現(xiàn)的,他們只需要關(guān)注如何處理從網(wǎng)絡(luò)端口獲得的信息包殖妇,并將處理好的數(shù)據(jù)分發(fā)給誰刁笙。由于這些“封裝”的存在,我們可以分層的考慮這些問題谦趣,設(shè)計(jì)微觀層面的個體計(jì)算機(jī)系統(tǒng)時(shí)疲吸,也不需要考慮宏觀層面的互聯(lián)網(wǎng)系統(tǒng),只需要按照互聯(lián)網(wǎng)系統(tǒng)的要求設(shè)計(jì)好對接的接口就可以了前鹅。

? ? 在計(jì)算機(jī)系統(tǒng)中摘悴,也有這樣的分層結(jié)構(gòu),最底層的硬件層包括了可以觸碰到的硬盤舰绘、CPU蹂喻、顯卡等等硬件;中間是操作系統(tǒng)層捂寿,是一個對下可以控制各個硬件叉橱,對上可以搭載各種應(yīng)用的軟件系統(tǒng);上層是應(yīng)用層者蠕,也就是給用戶使用的各種軟件應(yīng)用等窃祝。對于硬件層來說,他們所要考慮的是給定一個指令如何運(yùn)轉(zhuǎn)踱侣;操作系統(tǒng)層比較復(fù)雜粪小,他將硬件抽象成軟件的概念,并對他們進(jìn)行管理抡句,比如硬盤的存儲被抽象成了文件管理探膊、CPU的計(jì)算被抽象成了程序的進(jìn)程、網(wǎng)絡(luò)通信和外部輸入輸出被抽象了程序可以訪問的端口待榔;應(yīng)用層利用操作系統(tǒng)抽象出來的接口逞壁,創(chuàng)作出各種應(yīng)用供用戶使用。

? ? 所以在這樣的分層系統(tǒng)中锐锣,用戶只知道應(yīng)用是怎么使用的腌闯,并不需要知道操作系統(tǒng)是怎么安排應(yīng)用的;應(yīng)用只需要知道如何使用操作系統(tǒng)的接口雕憔,并不需要知道具體的硬件是怎么運(yùn)轉(zhuǎn)的姿骏。所以永遠(yuǎn)只有上一層需要知道下一層如何使用,而更上一層對底層是一無所知的斤彼。

? ? 這種分層系統(tǒng)可以說是無處不在分瘦,比如說CPU進(jìn)行計(jì)算的時(shí)候需要數(shù)據(jù)蘸泻,數(shù)據(jù)一般會存儲在CPU帶的緩存上,緩存的讀寫速度非吵懊担快悦施,但是造價(jià)非常貴,所以一般只有幾千字節(jié)大腥ネ拧歼争;那么對于更大的數(shù)據(jù),就需要將內(nèi)存的數(shù)據(jù)一點(diǎn)點(diǎn)換給緩存讀寫渗勘;對于更大的數(shù)據(jù),就需要從硬盤里將數(shù)據(jù)一點(diǎn)點(diǎn)換給內(nèi)存俩莽,再換到緩層上旺坠。分層的首要條件就是封裝,CPU只會找緩存進(jìn)行讀寫扮超,不會去操作內(nèi)存取刃;緩存只會和內(nèi)存接觸,不會直接去找硬盤出刷。
? ? 這個分層系統(tǒng)使得CPU能夠很好的平衡數(shù)據(jù)需求中快速和廉價(jià)兩個關(guān)鍵璧疗。大部分?jǐn)?shù)據(jù)可以在較快速的數(shù)據(jù)設(shè)備中完成,而少部分可以花費(fèi)時(shí)間去向慢速且廉價(jià)的數(shù)據(jù)設(shè)備請求馁龟。

? ? 再比如互聯(lián)網(wǎng)的經(jīng)典TCP/IP分層模型崩侠,最底層網(wǎng)絡(luò)接口層提供了設(shè)備之間進(jìn)行直接數(shù)據(jù)傳遞的方法;第二層的網(wǎng)絡(luò)互連層利用網(wǎng)絡(luò)接口層的方法坷檩,選擇路徑將數(shù)據(jù)從設(shè)備A經(jīng)過若干中間設(shè)備傳遞到遠(yuǎn)距離的設(shè)備B上却音;第三層傳輸層利用第二層的傳輸手段把大量數(shù)據(jù)打包,并確認(rèn)對方能夠收到了矢炼;第四層應(yīng)用層利用第三層可靠的傳輸系瓢,來添加各種協(xié)議,使得傳輸?shù)臄?shù)據(jù)變得有意義句灌,能夠被應(yīng)用所使用夷陋。

? ? 這種分層模型的優(yōu)勢在于,每一層所需要考慮的事情大大減少了胰锌,由于每一層只負(fù)責(zé)有限的部分骗绕,思維強(qiáng)度變低,也可以更可靠的測試资昧。如果沒有這種分層模型爹谭,軟件直接操作數(shù)據(jù)傳輸和網(wǎng)絡(luò)線路。網(wǎng)絡(luò)斷了這種再普通不過的情況榛搔,卻無法測試诺凡;分層之后可以確認(rèn)一定是中間某一層出現(xiàn)了問題东揣,如果別的軟件可以聯(lián)網(wǎng),那就是軟件的問題腹泌;如果家里別的設(shè)備可以聯(lián)網(wǎng)嘶卧,那應(yīng)該是設(shè)備上的問題;如果電腦拿到別的地方可以聯(lián)網(wǎng)凉袱,那應(yīng)該網(wǎng)絡(luò)線路的問題芥吟。

一般的軟件或者網(wǎng)絡(luò)服務(wù)也會有分層系統(tǒng):最底層的數(shù)據(jù)讀寫層,將數(shù)據(jù)存儲到本地硬盤或者網(wǎng)絡(luò)存儲空間中专甩;中間的服務(wù)層钟鸵,處理業(yè)務(wù)邏輯,更新現(xiàn)實(shí)給用戶的頁面涤躲;和最前端的用戶界面棺耍,幫助用戶完成他們的請求,并顯示結(jié)果給用戶种樱。所以簡單來說在網(wǎng)頁上發(fā)送Email的過程是這樣的:用戶請求發(fā)送Email -> 前段顯示Email編輯頁面 -> 用戶完成編寫點(diǎn)擊發(fā)送 -> 前段將數(shù)據(jù)打包成請求包發(fā)送給服務(wù)層 -> 服務(wù)層處理邏輯蒙袍,發(fā)送給對方郵箱,保存到數(shù)據(jù)庫 -> 數(shù)據(jù)層得到請求更新數(shù)據(jù)庫 -> 服務(wù)層告訴前段郵件已經(jīng)保存嫩挤、發(fā)送成功 -> 前端顯示給用戶害幅。

好處依然是每一層需要考慮的事情大大減少,每一層都被很好的封裝岂昭,絕對不會多操心別人的一點(diǎn)事情以现。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市约啊,隨后出現(xiàn)的幾起案子叼风,更是在濱河造成了極大的恐慌,老刑警劉巖棍苹,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件无宿,死亡現(xiàn)場離奇詭異,居然都是意外死亡枢里,警方通過查閱死者的電腦和手機(jī)孽鸡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栏豺,“玉大人彬碱,你說我怎么就攤上這事“峦荩” “怎么了巷疼?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灵奖。 經(jīng)常有香客問我嚼沿,道長估盘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任骡尽,我火速辦了婚禮遣妥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攀细。我一直安慰自己箫踩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布谭贪。 她就那樣靜靜地躺著境钟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俭识。 梳的紋絲不亂的頭發(fā)上慨削,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音鱼的,去河邊找鬼。 笑死痘煤,一個胖子當(dāng)著我的面吹牛凑阶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衷快,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼宙橱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蘸拔?” 一聲冷哼從身側(cè)響起师郑,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎调窍,沒想到半個月后宝冕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邓萨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年地梨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缔恳。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡宝剖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歉甚,到底是詐尸還是另有隱情万细,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布纸泄,位于F島的核電站赖钞,受9級特大地震影響腰素,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仁烹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一耸弄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卓缰,春花似錦计呈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至总寒,卻和暖如春扶歪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摄闸。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工善镰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人年枕。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓炫欺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熏兄。 傳聞我的和親對象是個殘疾皇子品洛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容