日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机制OR策略

發布時間:2024/4/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机制OR策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? Unix/Linux的接口設計有一句通用的格言“提供機制而不是策略”。 ? ? 區別對待機制(mechanism)和策略(policy)是Unix設計中的一大亮點。大部分的編程問題都可以被切割成兩個部分:“需要提供什么功能”(機制)和“怎樣實現這些功能”(策略)。如果由程序中的獨立部分分別負責機制和策略的實現,那么開發軟件就更容易,也更容易適應不同的需求。 ? ? ? ?開源的存在展現在我們面前的是數以千計的代碼,在那一行行的代碼背后,到底蘊藏著怎樣的設計思想,高手們曾怎樣苦思冥想。在一堆堆的代碼面前,有時候,我們很容易迷失曾經進來的入口,而掉入符號,變量以及函數堆積成的沼澤地。 ? ? ? ?操作系統的本質是什么?管理者?亦或服務者?但,歸根結底,它是一個執行者:執行用戶程序-所謂為用戶服務;執行中斷-所謂為外設服務;執行系統調用-所謂解放程序員(姑且說它為廣大的程序員服務,因為程序員不再與繁雜的硬件打交道了);執行內核線程-為操作系統自身服務。
? ?而這所有執行的核心,無非是在恰當的時機,讓哪個對象(程序,線程,中斷服務程序,中斷的下半部,系統調用)占有CPU。 換句話說,Unix/Linux抽象出對這些對象的執行機制: 程序的執行機制-進程 內核函數的執行機制-線程
中斷服務程序的執行機制-中斷信號觸發
中斷下半部的執行機制-softirq,tasklet,工作隊列
系統調用的執行-軟中斷(int $0x80觸發)

??
? ? 從機制和策略的角度看問題,也許,你對曾經困惑的問題有赫然開朗之感。
? ?如果說機制是一種框架,那么,策略就是填充框架的一個個具體實體。機制提供的是一種開放而寬松的環境,而策略就是在這個環境下賴以生存的生命個體。比如,我們編寫的一個程序,fork()以后,就成為一個個進程的生命個體。而操作系統所提供給我們創建、執行以及結束進程的各種原語-fork(),exex()和exit()等是統管各種進程的機制。我們所創建進程的死活并不會影響機制本身。 ? ? ?如此看來,也許我們對原理之困惑有所醒悟。我們任何人在任何時候都可以調用fork()創建N多進程。這樣一個簡單的fork()殼,想追根溯源者,剝開這個殼,可以看到其五臟六腑。fork()如果出現任何一個小bug,直接影響到我們任何人和任何進程。 ? ? ? ?如此看來,也許我們對開發者所承擔的角色有所感悟。系統分析員和設計人員,任重而探究的路漫漫兮。說到此,設計模式等系列書,對有志于從編碼走向設計的開發者或許有所啟發。

總結

以上是生活随笔為你收集整理的机制OR策略的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。