Linux課后習(xí)題答案_第1頁(yè)
Linux課后習(xí)題答案_第2頁(yè)
Linux課后習(xí)題答案_第3頁(yè)
Linux課后習(xí)題答案_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Linux思考題5fork()和clone()二者之間的區(qū)別是什么?答:fork創(chuàng)建一個(gè)進(jìn)程時(shí),子進(jìn)程只是完全復(fù)制父進(jìn)程的資源,復(fù)制出來(lái)的子進(jìn)程有自己的task_struct結(jié)構(gòu)和pid,但卻復(fù)制父進(jìn)程其它所有的資源。通過(guò)fork創(chuàng)建子進(jìn)程,需要將上面描述的每種資源都復(fù)制一個(gè)副本。fork()調(diào)用執(zhí)行一次返回兩個(gè)值,對(duì)于父進(jìn)程,fork函數(shù)返回子程序的進(jìn)程號(hào),而對(duì)于子程序,fork函數(shù)則返回零,這就是一個(gè)函數(shù)返回兩次的本質(zhì)。在fork之后,子進(jìn)程和父進(jìn)程都會(huì)繼續(xù)執(zhí)行fork調(diào)用之后的指令。系統(tǒng)調(diào)用fork()和vfork()是無(wú)參數(shù)的,而clone()則帶有參數(shù)。fork()是全部復(fù)制,vfo

2、rk()是共享內(nèi)存,而clone()是則可以將父進(jìn)程資源有選擇地復(fù)制給子進(jìn)程,而沒(méi)有復(fù)制的數(shù)據(jù)結(jié)構(gòu)則通過(guò)指針的復(fù)制讓子進(jìn)程共享,具體要復(fù)制哪些資源給子進(jìn)程,由參數(shù)列表中的clone_flags來(lái)決定。另外,clone()返回的是子進(jìn)程的pid。什么是進(jìn)程?什么是線程?Linux系統(tǒng)中的進(jìn)程有那些狀態(tài)?如何獲取系統(tǒng)中各進(jìn)程的狀態(tài)?答:進(jìn)程是指在系統(tǒng) HYPERLINK /s/?w=%E4%B8%AD%E6%AD%A3&ch=link t _blank 中正在運(yùn)行的一個(gè)應(yīng)用程序; HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程是系 HY

3、PERLINK /s/?w=%E7%BB%9F%E5%88%86&ch=link t _blank 統(tǒng)分配 HYPERLINK /s/?w=%E5%A4%84%E7%90%86%E5%99%A8&ch=link t _blank 處理器 HYPERLINK /s/?w=%E6%97%B6%E9%97%B4%E8%B5%84%E6%BA%90&ch=link t _blank 時(shí)間資源的基本單元,或者說(shuō)進(jìn)程之內(nèi)獨(dú)立執(zhí)行的一個(gè)單元。對(duì)于 HYPERLINK /s/?w=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&ch=link t _blank 操作系統(tǒng)而言,其調(diào)度單

4、元是 HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程。一個(gè)進(jìn)程至少包括一個(gè) HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程,通常將該 HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程稱(chēng)為主 HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程。一個(gè)進(jìn)程從主 HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank

5、 線程的執(zhí)行開(kāi)始進(jìn)而創(chuàng)建一個(gè)或多個(gè)附加 HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程,就是所謂基于 HYPERLINK /s/?w=%E5%A4%9A%E7%BA%BF%E7%A8%8B&ch=link t _blank 多 HYPERLINK /s/?w=%E7%BA%BF%E7%A8%8B&ch=link t _blank 線程的多任務(wù)。Linux系統(tǒng)中的進(jìn)程狀態(tài)有:TASK_RUNNING(運(yùn)行狀態(tài)),TASK_INTERRUPTIBLE(可中斷睡眠狀態(tài)),TASK_UNINTERRUPTIBLE(不可中斷的睡眠狀態(tài)),TA

