哈工程操作系統(tǒng)第二個(gè)_第1頁(yè)
哈工程操作系統(tǒng)第二個(gè)_第2頁(yè)
哈工程操作系統(tǒng)第二個(gè)_第3頁(yè)
哈工程操作系統(tǒng)第二個(gè)_第4頁(yè)
哈工程操作系統(tǒng)第二個(gè)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、操作系統(tǒng)實(shí) 驗(yàn) 報(bào) 告課程名稱操作系統(tǒng)實(shí)驗(yàn)課程編號(hào)實(shí)驗(yàn)項(xiàng)目名稱操作系統(tǒng)的啟動(dòng)學(xué)號(hào)年級(jí)三姓名專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生所在學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)實(shí)驗(yàn)指導(dǎo)教師初妍實(shí)驗(yàn)室名稱地點(diǎn) 哈爾濱工程大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院第二講 操作系統(tǒng)的啟動(dòng)一、實(shí)驗(yàn)概述1. 實(shí)驗(yàn)名稱操作系統(tǒng)的啟動(dòng)2. 實(shí)驗(yàn)?zāi)康模?)跟蹤調(diào)試EOS在PC機(jī)上從加電復(fù)位到成功啟動(dòng)的全過(guò)程,了解操作系統(tǒng)的啟動(dòng)過(guò)程。 (2)查看EOS啟動(dòng)后的狀態(tài)和行為,理解操作系統(tǒng)啟動(dòng)后的工作方式。3. 實(shí)驗(yàn)類型(驗(yàn)證、設(shè)計(jì))驗(yàn)證4. 實(shí)驗(yàn)內(nèi)容 (1)準(zhǔn)備實(shí)驗(yàn) (2) 調(diào)試EOS操作系統(tǒng)的啟動(dòng)過(guò)程二、實(shí)驗(yàn)環(huán)境EOS操作系統(tǒng)、Bochs模擬器、Virtual PC虛

2、擬機(jī)軟件、NASM匯編、BIOS(Basic Input/Output System)三、實(shí)驗(yàn)過(guò)程1.準(zhǔn)備實(shí)驗(yàn)(1)啟動(dòng)OS Lab (2)新建一個(gè)EOS Kernel項(xiàng)目 (3) 在“項(xiàng)目管理器”窗口中打開boot文件夾中的boot.asm和loader.asm兩個(gè)匯編文件。(4)生成項(xiàng)目(5)生成完成后,使用Windows資源管理器打開項(xiàng)目文件夾中的Debug文件夾。找到boot.asm生成的軟盤引導(dǎo)扇區(qū)程序boot.bin文件,該文件的大小是512字節(jié)。找到由loader.asm生成的loader.bin文件,記錄下此文件的大小1566字節(jié),在下面的實(shí)驗(yàn)中會(huì)用到。找到由其它源文件生成的操

