成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你知道操作系統何時運行?

系統 Linux
請各位思考以下問題:在你閱讀本文的這段時間內,計算機中的操作系統在運行嗎?又或者僅僅是 Web 瀏覽器在運行?又或者它們也許均處于空閑狀態,等待著你的指示?

 

[[211734]]

請各位思考以下問題:在你閱讀本文的這段時間內,計算機中的操作系統在運行嗎?又或者僅僅是 Web 瀏覽器在運行?又或者它們也許均處于空閑狀態,等待著你的指示?

這些問題并不復雜,但它們深入涉及到系統軟件工作的本質。為了準確回答這些問題,我們需要透徹理解操作系統的行為模型,包括性能、安全和除錯等方面。在該系列文章中,我們將以 Linux 為主舉例來幫助你建立操作系統的行為模型,OS X 和 Windows 在必要的時候也會有所涉及。對那些深度探索者,我會在適當的時候給出 Linux 內核源碼的鏈接。

這里有一個基本認知,就是,在任意給定時刻,某個 CPU 上僅有一個任務處于活動狀態。大多數情形下這個任務是某個用戶程序,例如你的 Web 瀏覽器或音樂播放器,但它也可能是一個操作系統線程。可以確信的是,它是一個任務,不是兩個或更多,也不是零個,對,永遠是一個。

這聽上去可能會有些問題。比如,你的音樂播放器是否會獨占 CPU 而阻止其它任務運行?從而使你不能打開任務管理工具去殺死音樂播放器,甚至讓鼠標點擊也失效,因為操作系統沒有機會去處理這些事件。你可能會憤而喊出,“它究竟在搞什么鬼?”,并引發騷亂。

此時便輪到中斷大顯身手了。中斷就好比,一聲巨響或一次拍肩后,神經系統通知大腦去感知外部刺激一般。計算機主板上的芯片組同樣會中斷 CPU 運行以傳遞新的外部事件,例如鍵盤上的某個鍵被按下、網絡數據包的到達、一次硬盤讀取的完成,等等。硬件外設、主板上的中斷控制器和 CPU 本身,它們共同協作實現了中斷機制。

中斷對于記錄我們最珍視的資源——時間——也至關重要。計算機啟動過程中,操作系統內核會設置一個硬件計時器以讓其產生周期性計時中斷,例如每隔 10 毫秒觸發一次。每當計時中斷到來,內核便會收到通知以更新系統統計信息和盤點如下事項:當前用戶程序是否已運行了足夠長時間?是否有某個 TCP 定時器超時了?中斷給予了內核一個處理這些問題并采取合適措施的機會。這就好像你給自己設置了整天的周期鬧鈴并把它們用作檢查點:我是否應該去做我正在進行的工作?是否存在更緊急的事項?直到你發現 10 年時間已逝去……

這些內核對 CPU 周期性的劫持被稱為滴答,也就是說,是中斷讓你的操作系統滴答了一下。不止如此,中斷也被用作處理一些軟件事件,如整數溢出和頁錯誤,其中未涉及外部硬件。中斷是進入操作系統內核最頻繁也是最重要的入口。對于學習電子工程的人而言,這些并無古怪,它們是操作系統賴以運行的機制。

說到這里,讓我們再來看一些實際情形。下圖示意了 Intel Core i5 系統中的一個網卡中斷。圖片中的部分元素設置了超鏈,你可以點擊它們以獲取更為詳細的信息,例如每個設備均被鏈接到了對應的 Linux 驅動源碼。

鏈接如下:

讓我們來仔細研究下。首先,由于系統中存在眾多中斷源,如果硬件只是通知 CPU “嘿,這里發生了一些事情”然后什么也不做,則不太行得通。這會帶來難以忍受的冗長等待。因此,計算機上電時,每個設備都被授予了一根中斷線,或者稱為 IRQ。這些 IRQ 然后被系統中的中斷控制器映射成值介于 0 到 255 之間的中斷向量。等到中斷到達 CPU,它便具備了一個完好定義的數值,異于硬件的某些其它詭異行為。

