最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

為什么計算機(jī)需要操作系統(tǒng)?(一文詳解~)

2023-02-20 16:48 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

今天我們從三個方面來簡單聊聊為什么計算機(jī)系統(tǒng)操作系統(tǒng)這個話題。


資源分配器

如果你的CPU上只需要運行一個程序,那么你的確不需要操作系統(tǒng)。

可是,一旦你的CPU上需要再運行一個程序,那么馬上就會面臨一個問題:兩個程序開始競爭資源,因為計算機(jī)的硬件就那么多:有限的處理器個數(shù)、有限的內(nèi)存容量、有限的磁盤容量等等,當(dāng)在只有一個CPU(核)的機(jī)器上要運行兩個程序時,在某一個時刻CPU到底該運行哪個程序呢?

這顯然不是程序1應(yīng)該關(guān)心的事情,當(dāng)然,也不是程序2該關(guān)心的事情,這就需要必須得有一個什么程序來關(guān)心,這個程序就是操作系統(tǒng)。操作系統(tǒng)存在的目的就是為了合理的給各個運行起來后的程序分配資源,從這個角度你可以把操作系統(tǒng)理解為一個資源分配器。顯然你不能把CPU切成多個小的CPU,而只能采用“分時”的策略,也就是“你用一會我用一會”,這就好比大家去游樂場玩過山車,由于過山車只有一個,而且不能拆分成更小的給大家用,因此大家只能排隊,你用一會我用一會;操作系統(tǒng)也采用此策略將CPU資源分配給各個進(jìn)程,因此從操作系統(tǒng)的角度看“進(jìn)程A用一會CPU后然后暫停,進(jìn)程B再用一會兒”,即,操作系統(tǒng)不斷的將CPU在各個進(jìn)程之間切換,只不過切換的速度足夠快,因此從用戶看來進(jìn)程在同時運行;操作系統(tǒng)決定以什么樣的順序?qū)PU分配給各個進(jìn)程就是所謂的進(jìn)程調(diào)度。

而像內(nèi)存或者磁盤這類存儲資源與CPU不同,我們可以很方便的將內(nèi)存進(jìn)行劃分,因此可以采用“分塊”的策略,也就是“ 你用一塊我用一塊”,這就是好比停車位,一個停車場中有很多停車位,大家可以同時去停車場中停車。內(nèi)存也是同樣的道理,我們可以將內(nèi)存的劃分給不同的進(jìn)程,因此不同的進(jìn)程可以同時存在于內(nèi)存中。為高效使用有限的內(nèi)存資源,操作系統(tǒng)在內(nèi)存的使用上可謂絞盡腦汁,虛擬內(nèi)存就是精彩的發(fā)明,其可以讓更多進(jìn)程常駐內(nèi)存,當(dāng)然,虛擬內(nèi)存也帶來不小的挑戰(zhàn),這些都需要靠軟硬件結(jié)合來解決。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)??



資源隔離與秩序維護(hù)者

程序A的運行不能干擾到程序B,即,如果程序A出現(xiàn)bug導(dǎo)致崩潰,那么它不能影響到系統(tǒng)中的其它程序,當(dāng)然也包括操作系統(tǒng)這個程序;

程序A決不能隨意訪問程序B所在的內(nèi)存區(qū)域等等,你肯定不希望其它程序能直接獲取你的聊天信息,這些都需要操作系統(tǒng)進(jìn)行資源隔離。除此之外,復(fù)雜的任務(wù)需要借助多個程序通力合作才能完成,因此程序之間除了隔離之外也必須進(jìn)行必要的通信,比如進(jìn)程間通信等,這時操作系統(tǒng)必須提供必要的同步以及互斥機(jī)制,確保程序?qū)蚕碣Y源的訪問以及程序的運行順序符合程序員的預(yù)期。因此從這個角度看操作系統(tǒng)又是資源隔離與秩序維護(hù)者。

細(xì)節(jié)屏蔽者

操作系統(tǒng)和TCP/IP協(xié)議棧的作用是類似的,如果沒有TCP/IP協(xié)議棧,那么在發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時你需要自己填寫好tcp協(xié)議header,維護(hù)好tcp的鏈接狀態(tài),發(fā)送前要進(jìn)行三次握手,發(fā)送的過程中需要保證數(shù)據(jù)包的可靠傳輸、還要自己維護(hù)tcp的擁塞控制等等,搞定tcp協(xié)議還不算完,不要忘了還有ip協(xié)議,除此之外還有數(shù)據(jù)鏈路層等等,如果這一切都要自己搞定,相信沒有多少程序員能進(jìn)行網(wǎng)絡(luò)編程,而且大部分程序員在編寫網(wǎng)絡(luò)程序時相信對這些細(xì)節(jié)也不感興趣。這時tcp/ip協(xié)議棧就非常重要了,它通過socket對上層程序員屏蔽了網(wǎng)絡(luò)的復(fù)雜度,程序員僅需要調(diào)用send/recv即可進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的收發(fā),這大大簡化了網(wǎng)絡(luò)編程,因此你可以把內(nèi)核中負(fù)責(zé)處理tcp/ip的那一部分理解為計算機(jī)網(wǎng)絡(luò)的”操作系統(tǒng)“。而操作系統(tǒng)也是同樣的道理,我們知道真正完成計算任務(wù)的是硬件,hardware,而硬件本身通常是非常難以編程的,尤其設(shè)計I/O的部分,因為這非常的細(xì)節(jié)、非?,嵥?,程序員在讀寫文件時大概率不想關(guān)心要讀寫的數(shù)據(jù)到底保存在磁盤的哪個盤面、哪個柱面、哪個扇區(qū)上,也不想關(guān)心該使用什么樣的機(jī)器指令可以控制磁盤的讀寫、怎樣平衡好讀寫速率與磁盤壽命等等,你需要的是兩個read/write函數(shù)就能讀寫文件這種抽象概念(實際上從磁盤的角度來說根本不存在文件這種概念)。

這時操作系統(tǒng)的作用就非常明顯了,操作系統(tǒng)對上層應(yīng)用屏蔽了底層的這些細(xì)節(jié),讓程序員可以將注意力放在自己的領(lǐng)域上。因此,從這個角度看操作系統(tǒng)更像是一個細(xì)節(jié)屏蔽者,它提供的一個重要的功能就是:抽象,Abstraction。


原文作者:碼農(nóng)的荒島求生





為什么計算機(jī)需要操作系統(tǒng)?(一文詳解~)的評論 (共 條)

分享到微博請遵守國家法律
客服| 翼城县| 离岛区| 江门市| 大城县| 西青区| 泾源县| 通江县| 万州区| 竹溪县| 马关县| 延津县| 临高县| 哈密市| 韶关市| 澜沧| 常宁市| 丹寨县| 株洲县| 灌阳县| 新宾| 成武县| 荣成市| 滕州市| 肥乡县| 新宁县| 新蔡县| 淄博市| 玛纳斯县| 晋江市| 明水县| 文昌市| 奉节县| 山阴县| 溆浦县| 苏州市| 邛崃市| 滦平县| 富裕县| 铜鼓县| 防城港市|