linux復(fù)習(xí)(湘潭大學(xué)).docx_第1頁
linux復(fù)習(xí)(湘潭大學(xué)).docx_第2頁
linux復(fù)習(xí)(湘潭大學(xué)).docx_第3頁
linux復(fù)習(xí)(湘潭大學(xué)).docx_第4頁
linux復(fù)習(xí)(湘潭大學(xué)).docx_第5頁
免費預(yù)覽已結(jié)束,剩余7頁可下載查看

下載本文檔

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

文檔簡介

1、Bootsect.s程序就是一個引導(dǎo)程序,負責(zé)把Linux操作系統(tǒng)內(nèi)核從存儲設(shè)備裝入內(nèi)存.Setup.s通過BIOS44斷調(diào)用獲得系統(tǒng)參數(shù),把獲得的系統(tǒng)參數(shù)保存在0x90000開始的內(nèi)存塊中.Head.s:設(shè)置數(shù)據(jù)段段選擇子和堆棧;設(shè)置中斷描述符表;設(shè)置全局描述符表;設(shè)置頁表,啟動 分頁并調(diào)用內(nèi)核啟動函數(shù)main1 ?保護模式和實模式的區(qū)別1 .尋址2 .中斷處理:實時模式下,當(dāng)中斷發(fā)生時,用中斷號檢索中斷表,得到中斷處理程序地址 然后進入中斷處理程序進行處理。保護模式F,則用中斷號和中斷描述符表的百地址檢索中斷處理程序地址。3 .特權(quán)級別2?中斷概念:改變處理器止常執(zhí)行順序的事件4 ?異常處

2、理流程:發(fā)生中斷保存現(xiàn)場*充3卷農(nóng) 中斯五問 KIHfi !鼻出拿盤系統(tǒng)調(diào)用總數(shù)減1,相關(guān)寄存器入棧,把了功能號放入"X中,如果還有其它參數(shù)(最多3 個),則第1、第2和第3個參數(shù)分別放入寄存器 ebx, ecx和edx中,系統(tǒng)調(diào)用的返回值(函 數(shù)指針)保存在eax中,調(diào)用處理函數(shù),相關(guān)寄存器出棧,返回。添加一個系統(tǒng)調(diào)用:定義了功能號,系統(tǒng)調(diào)用總數(shù)加1,定義系統(tǒng)調(diào)用函數(shù),在系統(tǒng)調(diào)用函數(shù)指針表中添加新甫數(shù)指針。5 ?進程概念?答:進程是程序的一次執(zhí)行,是由II文段、用戶數(shù)據(jù)段和系統(tǒng)數(shù)據(jù)段、堆棧段組成動態(tài)的實體。進程是系統(tǒng)資源分配的基本單位,也是使川CPU運行的基本調(diào)度單位。6 ?進程如

3、何向內(nèi)核傳遞子功能號和參數(shù)?把了功能號放入eax中,如果還有其它參數(shù)(最多3個),則第1、第2和第3個參數(shù)分 別放入寄存器ebx, ecx和edx中,系統(tǒng)調(diào)用的返回值保存在 eax中。6?內(nèi)核如何確定調(diào)用的C語言函數(shù)(數(shù)據(jù)結(jié)構(gòu)是什么)?以子功能號作為索引查找 sys_call_table找到處理t功能的C語言函數(shù),然后調(diào)川該函 數(shù)。數(shù)據(jù)結(jié)構(gòu)(sys_call_table).7 ?進程描述符數(shù)據(jù)結(jié)構(gòu)包括進程當(dāng)前運行的狀態(tài)信息、信號、進程號、父進程號、運行時間累計值、正在使用的文件和本任務(wù)的局部描述符(Idt),以及任務(wù)狀態(tài)段信息(tss)o8?選擇進程:根據(jù)什么原則來選擇進程?1 .選擇task

