版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、石家莊經(jīng)濟學院實習報告(學 院)系: 信息工程學院 專 業(yè): 計算機科學與技術(shù)姓 名: 江丹 班 級: 專接本2班 學 號: 1 指導教師: 張有華 2012年 6 月 22 日操作系統(tǒng)課程實習報告學號:1 姓名:江丹 起迄日期:2012/6/112012/6/16指導教師:張有華 實習地點:206室實習題目:采用先來先服務(wù)算法和運行時間最短者優(yōu)先算法模擬設(shè)計作業(yè)調(diào)度程序。1 實習內(nèi)容模擬批處理多道操作系統(tǒng)的作業(yè)調(diào)度2 實習目的每個用戶請求計算機計算的一個計算任務(wù)叫做一個作業(yè)。一個作業(yè)從輸入初始數(shù)據(jù)到得到計算結(jié)果,要經(jīng)過若干個步驟的相繼執(zhí)行。例如,編輯、編譯、運行等,其中每一個步驟稱作一個作業(yè)
2、步。用戶向系統(tǒng)提出作業(yè)加工步驟的方式稱作業(yè)控制方式,作業(yè)控制方式有兩種:終端控制方式(又稱直接控制方式或聯(lián)機控制方式)和批處理控制方式(又稱自動控制方式或脫機控制方式)。在批處理控制方式下,用戶采用系統(tǒng)提供的作業(yè)控制語言(JCL)寫好作業(yè)說明書,說明作業(yè)加工的步驟。操作員把一批作業(yè)組織成輸入流,通過“預輸入”手段使每個作業(yè)的信息(包括作業(yè)說明書、源程序、初始數(shù)據(jù)等)暫存在輔助存儲器的“輸入井”中。批處理多道操作系統(tǒng)的作業(yè)管理有兩個任務(wù):作業(yè)調(diào)度和作業(yè)控制。采用多道程序設(shè)計方法的操作系統(tǒng),在系統(tǒng)中要經(jīng)常保留多個運行的作業(yè),以提高系統(tǒng)效率。作業(yè)調(diào)度從系統(tǒng)已接納的暫存在輸入井中的一批作業(yè)中挑選出若干
3、個可運行的作業(yè),并為這些被選中的作業(yè)分配所需的系統(tǒng)資源。對被選中運行的作業(yè)必須按照它們各自的作業(yè)說明書規(guī)定的步驟進行控制。本實習要求學生模擬作業(yè)調(diào)度的實現(xiàn),了解作業(yè)調(diào)度在操作系統(tǒng)中的作用。3 實習步驟第一步:首先對整個題目進行分析,包括對作業(yè)、主存的定義類型。第二步:對流程圖進行分析,分析一些細節(jié)代碼。第三步:根據(jù)程序流程圖寫代碼并調(diào)節(jié)一些細節(jié)錯誤。第四步:運行看結(jié)果,這里主要看內(nèi)存根據(jù)作業(yè)的要求對分配情況。3.1 需求分析本次實驗是在預輸入五道作業(yè)的基礎(chǔ)上初始化,并通過作業(yè)的需求更改主存的輸出顯示情況,首先是輸入5道作業(yè),分別使用先來先服務(wù)算法和最短時間優(yōu)先算法分配內(nèi)存,最后進行內(nèi)存的回收。
4、3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計與說明定義作業(yè)中的變量-資源需求:typedef struct sourceint size; /資源要求大小int tape_count; /資源要求磁帶數(shù)src;定義作業(yè):typedef struct jobwork char username10; /用戶名 char jobname10; /作業(yè)名 char state5; /運行狀態(tài) int runtime; /運行時間 src source; /資源需求(結(jié)構(gòu)體類型見上) struct jobwork *next; /下一個指針job;定義內(nèi)存:typedef struct memory int size;/內(nèi)存
5、大小 int tape_count;/內(nèi)存磁帶數(shù) char jobname10;/內(nèi)存中存在的作業(yè)名(首次為空) char username10;/內(nèi)存中作業(yè)的用戶名 char state5;/內(nèi)存中作業(yè)的狀態(tài) int job_count;/內(nèi)存中作業(yè)個數(shù) struct memory *next;/內(nèi)存下一個指針mem;3.3 算法設(shè)計第一部分:初始化作業(yè)表 while(i<=2)p=(job*)malloc(sizeof(struct jobwork);/分配內(nèi)存空間 scanf("%st%st%st%dt%dt%d",p->username,p->jo
6、bname,p->state,&(p->runtime),&(p->source.size),&(p->source.tape_count);p->next=NULL; if(head=NULL)head=p;elseq->next=p;q=p;i+; 第二部分:統(tǒng)計合適的作業(yè)的個數(shù)while(p!=NULL&&strcmp("收容",p->state)=0&&p->source.size<=mem1.size&&p->source.tape_
7、count<=mem1.tape_count)mem1.job_count+; p=p->next; 第三部分:執(zhí)行先來先服務(wù)算法,為作業(yè)分配內(nèi)存;最短作業(yè)優(yōu)先算法采用的是一樣的原理,鏈表指針由頭往后指下去,只不過先前部分運用了冒泡方法,把時間由短到長拍了下順序。while(p!=NULL&&strcmp("收容",p->state)=0&&p->source.size<=mem1.size&&p->source.tape_count<=mem1.tape_count) mem1.si
8、ze=mem1.size-p->source.size;/分配主存空間 mem1.tape_count=mem1.tape_count-p->source.tape_count;/分配磁帶數(shù) printf("%dt%dn",mem1.size,mem1.tape_count); strcpy(p->state,"執(zhí)行");/將選到的作業(yè)狀態(tài)改為執(zhí)行 printf("%st%snn",p->jobname,p->username);第四部分:回收內(nèi)存while(p1!=NULL&&p!=NU
9、LL&&strcmp(p->state,"完成")mem1.size=mem1.size+p->source.size;mem1.tape_count=mem1.tape_count+p->source.tape_count;printf("%dt%dtn",mem1.size,mem1.tape_count);mem1.job_count-;p=p->next;p1=p1->next;本程序主要用C語言實現(xiàn),中間只調(diào)用了一次冒泡函數(shù),其余均在主函數(shù)中利用if和else以及循環(huán)語句實現(xiàn)。每次循環(huán)都把p指針指向
10、頭指針head,依次循環(huán)下去。每次函數(shù)傳進去的值也都是jobwork類型的頭指針head或p。下面是本程序流程圖:錯誤!鏈接無效。程序流程圖在此給各模塊的功能、入口參數(shù)、出口參數(shù)及模塊之間的調(diào)用關(guān)系;算法如果使用程序流程圖描述,圖要求用VISIO畫,圖中的文字用5號(以下同樣要求)。4 程序?qū)崿F(xiàn)及運行結(jié)果分析先來先服務(wù)算法調(diào)度作業(yè):本程序暫時采用了三道作業(yè),運行結(jié)果如下:先來先調(diào)度算法結(jié)果圖結(jié)果分析:² 起初程序輸入3道作業(yè)(用戶名、作業(yè)名、狀態(tài)、運行時間、資源需求(主存,磁帶數(shù))² 輸入大于0.5的數(shù),讓程序首先進行作業(yè)查找。查找到合適的作業(yè),然后對其中的兩道作業(yè)分配內(nèi)存
11、空間,這里截取的是先來先服務(wù)算法程序的結(jié)果圖。可以看到,100內(nèi)存空間,磁帶數(shù)為5的主存儲器中,先對第一道作業(yè)分配了空間,后又對第二道作業(yè)分配了空間,并顯示主存分配空間后的大小以及每道作業(yè)運行的情況。本實驗題目先來先服務(wù)算法調(diào)度作業(yè),采用了鏈表的方式,先輸入的作業(yè)即為先來到的作業(yè)的方法。² 下面開始查找內(nèi)存表:輸入一個小于0.5的數(shù),查找處于執(zhí)行狀態(tài)的作業(yè),并輸入該作業(yè)的作業(yè)名和用戶名,手動結(jié)束該作業(yè)的進程,置為完成態(tài),回收該道作業(yè)的內(nèi)存大小和磁帶數(shù)。最短時間優(yōu)先算法調(diào)度作業(yè):最短時間優(yōu)先調(diào)度結(jié)果圖結(jié)果分析:² 起初程序輸入3道作業(yè)(用戶名、作業(yè)名、狀態(tài)、運行時間、資源需求
12、(主存,磁帶數(shù))² 輸入大于0.5的數(shù),讓程序首先進行作業(yè)查找。查找到合適的作業(yè),然后對其中的兩道作業(yè)分配內(nèi)存空間,這里截取的是先來先服務(wù)算法程序的結(jié)果圖??梢钥吹剑?00內(nèi)存空間,磁帶數(shù)為5的主存儲器中,首先對時間最短的作業(yè)分配內(nèi)存,執(zhí)行調(diào)度,然后一次按時間長短進行分配。² 下面開始查找內(nèi)存表:輸入一個小于0.5的數(shù),查找處于執(zhí)行狀態(tài)的作業(yè),并輸入該作業(yè)的作業(yè)名和用戶名,手動結(jié)束該作業(yè)的進程,置為完成態(tài),回收該道作業(yè)的內(nèi)存大小和磁帶數(shù)。4.1 程序源代碼先來先服務(wù)調(diào)度-代碼:參見文件夾LAB01_1(源代碼所在的文件夾鏈接)最短時間優(yōu)先調(diào)度-代碼:參見文件夾LAB01_1
13、(源代碼所在的文件夾鏈接)4.2 程序運行結(jié)果 程序運行結(jié)果見圖(一、二、三)這里先來先服務(wù)算法輸入的測試用例為三道作業(yè):分別為:aare收容43321nndr收容32212ookj收容65321最短時間優(yōu)先算法的測試用例:88rr收容43272ttww收容32241yyqq收容403315 實習總結(jié)1、本次實驗過程中,通過此次題目,掌握了了作業(yè)調(diào)度內(nèi)存分配的一些基本原理。對先來先服務(wù)、最短時間優(yōu)先算法靈活的進行運用。是此次作業(yè)調(diào)度實驗順利完成。2、實驗中出現(xiàn)的問題:對單鏈表操作、malloc動態(tài)分配內(nèi)存空間運用出現(xiàn)了問題,有好幾次輸出指針,產(chǎn)生錯誤,認識到了,指針是地址,不能以字符串的形式輸入,真正應該輸出的是指針里邊的內(nèi)容,指針只是個地址。經(jīng)常出現(xiàn)內(nèi)存溢出問題。遇到的最棘手的問題是,malloc函數(shù)為單鏈表分配內(nèi)存,指針的指向問題。不過,自己積極思考,在老師的幫助下,解決了這個問題。按照
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2(2024版)2024年世界杯足球賽事贊助合同
- 2024年廣告公司全權(quán)代理合同
- 2023年舟山市岱山縣婦幼保健與計劃生育服務(wù)中心招聘考試真題
- 2023年雅安市天全縣招聘縣屬國有企業(yè)高級管理人員?考試真題
- 2024雙方同意離婚協(xié)議之網(wǎng)絡(luò)安全合同
- 2024年工程分包合同(含工程量清單)
- 2023年成都市第六人民醫(yī)院金牛院區(qū)招聘考試真題
- 0kv線路施工工程預算編制合同04
- 2024年基站使用費用合同
- 2024大型制造企業(yè)與金融機構(gòu)之間的融資租賃合同
- 稅收的經(jīng)濟效應課件
- GB/T 16915.1-2024家用和類似用途固定式電氣裝置的開關(guān)第1部分:通用要求
- 2025屆高考語文一輪復習:小說物象含義及作用
- 湖北省襄陽市2023-2024學年六年級上學期英語期中試卷(含答案)
- 山東省濰坊市2023-2024學年度高二上學期期中考試化學試題(帶答案)
- 國開(湖北)2024年《金融基礎(chǔ)知識》形考作業(yè)1-4答案
- 小程序開發(fā)與運營服務(wù)合作協(xié)議
- 義務(wù)教育質(zhì)量監(jiān)測德育學科模擬試題(四年級)復習測試卷含答案
- 2024年國家公務(wù)員考試公共基礎(chǔ)知識復習題庫及答案(共三套)
- 期刊編輯的學術(shù)期刊內(nèi)容審核標準考核試卷
評論
0/150
提交評論