Linux基礎知識3

2021-10-02 21:55:10 字數 2276 閱讀 8436

q1. 什麼是臨界區?什麼是競爭狀態?什麼是同步?

a:

臨界區(critical regions)就是訪問和操作共享資料的**段,多個核心任務併發訪問同乙個資源通常是不安全的;

如果兩個核心任務可能處於同乙個臨界區,就是一種錯誤現象;如果確實發生了這種情況,就稱它為競爭狀態;

避免併發和防止競爭狀態稱為同步(synchronization)。

q2. 簡要介紹一下死鎖及避免死鎖的方法。

a:

死鎖包括自死鎖和abba死鎖,

產生死鎖有四個原因:互斥使用、不可搶占、請求和保持,以及迴圈等待;

避免死鎖的方法有:破壞「不可剝奪」條件、破壞「請求和保持」條件、破壞「迴圈等待」條件。

q3. 核心中造成併發執行的原因是什麼?

a:

「併發」分為「偽併發」和「真併發」兩種,核心中造成併發執行的原因有以下幾種:

中斷:它可能隨時打斷當前正在執行的**;

核心搶占:核心中的任務可能會被另乙個任務搶占;

睡眠及其與使用者空間的同步:在核心執行的程序可能會睡眠,這就會喚醒排程程式,排程乙個新的使用者程序執行;

對稱多處理:兩個或多個處理器可以同時執行**。

q4. 給出訊號量的定義,並說明down()和up()的含義。

a:

linux中的訊號量是一種睡眠鎖,它是2023年由dijkstra提出的,如果乙個任務試圖獲得乙個已被持有的訊號量,訊號量會將其推入等待佇列,然後讓其睡眠;當持有訊號量的程序將訊號量釋放後,在等待佇列中的乙個任務將被喚醒,從而可以獲得這個訊號量;

訊號量支援兩個原子操作p()和v(),前者叫做測試操作,後者叫做增加操作;後來的系統把這兩種操作分別叫做down()和up();

down()操作通過對訊號量計數減1來請求獲得乙個訊號量;up()操作用來釋放訊號量,該操作也被稱作「提公升」(upping)訊號量,因為它會增加訊號量的計數值。

q5. linux目錄樹結構是怎樣的?它與windows的目錄樹結構有什麼區別?為什麼linux的檔案系統採用固定的目錄形式?

a:

檔案是乙個抽象的概念,它是存放一切資料或資訊的倉庫;

linux的目錄樹結構為:根目錄(/)在上,其它的平行在下;

windows作業系統也是採用樹型結構,但其樹型結構的根是磁碟分割槽的碟符,有幾個分割槽就有幾個樹型結構,它們之間的關係式並列的;而在linux中,無論作業系統管理幾個磁碟分割槽,這樣的目錄樹只有乙個;

這樣做的原因是:linux是乙個多使用者系統,制定這樣乙個固定的目錄規劃有助於對系統檔案和不同的使用者檔案進行統一管理;

q6. 什麼是虛擬檔案系統?什麼是虛擬檔案系統介面?

a:

將各種不同檔案系統的操作和管理納入到乙個統一的框架中,使得使用者程式可以通過同乙個檔案系統介面,也就是同一組系統呼叫,對各種不同的檔案系統以及檔案進行操作;使用者程式可以不關心不同檔案系統的實現細節,而使用系統提供的統

一、抽象、虛擬的檔案系統介面;這種統一的框架就是所謂的虛擬檔案系統轉換,一般簡稱虛擬檔案系統(vfs);

vfs的物件型別包括:超級塊(superblock)物件、索引節點(inode)物件、目錄項(dentry)物件和檔案(file)物件;

虛擬檔案系統介面是虛擬檔案系統所提供的抽象介面,它主要由一組標準的、抽象的操作構成,這些函式(操作)以系統呼叫的形式供使用者呼叫。

q7. 為什麼把裝置分為「塊裝置」和「字元裝置」兩大類?

a:

linux將裝置看成檔案,具有三方面的含義:第一,每個裝置都對應乙個檔名,在核心中也就對應乙個索引節點;第二,對檔案操作的系統呼叫大都適用於裝置檔案;第三,從應用程式的角度看,裝置檔案的邏輯空間是乙個線性空間;對於同乙個具體的裝置而言,檔案操作和裝置驅動是同乙個事物的不同層次,概念上可以將乙個系統劃分為應用、檔案系統和裝置驅動三個層次;

linux將裝置分為兩大類,一類是像磁碟那樣的以塊或扇區為單位、成塊進行輸入/輸出的裝置,稱為塊裝置;另一類是像鍵盤那樣以字元(位元組)為單位,逐個字元進行輸入/輸出的裝置,稱為字元裝置;檔案系統通常都建立在塊裝置上。

q8. 什麼是裝置驅動程式?

a:

linux中處理和管理硬體控制器的軟體就是裝置驅動程式。

q9. i/o埠一般包括哪些暫存器?各自功能是什麼?

a:

i/o埠包括控制暫存器、狀態暫存器和資料暫存器三大類;

Linux基礎知識 vim介紹(3)

終端輸入yum install y vim vim介紹 vim是從 vi 發展出來的乙個文字編輯器。其具有 補完 編譯及錯誤跳轉等方便程式設計的功能,被廣泛使用。vim 可以說是程式開發者的一項很好用的工具.vim工作模式 正常模式 終端輸入vim 檔名即可進入正常模式,若檔案 已經存在,則直接打幵...

linux基礎知識

舉例來說,硬碟的檔名稱即為 dev hd a d 其中,括號內的字母為 a d 當中的任何乙個,亦即由 dev hda,dev hdb,dev hdc,及 dev hdd 這四個檔案的意思 注 這種型式的表示法在後面的章節當中會使用得很頻繁,請特別留意 那麼光碟機與軟盤呢?分別是 dev cdrom...

Linux基礎知識

檔案系統 分割槽和掛載 linux 檔案系統是乙個檔案樹,它的所有檔案和外部裝置都是以檔案的形式掛結在這個檔案樹上,例如 usr local 目錄結構屬於分割槽 linux 下,分割槽屬於目錄結構。預設檔案系統一般為ext3 ext2的公升級版 分割槽包括主分割槽 擴充套件分割槽 邏輯分割槽和swa...