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

正文內(nèi)容

geekos操作系統(tǒng)課程設(shè)計(jì)項(xiàng)目介紹-全文預(yù)覽

2025-03-12 17:06 上一頁面

下一頁面
  

【正文】 ?修改頁表項(xiàng)的 kernelInfo位標(biāo)識(shí)為KINFO_PAGE_ON_DISK狀態(tài)(標(biāo)識(shí)這一頁是在磁盤上存在,而不是沒有效)。 ?調(diào)用 Find_Space_On_Paging_File函數(shù)在 page file中找到空閑的存儲(chǔ)空間。 ? Copy_To_User()從一個(gè)內(nèi)核緩沖區(qū)復(fù)制數(shù)據(jù)到一個(gè)用戶緩沖區(qū)。 ? Read_From_Paging_File()函數(shù)將讀取分頁調(diào)度文件里的一頁數(shù)據(jù)到內(nèi)存空間。 ? Find_Space_On_Paging_File()函數(shù)應(yīng)該在分頁調(diào)度文件里面找到一個(gè)空閑的足夠大的頁空間。 第 12章 設(shè)計(jì)項(xiàng)目 4 一、項(xiàng)目設(shè)計(jì)目的 了解虛擬存儲(chǔ)器管理設(shè)計(jì)原理,掌握請(qǐng)求分頁虛擬存儲(chǔ)管理的具體實(shí)現(xiàn)技術(shù)。如果成功了,那就把信號(hào)量的值加上 1,如果加上 1后信號(hào)量的值小于或等于 0,則要把該信號(hào)量里等待隊(duì)列上的一個(gè)線程喚醒。 /*連接信號(hào)鏈表的域 */ } 信號(hào)量定義 ? 信號(hào)量操作: ? Semaphore_Create( ) ? Semaphore_Acquire( P操作) ? Semaphore_Release( V操作) ? Semaphore_Destroy( ) ? Create_Semaphore()函數(shù)首先檢查請(qǐng)求創(chuàng)建的這個(gè)信號(hào)量的名字是否存在,如果存在,那么就把這個(gè)線程加入到這個(gè)信號(hào)量所注冊(cè)的線程鏈表上;如果不存在,則分配內(nèi)存給新的信號(hào)量,清空它的線程隊(duì)列,把當(dāng)前的這個(gè)線程加入到它的線程隊(duì)列中,設(shè)置注冊(cè)線程數(shù)量為 1,初始化信號(hào)量的名字,值和信號(hào)量的 ID,并把這個(gè)信號(hào)量添加到信號(hào)量鏈表上,最后返回信號(hào)量的 ID。 /*信號(hào)量的值 */ int registeredThreadCount。 ( 5)在 Wait()函數(shù)中,線程被阻塞,所以 blocked變量被設(shè)置為 true,并且如果是 MLF算法,則該進(jìn)程的currentReadyQueue加一,下次運(yùn)行的時(shí)候進(jìn)入高一級(jí)的線程隊(duì)列。在 Sys_SetSchedulingPolicy()中,如果 stateebx是 1,則設(shè)置的是 MLF算法,調(diào)用Change_Scheduling_Policy(SCHED_RR,quantum),為 0則是 RR算法,調(diào)用 Change_Scheduling_Policy(SCHED_MLF,quantum)。例如 policy為 1說明設(shè)置的是多級(jí)反饋隊(duì)列調(diào)度算法,此時(shí)若 g_SchedPolicy(為系統(tǒng)添加的標(biāo)識(shí)算法的變量,初始化為 0)為 0,說明當(dāng)前的調(diào)度算法為輪轉(zhuǎn)調(diào)度,要變成 MLF就必須把空閑線程放入 3隊(duì)列,若 g_SchedPolicy為 1,說明當(dāng)前是多級(jí)反饋隊(duì)列調(diào)度算法,則返回。為GeekOS擴(kuò)充進(jìn)程調(diào)度算法 ——基于時(shí)間片輪轉(zhuǎn)的進(jìn)程多級(jí)反饋調(diào)度算法,并能用信號(hào)量實(shí)現(xiàn)進(jìn)程協(xié)作。 ( 5)根據(jù) Exe_Format結(jié)構(gòu)初始化 User_Context結(jié)構(gòu)中的用戶態(tài)進(jìn)程代碼段入口 entry字段,并根據(jù) mand參數(shù)初始化用戶內(nèi)存空間中的參數(shù)塊。 Load_User_Program函數(shù) ? Load_User_Program函數(shù)在“ /src/geekos/”文件中實(shí)現(xiàn),代碼也需要開發(fā)人員自己完成,函數(shù)原型如下: ? int Load_User_Program(char *exeFileData, ulong_t exeFileLength, ? struct Exe_Format *exeFormat, const char *mand, ? struct User_Context **pUserContext) ? /* 參數(shù)說明: ? exeFileData——保存在內(nèi)存緩沖中的用戶程序可執(zhí)行文件; ? exeFileLength——可執(zhí)行文件的長度; ? exeFormat——調(diào)用 Parse_ELF_Executable函數(shù)得到的可執(zhí)行文件格式信息; ? mand——用戶輸入的命令行,包括可執(zhí)行文件的名稱及其他參數(shù); ? pUserContext——指向 User_Coxt的指針,是本函數(shù)完成用戶上下文初始化的對(duì)象 ? */ ? Load_User_Program主要實(shí)現(xiàn)功能如下: ( 1)根據(jù) Parse_ELF_Executable函數(shù)的執(zhí)行結(jié)果Exe_Format中的 Exe_Segment結(jié)構(gòu)提供的用戶程序段信息,用戶命令參數(shù)及用戶態(tài)進(jìn)程堆棧大小計(jì)算用戶態(tài)進(jìn)程所需的最大內(nèi)存空間,即要分配給用戶態(tài)進(jìn)程的內(nèi)存空間。 ? ( 2) 調(diào)用 Parse_ELF_Executable函數(shù),分析 ELF格式文件。操作系統(tǒng)中還設(shè)置一個(gè)全局描述符表( GDT, Global Descriptor Table),用于記錄了系統(tǒng)中所有進(jìn)程的 ldt描述符。 // 引用數(shù) struct File *fileList[USER_MAX_FILES]。 // 頁表指針 ulong_t entryAddr。 // ldt選擇子 ushort_t csSelector。 // 用戶LDT struct Segment_Descriptor* ldtDescriptor。 GeekOS的用戶態(tài)進(jìn)程 在 GeekOS中為了區(qū)分用戶態(tài)進(jìn)程和內(nèi)核進(jìn)程,在Kernel_Thread結(jié)構(gòu)體中設(shè)置了一個(gè)字段 userContext,指向用戶態(tài)進(jìn)程上下文。 // 全局進(jìn)程鏈表指針 define MAX_TLOCAL_KEYS 128 const void* tlocalData[MAX_TLOCAL_KEYS]。 // 是否活躍 struct Thread_Queue joinQueue。 // 內(nèi)核堆棧頁指針 struct User_Context* userContext。 // 進(jìn)程的內(nèi)核堆棧 esp指針 volatile ulong_t numTicks。 ? 7)在 數(shù)調(diào)用: Spawn_Init_Process(void) 。 Setup_User_Thread()函數(shù)的功能是為進(jìn)程初始化內(nèi)核堆棧,堆棧中是為進(jìn)程首次進(jìn)入用戶態(tài)運(yùn)行時(shí)設(shè)置處理器狀態(tài)要使用的數(shù)據(jù)。 Destroy_User_Context() 函數(shù)的功能是釋放用戶態(tài)進(jìn)程占用的內(nèi)存資源。 Parse_ELF_Excutable函數(shù) 第十章 設(shè)計(jì)項(xiàng)目 2 一、項(xiàng)目設(shè)計(jì)目的 擴(kuò)充 GeekOS操作系統(tǒng)內(nèi)核,使得系統(tǒng)能夠支持用戶級(jí)進(jìn)程的動(dòng)態(tài)創(chuàng)建和執(zhí)行。 在 bochs中運(yùn)行 GeekOS系統(tǒng)顯示結(jié)果。 第九章 設(shè)計(jì)項(xiàng)目 1 一、項(xiàng)目設(shè)計(jì)目的 熟悉 ELF文件格式,了解 GeekOS系統(tǒng)如何將 ELF格式的可執(zhí)行程序裝入到內(nèi)存,建立內(nèi)核進(jìn)程并運(yùn)行的實(shí)現(xiàn)技術(shù)。 第八章 設(shè)計(jì)項(xiàng)目 0 三、項(xiàng)目 0的實(shí)現(xiàn)主要由以下步驟完成(在項(xiàng)目 0的 /src/geekos/): 1. 編寫一個(gè) C語言函數(shù),函數(shù)功能是:接收鍵盤輸入的按鍵,并將鍵值在顯示器顯示出來,當(dāng)輸入 ctrl+d就退出; 2. 在 Main函數(shù)體內(nèi)調(diào)用 Start_Kernel_Thread函數(shù),將步驟 1編寫的函數(shù)地址傳遞給參數(shù)startFunc,利用 Setup_Kernel_Thread函數(shù) 建立一個(gè)待運(yùn)行的線程。一、項(xiàng)目設(shè)計(jì)目的 熟悉 GeekOS的項(xiàng)目編譯、調(diào)試和運(yùn)行環(huán) 境,掌握 GeekOS運(yùn)行工作過程。該進(jìn)程的功能是:接收鍵盤輸入的字符并顯示到屏幕上,當(dāng)輸入 ctrl+d時(shí),結(jié)束進(jìn)程的運(yùn)行。 5. 在 bochs中運(yùn)行 GeekOS系統(tǒng)顯示結(jié)果。 編
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1