freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

中國科學(xué)院大學(xué)操作系統(tǒng)考試思考題答案-文庫吧資料

2025-07-04 03:55本頁面
  

【正文】 戶態(tài)。見P54 圖29 P53 代碼24. 進(jìn)程0 fork進(jìn)程1之前,為什么先要調(diào)用move_to_user_mode()?用的是什么方法?解釋其中的道理。divide_error)為例,其中,n是0,gate_addr是amp。divide_error)),并給出代碼證據(jù)。然后設(shè)置頁目錄表的前4項(xiàng),使之分別指向4個頁表,將第4個頁表的最后一個頁表項(xiàng)指向?qū)ぶ贩秶淖詈笠粋€頁面,將第4個頁表的倒數(shù)第二個頁表項(xiàng)指向?qū)ぶ贩秶牡箶?shù)第二個頁面,從高地址向低地址方向填寫4個頁面,依次指向內(nèi)存從高地址向低地址方向的各個頁面。代碼見P10622. 內(nèi)核的線性地址空間是如何分頁的?畫出從0x000000開始的7個頁(包括頁目錄表、頁表所在頁)的掛接關(guān)系圖,就是頁目錄表的前四個頁目錄項(xiàng)、第一個個頁表的前7個頁表項(xiàng)指向什么位置?給出代碼證據(jù)。) pause()。21. 根據(jù)代碼詳細(xì)分析,進(jìn)程0如何根據(jù)調(diào)度第一次切換到進(jìn)程1的。 copy_process函數(shù)的所有參數(shù)正是通過壓棧形成的。19. 為什么static inline _syscall0(type,name)中需要加上關(guān)鍵字inline?答:inline一般是用于定義內(nèi)聯(lián)函數(shù),內(nèi)聯(lián)函數(shù)結(jié)合了函數(shù)以及宏的優(yōu)點(diǎn),在定義時和函數(shù)一樣,編譯器會對其參數(shù)進(jìn)行檢查;在使用時和宏類似,內(nèi)聯(lián)函數(shù)的代碼會被直接嵌入在它被調(diào)用的地方,這樣省去了函數(shù)調(diào)用時的一些額外開銷,比如保存和恢復(fù)函數(shù)返回地址等,可以加快速度。答:在fork()中,當(dāng)執(zhí)行“int $0x80”時產(chǎn)生一個軟中斷,該中斷使 CPU硬件自動將SS、ESP、EFLAGS、CS、EIP這5個寄存器的數(shù)值按照這個順序壓入進(jìn)程0的內(nèi)核棧。18. copy_process函數(shù)的參數(shù)最后五項(xiàng)是:long eip,long cs,long eflags,long esp,long ss。由于進(jìn)程1在TSS中設(shè)置了eip等寄存器的值,因此從 int 0x80 的下一條指令開始執(zhí)行,且設(shè)定返回 eax 的值作為 fork 的返回值(值為 0),因此進(jìn)程1執(zhí)行了 init 的函數(shù)。在sys_pause函數(shù)中,內(nèi)核設(shè)置了進(jìn)程0的狀態(tài)為 TASK_INTERRUPTIBLE,并進(jìn)行進(jìn)程調(diào)度。在fork返回到進(jìn)程0后,進(jìn)程0判斷返回值非 0,因此執(zhí)行代碼for(。return last_pid。 0xffff。 0xffff。…p = esp。p = eflags。copy_process:ppid = last_pid。答:進(jìn)程 0 創(chuàng)建進(jìn)程1采用了中斷機(jī)制,在中斷發(fā)生時由硬件將 ss,esp,eflags,cs,eip的值壓入了內(nèi)核棧,其中 eip 的值指向了 int 0x80 的下一條指令。) pause(),第二次執(zhí)行fork代碼后,執(zhí)行了init()。答:在內(nèi)核的線性地址空間。答:占用的是內(nèi)核的線性地址空間。15. 進(jìn)程0創(chuàng)建進(jìn)程1時,為進(jìn)程1建立了自己的task_struct、內(nèi)核棧,第一個頁表,分別位于物理內(nèi)存16MB的頂端倒數(shù)第一頁、第二頁。其中 ldt 設(shè)置了代碼段和堆棧段的基址和限長(640KB),而 TSS 則保存了各種寄存器的值,包括各個段選擇符。)static union task_union init_task={INIT_TASK}。答:進(jìn)程0的task_struct是操作系統(tǒng)設(shè)計(jì)者事先寫好的,位于內(nèi)核數(shù)據(jù)區(qū),存儲在user_stack中。該代碼需要“剩余”用于跳轉(zhuǎn)到 main,即執(zhí)行”ret ”指令。這樣做的好處是使得系統(tǒng)不會跳轉(zhuǎn)到隨機(jī)的地方執(zhí)行錯誤的代碼,所以 ignore_int 不能被覆蓋。為了謹(jǐn)慎起見,設(shè)計(jì)者在棧中壓入了 L6,以使得系統(tǒng)可能出錯時,返回到 L6 處執(zhí)行。13. 在head程序執(zhí)行結(jié)束的時候,在idt的前面有184個字節(jié)的head程序的剩余代碼,剩余了什么?為什么要剩余?答:在idt前面有184個字節(jié)的剩余代碼,包含了after_page_tables、 ignore_int 和 setup_paging代碼段,其中after_page_tables往棧中壓入了些參數(shù),ignore_int 用做初始化中斷時的中斷處理函數(shù),setup_paging 則是初始化分頁。特權(quán)級基于段,是結(jié)合了程序的特點(diǎn)和硬件實(shí)現(xiàn)的一種考慮。 在操作系統(tǒng)設(shè)計(jì)中,一般一個段實(shí)現(xiàn)的功能相對完整,可以把代碼放在一個段,數(shù)據(jù)放在一個段,并通過段選擇符(包括 CS、SS、DS、ES、FS 和 GS)獲取段的基址和特權(quán)級等信息。這樣,操作系統(tǒng)可以訪問 GDT、LDT、TR,而 GDT、LDT 是邏輯地址形成線性地址的關(guān)鍵,因此操作系統(tǒng)可以掌控線性地址。Intel 從硬件上禁止低特權(quán)級代碼段使用一些關(guān)鍵性指令,還提供了機(jī)會允許操作系統(tǒng)設(shè)計(jì)者通過一些特權(quán)級的設(shè)置,禁止用戶進(jìn)程使用 cli、sti 等對掌控局面至關(guān)重要的指令。 11. 特權(quán)級的目的和意義是什么?為什么特權(quán)級是基于段的?答:特權(quán)級是操作系統(tǒng)為了更好地管理內(nèi)存空間及其訪問控制而設(shè)的,提高了系統(tǒng)的安全性。這樣,操作系統(tǒng)可以訪問 GDT、LDT、TR,而 GDT、LDT 是邏輯地址形成線性地址的關(guān)鍵,因此操作系統(tǒng)可以掌控線性地址。Intel 從硬件上禁止低特權(quán)級代碼段使用一些關(guān)鍵性指令,還提供了機(jī)會允許操作系統(tǒng)設(shè)計(jì)者通過一些特權(quán)級的設(shè)置,禁止用戶進(jìn)程使用 cli、sti 等對掌控局面至關(guān)重要的指令。既有效地防止了對代碼或數(shù)據(jù)段的覆蓋,又防止了代碼段自身的訪問超限,明顯增強(qiáng)了保護(hù)作用。代碼如下:(見P36 最下面)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1