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

正文內(nèi)容

中國科學(xué)院大學(xué)操作系統(tǒng)考試思考題答案(參考版)

2025-07-01 03:55本頁面
  

【正文】 b_wait記錄等待緩沖塊的解鎖而被掛起的進(jìn)程,指向等待隊列前面進(jìn)程的task_struct。b_dirt大于0表明有進(jìn)程在共享該緩沖塊,當(dāng)進(jìn)程不需要共享緩沖塊時,內(nèi)核會解除該進(jìn)程與緩沖塊的關(guān)系,并將b_count數(shù)值減1,為0表明可以被當(dāng)作新緩沖塊來申請使用。b_uptodate針對進(jìn)程方向,如果b_uptodate為1,說明緩沖塊的數(shù)據(jù)已經(jīng)是數(shù)據(jù)塊中最新的,可以支持進(jìn)程共享緩沖塊中的數(shù)據(jù);如果b_uptodate為0,提醒內(nèi)核緩沖塊并沒有用綁定的數(shù)據(jù)塊中的數(shù)據(jù)更新,不支持進(jìn)程共享該緩沖塊。另外緩沖區(qū)中的數(shù)據(jù)被越多進(jìn)程共享,效率就越高,因此要讓緩沖區(qū)中的數(shù)據(jù)塊停留的時間盡可能久,而這正是由b_blocknr,b_dev決定的,內(nèi)核在hash表中搜索緩沖塊時,只看設(shè)備號與塊號,只要緩沖塊與硬盤數(shù)據(jù)的綁定關(guān)系還在,就認(rèn)定數(shù)據(jù)塊仍停留在緩沖塊中,就可以直接用。36. 操作系統(tǒng)如何利用buffer_head中的 b_data,b_blocknr,b_dev,b_uptodate,b_dirt,b_count,b_lock,b_wait管理緩沖塊的?答:b_data指向緩沖塊,用于找到緩沖塊的位置。如果緩沖區(qū)的數(shù)據(jù)能夠被更多進(jìn)程共享的話,計算機(jī)的整體效率就會大大提高。35. 為什么要設(shè)計緩沖區(qū),有什么好處?答:緩沖區(qū)的作用主要體現(xiàn)在兩方面:(1) 形成所有塊設(shè)備數(shù)據(jù)的統(tǒng)一集散地,操作系統(tǒng)的設(shè)計更方便,更靈活;(2) 數(shù)據(jù)塊復(fù)用,提高對塊設(shè)備文件操作的運行效率。操作系統(tǒng)會調(diào)用_do_wp_page,為該進(jìn)程申請空閑頁面,將該進(jìn)程的頁表指向新申請的頁面,然后將原頁表的數(shù)據(jù)復(fù)制到新頁面中,同時將原頁面的引用計數(shù)減1。操作系統(tǒng)會調(diào)用_do_no_page為進(jìn)程申請空閑頁面,將程序加載到新分配的頁面中,并建立頁目錄表頁表頁面的三級映射管理關(guān)系。34. 缺頁中斷是如何產(chǎn)生的,頁寫保護(hù)中斷是如何產(chǎn)生的,操作系統(tǒng)是如何處理的?答:缺頁中斷:每個頁目錄項和頁表項都有個標(biāo)志位P,如果和一個頁面建立了映射關(guān)系,P位置1,否則置0。之后,又輪到進(jìn)程3執(zhí)行,也是壓棧,并設(shè)置text。假設(shè)進(jìn)程1先執(zhí)行,需要壓棧產(chǎn)生缺頁中斷,內(nèi)核為其申請空閑物理頁面,并映射到進(jìn)程1的線性地址空間。33. 詳細(xì)分析多個進(jìn)程(無父子關(guān)系)共享一個可執(zhí)行程序的完整過程。執(zhí)行加載到的程序,產(chǎn)生壓棧動作,若棧空間不夠,則產(chǎn)生缺頁中斷繼續(xù)申請頁面。接下來加載用戶程序:首先要做一些檢查工作,如可執(zhí)行文件的數(shù)據(jù)長度和代碼長度等;然后調(diào)用free_page_tables解除與shell的頁面共享關(guān)系,接著根據(jù)程序的長度重新設(shè)置LDT,調(diào)整str1的task_struct,最后調(diào)整EIP和ESP。接著調(diào)用copy_mem()為進(jìn)程分段(確定段基址和段限長等),然后調(diào)用copy_page_tables為str1進(jìn)程另起一套頁目錄項和頁表項,并指向shell的頁面。答:可以參考課本P273頁,其中的核心部分課上都進(jìn)行了介紹,包括fork()、copy_process()、do_execve()及do_exit等。31. 內(nèi)核和普通用戶進(jìn)程并不在一個線性地址空間內(nèi),為什么仍然能夠訪問普通用戶進(jìn)程的頁面?答:雖然內(nèi)核與普通進(jìn)程并不在一個線性地址空間內(nèi),但是用戶進(jìn)程的頁面最終要從物理內(nèi)存上分配,而內(nèi)核的分頁機(jī)制即頁目錄表、頁表等,正好管理著16M物理內(nèi)存,所以內(nèi)核可以訪問普通用戶進(jìn)程的頁面。30. 為什么get_free_page()將新分配的頁面清0?答:Linux在回收頁面時并沒有將頁面清0,只是將mem_map中與該頁對應(yīng)的位置0。其轉(zhuǎn)化過程如圖所示(見P97 圖39)。此外,如果用戶進(jìn)程可以自己設(shè)計LDT的話,表明用戶進(jìn)程可以訪問其他進(jìn)程的LDT,則會削弱進(jìn)程之間的保護(hù)邊界,容易引發(fā)問題。28. 用戶進(jìn)程自己設(shè)計一套LDT表,并與GDT掛接,是否可行,為什么?答:不可行。過程:(1)將EAX 設(shè)置為0,EDI 設(shè)置指向mem_map 的最后一項(mem_map+PAGING_PAGES1),std設(shè)置掃描是從高地址向低地址。27. 根據(jù)代碼詳細(xì)分析操作系統(tǒng)是如何獲得一個空閑頁的。進(jìn)程0在 move_to_user_mode 中,繼承了內(nèi)核的 eflags,如下:move_to_user_mode()…pushfl\n\t \… iret\n \是否正確?在TSS中明確設(shè)置了eflags的iopl為0在進(jìn)程0的TSS中,設(shè)置了eflags中的 IOPL 位為 0,代碼見P68,后續(xù)進(jìn)程 如果沒有改動的話也是0,即IOPL=0。general_protection)。只有當(dāng)CPL小于或等于IOPL時才可以執(zhí)行該指令。奇怪的是,在3特權(quán)級的進(jìn)程代碼并不能使用cli指令,會報特權(quán)級錯誤,這是為什么?請解釋并給出代碼證據(jù)。代碼見P98。 第二次調(diào)用get_free_page函數(shù)申請的空閑頁面用于進(jìn)程1的頁表。首先將申請到的頁面清0,然后復(fù)制進(jìn)程0的task_struct,再針對進(jìn)程1作個性化設(shè)置,其中esp0 的設(shè)置,意味著設(shè)置該頁末尾為進(jìn)程 1 的堆棧的起始地址。25. 進(jìn)程0創(chuàng)建進(jìn)程1時調(diào)用copy_process函數(shù),在其中直接、間接調(diào)用了兩次get_free_page函數(shù),在物理內(nèi)存中獲得了兩個頁,分別用作什么?是怎么設(shè)置的?給出代碼證據(jù)。因此,進(jìn)程0從0特權(quán)級到3特權(quán)級轉(zhuǎn)換時采用的是模仿中斷返回。但是此時進(jìn)程0還處于內(nèi)核態(tài),因此要調(diào)用move_to_user_mode()函數(shù),模仿中斷返回的方式,實現(xiàn)進(jìn)程0的特權(quán)級從內(nèi)核態(tài)轉(zhuǎn)化為用
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1