6、SK_STOPPED(暫停狀態(tài)),TASK_NONINTERACTIVE(不可交互睡眠狀態(tài)),TASK_DEAD(死亡狀態(tài)),EXIT_ZOMBIE(僵死進(jìn)程),EXIT_DEAD(僵死撤銷(xiāo)狀態(tài))ps 查看靜態(tài)的進(jìn)程信息可以使用man 來(lái)查看 ps 的使用參數(shù) 以下是幾個(gè)常使用到得,a 顯示當(dāng)前終端的所有進(jìn)程信息u 使用以用戶(hù)為主的格式輸出進(jìn)程信息x 顯示當(dāng)前用戶(hù)在所有終端下的進(jìn)程信息-e 顯示 系統(tǒng)內(nèi)的所有進(jìn)程# ps 只顯示當(dāng)前用戶(hù)打開(kāi)的進(jìn)程# ps aux 顯示系統(tǒng)中所有進(jìn)程信息Linux系統(tǒng)中進(jìn)程有哪兩種模式?各有何特點(diǎn)?答:用戶(hù)進(jìn)程和系統(tǒng)進(jìn)程,用戶(hù)進(jìn)程就是用戶(hù)自己打開(kāi)的應(yīng)用程序,可有

7、可無(wú)。系統(tǒng)進(jìn)程即是內(nèi)核進(jìn)程,是維持操作系統(tǒng)正常工作自動(dòng)生成的,關(guān)閉系統(tǒng)進(jìn)程會(huì)產(chǎn)生不可預(yù)知的結(jié)果。Linux系統(tǒng)中進(jìn)程控制塊的作用是什么?它進(jìn)程有何關(guān)系?答:進(jìn)程控制塊(PCB)的作用:進(jìn)程控制塊是進(jìn)程組成中最關(guān)鍵的部分,它保存有進(jìn)程的重要信息。1) 每個(gè)進(jìn)程有唯一的PCB.。2) 操作系統(tǒng)根據(jù)PCB.對(duì)進(jìn)程實(shí)施控制和管理。3) 進(jìn)程的動(dòng)態(tài)、并發(fā)等特征是利用PCB.表現(xiàn)出來(lái)的。 4) PCB是進(jìn)程存在的唯一標(biāo)志。Linux系統(tǒng)如何執(zhí)行進(jìn)程調(diào)度?答:首先查找所有在就緒隊(duì)列中的進(jìn)程,從中選出優(yōu)先級(jí)最高且在內(nèi)存的一個(gè)進(jìn)程,如果隊(duì)列中有實(shí)時(shí)進(jìn)程,那么實(shí)時(shí)進(jìn)程將優(yōu)先運(yùn)行。如果最需要運(yùn)行的不是當(dāng)前進(jìn)程,則掛

8、起當(dāng)前進(jìn)程,并保護(hù)它的現(xiàn)場(chǎng),然后為選中的進(jìn)程恢復(fù)運(yùn)行現(xiàn)場(chǎng)。5.8 Linux系統(tǒng)一般采用哪種文件系統(tǒng)?其構(gòu)造形式如何?答:采用ext2文件系統(tǒng)。(現(xiàn)在幾乎是默認(rèn)用ext3了)ext2文件系統(tǒng)中的文件信息都保存在數(shù)據(jù)塊中。在同一個(gè)ext2文件系統(tǒng)中,所有數(shù)據(jù)塊的大小一樣。 ext2文件系統(tǒng)將邏輯分區(qū)劃分成塊組,每個(gè)塊組重復(fù)保存一些有關(guān)整個(gè)文件系統(tǒng)的關(guān)鍵信息,以及實(shí)際的文件和目錄的數(shù)據(jù)塊。 系統(tǒng)引導(dǎo)塊總是介質(zhì)上的第一數(shù)據(jù)塊,只有根文件系統(tǒng)才放有引導(dǎo)程序。5.9什么是塊組?什么是超級(jí)塊?超級(jí)塊的功能是什么?答:linux用的是虛擬文件系統(tǒng),塊組是相當(dāng)于windows系統(tǒng)的硬盤(pán)分區(qū),比如c盤(pán)d盤(pán)。超級(jí)

