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

正文內(nèi)容

geekos操作系統(tǒng)的研究與實(shí)現(xiàn)操作系統(tǒng)課程設(shè)計(jì)(專業(yè)版)

2025-08-05 06:16上一頁面

下一頁面
  

【正文】 雖然后來具體實(shí)施時(shí)也有點(diǎn)小波折,但最終也解決了該難題。}static int Sys_GetPID(struct Interrupt_State* state){ //TODO(GetPID system call)。 //開中斷 rc = Spawn(program, mand, amp。 if (!Copy_To_User(stateebx, amp。//字符串長度 uchar_t* buf = 0。 //超過最大長度 if (len maxLen){ return EINVALID。 /* ebx */ Push(kthread, 0)。 ushort_t ldtSelector= userContextldtSelector。 } //格式化參數(shù)塊 Format_Argument_Block(userContextmemory + argBlockAddr, numArgs, argBlockAddr, mand)。exeFormatsegmentList[i]。 //釋放占用的LDT Free_Segment_Descriptor(userContextldtDescriptor)。 //新建數(shù)據(jù)段和文本段選擇子 UserContextcsSelector = Selector(USER_PRIVILEGE, false, 0)。 UserContext = (struct User_Context *)Malloc(sizeof(struct User_Context))。//銷毀進(jìn)程對(duì)象 return rc。exeFormat)) != 0 ) {//調(diào)用Parse_ELF_Executable函數(shù)分析ELF格式文件 Print(Failed to Parse ELF File!\n)。 Start_User_Thread()是一個(gè)高層操作,該函數(shù)使用User_Context對(duì)象開始一個(gè)新進(jìn)程。 segmentsizeInMemory = phdrmemSize。 Set_Current_Attr(ATTRIB(BLACK, GREEN|BRIGHT))。 Exit(1)。因此,通過分析可執(zhí)行文件的信息,然后為其分配內(nèi)存并載入建立內(nèi)核線程,供系統(tǒng)調(diào)度運(yùn)行。Bochs 的模擬環(huán)境中也可以運(yùn)行大部分的操作系統(tǒng),包括 Linux, Windows 95, DOS, Windows NT 4, FreeBSD, MINIX 等。Start_User_Thread()是一個(gè)高層操作,該函數(shù)使用User_Context對(duì)象開始一個(gè)新進(jìn)程。操作系統(tǒng)課程設(shè)計(jì)報(bào)告題 目:Geekos操作系統(tǒng)的研究與實(shí)現(xiàn) 專 業(yè): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 2012年3月16日 目錄一、 實(shí)驗(yàn)?zāi)康?2二、 項(xiàng)目設(shè)計(jì)要求 3三、 開發(fā)環(huán)境的建立 41. 開發(fā)環(huán)境的介紹 42. 開發(fā)環(huán)境的構(gòu)建 4四、 項(xiàng)目設(shè)計(jì)原理 5五、 項(xiàng)目設(shè)計(jì)的實(shí)現(xiàn) 61. Project0項(xiàng)目的具體實(shí)現(xiàn) 62. Project1項(xiàng)目的具體實(shí)現(xiàn) 83. Project2項(xiàng)目的具體實(shí)現(xiàn) 9六、 系統(tǒng)編譯運(yùn)行的結(jié)果 20七、 遇到的問題和解決方法 23八、 課程設(shè)計(jì)總結(jié) 24 實(shí)驗(yàn)?zāi)康?. Project0:熟悉GeekOS的項(xiàng)目編譯、調(diào)試和運(yùn)行環(huán)境,掌握GeekOS運(yùn)行工作過程。(6) “src/GeekOS/”文件中主要是實(shí)現(xiàn)用戶程序要求內(nèi)核進(jìn)行服務(wù)的一些系統(tǒng)調(diào)用函數(shù)定義。2. 開發(fā)環(huán)境的構(gòu)建(1)下載并安裝VMware虛擬機(jī);(2)在VMware虛擬機(jī)上安裝CentOS版本的linux操作系統(tǒng)。3. Project2與priject1一樣,并與用戶程序一起編譯。 }else { Print(%c,(asciiCode==39。 Print(Wele to GeekOS!\n)。 phdr++。(6)src/GeekOS/。 goto fail。}//切換至用戶上下文void Switch_To_User_Context(struct Kernel_Thread* kthread, struct Interrupt_State* state){ //TODO(Switch to a new user address space, if necessary)。 //為用戶態(tài)進(jìn)程 if (UserContext != 0) UserContextmemory = Malloc(size)。 UserContextdsSelector = Selector(USER_PRIVILEGE, false, 1)。 userContextldtDescriptor=0。 ulong_t topva = segmentstartAddress + segmentsizeInMemory。 //初始化數(shù)據(jù)段,堆棧段及代碼段信息 userContextentryAddr = exeFormatentryAddr。/* Switch to the LDT of the new user context */ __asm__ __volatile__ (lldt %0::a(ldtSelector))。 /* edx */ Push(kthread, 0)。 } //為字符串分配空間 str = (char*) Malloc(len+1)。 if (length 0) {/* Copy string into kernel. 將字符串復(fù)制到內(nèi)核*/ if ((rc = Copy_User_String(stateebx, length, 1023, (char**) amp。row, sizeof(int)) ||!Copy_To_User(stateecx, amp。process)。 return g_currentThreadpid。 課程設(shè)計(jì)總結(jié)操作系統(tǒng)課程設(shè)計(jì)安排在開學(xué)第三周做,第一次上課聽老師將課設(shè)的步驟和要求后,感覺很迷茫,很多都不懂,一頭霧水,不知道從哪里入手。后來查資料,發(fā)現(xiàn)可以安裝Vmware Tools來解決這個(gè)問題。 return exitCode。 } Enable_Interrupts()。col)。//返回值 uint_t length = stateecx。 char *str。 /* eax */ Push(kthread, 0)。}//切換到用戶地址空間void Switch_To_Address_Space(struct User_Context *userContext){ //TODO(Switch to user address space using segmentation/LDT)。 //根據(jù)段信息將用戶程序中的各段內(nèi)容復(fù)制到分配的用戶內(nèi)存空間 memcpy(userContextmemory + segmentstartAddress, exeFileData + segmentoffsetInFile,segmentlengthInFile)。 ++i) { // struct Exe_Segment *segment = amp。// Enable_Interrupts()。UserContextldt[1], (ulong_t) UserContextmemory, size / PAGE_SIZE, USER_PRIVILEGE )。 size = Round_Up_To_Page(size)。//釋放內(nèi)存 if (userContext != 0) Destroy_User_Context(userContext)。 } if((rc = Parse_ELF_Executable(exeFileData, exeFileLength, amp。 Setup_User_Thread()函數(shù)的功能是為進(jìn)程初始化內(nèi)核堆棧,堆棧中是為進(jìn)程首次進(jìn)入用戶態(tài)運(yùn)行時(shí)設(shè)置處理器狀態(tài)要使用的數(shù)據(jù)。 segmentstartAddress = phdrvaddr。Init_Keyboard()。) //按下Ctrl鍵 { Print(\nBYE!\n)。以及一些可選輔助信息,如調(diào)試信息、硬件信息等。目前, Bochs 可以模擬 386, 486, Pentium Pro 或者 AMD64 CPU 。Setup_User_Thread()函數(shù)的功能是為進(jìn)程初始化內(nèi)核堆棧,堆棧中是為進(jìn)程首次進(jìn)入用戶態(tài)運(yùn)行時(shí)設(shè)置處理器狀態(tài)要使用的數(shù)據(jù)。2. Project1:熟悉ELF文件格式,了解GeekOS系統(tǒng)如何將ELF格式的可執(zhí)行程序裝入到內(nèi)存,建立內(nèi)核進(jìn)程并運(yùn)行的實(shí)現(xiàn)技術(shù)。要求用戶實(shí)現(xiàn)的有Sys_Exit()函數(shù)、Sys_PrintString()函數(shù)、Sys_GetKey()、Sys_SetAttr()、Sys_GetCursor()、Sys_PutCursor()、Sys_Spawn()函數(shù)、Sys_Wait()函數(shù)和Sys_GetPID( )函數(shù)。(3)在VMware虛擬機(jī)上的linux環(huán)境下對(duì)GeekOS源文件進(jìn)行編譯和鏈接,;(4)下載并安裝系統(tǒng)仿真工具Bochs;(5)$ ./configure 配置bochs的文件(6)make 工具無論是在Linux還是在UNIX環(huán)境中,make都是一個(gè)非常重要的系統(tǒng)開發(fā)工具。再根據(jù)傳遞的中斷向量查找并調(diào)用相關(guān)的中斷處理程序,并實(shí)現(xiàn)調(diào)度進(jìn)程的選擇。\r39。 Set_Current_Attr(ATTRIB(BLACK, GRAY))。 segment++。(7)src/GeekOS/”文件中主要是實(shí)現(xiàn)用戶程序要求內(nèi)核進(jìn)行服務(wù)的一些系統(tǒng)調(diào)用函數(shù)定義。 } if((rc = Load_User_Program(exeFileData, exeFileLength, amp。 static struct User_Context* s_currentUserContext。 //為核心態(tài)進(jìn)程 e
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1