4、數(shù)紐?中第一個所剩時間片最長的可運行狀態(tài)的任務(wù),與當(dāng)前進程進行切換;2 .如果所有可運行狀態(tài)的進程事件片都已用完,重新給索方進程分配時間片: count=count/2+priority,重做 1;3 .如果當(dāng)前沒有進程可運行,就選擇進程0運行,而進程0會調(diào)用pause(把自己置為可中斷睡眠狀態(tài)并再次調(diào)用 schedule。9?切換進程:進程的切換過程是什么樣的(使用的指令以及TSS的作用)?1 .從指令JMP的操作數(shù)中獲取新任務(wù)的 TS酸選擇子;2 .檢查新任務(wù)的TSSS述符是否存在,在當(dāng)前任務(wù)的 TSS中保存當(dāng)前任務(wù)的狀態(tài);3 .為TR裝載新任務(wù)TSS所需要的段選擇了,從新任務(wù)的 TSS中

5、裝載新任務(wù)的狀態(tài)到處理 器中;4 .開始執(zhí)行新任務(wù)。10?進程調(diào)度發(fā)生的時機和條件?搶奪和主動放棄對進程的狀態(tài)有什么影響?1 .時鐘中斷發(fā)生時,發(fā)生中斷前,進程處于用戶態(tài),且時間滴答=0,被動放棄CPU進程 狀態(tài) 仍是可運行態(tài)。2 .系統(tǒng)調(diào)用返回時,發(fā)生中斷前,進程處于用戶態(tài),時間片=0,被動放棄CPU.3 .睡眠函數(shù)內(nèi),進程在內(nèi)核態(tài)主動放棄CPU進程狀態(tài)是不可運行狀態(tài)。11 ?進程0的特殊之處:1 .它是所有其他進程的祖先進程;2 .所有其他的進程都是通過fork系統(tǒng)調(diào)用,復(fù)制進程0或者其后代進程產(chǎn)生的;只有進 程0是靜態(tài)產(chǎn)生的。12 ?創(chuàng)建過程使用了哪些數(shù)據(jù)結(jié)構(gòu)以及這些數(shù)據(jù)結(jié)構(gòu)是如何被關(guān)聯(lián)

6、起來的?1 .系統(tǒng)在任務(wù)數(shù)組中找出一個空項,已滿則出錯返回。2 .系統(tǒng)中請一頁內(nèi)存來存放其任務(wù)數(shù)據(jù)結(jié)構(gòu)信息,拷貝當(dāng)前進程的描述符到子進程描述符 中。3 .將新進程的狀態(tài)置為不可中斷睡眠狀態(tài)。4 .對復(fù)制的任務(wù)數(shù)據(jù)結(jié)構(gòu)進行修改:把當(dāng)前進程設(shè)置為父進程,清除信號位圖并復(fù)制新進 程各統(tǒng)計值,設(shè)置初始運行時間片值;根據(jù)當(dāng)前進程設(shè)置任務(wù)狀態(tài)段TSS中各寄存器的值5 .設(shè)置新任務(wù)的代碼和數(shù)據(jù)段基址、限長并復(fù)制當(dāng)前進程內(nèi)存分頁管理的頁表。6 .在GDT'P設(shè)宜新任務(wù)的TS力口 LDT描述符項,其小地址信息指向新進程任務(wù)結(jié)構(gòu)中的tss和 Idto7 .將新任務(wù)設(shè)置為運行狀態(tài)并返回新進程號。進程的終止:

7、13?終止時要釋放的資源包括什么?會出現(xiàn)什么問題?如何解決該問題?釋放的資源:1.內(nèi)存:進程描述符和內(nèi)核堆棧占用 4K空間;頁表和頁目錄占用的物理頁面: 代碼和數(shù)據(jù)占用的物理頁血2 . GDT中的LDT和TSS苗述符3 .打開的文件弟現(xiàn)的問題及解決方法:1 .通常父進程在子進程終止后,需要杳詢子進程的終止?fàn)顟B(tài),但是該狀態(tài)保存在子進 程的進程描述符中。2 .如果,子進程終止時釋放了進程描述符,則無法查詢終止?fàn)顟B(tài)。由父進程負責(zé)回收 了進程的進程描述符。但是,如果父進程在了進程之前終止,誰來負責(zé)向收了進程的進程描 述符。進程在終止時,把所有未終止的了進程過繼給進程1。由進程1負責(zé)接收這些了進程 終止

