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

正文內容

操作系統(tǒng)內核與應用實踐09級-資料下載頁

2025-05-13 10:23本頁面
  

【正文】 堆棧棧頂指針、建立任務的優(yōu)先級,為 0。 ? 調用 OSStart(),將控制權交給 181。C/OSII內核,開始運行多任務。此時有三個任務就緒,選擇優(yōu)先級最高的TaskStart()開始運行。 void TaskStart (void *pdata) { char s[100]。 INT16S key。 pdata = pdata。 /*( 1) */ TaskStartDispInit()。 /*( 2) */ OS_ENTER_CRITICAL()。 /*( 3) */ PC_VectSet(0x08, OSTickISR)。 /*( 4) */ PC_SetTickRate(OS_TICKS_PER_SEC)。 /*( 5) */ OS_EXIT_CRITICAL()。 /*( 6) */ OSStatInit()。 /*( 7) */ TaskStartCreateTasks()。 /*( 8) */ for (。) { /*( 9) */ TaskStartDisp()。 /*( 10) */ if (PC_GetKey(amp。key) == TRUE) { /*( 11) */ if (key == 0x1B) { /*( 12) */ PC_DOSReturn()。 /*( 13) */ } } OSCtxSwCtr = 0。 /*( 14) */ OSTimeDlyHMSM(0, 0, 1, 0)。 /*( 15) */ } } TaskStart處理流程 1. 避免編譯程序關于 pdata未使用的警告信息。 2. 初始化屏幕顯示:構成一個 DOS應用程序的運行窗口, 3. 關中斷, 4. 安裝 uC/OSII時鐘節(jié)拍 ISR,替換計算機原有時鐘節(jié)拍 ISR。改變時鐘節(jié)拍率,從 DOS的 變?yōu)? 200Hz 。重置節(jié)拍速率。 5. 開中斷 7. 測試所使用處理機的速度 ——實際CPU使用率 8. 創(chuàng)建所有的應用程序任務,創(chuàng)建其他的任務, 9. 無限循環(huán)重復執(zhí)行以下過程 10. 更新屏幕底部的信息顯示 ——任務個數、當前 Cpu利用率、任務切換的次數、 181。C/OSII的版本號等 11. 是否鍵盤被按下 12. 按下 , 是否是 ESC鍵 13. 是,返回 DOS操作系統(tǒng) 14. 清除任務切換計數器 15. 任務 TaskStart()自己設計睡眠 1秒。這時, 181。C/OSII開始調度下一個優(yōu)先級最高的就緒進程,即優(yōu)先級為 1的 task()任務。如果不這樣設計,任何其他任務沒有機會運行。 實例程序的函數設計:TaskStartCreateTasks() static void TaskStartCreateTasks (void) { INT8U i。 for (i = 0。 i N_TASKS。 i++) { /* Create N_TASKS identical tasks*/ TaskData[i] = 39。039。 + i。 /*1*/ OSTaskCreate(Task, /*2*/ (void *)amp。TaskData[i], /*3*/ amp。TaskStk[i][TASK_STK_SIZE 1],/*4*/ i + 1)。/*5*/ } } 1. 初始化一個數組,包含 ‘ 0’~‘9’ 10個 ASCII字符。 2. 循環(huán)建立 N_TASKS個基本完全相同的任務 TASK(), TASK()負責在屏幕隨機位置顯示 ‘ 0’~‘9’ASCII字符。 3. 每個任務顯示字符的指針。 4. 每個任務的堆棧指針。 5. 任務優(yōu)先級 1~10。 實例程序的函數設計: Task() ? 對應每個任務的函數代碼。 1. 任務一開始,調用 OSSemPend()獲取信號量RandomSem (也就是禁止其他任務運行這段代碼), 2. 調用 Borland C/C++的庫函數 random()來獲得一個隨機數,此處設 random()函數是不可重入的,所以 10個任務將輪流獲得信號量,并調用該函數。 3. 當計算出 x和 y坐標后,任務釋放信號量。 4. 隨后任務在計算的坐標處顯示其任務號( 09)。 5. 該任務延時一個時鐘節(jié)拍(掛起),調度另一個就緒任務運行等待進入下一次循環(huán)。進一步說明的是:系統(tǒng)中每個任務每秒執(zhí)行 200次, 10個任務每秒鐘將切換 2021次。 Task() void Task (void *data) { INT8U x。 INT8U y。 INT8U err。 for (。) { OSSemPend(RandomSem, 0, amp。err)。 x = random(80)。 y = random(16)。 OSSemPost(RandomSem)。 PC_DispChar(x, y + 5, *(char *)data, DISP_FGND_LIGHT_GRAY)。 OSTimeDly(1); } } 181。C/OSII課程設計方案 ? 任務管理實驗 ? 以實例一為基礎,創(chuàng)建用戶自己的任務,可以是一個或多個,自己設計任務的執(zhí)行代碼,并能在運行界面上實現對任務的管理功能。包括:任務堆棧的監(jiān)測、任務的刪除、改變任務的優(yōu)先級、掛起或恢復任務。 ? 信號量管理實驗 ? 創(chuàng)建一個或多個任務,并初始化一個或多個事件,利用一個或多個事件使該任務進入睡眠態(tài) /就緒態(tài),而后喚醒。 ? 哲學家就餐實驗 ? 創(chuàng)建幾個任務,分別代表幾個哲學家進程,并設計每個哲學家進程的運行代碼:思考、饑餓、拿筷子、吃飯、放筷子。并發(fā)運行多個任務,查看是否有死鎖出現。此外利用創(chuàng)建多個互斥信號量表示每支筷子,用以實現死鎖的避免。 ? 消息隊列實驗 ? 創(chuàng)建兩個(類)任務,利用系統(tǒng)提供的消息隊列管理機制,建立一個消息隊列,一組任務發(fā)送消息,一組任務接受消息,運用消息等待、獲取消息隊列狀態(tài)等使得消息的發(fā)送和接收正確無誤。 ? 時鐘中斷實驗 ? 利用系統(tǒng)提供的事件管理模塊功能,創(chuàng)建多個相對時鐘,到時發(fā)中斷。 ? 安全狀態(tài)檢測死鎖 ? 銀行家算法預防死鎖 ? 自行設計嵌入式開發(fā)軟件 核心技術分析及其結論 ? 技術理解掌握的關鍵 ? 開發(fā)技術重要內容 ? 文檔的重要內容 ? 體現軟件技術能力 描述所使用內核功能及接口 ? 對所使用的內核模塊進行重點說明 ? 對該模塊接口(操作函數)進行功能說明 ? 對該模塊進行功能總體功能描述 描述應用模塊的功能及接口 ? 對所設計實現的應用模塊進行功能和實現說明 ? 對該模塊內核接口操作函數進行功能說明 ? 對該模塊進行功能總體功能描述 181。c/OSII的模塊調用層次分析 ? 為文檔重要內容 ? 每組將本組實現的模塊及其調用關系畫出 ? 每位同學將自己實現的實例程序的模塊調用層次畫出 181。c/OSII的啟動流程 ? 文檔重要內容 ? 以實現的實例程序為依據,將 181。c/OSII的啟動流程進行分析并以函數為線索畫出 ? 對 181。c/OSII的運行流程做出分析總結 ? 可使用程序流程圖進行分析 181。c/OSII的任務運行流程 ? 文檔重要內容 ? 以實現的實例程序為依據,將 181。c/OSII的創(chuàng)建的任務進行分析并以函數為線索總結每個任務的活動,對 181。c/OSII對任務的處理做出分析和總結 181。c/OSII的任務編寫與調用 ? 自己根據此創(chuàng)建一個任務參加運行。 ? 并跟蹤該任務的一切運行活動 181。c/OSII及其應用程序的編譯 ? BC31 ? MAKFILE ? 開發(fā)環(huán)境配置 181。c/OSII的運行及跟蹤 ? 監(jiān)控 181。c/OSII的運行 ? 數據結構的狀態(tài)和值 ? 運行流程的監(jiān)控的輸出 ? 外部中斷的加入 ? 每位同學都需要對自己所負責的模塊進行運行監(jiān)控,達到能夠控制該模塊運行的目的 181。c/OSII實現示例 ? 源碼編寫及結構 ? 編譯 ? 鏈接 ? 運行 銀行家算法 避免死鎖 ? 多個任務模擬多個進程運行 ? 給出測試數據,完成安全狀態(tài)檢測 ? 給出測試數據,分配資源 ? 給出測試數據,不予分配資源 哲學家就餐 ? 多個任務模擬多個進程運行 ? 給出測試數據,驗證發(fā)生死鎖的情況 ? 給出測試數據,驗證沒有發(fā)生死鎖的情況 ? 給出測試數據,驗證不會發(fā)生死鎖的情況 181。c/OSII的測試方案 ? 單個任務運行調試 ? 并發(fā)任務運行調試 ? 長時間運行的測試 ? 改變運行參數后系統(tǒng)測試運行
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1