現(xiàn)代操作系統(tǒng)(一)

計算機(jī)系統(tǒng)


計算機(jī)系統(tǒng)是由處理器吐句、主存龄广、磁盤、i/o設(shè)備等等 組成蕴侧。

而操作系統(tǒng)是一個軟件择同,用于管理計算機(jī)系統(tǒng)。

與用戶交互的 基于文本的稱為shell 基于界面的稱為GUI 但這些并不屬于操作系統(tǒng)

? ? ? ?

這里的用戶接口程序就是 我們的Shell(命令行)和GUI(window的桌面)

多數(shù)計算機(jī)有兩種運(yùn)行模式:內(nèi)核態(tài)和用戶態(tài)

操作系統(tǒng)運(yùn)行在內(nèi)核態(tài)中(也稱為管態(tài)净宵、核心態(tài))

在這個模式中

操作系統(tǒng)對所有硬件具有完全訪問權(quán)敲才,可以運(yùn)行任何計算機(jī)課執(zhí)行的指令。

而其余軟件運(yùn)行在用戶態(tài)择葡,只使用了機(jī)器指令中的一個子集紧武,比如一些i/o指令時禁止的。

操作系統(tǒng)與普通軟件的主要區(qū)別是

普通軟件你不喜歡可以更換敏储,或?qū)懸粋€但操作系統(tǒng)卻不能寫阻星,這是受硬件保護(hù)的。

但嵌入式操作系統(tǒng)(它沒有內(nèi)核態(tài))和解釋系統(tǒng)(java的操作系統(tǒng))除外已添。

linux與window的源代碼有500萬行妥箕,如果包括共享庫,則應(yīng)該有7000萬行

一本書1000頁更舞,一頁50行畦幢,也要100本書±虏酰基本就是一個書架宇葱。如果包括共享庫起碼要10-20個書架。所以刊头,操作系統(tǒng)是大型黍瞧、復(fù)雜、且長壽的原杂。

壽命長是因?yàn)橛〔坏┚帉懗鰜恚姓呔筒辉竵G棄去在寫一個污尉。

什么是操作系統(tǒng)

它是在內(nèi)核態(tài)運(yùn)行的軟件

操作系統(tǒng)有兩個基本上的獨(dú)立任務(wù)膀哲;為應(yīng)用程序提供抽象、管理硬件資源

硬件為操作系統(tǒng)提供了丑陋的接口被碗,而操作系統(tǒng)又為用戶(應(yīng)用程序)提供美麗的接口

操作系統(tǒng)的歷史

從1945 第一代計算機(jī): 真空管和穿孔卡片? 到1955年 第二代 晶體管和批處理系統(tǒng) 到1965年 第三代集成電路和多道程序設(shè)計 到1980 第四代個人計算機(jī) 到1990年 第五代移動計算機(jī)

計算機(jī)硬件

cpu某宪、 存儲器 、i/o設(shè)備


現(xiàn)在的計算機(jī)都可看做這個模型(目前還是夠用的)

操作系統(tǒng)擴(kuò)展了計算機(jī)的指令集锐朴、它要做的是了解大量硬件? 并了解硬件如何面對程序員兴喂,在這里簡要了解一下硬件。

如需詳細(xì)了解請查閱 Tanenbaum和Autiin(2012) Patterson和Hennessy(2013)

處理器

cpu


他的一生都在 從內(nèi)存中取出指令焚志,解碼-確定其類型與操作數(shù)之中(取指衣迷,解碼)每個CPU都有一套可執(zhí)行的指令集(x86不能執(zhí)行ARM程序 反過來也不行)

cpu內(nèi)有個臨時寄存器。由于取指比解碼的時間長酱酬,所以就有處理臨時數(shù)據(jù)的寄存器壶谒,這個臨時寄存器在cpu內(nèi),有了這個臨時寄存器就可以從內(nèi)存讀取到臨時寄存器里膳沽,也可以將變量和結(jié)果保存在這個臨時寄存器上汗菜,也可以從臨時寄存器存入內(nèi)存。

