版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
操作系統(tǒng)課程設計專業(yè)名稱:_軟件工程______________________操作系統(tǒng)課程設計——基于nachos的課程設計主要完成工作:閱讀代碼,完成基于線程優(yōu)先級調度,多道程序設計,完成小組課程設計報告基于線程優(yōu)先級調度部分一、問題分析及工作原理線程運行機制圖:Thread::Yield()Thread::Thread()Thread::Yield()Thread::Thread()Thread::Fork()Thread*Scheduler::Thread::Fork()Thread*Scheduler::FindNextToRun()callScheduler::ReadyToRunvoidThread::Sleep(boolfinishing)voidThread::Sleep(boolfinishing)ReadyReadyScheduler::RunRunning(Thread*nextThread,Yield()Runningboolfinishing)voidThread::SleepScheduler::(boolfinishing)ReadyToRun(Thread*thread)BlockedBlocked進程的基本狀態(tài):就緒,運行,阻塞進程程的基本操作:創(chuàng)建,阻塞,喚醒Fork方法調用StackAllocate,分配一塊固定大小的內存作為線程的堆棧,設置棧首指針,線程準備好運行后進行線程切換,會切換到ThreadRoot函數。ThreadRoot函數將會開中斷,并調用func(arg)成為一個獨立的調度單位。然后設置PC指針,從ThreadRoot開始運行,初始化宿主機寄存器,為ThreadRoot作好準備,ThreadRoot將分別調用InterruptEnable, func(arg)和ThreadFinish。Yield方法用于本線程放棄處理機。Sleep方法可以使當前線程轉入阻塞態(tài),并放棄CPU,直到被另一個線程喚醒,把它放回就緒線程隊列。如果沒有就緒線程時,就把時鐘前進到一個中斷發(fā)生的時刻,讓中斷發(fā)生并處理此中斷,這是因為在沒有線程占用CPU時,只有中斷處理程序可能喚醒一個線程,并把它放入就緒線程隊列。Scheduler類用于實現(xiàn)線程的調度。它維護一個就緒線程隊列,當一個線程可以占用處理機時,就可以調用ReadyToRun方法把這個線程放入就緒線程隊列,并把線程狀態(tài)改成就緒態(tài)。FindNextToRun方法根據調度策略,取出下一個應運行的線程,并把這個線程從就緒線程隊列中刪除。如果就緒線程隊列為空,則此函數返回空(NULL)。現(xiàn)有的調度策略是先進先出策略(FIFO)二、算法思想設計:為線程(Thread)添加priority屬性,用來描述每個線程的優(yōu)先級,并在線程創(chuàng)建時設置或創(chuàng)建后修改線程的優(yōu)先級,加入就緒隊列(readyList)時,先比較當前線程和就緒隊列里的線程的優(yōu)先級,優(yōu)先級高的插入在前面,如果優(yōu)先級相同,則兩個線程按先后順序排列,相當與先來先服務(FCFS),這樣,當CPU空閑時需要從就緒隊列取出一個線程時,取出的總是優(yōu)先級最高的線程。三、詳細設計及關鍵代碼分析:首先,為線程(Thread)添加priority屬性,用來描述每個線程的優(yōu)先級,并添加intsetpriority()設置進程優(yōu)先級和getpriority()獲得線程優(yōu)先級的函數,并增加新的構造函數Thread(char*threadName,intprio)//Thread.h//添加了priority屬性以及getPriority()和setpriority()//添加了新的構造函數Thread(char*threadName,intprio)//thread.cc//在原來的構造函數Thread(char*threadName)中設置默認優(yōu)先級為最高(0)//新的構造方法Thread(char*threadName,intprio)然后修改readyList為SortedList類型(原來為List類型),方便插入就緒線程,對線程進行排序。//Scheduler.h當一個線程需要加入到就緒隊列時不是采用原來的(thread)將線程加入到最后,而是利用Insert(thread)將線程按優(yōu)先級插入到就緒隊列//Scheduler.cc修改SelfTest()創(chuàng)建幾個不同優(yōu)先級的進程進行測試//Thread.cc以上創(chuàng)建了四個不同優(yōu)先級的線程,按優(yōu)先級高的線程優(yōu)先執(zhí)行,如果優(yōu)先級相同,則按照等待時間長的優(yōu)先運行,線程優(yōu)先級為t3>t1>t2=t4而由于線程2先于線程4加入等待隊列則線程2先執(zhí)行,故執(zhí)行順序應該為:t3->t1->t2->t4四、測試及結果分析:./nachos-K實際運行結果如下:由以上運行結果可知進程是按優(yōu)先級高低順序來執(zhí)行的五、多道程序部分主要完成以下設計:1.exec系統(tǒng)調用exec用于執(zhí)行一個可執(zhí)行文件首先從4號寄存器讀取系統(tǒng)調用的參數(即傳遞的可執(zhí)行文件名指針,也就是在內存的地址),然后從內存讀取文件名,打開文件,使用該可執(zhí)行文件初始化一個新的進程空間,將當前的進程的地址空間覆蓋,初始化所有的寄存器值,恢復到進程空間,開始執(zhí)行。2.Open系統(tǒng)調用Open系統(tǒng)調用用于打開一個文件,返回文件描述符。可以調用nachos系統(tǒng)封裝的打開文件的方法,這個方法是調用了底層的操作系統(tǒng)的方法,然后打開的是宿主系統(tǒng)的文件。然后將打開的文件描述符寫到2號寄存器,執(zhí)行下一條指令。3.Read系統(tǒng)調用read系統(tǒng)調用傳遞打開的文件描述符,讀的大小,緩沖區(qū)地址用于存放讀的內容,返回讀得字節(jié)數。首先從寄存器取得參數,然后調用nachos封裝宿主機的方法讀取內容以及讀到的字節(jié)數,然后將內容寫到nachos模擬的物理內存,地址是剛剛接受的參數,最后將讀到的字節(jié)數寫道2號寄存器,執(zhí)行下一條指令。4.Write系統(tǒng)調用先讀取內容的地址(在內存中),讀取寫入的大小以及要寫入的文件描述符,然后寫到文件中(調用nachos封裝的方法)。六、問題分析在實現(xiàn)多道程序時出現(xiàn)了比較多的問題,導致最后沒能完成,首先,我們對多道程序運行機制進行了詳細的了解,并根據源碼中的樣例ADD的執(zhí)行過程,單步跟蹤,深入了解了NACHOS是如何執(zhí)行用戶程序的,然后進行算法思想的設計,即如何實現(xiàn)多道程序,在實現(xiàn)系統(tǒng)調用程序設計階段,主要系統(tǒng)調用未能實現(xiàn),主要原因是由于對代碼的整體把握出錯,由于在設計及分析階段只了解了NACHOS運行用戶程序的詳細流程以及如何進行用戶程序的調用,而對代碼的整體了解不夠,導致在根據設計思路完成程序設計的過程中,出現(xiàn)了比較大的問題,比如在實現(xiàn)EXEC系統(tǒng)調用時,根據NACHOS的每個寄存器存的內容不同,按規(guī)則讀取寄存的內容,然后再進行對其內容的操作,模仿源代碼已有的操作ADD系統(tǒng)調用,實現(xiàn)EXEC系統(tǒng)調用。在測試程序運行時,出現(xiàn)了cannotopenfile的錯誤,主要原因是:由于在代碼實現(xiàn)時,寫錯了文件名所在寄存器,導致無法打開文件,所以就沒能完成文件調用的測試。而對EXEC系統(tǒng)調用的其他部分則是正確的,其他幾個系統(tǒng)調用也出現(xiàn)了同樣的問題,但是這個問題一直未能發(fā)現(xiàn),導致本次設計無法順利進行下去。七、心得及體會本次課程設計對我的提升還是非常大的,首先,由于分析了NACHOS的主要代碼以及詳細運行過程,對操作系統(tǒng)中的基本原理和核心算法有一個全面和完整的了解。對操作系統(tǒng)課上的內容有了更深了理解,包括線程管理,內存管理,系統(tǒng)調用機制,時鐘中斷,多道程序,文件系統(tǒng)等等都有了比較清楚的認識,由原來抽象的概念變成了形象的認識。其次,在本次課程設計中由于對涉及源代碼比較多,理解起來比較費時,而這正提高了我的理解代碼以及分析和解決問題的能力,最重要的是NACHOS帶給我的是一種自信,用老師的話來說就是一種巔峰認知,讓我以后在面對較困難的事情時有了更多的自信,同時提高了分析解決問題的能力。
論大學生寫作能力寫作能力是對自己所積累的信息進行選擇、提取、加工、改造并將之形成為書面文字的能力。積累是寫作的基礎,積累越厚實,寫作就越有基礎,文章就能根深葉茂開奇葩。沒有積累,胸無點墨,怎么也不會寫出作文來的。寫作能力是每個大學生必須具備的能力。從目前高校整體情況上看,大學生的寫作能力較為欠缺。一、大學生應用文寫作能力的定義那么,大學生的寫作能力究竟是指什么呢?葉圣陶先生曾經說過,“大學畢業(yè)生不一定能寫小說詩歌,但是一定要寫工作和生活中實用的文章,而且非寫得既通順又扎實不可。”對于大學生的寫作能力應包含什么,可能有多種理解,但從葉圣陶先生的談話中,我認為:大學生寫作能力應包括應用寫作能力和文學寫作能力,而前者是必須的,后者是“不一定”要具備,能具備則更好。眾所周知,對于大學生來說,是要寫畢業(yè)論文的,我認為寫作論文的能力可以包含在應用寫作能力之中。大學生寫作能力的體現(xiàn),也往往是在撰寫畢業(yè)論文中集中體現(xiàn)出來的。本科畢業(yè)論文無論是對于學生個人還是對于院系和學校來說,都是十分重要的。如何提高本科畢業(yè)論文的質量和水平,就成為教育行政部門和高校都很重視的一個重要課題。如何提高大學生的寫作能力的問題必須得到社會的廣泛關注,并且提出對策去實施解決。二、造成大學生應用文寫作困境的原因:(一)大學寫作課開設結構不合理。就目前中國多數高校的學科設置來看,除了中文專業(yè)會系統(tǒng)開設寫作的系列課程外,其他專業(yè)的學生都只開設了普及性的《大學語文》課。學生寫作能力的提高是一項艱巨復雜的任務,而我們的課程設置僅把這一任務交給了大學語文教師,可大學語文教師既要在有限課時時間內普及相關經典名著知識,又要適度提高學生的鑒賞能力,且要教會學生寫作規(guī)律并提高寫作能力,任務之重實難完成。(二)對實用寫作的普遍性不重視?!按髮W語文”教育已經被嚴重地“邊緣化”。目前對中國語文的態(tài)度淡漠,而是呈現(xiàn)出全民學英語的大好勢頭。中小學如此,大學更是如此。對我們的母語中國語文,在大學反而被漠視,沒有相關的課程的設置,沒有系統(tǒng)的學習實踐訓練。這其實是國人的一種偏見。應用寫作有它自身的規(guī)律和方法。一個人學問很大,會寫小說、詩歌、戲劇等,但如果不曉得應用文寫作的特點和方法,他就寫不好應用文。(三)部分大學生學習態(tài)度不端正。很多非中文專業(yè)的大學生對寫作的學習和訓練都只是集中在《大學語文》這一門課上,大部分學生只愿意被動地接受大學語文老師所講授的文學經典故事,而對于需要學生動手動腦去寫的作文,卻是盡可能應付差事,這樣勢必不能讓大學生的寫作水平有所提高。(四)教師的實踐性教學不強。學生寫作能力的提高是一項艱巨復雜的任務,但在教學中有不少教師過多注重理論知識,實踐性教學環(huán)節(jié)卻往往被忽視。理論講了一大堆,但是實踐卻幾乎沒有,訓練也少得可憐。閱讀與寫作都需要很強的實踐操作,學習理論固然必不可少,但是閱讀方法和寫作技巧的掌握才是最重要的。由于以上的原因,我們的大學生的寫作水平著實令人堪憂,那么如何走出這一困境,筆者提出一些建議,希望能對大學生寫作水平的提高有所幫助。三、提高大學生應用寫作能力的對策(一)把《應用寫作》課設置為大學生的必修課。在中國的每一所大學,《應用寫作》應該成為大學生的必修課。因為在這個被某些人形容為實用主義、功利主義甚囂塵上的時代,也是個人生存競爭最激烈的時代,人們比任何時代都更需要學會寫作實用性的文章,比如職場競爭中的求職信,生活中的財經文書、法律文書等,以提高個人的生存競爭能力。(二)端正大學生的學習態(tài)度。首先,要讓大學生充分認識到實用寫作課的重要性,這門課關乎到他人生的每一個方面,諸如就職,求愛,理財,人際交往等,是他終生都需要使用的一些基礎性的知識,也是他必備的一項生存技能。其次,實用寫作有它自身的規(guī)律和方法。它不是你想怎樣寫都行的,它有嚴格的格式性的要求,所以需要系統(tǒng)的研究學習。最后,實用寫作課的實踐性非常強,所以學生們不能只學不練,并且要克服手懶的壞習慣,勤學勤練,為今后的工作生活打好基礎。(三)注重實踐課的訓練。要提高大學生的實用寫作能力,那么實踐寫作環(huán)節(jié)是必不可少的。要想使學員真正具備實用寫作能力,必須重視實用寫作訓練,力求使理論講授與寫作訓練互相緊扣進行。教師在授課過程中,應該把理論教學的部分適當壓縮,把更多的時間用來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度鋼材品牌授權及合作推廣合同3篇
- 二零二五版戶外燈具打膠制作合同范本3篇
- 二零二五版建筑材料租賃與資金支付合同3篇
- 二零二五版消防管道材料買賣合同范本3篇
- 二零二五版空壓機租賃與租賃期滿設備回收合同3篇
- 二零二五版文化旅游項目開發(fā)合作購銷合同文化融合3篇
- 二零二五版股票期權授予及解約條款合同書3篇
- 二零二五年度電腦系統(tǒng)集成與售后全面保修合同3篇
- 2025年廠房維修保養(yǎng)與安全責任合同3篇
- 2025版冷凍食品儲藏租賃合同范本3篇
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 寒假作業(yè)(試題)2024-2025學年五年級上冊數學 人教版(十二)
- 銀行信息安全保密培訓
- 市政道路工程交通疏解施工方案
- 2024年部編版初中七年級上冊歷史:部分練習題含答案
- 拆遷評估機構選定方案
- 床旁超聲監(jiān)測胃殘余量
- 上海市松江區(qū)市級名校2025屆數學高一上期末達標檢測試題含解析
- 綜合實踐活動教案三上
- 《新能源汽車電氣設備構造與維修》項目三 新能源汽車照明與信號系統(tǒng)檢修
- 2024年新課標《義務教育數學課程標準》測試題(附含答案)
評論
0/150
提交評論