3、作系統(tǒng)內(nèi)核文件kernel.dll2.調(diào)試EOS操作系統(tǒng)的啟動(dòng)過(guò)程(1)使用Bochs做為遠(yuǎn)程目標(biāo)機(jī)(2)調(diào)試BIOS程序 在Console窗口中輸入調(diào)試命令sreg后按回車,CS寄存器的值為0xf000。輸入調(diào)試命令r后按回車,顯示當(dāng)前CPU中各個(gè)通用寄存器的值 輸入調(diào)試命令xp/1024b 0x0000,查看開始的1024個(gè)字節(jié)的物理內(nèi)存。輸入xp/512b0x7c00,查看軟盤引導(dǎo)扇區(qū)應(yīng)該被加載到的內(nèi)村位置,輸出的內(nèi)存之都是0(3)調(diào)試軟盤引導(dǎo)扇區(qū)程序 軟盤引導(dǎo)扇區(qū)程序的主要任務(wù)就是將軟盤中的loader.bin文件加載到物理內(nèi)存的0x1000處,然后跳轉(zhuǎn)到loader程序的第一條指令(

4、物理地址0x1000處的指令)繼續(xù)執(zhí)行l(wèi)oader程序。驗(yàn)證loader程序被完全加載到了正確的位置(4) 調(diào)試加載程序a.在loader.lst文件中查找到準(zhǔn)備進(jìn)入EOS操作系統(tǒng)內(nèi)核執(zhí)行的指令(第755行) b.計(jì)算出進(jìn)入內(nèi)核執(zhí)行的指令所在的物理地址為0x1513(0x1000+0x03c1+0x3+0x14f)c.使用添加物理地址斷點(diǎn)的調(diào)試命令pb 0x1513添加一個(gè)斷點(diǎn)d.輸入調(diào)試命令c繼續(xù)執(zhí)行,到斷點(diǎn)處中斷e.使用查看虛擬內(nèi)存的調(diào)試命令x /1wx 0x查看內(nèi)存中保存的32位函數(shù)入口地址(5)調(diào)試內(nèi)核a.在OS Lab的“項(xiàng)目管理器”窗口中打開ke文件夾中的start.c文件,找到操

5、作系統(tǒng)內(nèi)核的入口點(diǎn)函數(shù)KiSystemStartupb.在KiSystemStartup函數(shù)中的代碼行(第61行) KiInitializePic(); 添加一個(gè)斷點(diǎn) c.在Console窗口中輸入調(diào)試命令c繼續(xù)調(diào)試,在剛剛添加的斷點(diǎn)處中斷d. KiSystemStartup函數(shù)就被添加到了“監(jiān)視”窗口中e.按F5繼續(xù)執(zhí)行EOS操作系統(tǒng)內(nèi)核(6) EOS啟動(dòng)后的狀態(tài)和行為查看EOS版本號(hào):在控制臺(tái)中輸入命令“ver”后按回車。查看EOS啟動(dòng)后的進(jìn)程和線程的信息:在控制臺(tái)中輸入命令“pt”后按回車。 使用pt命令查看進(jìn)程和線程的信息查看有應(yīng)用程序運(yùn)行時(shí)進(jìn)程和線程的信息:1.在OS Lab中選擇“

6、調(diào)試”菜單中的“停止調(diào)試”2.在OS Lab“項(xiàng)目管理器”窗口中雙擊Floppy.img文件3.打開配套資源“學(xué)生包”,在其中找到本實(shí)驗(yàn)對(duì)應(yīng)的文件夾4.將本實(shí)驗(yàn)文件夾中的Hello.exe文件拖動(dòng)到FloppyImageEditor工具窗口的文件列表中釋放,Hello.exe文件即被添加到軟盤鏡像文件中5.在FloppyImageEditor中選擇“文件”菜單中的“保存”后關(guān)閉FloppyImageEditor6.按F5啟動(dòng)調(diào)試7.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“hello”后按回車8.迅速按Ctrl+F2切換到控制臺(tái)2,并輸入命令“pt”后按回車 使用pt命令查看有應(yīng)用程序運(yùn)行時(shí)

7、進(jìn)程和線程的信息四、實(shí)驗(yàn)心得體會(huì)回答問(wèn)題:仔細(xì)比較圖10-5和10-6后,ID 31是應(yīng)用程序的進(jìn)程。與系統(tǒng)進(jìn)程相比,應(yīng)用程序的進(jìn)程優(yōu)先級(jí)低。系統(tǒng)進(jìn)程沒(méi)有映像名稱,應(yīng)用程序進(jìn)程又影響名稱。線程ID 33是應(yīng)用程序的主線程。與系統(tǒng)程序線程相比,系統(tǒng)線程優(yōu)先級(jí)為0,并處于運(yùn)行狀態(tài)(Running),而應(yīng)用程序處于阻塞狀態(tài)(Waiting)。體會(huì):進(jìn)一步熟悉了OS lab的使用,對(duì)操作系統(tǒng)啟動(dòng)的全過(guò)程都有了更加深入的了解。實(shí)驗(yàn)指令中數(shù)字1與小寫字母l多次看錯(cuò),對(duì)實(shí)驗(yàn)造成了困擾,應(yīng)該對(duì)指令的意義做更深入的了解。電腦上安裝的壓縮軟件將一些實(shí)驗(yàn)用到的文件當(dāng)作壓縮文件打開,影響實(shí)驗(yàn)順利進(jìn)行。問(wèn)題:1. 根據(jù)