8、信號,并回收子進程的進程描述符。14 . sys_exit 和 sys_waitpid 各自釋放什么資源?Sys_exit釋放進程占用的物理內(nèi)存并關(guān)閉進程打開的文件。Sys.waiatpid如果任意一個符合pid條件的子進程僵死,則釋放子進程占用的進程描述符;如果所有符合pid 條件的了進程都不處于僵死狀態(tài), 則按照 option 選項或者等待或立即返回。intsys_waitpid(pid_tpid /unsigned long * stat_addr, int options)15 . 睡眠狀態(tài)之間的區(qū)別?喚醒的效果?可中斷睡眠可以被信號喚醒,當(dāng)資源有效時,該資源等待隊列上所有進程全部都被

9、喚醒,有可能還會發(fā)牛資源沖突;不可中斷睡眠,需要內(nèi)核程序使用wake_up()明確喚醒,該隊列上 的資源全喚解: 。16 ? 信號的基本概念?信號是一種進程間通訊的方式,這種機制是異步的。17 ? 信號處理的數(shù)據(jù)結(jié)構(gòu)Task_structlong signal,對應(yīng)32個信號,向進程發(fā)送信號就是把singal中信號對應(yīng)的那一位置lo signal |= lvv( 信號值 J)long blocked;/ 對應(yīng) 32個信號,如果某個信號對應(yīng)的那一位置1 表示該信號被屏蔽。 signal&blocked; 表示進程中未被屏蔽的信號。 structsigaction void (*sa_ha

10、ndler)(int);/A 號處理函數(shù)指針,可以是用戶自定義的函數(shù)sigset_tsa_mask;/在處理當(dāng)前信號口寸需耍屏蔽的信號,一,般屏蔽本信號i ntsa_flags;改變信號處理過程的標(biāo)志void (*sa_restorer)(void);/ 恢復(fù)函數(shù)入口地址,用于清除用戶堆棧這個函數(shù)由libc 提供,用戶無法自行設(shè)置;18.SIGCHILD言號父進程發(fā)出,停止或終止了程序。19 ? 信號處理的時機和條件處理同步系統(tǒng)調(diào)用;中請一個臟緩沖區(qū)。20 ?預(yù)定義的信號處理函數(shù)作用?根據(jù)信號值調(diào)用信號處理函數(shù)21.SA_NOMAS魅口 SA_ONESHOT勺意思?SA.NOMASK在信號的處

11、理后不保留信號屏蔽設(shè)SA_ONESHO信號處理函數(shù)一旦被調(diào)用過,就恢復(fù)到 SIG_DFL22?設(shè)備號的作用,塊設(shè)備管理模塊的入口函數(shù)是什么,發(fā)送命令的過程和數(shù)據(jù)結(jié)構(gòu)。用于區(qū)分不同的設(shè)備;入口函數(shù):ll_rw_block();l.根據(jù)緩沖頭創(chuàng)建一個請求;2?判斷隊列中是否有請求;3?有則向設(shè)備發(fā)送命令,無則把請求插入到設(shè)備的請求隊列中。23 ?硬盤給控制器發(fā)送命令的函數(shù)是什么?do_hd_request();24 ?硬盤的讀過程?i si-: -*U 7?弊 C: ?也?乙? : J ; : lii : Z<h執(zhí)行程序產(chǎn)生一個讀中斷,調(diào)用中斷處理程序,向硬盤控制器發(fā)送讀扇區(qū)命令和參數(shù),若B

