Exception - CSAPP C8

I never make exceptions. An exception disproves the rule
-- Sherlock Holmes

福爾摩斯的世界沒有Exception才可以更好的去在既有的框架下解決問題亲族,但Exception卻是計(jì)算機(jī)構(gòu)成的一個(gè)有力武器炒考,因?yàn)楝F(xiàn)實(shí)世界總是有各種的不完美,而作為要去表達(dá)世界的計(jì)算機(jī)自然也要包容這個(gè)不停有意外(Exception)的世界霎迫。
最理想的系統(tǒng)是一切可控斋枢,從開啟到結(jié)束一步步去執(zhí)行我們計(jì)劃的命令,最終達(dá)到結(jié)果知给,這種基于我們之前實(shí)現(xiàn)過的跳轉(zhuǎn)-分支與調(diào)用-返回就可以實(shí)現(xiàn)瓤帚,但是不能覆蓋這個(gè)不完美的世界,比如你之前要的數(shù)據(jù)經(jīng)歷了重重阻隔終于到手邊可以用了,定了個(gè)鬧鐘要提醒你了缘滥,甚至于外力想阻斷系統(tǒng)的流程轰胁,這些都需要更為復(fù)雜的一個(gè)體系去包容谒主,稱為異吵螅控制流(exceptional control flow)

異常控制流貫穿于整個(gè)系統(tǒng)霎肯,存在于各個(gè)系統(tǒng)的層級擎颖。

  • 最底層的機(jī)制稱為異常(Exception),主要涵蓋了系統(tǒng)事件观游,通常是由硬件和操作系統(tǒng)共同實(shí)現(xiàn)的搂捧。

  • 進(jìn)程切換(Process Context Switch),主要涵蓋硬件過渡到操作系統(tǒng)懂缕,操作系統(tǒng)過渡到語言庫允跑,由硬件計(jì)時(shí)器和操作系統(tǒng)共同實(shí)現(xiàn)的。

  • 信號(Signal)搪柑,主要涵蓋了操作系統(tǒng)到進(jìn)程聋丝。由操作系統(tǒng)實(shí)現(xiàn)。

  • 非本地跳轉(zhuǎn)(Nonlocal Jumps)工碾,主要是涵蓋進(jìn)程內(nèi)部弱睦,一般由操作系統(tǒng)配合語言本身實(shí)現(xiàn)

異常

異常是計(jì)算機(jī)應(yīng)對“意外”的一種機(jī)制。主要用來響應(yīng)處理器發(fā)出的信號渊额。

而這些意外又會有多種况木,包括interrupt,trap旬迹,fault和abort火惊,從這四種我們也可以了解到“異常”其實(shí)不一定是壞事奔垦,更是一種“包容”的手段

進(jìn)程

進(jìn)程是一個(gè)偉大的抽象概念屹耐。基本的操作系統(tǒng)編程概念立足于此宴倍。而異常就是提供這個(gè)概念基礎(chǔ)的一個(gè)構(gòu)造塊张症。
進(jìn)程的定義是一個(gè)執(zhí)行中程序的實(shí)例,就像是給一個(gè)單調(diào)的可執(zhí)行文件填充了血肉鸵贬,賦予他兩個(gè)層次的抽象俗他,獨(dú)占處理器和獨(dú)占內(nèi)存系統(tǒng)。而這和我們常識是不同的阔逼,我們的確可以一邊聽歌一邊打代碼順便還瀏覽著網(wǎng)站兆衅,我們可憐的處理器縱有多核應(yīng)該也不夠分,更何況摩爾定律往前幾輪處理器也就是單核,但概念卻幾乎沒有變化羡亩,主要就是靠進(jìn)程切換這個(gè)概念去實(shí)現(xiàn)的摩疑。不只是我們直覺上的普通進(jìn)程是在不停切換的,把代碼執(zhí)行的鏡頭拉近我們會發(fā)現(xiàn)應(yīng)用程序和操作系統(tǒng)之間的部分畏铆,也是有“切換”這個(gè)概念的雷袋。

信號

信號是一種在計(jì)算機(jī)體系中偏高層的概念,與操作系統(tǒng)實(shí)現(xiàn)有關(guān)辞居。信號大體像一種操作系統(tǒng)固定下來給進(jìn)程小弟們利用的約定楷怒,然后小弟們在這個(gè)約定下,接收信號瓦灶,發(fā)送信號鸠删,老實(shí)做人:)

非本地跳轉(zhuǎn)

而非本地跳轉(zhuǎn)又是更為上層的概念,以C為例贼陶,它的目的主要是將控制直接從一個(gè)函數(shù)轉(zhuǎn)移到另一個(gè)當(dāng)前正在執(zhí)行的函數(shù)刃泡,而不需要經(jīng)過正常的調(diào)用-返回順序

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市碉怔,隨后出現(xiàn)的幾起案子烘贴,更是在濱河造成了極大的恐慌,老刑警劉巖眨层,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庙楚,死亡現(xiàn)場離奇詭異,居然都是意外死亡趴樱,警方通過查閱死者的電腦和手機(jī)馒闷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叁征,“玉大人纳账,你說我怎么就攤上這事∞嗵郏” “怎么了疏虫?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啤呼。 經(jīng)常有香客問我卧秘,道長,這世上最難降的妖魔是什么官扣? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任翅敌,我火速辦了婚禮,結(jié)果婚禮上惕蹄,老公的妹妹穿的比我還像新娘蚯涮。我一直安慰自己治专,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布遭顶。 她就那樣靜靜地躺著张峰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪棒旗。 梳的紋絲不亂的頭發(fā)上喘批,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音嗦哆,去河邊找鬼谤祖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛老速,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凸主,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼橘券,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卿吐?” 一聲冷哼從身側(cè)響起旁舰,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗡官,沒想到半個(gè)月后箭窜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衍腥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年磺樱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婆咸。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡竹捉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尚骄,到底是詐尸還是另有隱情块差,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布倔丈,位于F島的核電站憨闰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏需五。R本人自食惡果不足惜鹉动,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望警儒。 院中可真熱鬧训裆,春花似錦眶根、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至变姨,卻和暖如春族扰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背定欧。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工渔呵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砍鸠。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓扩氢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親爷辱。 傳聞我的和親對象是個(gè)殘疾皇子录豺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

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

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,931評論 2 89
  • 計(jì)算機(jī)系統(tǒng)漫游 代碼從文本到可執(zhí)行文件的過程(c語言示例):預(yù)處理階段,處理 #inlcude 饭弓, #defin...
    willdimagine閱讀 3,584評論 0 5
  • 空氣中有一雙手 捏著我的脖頸 我無法呼吸 眼前越來越迷糊 將要死去 我想 可以的話 給我一根香煙 我想再抽一口回憶...
    漂飄小曄閱讀 209評論 0 0
  • 上學(xué)那會兒特別癡迷拍照双饥,渴望著能有自己的相機(jī)。當(dāng)時(shí)的諾基亞手機(jī)帶的攝像頭也不過30W弟断,在大二那年買了個(gè)手機(jī)咏花,記得很...
    執(zhí)言偏語閱讀 378評論 6 8
  • 這文藝范十足的朋友圈昏翰,是別人家的。 這隨意瀟灑的畫風(fēng)舍咖,還是別人家的矩父。 看到別人的朋友圈多姿多彩,而你自己的朋友圈排霉,...
    顧小九nine閱讀 546評論 0 3