8、之前記錄的loader.bin文件的大小,自己設(shè)計(jì)一個(gè)查看內(nèi)存的調(diào)試命令,查看內(nèi)存中l(wèi)oader程序結(jié)束位置的字節(jié)碼,并與loader.lst文件中的最后指令的字節(jié)碼比較,驗(yàn)證loader程序被完全加載到了正確的位置。答:將軟盤中的loader.bin文件加載到物理內(nèi)存的0x1000處,然后跳轉(zhuǎn)到loader程序的第一條指令(物理地址0x1000處的指令)繼續(xù)執(zhí)行l(wèi)oader程序。找出由loader.asm生成的loader程序loader.bin文件,記錄下此文件的大小1566字節(jié)。1566轉(zhuǎn)換成十六進(jìn)制是61E,加上跳到的物理內(nèi)存地址0x0000得161E,而我們要訪問(wèn)一條指令占八個(gè)字節(jié),

9、故地址應(yīng)修改為1608。圖如第一張圖。2. 實(shí)驗(yàn)指導(dǎo)中的P127最下面:仔細(xì)比較圖10-6和圖10-5,嘗試說(shuō)明哪個(gè)是應(yīng)用程序的進(jìn)程,它和系統(tǒng)進(jìn)程有什么區(qū)別,哪個(gè)是應(yīng)用程序的主線程,它和系統(tǒng)線程有什么區(qū)別。 答:進(jìn)程列表中得ID為31的進(jìn)程是應(yīng)用程序的進(jìn)程,其優(yōu)先級(jí)為8,包含一個(gè)線程,主線程ID為33,映像名稱為a:hello.ese。而ID為1的是系統(tǒng)進(jìn)程,其優(yōu)先級(jí)為24,包含10個(gè)線程,其中得ID為2的線程是其主線程,系統(tǒng)進(jìn)程沒(méi)有映像名稱。主要區(qū)別:應(yīng)用程序的優(yōu)先級(jí)較低3. 為什么EOS操作系統(tǒng)從軟盤啟動(dòng)時(shí)要使用boot.bin和loader.bin兩個(gè)程序?使用一個(gè)可以嗎?它們各自的主要

10、功能是什么?如果將loader.bin的功能移動(dòng)到boot.bin文件中,則boot.bin文件的大小是否仍然能保持小于512字節(jié)?答:在生成項(xiàng)目時(shí)boot.bin文件夾中的兩個(gè)匯編文件boot.asm和loader.asm分別生成了兩個(gè)二進(jìn)制文件boot.bin和loader.bin。這兩個(gè)文件缺一不可,它們會(huì)被寫入軟盤鏡像文件。在EOS操作系統(tǒng)啟動(dòng)時(shí),boot.bin用于引導(dǎo)軟盤,而loader.bin用于加載程序。如果把loader.bin的功能移動(dòng)到boot.bin程序中,肯定會(huì)增加boot.bin的規(guī)模,文件大小也將超過(guò)512字節(jié)。 4. 軟盤引導(dǎo)扇區(qū)加載完畢后內(nèi)存中有兩個(gè)用戶可用的區(qū)域,為什么軟盤引導(dǎo)扇區(qū)程序選擇將loader.bin加載到第一個(gè)可用區(qū)域的0x100

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論