課程學習總結報告

2022-09-13 21:51:31 字數 2932 閱讀 2681

要求

請您根據本課程所學內容總結梳理出乙個精簡的linux系統概念模型,最大程度統攝整頓本課程及相關的知識資訊,模型應該是邏輯上可以運轉的、自洽的,並舉例某一兩個具體例子(比如讀寫檔案、分配記憶體、使用i/o驅動某個硬體等)納入模型中驗證模型。談談您對課程的心得體會,改進建議等。

linux系統的組成主要由下圖的四個部分組成:1,應用程式    2,shell   3,系統呼叫   4,核心

而linux核心主要完成了以下幾個功能:

1.中斷

中斷是指在cpu正常執行期間,由於內外部事件或由程式預先安排的事件引起的cpu暫時停止正在執行的程式,轉而為該內部或外部事件或預先安排的事件服務的程式中去,服務完畢後再返回去繼續執行被暫時中斷的程式。

1.1中斷型別

同步中斷由cpu本身產生,又稱為內部中斷。這裡同步是指中斷請求訊號與**指令之間的同步執行,在一條指令執行完畢後,cpu才能進行中斷,不能在執行期間。所以也稱為異常(exception)。

非同步中斷是由外部硬體裝置產生,又稱為外部中斷,與同步中斷相反,非同步中斷可在任何時間產生,包括指令執行期間,所以也被稱為中斷(interrupt)。

異常又可分為可遮蔽中斷(maskable interrupt)和非遮蔽中斷(nomaskable interrupt)。而中斷可分為故障(fault)、陷阱(trap)、終止(abort)三類。

從廣義上講,中斷又可分為四類:中斷、故障、陷阱、終止。

1.2區分中斷號與中斷向量

i/o裝置把中斷訊號傳送給中斷控制器與之相關聯的是乙個中斷號,當中斷控制器把中斷訊號傳送給cpu時與之關聯的是乙個中斷向量。換個角度分析就是中斷號是從中斷控制器層面劃分,中斷向量是從cpu層面劃分,所以中斷號與中斷向量之間存在一對一對映關係。在intel x86中最大支援256種中斷,從0到255開始編號,這個8位的編號就是中斷向量。其中將0到31保留用於異常處理和不可遮蔽中斷。

2.程序管理

2.1程序建立

在linux中,每個執行的程式(**)都稱為乙個程序。每乙個程序都分配乙個id號。 每乙個程序,都會對應乙個父程序,而這個父程序可以複製多個子程序。 每個程序都可能以兩種方式存在的。前台與後台,所謂前台程序就是使用者目前的螢幕上可以進行操作的。後台程序則是實際在操作,但由於螢幕上無法看到的程序,通常使用後台方式執行。 一般系統的服務都是以後臺程序的方式存在,而且都會常駐在系統中。直到關機才才結束。

2.2程序狀態

在linux系統中,乙個程序被建立之後,在系統中可以有下面5種狀態。

就緒狀態和執行狀態

就緒狀態的狀態標誌state的值為task_running。此時,程式已被掛入執行佇列,處於準備執行狀態。一旦獲得處理器使用權,即可進入執行狀態。

可中斷等待狀態

狀態標誌state的值為task_interruptibl。此時,由於程序未獲得它所申請的資源而處在等待狀態。一旦資源有效或者有喚醒訊號,程序會立即結束等待而進入就緒狀態。

不可中斷等待狀態

狀態標誌state的值為task_uninterruptibl。此時,程序也處於等待資源狀態。一旦資源有效,程序會立即進入就緒狀態。

停止狀態

狀態標誌state的值為task_stopped。這種狀態主要用於程式的除錯,又被叫做「暫停狀態」、「掛起狀態」。

中止狀態

狀態標誌state的值為task_dead。程序因某種原因而中止執行,程序占有的所有資源將被**,這種狀態也叫做「僵死狀態」,程序成為殭屍程序。

3.檔案管理

3.1vfs

linux核心支援裝載不同的檔案系統型別,不同的檔案系統有各自管理檔案的方式。linux中標準的檔案系統為ext檔案系統族,當然,開發者不能為他們使用的每種檔案系統採用不同的檔案訪問方式,這與作業系統作為一種抽象機制背道而馳。

為支援各種檔案系統,linux核心在使用者程序(或c標準庫)和具體的檔案系統之間引入了乙個抽象層,該抽象層稱之為「虛擬檔案系統(vfs)」。

3.2檔案系統

在linux系統中有乙個重要的概念:一切都是檔案。 其實這是unix哲學的乙個體現,而linux是重寫unix而來,所以這個概念也就傳承了下來。在unix系統中,把一切資源都看作是檔案,包括硬體裝置。unix系統把每個硬體都看成是乙個檔案,通常稱為裝置檔案,這樣使用者就可以用讀寫檔案的方式實現對硬體的訪問。這樣帶來優勢也是顯而易見的:

unix 許可權模型也是圍繞檔案的概念來建立的,所以對裝置也就可以同樣處理了。

4.時鐘

x86體系的linux中,主要用到了三種時鐘:實時時鐘rtc、時間戳計數器tsc及可程式設計間隔定時器pit。

儘管與cpu指令執行沒有什麼直接關係,時鐘對於作業系統來說還是有著很重要的意義: 

1、記錄系統時間。很多應用程式需要知道日期和時間、由日期和時間構成的時間戳也會被打在檔案上面、等等; 

2、統計功能。如top之類的使用者程式可以檢視一段時間內的系統負載、以及各個程序占用cpu的時間、等等; 

3、定時功能。很多使用者程式會使用到定時器,比如sleep一段時間後做某件事情、比如給select設定乙個超時時間、等等; 

總結兩位老師同時兼顧了理論和**實現,自底向上詳細通俗的講解了linux原理,讓同學們知其然並知其所以然,既掌握了巨集觀的linux基本架構,又理解了底層具體的**實現。只是可惜這門課全程網上授課,缺少了現場大課堂的氣氛。

課程學習總結報告

一 linux系統 作業系統主要完成兩個目標 與硬體互動,為應用程式提供執行環境 為了防止使用者程式直接和硬體互動,將cpu分為兩種執行模式,稱使用者態和核心態 linux是乙個多使用者多工的作業系統,一般主要有4個部分 使用者程序,系統呼叫介面,linux核心,硬體 本課程的重點主要是中斷和程序管...

Linux課程學習總結報告

程式設計師編寫的程式要想獲得執行,必須首先把靜態的程式變成乙個個動態的程序,程序因建立而產生,因排程而執行,因撤銷而消亡,這便是乙個程序的乙個生命週期。在電腦的記憶體中,有著成千上萬的程序,而cpu僅僅只有乙個,那該如何管理這些程序完成程序的排程呢?首先從程序的管理談起,程序由三部分構成 程序控制塊...

Python學習總結報告

python是一門物件導向的解釋性語言 指令碼語言 這一類語言的特點就是不用編譯,程式在執行的過程中由對應的直譯器向cpu進行編譯,一邊編譯一邊執行他屬於指令碼語言,不想編譯型語言那樣先將程式編譯成二進位制在執行。1 程式塊不是以 括起來來定義的,而是依據程式的縮進來表示程式的塊和 的層次 2 程式...