有個專用寄存器挑社。他保存了下一個要讀取指令的地址陨界,指向下一個后續(xù)指令。

有一個堆棧指針寄存器痛阻。指向內(nèi)存中棧的頂端菌瘪,該棧包含每個指執(zhí)行過程的棧幀。一個棧幀保存了有關(guān)的輸入?yún)?shù)阱当、局部變量俏扩、及沒保存在寄存器中的臨時變量。

有一個程序狀態(tài)字(Program Status Word? (PSW))寄存器弊添。保存著包含條件的碼位动猬,cpu優(yōu)先級、模式表箭,及各種其他控制位赁咙。

所有cpu有四個寄存器

臨時寄存器 、專用寄存器免钻、 堆棧指針寄存器 彼水、程序狀態(tài)字寄存器(PSW)

操作系統(tǒng)必須了解每一個寄存器

因?yàn)樵诙嗦窂?fù)用(同時使用)的操作系統(tǒng)中,操作系統(tǒng)不停的啟動關(guān)停程序

每關(guān)停一次极舔,就必須知道這些寄存器運(yùn)行到了哪里凤覆,等待啟動繼續(xù)運(yùn)行

為了性能,設(shè)計師早就放棄了同時讀取拆魏、解碼盯桦、執(zhí)行的簡單模型〈雀現(xiàn)在的cpu有單獨(dú)的取指單元,取n指令時拥峦,可以對n+1指令解碼贴膘,這樣的機(jī)制稱為流水線。


比流水線更厲害的是超標(biāo)量cpu略号。這種機(jī)制在解碼單元和執(zhí)行單元之間添加了一個保持緩沖區(qū)刑峡,兩旁有很多的執(zhí)行單元,一旦有空閑的執(zhí)行單元就立馬檢查緩沖區(qū)是否有可執(zhí)行的指令玄柠。

前面說過突梦,用戶態(tài)運(yùn)行下的程序只能執(zhí)行cup整個指令集的子集,而這些都是由PSW一個二進(jìn)制位控制羽利,用戶態(tài)下很多有關(guān)I/O和內(nèi)存保護(hù)的所有指令的是禁止的

為了從操作系統(tǒng)中獲取這些服務(wù)宫患,用戶程序必須使用系統(tǒng)調(diào)用(system call),在這里先把他看成是特殊的用戶指令,是用戶從用戶態(tài)切換到內(nèi)核態(tài)的能力

但是計算機(jī)使用陷阱來執(zhí)行系統(tǒng)調(diào)用而非指令这弧,其他多數(shù)陷阱是由硬件引起的撮奏,用來警告有異常情況的發(fā)生。

多線程與多核芯片

moore定律是芯片中的晶體管沒18個月翻一倍当宴。它已經(jīng)保持了30年畜吊,有望再保持10年,這么多的晶體管的必然結(jié)果是户矢,在cpu中加入了更大的緩存(后面解釋)玲献,隨后某種控制邏輯也會出現(xiàn),比如多線程或超線程

多線程允許cpu保持兩個不同的線程狀態(tài)梯浪,然后再納秒級的時間尺度來回切換捌年。(線程是一種輕量級進(jìn)程,后面解釋)

多線程對操作系統(tǒng)是有益的挂洛,因?yàn)橐粋€線程相當(dāng)于單個cpu礼预,對于實(shí)際只有兩個cpu的操作系統(tǒng)來說,則相當(dāng)于4個cpu虏劲。

除了多線程外托酸,還有多核,就是一個多核芯片可以安放多小芯片柒巫,每個小芯片相當(dāng)于cpu励堡,目前最多的有60多個核,如Intel Xeon Phi等

但操作系統(tǒng)使用這類多核芯片堡掏,必須使用多處理器操作系統(tǒng)