12、USY位=0,控制器處于空閑狀態(tài),則將 BUSY位置1,開始讀扇區(qū),控制器操作時BUSY=1,DRQ二0,讀完一個扇區(qū)后,若所需讀出的扇區(qū)數(shù)還沒有讀完,?DRQ=1返回返回等待硬盤再次完成讀操作后的中斷處理,傳送讀數(shù)據(jù),若全部扇區(qū)數(shù)據(jù)已經(jīng)讀完,則置 DRQ=0, BUSY=0, 處理請求結(jié)束事宜,執(zhí)行其他便盤操作。 25 .硬盤的寫過程?nV AK1 力冷含REAOY-1ORQ 二 1 1 fHi用屁: I I nijtq.H 一 :一一 白忡曲;8的1一 比蘭上| #-執(zhí)行程序產(chǎn)生一個寫小斷,調(diào)用中斷處理程序,向倔盤硬盤控制器發(fā)送寫扇區(qū)命令 循環(huán)查 詢DRQ當(dāng)DRQ置位口寸,將請求項所指緩沖

13、區(qū)中的數(shù)據(jù)寫入控制辭的數(shù)據(jù)緩沖區(qū), 寫完一 個扇區(qū)后,將欲寫扇區(qū)數(shù)減 1,若還有扇區(qū)要寫則返回等待硬盤再次完成寫操作后的 中斷處理,若全部扇區(qū)已經(jīng)寫完,置DQR=0, BUSY=處理請求結(jié)束事宜,執(zhí)行其他硬盤操作26?建立緩沖區(qū)的目的(在讀寫過程中是如何體現(xiàn)作用的)?I/O操作的速度與內(nèi)存和卬u速度和比是非常慢的,為了提高性能,內(nèi)核在內(nèi)存中開辟高 速緩存區(qū),并將英劃分成一個個與磁盤數(shù)據(jù)塊大小相等的緩沖塊來使用和管理,以期減少訪 問塊設(shè)備的次數(shù)。高速緩沖區(qū)中存放著最近被使用過的各個塊設(shè)備中的數(shù)據(jù)塊。當(dāng)耍從塊設(shè) 備中讀收數(shù)據(jù)時,緩沖區(qū)管理程序首先在高速緩沖區(qū)中查找。如果相應(yīng)的數(shù)據(jù)已經(jīng)在緩沖去1,就

14、無需從塊設(shè)備上讀取。如果不在,就發(fā)出讀塊設(shè)備命令,將數(shù)據(jù)獨到高速緩沖區(qū)中27 ?什么時候會把緩沖區(qū)與設(shè)備進行同步?什么時候真正把數(shù)據(jù)寫到設(shè)備中去。28.MINIX文件系統(tǒng)的布局,每一部分的作用?引導(dǎo)塊超級塊i節(jié)點個盤塊iiiiiiii 兒 I M八j瀛區(qū)i節(jié)點位圖邏引導(dǎo)塊:計算機加電啟動時由 ROM BIOS自動讀入的執(zhí)行代碼和數(shù)據(jù)。超級塊:存放盤設(shè)備上文件系統(tǒng)結(jié)構(gòu)信息。i節(jié)點位圖:說明i節(jié)點是否被使用,每個比特位代表一個i節(jié)點。邏輯塊位圖:描述盤上的每個數(shù)據(jù)盤塊的使川情況,每個比特位代表盤上數(shù)據(jù)區(qū)中的一個數(shù) 據(jù)盤塊。i節(jié)點:記錄每一個文件的控制信息,如文件的類型、訪問權(quán)限、創(chuàng)建、修改和訪問文

15、件的時間、用戶ID、組ID、文件的連接數(shù)、文件的大小和文件數(shù)據(jù)塊在磁盤上的地址的一個數(shù)據(jù)結(jié)構(gòu)。29?創(chuàng)建目錄、刪除目錄以及搜索目錄的過程?答:用sys_mkdir函數(shù)創(chuàng)建目錄,傳遞目錄的路徑名和目錄權(quán)限屬性,成功返回0,否則 返 回負數(shù)。用sys_rmdir函數(shù)刪除,傳遞目錄名稱。從根目錄查找:/etc/conM.txt1、 找到根目錄7的i節(jié)點(笫1個i節(jié)點),通過i節(jié)點可以讀出根F1錄的內(nèi)容;2、 在根目錄文件內(nèi)容中找到與 etc名字匹配的目錄項,從目錄項中可以找到etc目錄的i節(jié)點,通過此i節(jié)點可以讀;l'i etc目錄的內(nèi)容3、 在etc目錄文件內(nèi)容中尋找與cong.txt相匹

