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

正文內容

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

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

下一頁面
  

【正文】 雖然后來具體實施時也有點小波折,但最終也解決了該難題。}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))。//銷毀進程對象 return rc。exeFormat)) != 0 ) {//調用Parse_ELF_Executable函數(shù)分析ELF格式文件 Print(Failed to Parse ELF File!\n)。 Start_User_Thread()是一個高層操作,該函數(shù)使用User_Context對象開始一個新進程。 segmentsizeInMemory = phdrmemSize。 Set_Current_Attr(ATTRIB(BLACK, GREEN|BRIGHT))。 Exit(1)。因此,通過分析可執(zhí)行文件的信息,然后為其分配內存并載入建立內核線程,供系統(tǒng)調度運行。Bochs 的模擬環(huán)境中也可以運行大部分的操作系統(tǒng),包括 Linux, Windows 95, DOS, Windows NT 4, FreeBSD, MINIX 等。Start_User_Thread()是一個高層操作,該函數(shù)使用User_Context對象開始一個新進程。操作系統(tǒng)課程設計報告題 目:Geekos操作系統(tǒng)的研究與實現(xiàn) 專 業(yè): 學 號: 學生姓名: 指導教師: 2012年3月16日 目錄一、 實驗目的 2二、 項目設計要求 3三、 開發(fā)環(huán)境的建立 41. 開發(fā)環(huán)境的介紹 42. 開發(fā)環(huán)境的構建 4四、 項目設計原理 5五、 項目設計的實現(xiàn) 61. Project0項目的具體實現(xiàn) 62. Project1項目的具體實現(xiàn) 83. Project2項目的具體實現(xiàn) 9六、 系統(tǒng)編譯運行的結果 20七、 遇到的問題和解決方法 23八、 課程設計總結 24 實驗目的1. Project0:熟悉GeekOS的項目編譯、調試和運行環(huán)境,掌握GeekOS運行工作過程。(6) “src/GeekOS/”文件中主要是實現(xiàn)用戶程序要求內核進行服務的一些系統(tǒng)調用函數(shù)定義。2. 開發(fā)環(huán)境的構建(1)下載并安裝VMware虛擬機;(2)在VMware虛擬機上安裝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)進程 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. 將字符串復制到內核*/ if ((rc = Copy_User_String(stateebx, length, 1023, (char**) amp。row, sizeof(int)) ||!Copy_To_User(stateecx, amp。process)。 return g_currentThreadpid。 課程設計總結操作系統(tǒng)課程設計安排在開學第三周做,第一次上課聽老師將課設的步驟和要求后,感覺很迷茫,很多都不懂,一頭霧水,不知道從哪里入手。后來查資料,發(fā)現(xiàn)可以安裝Vmware Tools來解決這個問題。 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ù)段信息將用戶程序中的各段內容復制到分配的用戶內存空間 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)。//釋放內存 if (userContext != 0) Destroy_User_Context(userContext)。 } if((rc = Parse_ELF_Executable(exeFileData, exeFileLength, amp。 Setup_User_Thread()函數(shù)的功能是為進程初始化內核堆棧,堆棧中是為進程首次進入用戶態(tài)運行時設置處理器狀態(tài)要使用的數(shù)據(jù)。 segmentstartAddress = phdrvaddr。Init_Keyboard()。) //按下Ctrl鍵 { Print(\nBYE!\n)。以及一些可選輔助信息,如調試信息、硬件信息等。目前, Bochs 可以模擬 386, 486, Pentium Pro 或者 AMD64 CPU 。Setup_User_Thread()函數(shù)的功能是為進程初始化內核堆棧,堆棧中是為進程首次進入用戶態(tài)運行時設置處理器狀態(tài)要使用的數(shù)據(jù)。2. Project1:熟悉ELF文件格式,了解GeekOS系統(tǒng)如何將ELF格式的可執(zhí)行程序裝入到內存,建立內核進程并運行的實現(xiàn)技術。要求用戶實現(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虛擬機上的linux環(huán)境下對GeekOS源文件進行編譯和鏈接,;(4)下載并安裝系統(tǒng)仿真工具Bochs;(5)$ ./configure 配置bochs的文件(6)make 工具無論是在Linux還是在UNIX環(huán)境中,make都是一個非常重要的系統(tǒng)開發(fā)工具。再根據(jù)傳遞的中斷向量查找并調用相關的中斷處理程序,并實現(xiàn)調度進程的選擇。\r39。 Set_Current_Attr(ATTRIB(BLACK, GRAY))。 segment++。(7)src/GeekOS/”文件中主要是實現(xiàn)用戶程序要求內核進行服務的一些系統(tǒng)調用函數(shù)定義。 } if((rc = Load_User_Program(exeFileData, exeFileLength, amp。 static struct User_Context* s_currentUserContext。 //為核心態(tài)進程 e
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1