9、塊位于塊組的最前面,描述文件系統(tǒng)整體信息的數(shù)據(jù)結(jié)構(gòu),主要描述文件系統(tǒng)的目錄和文件的靜態(tài)分布情況,以及描述文件系統(tǒng)的各種組成結(jié)構(gòu)的尺寸、數(shù)量等。5.10什么是索引節(jié)點(diǎn)? 索引節(jié)點(diǎn)主要有哪些內(nèi)容?它與文件有何關(guān)系?答: HYPERLINK /s?wd=%E7%B4%A2%E5%BC%95%E8%8A%82%E7%82%B9&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 索引節(jié)點(diǎn)是一個(gè)結(jié)構(gòu),它包含了一個(gè)文件的長(zhǎng)度、創(chuàng)建及修改時(shí)間、權(quán)限、所屬關(guān)系、磁盤(pán)中的位置等信息。一個(gè)文件 HYPERLINK /s?wd=%E7%B3%BB%E7%BB%9F%E

10、7%BB%B4%E6%8A%A4&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 系統(tǒng)維護(hù)了一個(gè) HYPERLINK /s?wd=%E7%B4%A2%E5%BC%95%E8%8A%82%E7%82%B9&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 索引節(jié)點(diǎn)的數(shù)組,每個(gè)文件或目錄都與索引節(jié)點(diǎn)數(shù)組中的唯一一個(gè)元素對(duì)應(yīng)。系統(tǒng)給每個(gè)索引節(jié)點(diǎn)分配了一個(gè)號(hào)碼,也就是該節(jié)點(diǎn)在數(shù)組中的 HYPERLINK /s?wd=%E7%B4%A2%E5%BC%95%E5%8F%B7&hl_tag=textlink

11、&tn=SE_hldp01350_v6v6zkg6 t _blank 索引號(hào),稱(chēng)為索引節(jié)點(diǎn)號(hào)。2. 索引節(jié)點(diǎn)與文件的關(guān)系Linux 為每個(gè)文件分配一個(gè)稱(chēng)為索引節(jié)點(diǎn)的號(hào)碼 HYPERLINK /s?wd=inode&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank inode,可以將 HYPERLINK /s?wd=inode&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank inode簡(jiǎn)單理解成一個(gè)指針,它永遠(yuǎn)指向本文件的具體存儲(chǔ)位置。系統(tǒng)是通過(guò)索引節(jié)點(diǎn)(而不是文件名)來(lái)定位每一個(gè)文件。文件系統(tǒng)

12、處理文件所需要的所有信息都放在稱(chēng)為索引節(jié)點(diǎn)的 HYPERLINK /s?wd=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 數(shù)據(jù)結(jié)構(gòu)中。文件名可以隨時(shí)更改,但是索引節(jié)點(diǎn)對(duì)文件是唯一的,并且隨文件的存在而存在。 一個(gè)文件系統(tǒng)允許的 HYPERLINK /s?wd=inode&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank inode節(jié)點(diǎn)數(shù)是有限的,如果文件數(shù)量太多,即使每個(gè)文件都是0字節(jié)的空文件,系統(tǒng)最終也會(huì)因?yàn)楣?jié)點(diǎn)空

13、間耗盡而不能再創(chuàng)建文件.5.11為什么要設(shè)立虛擬文件系統(tǒng)?它與實(shí)際文件系統(tǒng)的關(guān)系是怎樣的?答: Linux系統(tǒng)支持多種文件系統(tǒng),必須使用一種統(tǒng)一的接口,而VFS可以實(shí)現(xiàn);VFS是建立在具體文件系統(tǒng)之上的,它為用戶(hù)程序提供一個(gè)統(tǒng)一的、抽象的、虛擬的文件系統(tǒng)界面。5.13 Linux系統(tǒng)采用哪兩種內(nèi)存管理技術(shù)?各自的基本實(shí)現(xiàn)思想是什么?答:Linux系統(tǒng)采用交換和請(qǐng)求分頁(yè)存儲(chǔ)管理兩種內(nèi)存管理技術(shù); 1)請(qǐng)求分頁(yè)的基本思想是,當(dāng)執(zhí)行一個(gè)程序時(shí),才把它換入內(nèi)存,但并不把全部程序都調(diào)入內(nèi)存,而是用到哪一頁(yè)就調(diào)入哪一頁(yè);2)內(nèi)存交換基本思想,當(dāng)系統(tǒng)中出現(xiàn)內(nèi)存不足時(shí),Linux內(nèi)存管理子系統(tǒng)就需要釋放一些內(nèi)