論數(shù)量最多的沒什么贏過GPU(顯卡的組成部分)的应结,GPU是由成千上萬個微核組成的處理器,擅長圖形渲染,但不能勝任串行任務(wù)鹅龄,且很難編程揩慕。GPU在加密及網(wǎng)絡(luò)傳輸方面對操作系統(tǒng)很有用,但讓他運(yùn)行在GPU上就不太可能了扮休。

存儲器

存儲器可分為寄存器迎卤、緩存、內(nèi)存肛炮、硬盤等

任何一種計算機(jī)中止吐,第二種主要部件都是存儲器

理想的儲存器應(yīng)有三個目標(biāo)

極為迅速宝踪,cpu不會受到儲存器限制

充分大

非常便宜

但目前是無法同時滿足著三個目標(biāo)

頂層是存儲器侨糟,寄存器在cpu中,沒有時延瘩燥,容量為 在32位CPU為32*32,64位中則64*64秕重,其儲存容量都小于1kb

下一層是高速緩存,當(dāng)某個程序讀取存儲字時厉膀,先會檢查高速緩存中是否有對應(yīng)的字溶耘,是,則被稱為高速緩存命中服鹅,就不需要通過主線去訪問主存了凳兵,當(dāng)高速緩存的價格昂貴,大小有限企软。

操作系統(tǒng)一直在使用緩存庐扫,避免重復(fù)地調(diào)取主存中的文件,以提高效率

緩存是一個好方法仗哨,在現(xiàn)代CPU中設(shè)計了兩個緩存

第一級稱為L1緩存形庭,在CPU中,將以解碼的指令調(diào)入cpu執(zhí)行厌漂,無延遲

第二級稱為L2緩存萨醒,在CPU外,用來存放使用過的內(nèi)存字苇倡,有1-2個時鐘周期延遲

cpu讀取過程


再往下一層是主存富纸,通常稱為隨機(jī)訪問存儲器(RAM)

除主存之外,還有一類 非易失性訪問存儲器

只讀存儲器(ROM) 閃存? 電可擦除可編程存儲器(EEPROM)

前一個在出廠時就已寫好旨椒,不能被更改胜嗓,后兩個則可以被更改

還有易失的CMOS存儲器 它靠一塊小電池驅(qū)動保持時間和啟動磁盤等配置,計算機(jī)

沒上電也可更新時間?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钩乍,一起剝皮案震驚了整個濱河市辞州,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寥粹,老刑警劉巖变过,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埃元,死亡現(xiàn)場離奇詭異,居然都是意外死亡媚狰,警方通過查閱死者的電腦和手機(jī)岛杀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崭孤,“玉大人类嗤,你說我怎么就攤上這事”娉瑁” “怎么了遗锣?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嗤形。 經(jīng)常有香客問我精偿,道長,這世上最難降的妖魔是什么赋兵? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任笔咽,我火速辦了婚禮,結(jié)果婚禮上霹期,老公的妹妹穿的比我還像新娘叶组。我一直安慰自己,他們只是感情好历造,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布甩十。 她就那樣靜靜地躺著,像睡著了一般帕膜。 火紅的嫁衣襯著肌膚如雪枣氧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天垮刹,我揣著相機(jī)與錄音达吞,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扼仲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼覆糟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遮咖?” 一聲冷哼從身側(cè)響起滩字,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后麦箍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漓藕,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年挟裂,在試婚紗的時候發(fā)現(xiàn)自己被綠了享钞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡诀蓉,死狀恐怖栗竖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渠啤,我是刑警寧澤狐肢,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站埃篓,受9級特大地震影響处坪,放射性物質(zhì)發(fā)生泄漏根资。R本人自食惡果不足惜架专,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玄帕。 院中可真熱鬧部脚,春花似錦、人聲如沸裤纹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹰椒。三九已至锡移,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漆际,已是汗流浹背淆珊。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奸汇,地道東北人施符。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像擂找,于是被迫代替她去往敵國和親戳吝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

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