一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

操作系統

學(xué)習Linux操作系統基礎知識

時(shí)間:2024-12-25 23:50:09 操作系統 我要投稿

學(xué)習Linux操作系統必備基礎知識

  Linux是一套免費使用和自由傳播的類(lèi)Unix操作系統,下面小編來(lái)給大家介紹學(xué)習Linux操作系統必備基礎知識,希望對大家有幫助!

學(xué)習Linux操作系統必備基礎知識

  Q1.什么是GNU?Linux與GNU有什么關(guān)系?

  A:

  1)GNU是GNU is Not Unix的遞歸縮寫(xiě),是自由軟件基金會(huì )(Free Software Foundation,FSF)的一個(gè)項目,該項目已經(jīng)開(kāi)發(fā)了許多高質(zhì)量的編程工具,包括emacs編輯器、著(zhù)名的GNU C和C++編譯器(gcc和g++);2)Linux的開(kāi)發(fā)使用了許多GNU工具,Linux系統上用于實(shí)現POSIX.2標準的工具幾乎都是由GNU項目開(kāi)發(fā)的;Linux內核、GNU工具以及其它一些自由軟件組成了人們常說(shuō)的Linux系統或Linux發(fā)布版。

  Q2.Linux系統由哪幾部分組成?Linux內核處于什么位置?

  A:

  1)Linux系統由四個(gè)部分組成:用戶(hù)進(jìn)程,系統調用接口、Linux內核子系統和硬件;2)Linux內核處于用戶(hù)進(jìn)程和硬件之間,包括系統調用接口和Linux內核子系統。

  Q3.Linux內核由哪幾部分組成?各個(gè)子系統的主要功能是什么?

  A:

  (1)Linux內核除系統調用外,由五個(gè)主要的子系統組成:進(jìn)程調度、內存管理、虛擬文件系統、網(wǎng)絡(luò )和進(jìn)程間通信(IPC);(2)各個(gè)子系統的主要功能為:1)進(jìn)程調度:它控制著(zhù)進(jìn)程對CPU的訪(fǎng)問(wèn),當需要選擇一個(gè)進(jìn)程開(kāi)始運行時(shí),由調度程序選擇最應該運行的進(jìn)程;2)內存管理:它允許多個(gè)進(jìn)程安全地共享主內存區域,支持虛擬內存;從邏輯上可以分為硬件無(wú)關(guān)的部分和硬件相關(guān)的部分;3)虛擬文件系統(VFS):它隱藏了各種不同硬件的具體細節,為所有設備提供統一的接口,支持多達數十種不同的文件系統,分為邏輯文件系統和設備驅動(dòng)程序;4)網(wǎng)絡(luò ):它提供了對各種網(wǎng)絡(luò )標準協(xié)議的存取和各種網(wǎng)絡(luò )硬件的支持,分為網(wǎng)絡(luò )協(xié)議和網(wǎng)絡(luò )驅動(dòng)程序兩部分;5)進(jìn)程間通信:支持進(jìn)程間各種通信機制,包括共享內存、消息隊列和管道等。

  內存尋址

  Q1.什么是物理地址?什么是虛地址?什么是線(xiàn)性地址?

  A:

  1)將主板上的物理內存條所提供的內存空間定義為物理內存空間,其中每個(gè)內存單元的實(shí)際地址就是物理地址;2)將應用程序員看到的內存空間定義為虛擬地址空間(或地址空間),其中的地址就叫做虛擬地址(或虛地址),一般用“段:偏移量”的形式來(lái)描述,如A815:CF2D;3)線(xiàn)性地址空間是指一段連續的、不分段的、范圍為0~4GB的地址空間,一個(gè)線(xiàn)性地址就是線(xiàn)性地址空間的一個(gè)絕對地址。

  Q2.在保護模式下,MMU如何把一個(gè)虛地址轉換為物理地址?

  A:

  在保護模式下,內存管理單元(MMU)由一個(gè)或一組芯片組成,其功能是指虛擬地址映射為物理地址,即進(jìn)行地址轉換;MMU是一種硬件電路,它包含分段部件和分頁(yè)部件兩個(gè)部件,分別叫做分段機制和分頁(yè)機制,分段機制是把一個(gè)虛擬地址轉換為線(xiàn)性地址,分頁(yè)機制是把一個(gè)線(xiàn)性地址轉換為物理地址。

  Q3.為什么對32位線(xiàn)性地址空間要采用兩級頁(yè)表?

  A:

  頁(yè)表是把線(xiàn)性地址映射到物理地址的一種數據結構,4GB的線(xiàn)性空間可以被劃分為1M個(gè)4KB大小的頁(yè),每個(gè)頁(yè)表項占4字節,則1M個(gè)頁(yè)表項的頁(yè)表就需要占用4MB空間,而且還要求是連續的,于是采用兩級頁(yè)表來(lái)實(shí)現;兩級頁(yè)表就是對頁(yè)表再進(jìn)行分頁(yè),第一級稱(chēng)為頁(yè)目錄,其中存放關(guān)于頁(yè)表的信息;4MB的頁(yè)表再次分頁(yè),可以分為1K個(gè)4KB大小的頁(yè)。

  Q4.頁(yè)面高速緩存的作用是什么?Linux為什么主要采用分頁(yè)機制來(lái)實(shí)現虛擬存儲管理?它為什么采用三級分頁(yè)模式而不是兩級?

  A:

  (1)頁(yè)面高速緩存自動(dòng)保留處理器最近使用的32項頁(yè)表項,因此可以覆蓋128KB范圍的內存;(2)Linux主要采用分頁(yè)機制來(lái)實(shí)現虛擬存儲器管理,原因為:1)Linux的分段機制使得所有的進(jìn)程都使用相同的段寄存器,這使得內存管理變得簡(jiǎn)單;2)Linux的設計目標之一就是能夠被移植到絕大多數流行的處理平臺上,但許多RISC處理器支持的分段功能非常有限;為了保證可移植性,Linux采用三級分頁(yè)模式,因為許多處理器都采用64位結構;Linux定義了三種類(lèi)型的頁(yè)表:頁(yè)目錄(PGD)、中間目錄(PMD)和頁(yè)表(PT)。

  進(jìn)程

  Q1.程序與進(jìn)程的概念分別是什么?為什么要引入“進(jìn)程”的概念?

  A:

  1)程序是一個(gè)普通文件,是機器代碼指令和數據的集合,這些指令和數據存儲在磁盤(pán)上的一個(gè)可執行映像中,可執行映像(executable image)就是一個(gè)可執行文件的內容;2)進(jìn)程代表程序的執行過(guò)程,它是一個(gè)動(dòng)態(tài)的實(shí)體,隨著(zhù)程序中指令的執行而不斷地變化,在某個(gè)時(shí)刻進(jìn)程的內容被稱(chēng)為進(jìn)程映像(process image);3)程序的執行過(guò)程可以說(shuō)是一個(gè)執行環(huán)境的總和,這個(gè)執行環(huán)境除了包括程序中各種指令和數據外,還有一些額外數據;而執行環(huán)境的動(dòng)態(tài)變化體現了程序的運行,為了對動(dòng)態(tài)變化的過(guò)程進(jìn)行描述,就引入了“進(jìn)程”概念。

  Q2.什么是進(jìn)程控制塊?它包含哪些基本信息?

  A:

  1)Linux中把對進(jìn)程的描述結構叫做task_struct,將這樣的數據結構稱(chēng)作進(jìn)程控制塊(PCB);2)PCB是一個(gè)其域多達80多項的相當龐大的數據結構,按其功能將所有域劃分為:狀態(tài)信息,鏈接信息、各種標識符、進(jìn)程間通信信息、時(shí)間和定時(shí)器信息、調度信息、文件系統信息、虛擬內存信息和處理器環(huán)境信息。

  Q3.Linux內核的狀態(tài)有哪些?

  A:

  1)Linux最基本的進(jìn)程狀態(tài)有三種:運行態(tài)、就緒態(tài)和阻塞態(tài)(或等待態(tài));這三種狀態(tài)之間有四種可能的轉換關(guān)系:運行態(tài)->阻塞態(tài)、運行態(tài)->就緒態(tài)、就緒態(tài)->運行態(tài)和阻塞態(tài)->就緒態(tài);2)為了管理上的方便,將就緒態(tài)和運行態(tài)合并為一個(gè)狀態(tài)—可運行態(tài),再包括其它方面的一些改變,將進(jìn)程狀態(tài)劃分為:可運行態(tài)、睡眠(或等待)態(tài)(分為深度睡眠態(tài)和淺度睡眠態(tài))、暫停狀態(tài)和僵死狀態(tài)。

  Q4.PCB的組織方式有哪幾種?

  A:

  PCB的組織方式有:進(jìn)程鏈表、散列表、可運行隊列和等待隊列。

  Q5.主要的調度算法包括哪些?一個(gè)好的調度算法要考慮哪些方面?

  A:

  1)主要的調度算法包括:時(shí)間片輪轉調度算法、優(yōu)先級調度算法(非搶占式優(yōu)先級算法和搶占式優(yōu)先級算法)、多級反饋隊列調度算法和實(shí)時(shí)調度算法;2)一個(gè)好的調度算法應該考慮五個(gè)方面:公平、高效、響應時(shí)間、周轉時(shí)間和吞吐量。

  內存管理

  Q1.為什么把進(jìn)程的地址空間劃分為“內核空間”和“用戶(hù)空間”?

  A:

  Linux的虛擬地址空間的大小為4GB,內核將這4GB的空間分為兩部分,較高的1GB(虛地址0xC0000000到0xFFFFFFFF)供內核使用,稱(chēng)為“內核空間”;而較低的3GB(虛地址0x00000000到0xBFFFFFFF)供各個(gè)進(jìn)程使用,稱(chēng)為“用戶(hù)空間”;因為每個(gè)進(jìn)程可以通過(guò)系統調用進(jìn)入內核,因此,內核空間由系統內的所有進(jìn)程共享;于是,從具體進(jìn)程的角度來(lái)看,每個(gè)進(jìn)程都可以擁有4GB的虛擬地址空間(也叫做虛擬內存)。

  Q2.Linux是如何實(shí)現“請求調頁(yè)”的?

  A:

  1)如果被訪(fǎng)問(wèn)的頁(yè)不在內存,也就是說(shuō),這個(gè)頁(yè)還沒(méi)有被存放在任何一個(gè)物理頁(yè)面中,那么,內核分配一個(gè)新的頁(yè)面并將其適當地初始化,這種技術(shù)稱(chēng)為“請求調頁(yè)”;2)“請求調頁(yè)”是一種動(dòng)態(tài)內存分配技術(shù),它將頁(yè)面的分配推遲到不能再推遲為止,也就是說(shuō),一直推遲到進(jìn)程要訪(fǎng)問(wèn)的頁(yè)不在物理內存時(shí)為止,由此引起一個(gè)缺頁(yè)異常;該技術(shù)的引入主要是因為進(jìn)程開(kāi)始運行時(shí)并不訪(fǎng)問(wèn)其地址空間中的全部地址。

  中斷和異常

  Q1.什么是中斷?什么是異常?二者有何不同?

  A:

  1)中斷控制是為克服對I/O接口采用程序查詢(xún)控制服務(wù)方式所帶來(lái)的處理器低效率而產(chǎn)生的,它的主要優(yōu)點(diǎn)是只有在I/O接口需要服務(wù)時(shí)才能得到處理器的響應,而不需要處理器不斷地進(jìn)行查詢(xún);因此,最初的中斷全部是對外部設備而言的,稱(chēng)為外部中斷(或硬件中斷);2)異常也叫做內部中斷,它是為解決機器運行時(shí)所出現的某些隨機事件及編程的方便而出現的;3)中斷分為外部可屏蔽中斷(INTR)和外部非屏蔽中斷(NMI),所有I/O設備產(chǎn)生的中斷請求(IRQ)均引起可屏蔽中斷,而緊急事件(如硬件故障)引起的故障則產(chǎn)生非屏蔽中斷;4)異常又分為故障(fault)和陷阱(trap),它們的共同特點(diǎn)是既不使用中斷控制器,又不能被屏蔽(異常其實(shí)是CPU發(fā)出的終端信號)。

  Q2.什么是中斷向量?Linux是如何分配中斷向量的?

  A:

  (1)為使處理器可以容易地識別每種中斷源,將256種向量中斷從0到255進(jìn)行編號,即賦以一個(gè)中斷類(lèi)型碼n,把這個(gè)8位的無(wú)符號整數叫做向量,即中斷向量;(2)Linux對256個(gè)中斷向量的分配如下:1)編號為0~31的向量對應于異常和非屏蔽中斷;2)編號為32~47的向量(即由I/O設備引起的中斷)分配給可屏蔽中斷;3)剩余的、編號為48~255的向量用來(lái)標識軟中斷;Linux只用其中的一個(gè)(即128或0x80向量)來(lái)實(shí)現系統調用。

  Q3.什么是中斷描述符表?什么是門(mén)描述符?

  A:

  1)在實(shí)地址模式下,CPU將內存中從0開(kāi)始的1KB空間作為一個(gè)中斷向量表,表中每個(gè)表項占4個(gè)字節;但在保護模式,由4個(gè)字節的表項構成的中斷向量表滿(mǎn)足不了要求;因此在保護模式下,中斷向量表中的表項由8個(gè)字節組成,中斷向量表也改稱(chēng)為中斷描述符表(IDT);2)IDT中的每個(gè)表項叫做一個(gè)門(mén)描述符(gate descriptor)。

  Q4.門(mén)描述符有哪些類(lèi)型?它們有什么不同?

  A:

  門(mén)描述符中類(lèi)型碼占3位,表示門(mén)描述符的類(lèi)型,主要分為以下幾類(lèi):1)中斷門(mén)(interrupt gate):其類(lèi)型碼為110,包含了一個(gè)中斷或異常處理程序所在段的選擇符和段內偏移量;2)陷阱門(mén)(trap gate):其類(lèi)型碼為111;3)系統門(mén)(system gate):是Linux內核特別設置的,用來(lái)讓用戶(hù)態(tài)的進(jìn)程訪(fǎng)問(wèn)陷阱門(mén)。

  系統調用

  Q1.什么是系統調用?為什么要引入系統調用?

  A:

  (1)操作系統為用戶(hù)態(tài)的進(jìn)程與硬件設備(如CPU、磁盤(pán)和打印機等)之間的交互提供了一組接口,這些接口使得程序更具有可移植性,因為不同的操作系統只要所提供的一組接口相同,那么在這些操作系統之上就可以正確地編譯和執行相同的程序,這組接口就是所謂的“系統調用”;(2)引入系統調用的原因有:1)這使得編程更加容易;2)這極大地提高了系統的安全性;3)最重要的一點(diǎn),這些接口使得操作系統更具有可移植性。

  內核中的同步Q1.什么是臨界區?什么是競爭狀態(tài)?什么是同步?A:

  1)臨界區(critical regions)就是訪(fǎng)問(wèn)和操作共享數據的代碼段,多個(gè)內核任務(wù)并發(fā)訪(fǎng)問(wèn)同一個(gè)資源通常是不安全的;2)如果兩個(gè)內核任務(wù)可能處于同一個(gè)臨界區,就是一種錯誤現象;如果確實(shí)發(fā)生了這種情況,就稱(chēng)它為競爭狀態(tài);3)避免并發(fā)和防止競爭狀態(tài)稱(chēng)為同步(synchronization)。

  Q2.簡(jiǎn)要介紹一下死鎖及避免死鎖的方法。

  A:

  死鎖包括自死鎖和ABBA死鎖,1)產(chǎn)生死鎖有四個(gè)原因:互斥使用、不可搶占、請求和保持,以及循環(huán)等待;2)避免死鎖的方法有:破壞“不可剝奪”條件、破壞“請求和保持”條件、破壞“循環(huán)等待”條件。

  Q3.內核中造成并發(fā)執行的原因是什么?

  A:

  “并發(fā)”分為“偽并發(fā)”和“真并發(fā)”兩種,內核中造成并發(fā)執行的原因有以下幾種:1)中斷:它可能隨時(shí)打斷當前正在執行的代碼;2)內核搶占:內核中的任務(wù)可能會(huì )被另一個(gè)任務(wù)搶占;3)睡眠及其與用戶(hù)空間的同步:在內核執行的進(jìn)程可能會(huì )睡眠,這就會(huì )喚醒調度程序,調度一個(gè)新的用戶(hù)進(jìn)程執行;4)對稱(chēng)多處理:兩個(gè)或多個(gè)處理器可以同時(shí)執行代碼。

  Q4.給出信號量的定義,并說(shuō)明down()和up()的含義。

  A:

  1)Linux中的信號量是一種睡眠鎖,它是1968年由Dijkstra提出的,如果一個(gè)任務(wù)試圖獲得一個(gè)已被持有的信號量,信號量會(huì )將其推入等待隊列,然后讓其睡眠;當持有信號量的進(jìn)程將信號量釋放后,在等待隊列中的一個(gè)任務(wù)將被喚醒,從而可以獲得這個(gè)信號量;2)信號量支持兩個(gè)原子操作P()和V(),前者叫做測試操作,后者叫做增加操作;后來(lái)的系統把這兩種操作分別叫做down()和up();3)down()操作通過(guò)對信號量計數減1來(lái)請求獲得一個(gè)信號量;up()操作用來(lái)釋放信號量,該操作也被稱(chēng)作“提升”(upping)信號量,因為它會(huì )增加信號量的計數值。

  文件系統

  Q1.Linux目錄樹(shù)結構是怎樣的?它與Windows的目錄樹(shù)結構有什么區別?為什么Linux的文件系統采用固定的目錄形式?

  A:

  文件是一個(gè)抽象的概念,它是存放一切數據或信息的倉庫;1)Linux的目錄樹(shù)結構為:根目錄(/)在上,其它的平行在下;2)Windows操作系統也是采用樹(shù)型結構,但其樹(shù)型結構的根是磁盤(pán)分區的盤(pán)符,有幾個(gè)分區就有幾個(gè)樹(shù)型結構,它們之間的關(guān)系式并列的;而在Linux中,無(wú)論操作系統管理幾個(gè)磁盤(pán)分區,這樣的目錄樹(shù)只有一個(gè);3)這樣做的原因是:Linux是一個(gè)多用戶(hù)系統,制定這樣一個(gè)固定的目錄規劃有助于對系統文件和不同的用戶(hù)文件進(jìn)行統一管理;4)Linux中的文件類(lèi)型包括:常規文件、目錄文件、設備文件、管道文件和鏈接文件。

  Q2.什么是虛擬文件系統?什么是虛擬文件系統界面?

  A:

  1)將各種不同文件系統的操作和管理納入到一個(gè)統一的框架中,使得用戶(hù)程序可以通過(guò)同一個(gè)文件系統界面,也就是同一組系統調用,對各種不同的文件系統以及文件進(jìn)行操作;用戶(hù)程序可以不關(guān)心不同文件系統的實(shí)現細節,而使用系統提供的統一、抽象、虛擬的文件系統界面;這種統一的框架就是所謂的虛擬文件系統轉換,一般簡(jiǎn)稱(chēng)虛擬文件系統(VFS);2)VFS的對象類(lèi)型包括:超級塊(superblock)對象、索引節點(diǎn)(inode)對象、目錄項(dentry)對象和文件(file)對象;3)虛擬文件系統界面是虛擬文件系統所提供的抽象界面,它主要由一組標準的、抽象的操作構成,這些函數(操作)以系統調用的形式供用戶(hù)調用。

  設備驅動(dòng)

  Q1.為什么把設備分為“塊設備”和“字符設備”兩大類(lèi)?

  A:

  1)Linux將設備看成文件,具有三方面的含義:第一,每個(gè)設備都對應一個(gè)文件名,在內核中也就對應一個(gè)索引節點(diǎn);第二,對文件操作的系統調用大都適用于設備文件;第三,從應用程序的角度看,設備文件的邏輯空間是一個(gè)線(xiàn)性空間;對于同一個(gè)具體的設備而言,文件操作和設備驅動(dòng)是同一個(gè)事物的不同層次,概念上可以將一個(gè)系統劃分為應用、文件系統和設備驅動(dòng)三個(gè)層次;2)Linux將設備分為兩大類(lèi),一類(lèi)是像磁盤(pán)那樣的以塊或扇區為單位、成塊進(jìn)行輸入/輸出的設備,稱(chēng)為塊設備;另一類(lèi)是像鍵盤(pán)那樣以字符(字節)為單位,逐個(gè)字符進(jìn)行輸入/輸出的設備,稱(chēng)為字符設備;文件系統通常都建立在塊設備上。

  Q2.什么是設備驅動(dòng)程序?

  A:

  Linux中處理和管理硬件控制器的軟件就是設備驅動(dòng)程序。

  Q3.I/O端口一般包括哪些寄存器?各自功能是什么?

  A:

  1)I/O端口包括控制寄存器、狀態(tài)寄存器和數據寄存器三大類(lèi);2)根據訪(fǎng)問(wèn)外設寄存器的不同方式,將CPU分為兩大類(lèi):一類(lèi)是“內存映射”(memory-mapped)方式,另一類(lèi)是“I/O映射”(I/O- mapped)方式。

【學(xué)習Linux操作系統基礎知識】相關(guān)文章:

Linux操作系統基礎知識學(xué)習08-27

Linux操作系統基礎知識06-27

Linux操作系統KDE簡(jiǎn)介學(xué)習01-22

Linux操作系統KDE簡(jiǎn)介學(xué)習08-10

Linux操作系統學(xué)習的誤區11-02

LINUX操作系統09-19

LINUX操作系統01-22

Linux操作系統基礎知識疑難解答10-08

Linux操作系統的安裝09-07

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看