14、存頁(yè),從而增加系統(tǒng)中空閑內(nèi)存頁(yè)的數(shù)量。5.17 Linux信號(hào)機(jī)制是如何實(shí)現(xiàn)進(jìn)程通信?答:Linux信號(hào)機(jī)制基本上是從Unix系統(tǒng)中繼承過(guò)來(lái)的。早期Unix系統(tǒng)中的信號(hào)機(jī)制比較簡(jiǎn)單和原始,后來(lái)在實(shí)踐中暴露出一些問(wèn)題,因此,把那些建立在 早期機(jī)制上的信號(hào)叫做不可靠信號(hào),信號(hào)值小于SIGRTMIN(Red hat 7.2中,SIGRTMIN=32,SIGRTMAX=63)的信號(hào)都是不可靠信號(hào)。這就是不可靠信號(hào)的來(lái)源。它的主要問(wèn)題是: 進(jìn)程每次處理信號(hào)后,就將對(duì)信號(hào)的響應(yīng)設(shè)置為默認(rèn)動(dòng)作。在某些情況下,將導(dǎo)致對(duì)信號(hào)的錯(cuò)誤處理;因此,用戶(hù)如果不希望這樣的操作,那么就要在信號(hào)處理函數(shù)結(jié)尾再一次調(diào)用sign

15、al(),重新安裝該信號(hào)。 信號(hào)可能丟失,后面將對(duì)此詳細(xì)闡述。 因此,早期unix下的不可靠信號(hào)主要指的是進(jìn)程可能對(duì)信號(hào)做出錯(cuò)誤的反應(yīng)以及信號(hào)可能丟失。Linux支持不可靠信號(hào),但是對(duì)不可靠信號(hào)機(jī)制做了改進(jìn):在調(diào)用完信號(hào)處理函數(shù)后,不必重新調(diào)用該信號(hào)的安裝函數(shù)(信號(hào)安裝函數(shù)是在可靠機(jī)制上的實(shí)現(xiàn))。因此,Linux下的不可靠信號(hào)問(wèn)題主要指的是信號(hào)可能丟失。 信號(hào)值位于SIGRTMIN和SIGRTMAX之間的信號(hào)都是可靠信號(hào),可靠信號(hào)克服了信號(hào)可能丟失的問(wèn)題。Linux在支持新版本的信號(hào)安裝 函數(shù)sigation()以及信號(hào)發(fā)送函數(shù)sigqueue()的同時(shí),仍然支持早期的signal()信號(hào)安裝

16、函數(shù),支持信號(hào)發(fā)送函數(shù)kill()。 注:不要有這樣的誤解:由sigqueue()發(fā)送、sigaction安裝的信號(hào)就是可靠的。事實(shí)上,可靠信號(hào)是指后來(lái)添加的新信號(hào)(信號(hào)值 位于SIGRTMIN及SIGRTMAX之間);不可靠信號(hào)是信號(hào)值小于SIGRTMIN的信號(hào)。信號(hào)的可靠與不可靠只與信號(hào)值有關(guān),與信號(hào)的發(fā)送及安裝 函數(shù)無(wú)關(guān)。目前l(fā)inux中的signal()是通過(guò)sigation()函數(shù)實(shí)現(xiàn)的,因此,即使通過(guò)signal()安裝的信號(hào),在信號(hào)處理函數(shù)的結(jié)尾 也不必再調(diào)用一次信號(hào)安裝函數(shù)。同時(shí),由signal()安裝的實(shí)時(shí)信號(hào)支持排隊(duì),同樣不會(huì)丟失。5.19 Linux系統(tǒng)中設(shè)備驅(qū)動(dòng)分層結(jié)構(gòu)是怎樣的?如何實(shí)現(xiàn)與設(shè)備的無(wú)關(guān)性?答:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,可以為某一類(lèi)相似的事物定義一個(gè)基類(lèi),而具體的事物可以繼承這個(gè)基類(lèi)中的函數(shù)。如果對(duì)于繼承的這個(gè)事物而言,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論