相應地,CPU 中還存有一個由內核維護的指針,指向一個包含 255 個函數指針的數組,其中每個函數被用來處理某個特定的中斷向量。后文中,我們將繼續深入探討這個數組,它也被稱作中斷描述符表(IDT)。

每當中斷到來,CPU 會用中斷向量的值去索引中斷描述符表,并執行相應處理函數。這相當于,在當前正在執行任務的上下文中,發生了一個特殊函數調用,從而允許操作系統以較小開銷快速對外部事件作出反應。考慮下述場景,Web 服務器在發送數據時,CPU 卻間接調用了操作系統函數,這聽上去要么很炫酷要么令人驚恐。下圖展示了 Vim 編輯器運行過程中一個中斷到來的情形。

此處請留意,中斷的到來是如何觸發 CPU 到 Ring 0 內核模式的切換而未有改變當前活躍的任務。這看上去就像,Vim 編輯器直接面向操作系統內核產生了一次神奇的函數調用,但 Vim 還在那里,它的地址空間原封未動,等待著執行流返回。

這很令人振奮,不是么?不過讓我們暫且告一段落吧,我需要合理控制篇幅。我知道還沒有回答完這個開放式問題,甚至還實質上翻開了新的問題,但你至少知道了在你讀這個句子的同時滴答正在發生。我們將在充實了對操作系統動態行為模型的理解之后再回來尋求問題的答案,對 Web 瀏覽器情形的理解也會變得清晰。如果你仍有問題,尤其是在這篇文章公諸于眾后,請盡管提出。我將會在文章或后續評論中回答它們。下篇文章將于明天在 RSS 和 Twitter 上發布。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-05-29 09:41:42

操作系統計算機系統

2019-03-05 11:22:17

操作系統調度算法

2010-01-06 15:36:30

Linux操作系統

2010-04-21 12:59:21

Oracle運行

2017-04-21 21:25:12

操作系統國產

2019-07-09 14:30:31

華為鴻蒙操作系統操作系統

2019-10-16 18:35:37

Windows操作系統微軟

2010-04-15 15:21:43

Unix操作系統

2010-01-06 16:32:45

Linux操作系統

2010-04-15 17:21:40

Unix操作系統

2014-05-29 11:14:35

2009-12-07 17:51:39

2022-01-07 17:28:07

操作系統IO 內存

2009-12-22 10:56:33

2009-12-09 17:25:19

Linux操作系統

2009-12-15 17:16:49

免費在線操作系統

2017-05-25 10:58:08

HBase數據庫操作系統

2010-05-05 17:53:39

Oracle 8i

2022-04-15 08:15:49

操作系統程序計算機

2009-07-10 08:45:49

微軟Windows 7優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产麻豆乱码精品一区二区三区 | 亚洲视频一区二区三区 | 狠狠入ady亚洲精品经典电影 | 午夜精品一区二区三区在线视频 | 国产日韩免费视频 | 美女拍拍拍网站 | 国产精品久久久一区二区三区 | 日韩av在线一区 | 91中文| 欧美日韩三级 | 男女视频91 | 1区2区3区视频 | 欧美综合在线视频 | 久久鲁视频 | 国产在线一区二区 | 亚洲一区欧美 | 日韩午夜 | 日韩精品在线看 | 国产精品看片 | 色婷婷综合在线观看 | 精品久久久久国产 | 福利网址 | 亚洲天堂av一区 | 亚洲精品一区二区 | 欧美精品在线免费观看 | 久久亚洲欧美日韩精品专区 | 精品1区2区 | 天堂中文在线播放 | 亚洲一区二区三区 | 中文字幕日韩一区 | 在线免费观看成年人视频 | 国产乱码精品一区二三赶尸艳谈 | 精品免费国产一区二区三区四区 | 91在线视频网址 | 国产午夜影院 | 日本中文在线视频 | 久久精品天堂 | 免费色网址 | 久久99精品久久久97夜夜嗨 | 久久国产亚洲精品 | 成年免费大片黄在线观看岛国 |