16、配的目錄項,從目錄項中可以找到config.txt 文件的i節(jié)點,從而知道config.txt的內(nèi)容。從當(dāng)前進程工作目錄查找:./etc/config.txt1、 找到進程工作目錄的i節(jié)點(記錄在進程描述符中),通過 i節(jié)點可以讀出工作目錄 的內(nèi)容;2、 在工作目錄文件內(nèi)容中找到與.名字匹配的目錄項,從目錄項中可以找到上級目 錄的i節(jié)點,通過此i節(jié)點可以讀出上級H錄的內(nèi)容3、 在上級目錄文件內(nèi)容中找到與 etc名字匹配的目錄項,從目錄項中可以找到etc目錄的 i節(jié)點,通過此i節(jié)點可以讀出etc目錄的內(nèi)容4、 在etc目錄文件內(nèi)容中尋找與config.txt相匹配的目錄項,從目錄項中可以找至!

17、Iconfig.txt文件的i節(jié)點,從而知道 config.txt的內(nèi)容。30 ?讀文件和寫文件的過程?文件讀函數(shù)file_read,讀過程:根據(jù)i節(jié)點和文件表結(jié)構(gòu)信息,從i節(jié)點指定的設(shè)備上讀 取 當(dāng)前讀寫位置對應(yīng)的邏輯塊;計算文件讀寫指針在數(shù)據(jù)塊中的偏移值,比較該塊中可讀字節(jié) 數(shù)和本次需讀字節(jié)數(shù)比較,判斷是否為最后一塊數(shù)據(jù);調(diào)整讀寫文件指針,復(fù)制數(shù)據(jù)到用 戶 緩沖區(qū)buf中;重復(fù)讀取數(shù)據(jù)塊宜到所需數(shù)據(jù)全部讀完;修改該 i節(jié)點的訪問時間為當(dāng)前 時 間。文件寫函數(shù)file.write,寫過程:如果要向文件后添加數(shù)據(jù),則將文件讀寫指針移動到文件尾部,若不是則把文件指針調(diào)整到當(dāng)前讀寫位置,并更改 i

18、節(jié)點修改時間為當(dāng)前時間;倉 U建 數(shù)據(jù)塊號在設(shè)備上對應(yīng)的邏輯塊,根據(jù)該邏輯塊號讀取設(shè)備上相應(yīng)的數(shù)據(jù)塊;求可寫字節(jié)數(shù), 與剩余還需寫入的字節(jié)數(shù)比較,確定此次寫入字節(jié)數(shù) c;文件讀寫指針前移C個字節(jié),如果其位置超過了文件人小,則修改 i節(jié)點中文件人小字段,并置i節(jié)點已修改標(biāo)志;從用戶緩 沖區(qū)buf中復(fù)制C個字節(jié)到高速緩沖區(qū)中,然后釋放該緩沖區(qū);重復(fù)寫入直到已寫入字節(jié)數(shù) 等于需耍寫入字節(jié)數(shù),更改文件修改時間為當(dāng)前時間。31這些過程用到了哪些數(shù)據(jù)結(jié)構(gòu)以及這些數(shù)據(jù)結(jié)構(gòu)在過程中的作用?內(nèi)存布局?內(nèi)核模塊mernory end伽 ain.c 中(P65 第 121 行)main memory start的 2 小們町能是memory_end 的故人值町能是32mem_map描述物理內(nèi)存頁的占用狀態(tài), 其值表示被占用的次

溫馨提示

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

最新文檔

評論

0/150

提交評論