新版操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁
新版操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁
新版操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁
新版操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁
新版操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

試驗(yàn)匯報(bào)班級:xxxx姓名:xxx學(xué)號:xxxxxxxxx試驗(yàn)編號:序言為了培養(yǎng)學(xué)生的實(shí)踐動手能力,協(xié)助學(xué)生體會與驗(yàn)證所學(xué)的知識,設(shè)計(jì)該試驗(yàn)體系。課內(nèi)實(shí)踐安排8課時(shí),其他需求學(xué)生可以課下完畢。試驗(yàn)匯報(bào)基本規(guī)定:1.學(xué)生提交各個(gè)試驗(yàn)程序的流程圖,并填入試驗(yàn)匯報(bào)中;2.試驗(yàn)匯報(bào)附上運(yùn)行成果的截圖;3.對試驗(yàn)的成果進(jìn)行分析,寫出自己的分析成果;4.試驗(yàn)的源代碼、可執(zhí)行代碼和試驗(yàn)匯報(bào)需要打包交到班級統(tǒng)一刻盤提交保留;個(gè)人文獻(xiàn)的命名以個(gè)人的姓名+學(xué)號命名;班級的以班級編號命名。5.程序可視性要好,要有試驗(yàn)程序證明作品的對的性。6.所有的試驗(yàn)匯報(bào)采用A4打印,字體字號遵照模版規(guī)定。7.源程序要加注釋,要有測試數(shù)據(jù)及成果。8.每個(gè)試驗(yàn)的匯報(bào)要另起一頁?;疽?guī)定:每個(gè)學(xué)生必須完畢前4個(gè)試驗(yàn),試驗(yàn)成果將逐一檢查,通過者,方可提交試驗(yàn)匯報(bào),并獲得試驗(yàn)成績。有精力的同學(xué)可以額外選作其他試驗(yàn),額外多做的試驗(yàn)根據(jù)完畢質(zhì)量可以酌情加分1-5分。匯報(bào)的封面格式以及內(nèi)容的格式不要自己調(diào)整。試驗(yàn)一進(jìn)程及其資源管理一、試驗(yàn)?zāi)康?.理解資源共享與互斥特性以及操作系統(tǒng)管理資源的基本措施。2.學(xué)會使用高級語言進(jìn)行多線程編程的措施。3.掌握運(yùn)用VC++或Java線程庫實(shí)現(xiàn)一種管理器,用來實(shí)現(xiàn)操作系統(tǒng)對進(jìn)程及其資源的管理功能。4.通過該試驗(yàn),學(xué)生可在源代碼級完畢進(jìn)程及其資源管理方案的分析、功能設(shè)計(jì)、編程實(shí)現(xiàn),控制進(jìn)程間的同步、互斥關(guān)系。二、試驗(yàn)規(guī)定1.知識基礎(chǔ):學(xué)生應(yīng)在完畢對進(jìn)程和線程、調(diào)度、死鎖等章節(jié)的學(xué)習(xí)。2.開發(fā)環(huán)境與工具: 硬件平臺——個(gè)人計(jì)算機(jī)。 軟件平臺——Windows操作系統(tǒng),根據(jù)需要,任選安裝VC++語言、java語言或C語言開發(fā)環(huán)境。三、試驗(yàn)內(nèi)容1.開發(fā)一種函數(shù),建立進(jìn)程控制塊和資源控制塊構(gòu)造,并實(shí)既有關(guān)數(shù)據(jù)構(gòu)造的初始化。2.開發(fā)一系列操作,由進(jìn)程調(diào)用這些操作,到達(dá)控制進(jìn)程申請或釋放多種資源的目的。四、試驗(yàn)方案指導(dǎo)該試驗(yàn)方案由如下幾種關(guān)鍵設(shè)計(jì)項(xiàng)目構(gòu)成:1.進(jìn)程數(shù)據(jù)構(gòu)造表達(dá)。2.資源數(shù)據(jù)構(gòu)造表達(dá)。3.進(jìn)程對資源的操作。4.調(diào)度程序。5.顧客功能shell界面。五、試驗(yàn)方案實(shí)現(xiàn)范例如下是對該項(xiàng)目中包括的設(shè)計(jì)功能的實(shí)現(xiàn)措施、實(shí)現(xiàn)過程、技術(shù)手段的描述,供參照。1.進(jìn)程數(shù)據(jù)構(gòu)造表達(dá)。使用構(gòu)造類型設(shè)計(jì)實(shí)現(xiàn)進(jìn)程PCB表,它包括如下組員:①進(jìn)程ID——進(jìn)程的唯一標(biāo)識,供其他進(jìn)程引用該進(jìn)程;②內(nèi)存——是一種指針鏈表,它在創(chuàng)立進(jìn)程時(shí)已申請完畢,可用鏈表實(shí)現(xiàn);③其他資源——指除去內(nèi)存之外的所有資源;④進(jìn)程狀態(tài)——包括兩個(gè)數(shù)據(jù)類型,一種是狀態(tài)碼,另一種是狀態(tài)隊(duì)列鏈表指針;⑤生成樹——包括兩個(gè)數(shù)據(jù)類型,本進(jìn)程的父進(jìn)程和本進(jìn)程的子進(jìn)程;⑥優(yōu)先級——供進(jìn)程調(diào)度程序使用,用來確定下一種運(yùn)行進(jìn)程,可以設(shè)定為靜態(tài)整數(shù)。2.資源數(shù)據(jù)構(gòu)造。每個(gè)資源都用一種稱為資源控制塊的數(shù)據(jù)構(gòu)造表達(dá)。使用構(gòu)造類型設(shè)計(jì)實(shí)現(xiàn)資源控制塊RCB。資源控制塊包括如下字段組員:①RID-資源的唯一標(biāo)識,由進(jìn)程引用;②資源狀態(tài)——空閑/已分派;③等待隊(duì)列——是被本資源阻塞的進(jìn)程鏈表,本資源正被其他所有資源都設(shè)定為靜態(tài)數(shù)據(jù),系統(tǒng)啟動時(shí)初始化。3.進(jìn)程管理及進(jìn)程對資源的操作。進(jìn)程操作及進(jìn)程狀態(tài)轉(zhuǎn)換歸納如下:①進(jìn)程創(chuàng)立——(無)→就緒;②申請資源——運(yùn)行→阻塞;③資源釋放——阻塞→就緒;④刪除進(jìn)程——(任何狀態(tài))→(無);5.調(diào)度程序——就緒→運(yùn)行或運(yùn)行→就緒。詳細(xì)實(shí)現(xiàn)環(huán)節(jié)如下:(1)根據(jù)上述數(shù)據(jù)構(gòu)造,用高級語言設(shè)計(jì)對應(yīng)函數(shù),分別實(shí)現(xiàn)創(chuàng)立進(jìn)程、刪除進(jìn)程、掛起進(jìn)程、喚醒進(jìn)程等功能。(2)設(shè)計(jì)一種函數(shù),實(shí)現(xiàn)調(diào)度程序,在每個(gè)進(jìn)程操作執(zhí)行完畢后,自動調(diào)用執(zhí)行該調(diào)度程序。(3)實(shí)現(xiàn)兩個(gè)資源操作:申請資源和釋放資源。有關(guān)參照算法如下:=============================================================request(RID) /*申請資源算法*/{ r=get_RCB(RID); /*獲取資源控制塊首地址*/ if(r->status==’free’){ /*資源可用*/ r->status=’allocated’; /*分派給調(diào)用進(jìn)程,*/ insert(self->other_resources,r);}/*插入一種RCB指針指向進(jìn)程資源鏈表;*/else{ /*資源不可用*/ self->status.type=’blocked’; /*記錄阻塞*/ self->status.list=r; /*指向所祈求資源的RCB*/. remove(RL,self); /*將進(jìn)程從就緒隊(duì)列中刪除*/ insert(r->waiting_list,self);} /*插入資源等待隊(duì)列*/scheduler(); /*調(diào)度程序運(yùn)行選擇下一種運(yùn)行進(jìn)程*/release(RID) /*釋放資源算法*/{ r=get_RCB(RID); /*獲取資源控制塊首地址*/remove(self->other_resource,r); /*從進(jìn)程資源鏈表中刪除該資源*/if(waiting_list==NULL)r->status=’free’;/*等待隊(duì)列為空,置資源狀態(tài)為空閑*/else{ /*等待隊(duì)列不為空*/ remove(r->waiting_list,q); /*從等待隊(duì)列中移出一種進(jìn)程q*/q->status.type=’ready’; /*將進(jìn)程q的狀態(tài)設(shè)為就緒*/q->status.list=RL; /*進(jìn)程q的狀態(tài)指針指向就緒隊(duì)列*/insert(RL,q);} /*進(jìn)程q插入就緒隊(duì)列*/scheduler(); /*調(diào)度程序運(yùn)行選擇下一種運(yùn)行進(jìn)程*/=============================================================4.調(diào)度程序。調(diào)度方略采用固定優(yōu)先級和可剝奪優(yōu)先級調(diào)度算法。即調(diào)度程序必須維護(hù)n個(gè)不一樣優(yōu)先級的就緒隊(duì)列,各就緒隊(duì)列可為空,也可包括多種進(jìn)程。0級進(jìn)程優(yōu)先級最低,n-l級進(jìn)程優(yōu)先級最高。創(chuàng)立進(jìn)程時(shí)就賦予了固定的優(yōu)先級,并在進(jìn)程的生存期內(nèi)保持不變。當(dāng)新進(jìn)程創(chuàng)立或阻塞進(jìn)程被喚醒時(shí),它就被插入同級的就緒隊(duì)列中。調(diào)度程序按“先來先服務(wù)”和優(yōu)先級“從高到低”的方式處理就緒隊(duì)列。即從最高優(yōu)先級的非空就緒隊(duì)列的隊(duì)首選擇一種進(jìn)程進(jìn)入運(yùn)行態(tài)。這樣的調(diào)度方略很輕易導(dǎo)致"饑餓",進(jìn)程出現(xiàn)。由于對進(jìn)程q來說,只有當(dāng)優(yōu)先級高于自己的所有進(jìn)程都運(yùn)行完畢,或都進(jìn)入阻塞狀態(tài)時(shí),它才能得到運(yùn)行權(quán)。可以假定系統(tǒng)中至少有一種進(jìn)程處在就緒態(tài)。為保證這一點(diǎn),設(shè)計(jì)一種特殊進(jìn)程init,該進(jìn)程在系統(tǒng)初始化時(shí)自動創(chuàng)立,并賦予最低優(yōu)先級0級。init進(jìn)程有兩個(gè)作用:充當(dāng)閑逛進(jìn)程,該進(jìn)程運(yùn)行時(shí)不申請任何資源,以免被阻塞;作為第一種被創(chuàng)立的進(jìn)程,它沒有父進(jìn)程,可創(chuàng)立比自己優(yōu)先級高的其他進(jìn)程。因此init進(jìn)程是進(jìn)程生成樹的根進(jìn)程。采用優(yōu)先級方略的調(diào)度程序的常見構(gòu)造知下所示:=============================================================scheduler(){ 找出最高優(yōu)先級進(jìn)程p; If(self->priority<p->priority)||self->status.type!=’running’||self=nil) preempt(p,self);/*調(diào)度進(jìn)程p,替代目前進(jìn)程self*/}============================================================每當(dāng)任一進(jìn)程的操作執(zhí)行完畢,必須執(zhí)行進(jìn)程調(diào)度程序,它是目前運(yùn)行進(jìn)程的一部分。進(jìn)程調(diào)用該函數(shù),后者決定該進(jìn)程是繼續(xù)執(zhí)行還是被其他進(jìn)程剝奪運(yùn)行權(quán)。作出判斷的根據(jù)是:與否存在高優(yōu)先級進(jìn)程p,假如存在,p將剝奪self的運(yùn)行權(quán)。目前進(jìn)程的運(yùn)行權(quán)被剝奪的狀況有如下兩種:①目前進(jìn)程剛剛完畢release(操作,由此被喚醒進(jìn)程的優(yōu)先級也許高于目前進(jìn)程。②目前進(jìn)程剛剛完畢create()操作,新創(chuàng)立進(jìn)程的優(yōu)先級也許高于目前進(jìn)程。在如下兩種狀況下,新挑選的進(jìn)程必須剝奪目前進(jìn)程的運(yùn)行權(quán):①目前進(jìn)程剛剛完畢reques()操作,并且申請的資源timeout則目前進(jìn)程的狀態(tài)就改為“阻塞”;或者由于分時(shí)運(yùn)行進(jìn)程的需要,調(diào)度程序被一種timeout操作調(diào)用運(yùn)行。在timeout操作中目前進(jìn)程的狀態(tài)改為“就緒”。在上述狀況中,目前進(jìn)程的狀態(tài)都不是“運(yùn)行”。因此目前進(jìn)程必須停止運(yùn)行,此時(shí)就緒隊(duì)列中最高優(yōu)先級的進(jìn)程p得到執(zhí)行。②當(dāng)進(jìn)程剛剛完畢destroy操作,進(jìn)程自己刪除自身,它的PCB表不再存在。此時(shí)調(diào)度程序被執(zhí)行,從就緒隊(duì)列中選出最高優(yōu)先級的進(jìn)程p,并令其執(zhí)行。剝奪操作包括如下工作:將選中的最高優(yōu)先級進(jìn)程p的狀態(tài)改為“運(yùn)行"。假如目前進(jìn)程仍然存在且沒有阻塞,則將其狀態(tài)改為“就緒”,以便隨即能得到執(zhí)行。最終,進(jìn)行上下文切換,保留目前CPU的各個(gè)寄存器值,放入PCB表。裝入中選進(jìn)程p的寄存器值。本實(shí)現(xiàn)方案沒有對實(shí)際的CPU進(jìn)行訪問來保留或恢復(fù)寄存器的值,因此上下文切換的任務(wù)只是將正在運(yùn)行進(jìn)程的名字顯示在終端屏幕上。從這一點(diǎn)可以認(rèn)為,顧客終端屏幕開始飾演目前運(yùn)行進(jìn)程功能的角色。5.顧客shell界面。 為RCB試和演示管理器的CPU能,本方案設(shè)計(jì)開發(fā)一種shell界面,它可以反復(fù)接受終端輸入的命令,喚醒管理器執(zhí)行對應(yīng)的功能,并在屏幕上顯示成果。使用上述系統(tǒng),終端就能展示目前進(jìn)程。只要輸入一種命令,就中斷目前進(jìn)程序的執(zhí)行,shell界面調(diào)用進(jìn)程資源管理器中的函數(shù)F,并傳遞終端輸入的參數(shù)。該函數(shù)執(zhí)行后將變化PCB、RCB及其他數(shù)據(jù)構(gòu)造中的信息。當(dāng)調(diào)度程序執(zhí)行時(shí),決定下一種要運(yùn)行的進(jìn)程,并變化其狀態(tài)值。保留目前進(jìn)程的CPU各寄存器值(虛擬CPU),然后恢復(fù)中選進(jìn)程的值。調(diào)度程序?qū)⑾到y(tǒng)狀態(tài)信息顯示在屏幕上,提醒下一步操作。尤其地,它一直提醒正在運(yùn)行的進(jìn)程是什么,即終端和鍵盤正在為哪個(gè)進(jìn)程服務(wù)。此外,函數(shù)F也也許返回一種錯(cuò)誤碼,shell也將它顯示在屏幕上。shell命令的語法格式規(guī)定如下:命令名參數(shù)例如,執(zhí)行命令行“crA1”時(shí)將調(diào)用對應(yīng)的管理器函數(shù)create(A,1),即創(chuàng)立一種名為A、優(yōu)先級為1的進(jìn)程。同理,命令“rqR”將調(diào)用函數(shù)request(R)執(zhí)行。如下顯示闡明shell界面的交互內(nèi)容(假定進(jìn)程A的優(yōu)先級為1,并且正在運(yùn)行)。由“*”開始的行視為shell的輸出成果。提醒符“>”背面是提醒顧客輸入的命令。……*processAisrunning>crB2*processBisrunning>crC1*processBisrunning>reqR1*processBisblocked;processAisrunning……6.進(jìn)程及資源管理器的升級版。可對上述基本型進(jìn)程功能資源管理器進(jìn)行功能擴(kuò)展,使管理器可以處理時(shí)鐘屆時(shí)中斷和I/O處理完畢中斷。(1)相對時(shí)鐘屆時(shí)中斷。假設(shè)系統(tǒng)提供一種硬件時(shí)鐘。周期性產(chǎn)生一種時(shí)鐘屆時(shí)中斷。引起調(diào)用函數(shù)timeout()的執(zhí)行。(2)110處理完畢中斷。使用名為IO的資源表達(dá)所有的I/O設(shè)備。該資源的RCB由如下兩部分構(gòu)成: IO Waiting_list(3)擴(kuò)展shell。顯示目前運(yùn)行進(jìn)程,并添加一種系統(tǒng)調(diào)用request_100。終端也能表達(dá)硬件,顧客可以模擬兩種類型的中斷:時(shí)鐘屆時(shí)、I/O完畢處理。為了實(shí)現(xiàn)以上功能,必須添加新的shell命令,調(diào)用如下三個(gè)系統(tǒng)調(diào)用:request_IO(),IO_competion,timeout()。如下部分由學(xué)生填寫:程序流程圖初始化進(jìn)程流程圖采用優(yōu)先級方略的進(jìn)程調(diào)度流程圖。試驗(yàn)成果手動調(diào)度進(jìn)程運(yùn)行成果圖。最高優(yōu)先級別+先來先服務(wù)算法調(diào)度進(jìn)程運(yùn)行成果圖。成果分析詳詳細(xì)細(xì)xx。。。。試驗(yàn)二常規(guī)存儲器管理一、試驗(yàn)?zāi)康?.掌握內(nèi)存管理的基本功能和分區(qū)法內(nèi)存分派的基本原理。2.學(xué)會windows操作系統(tǒng)下使用c語言函數(shù)和系統(tǒng)調(diào)用進(jìn)行編程的措施。3.運(yùn)用c語言設(shè)計(jì)實(shí)現(xiàn)分區(qū)法內(nèi)存分派算法。4.驗(yàn)證無虛存的存儲管理機(jī)制。二、試驗(yàn)規(guī)定1.學(xué)生應(yīng)完畢如下章節(jié)的學(xué)習(xí):進(jìn)程和線程、調(diào)度、存儲管理。2.在操作系統(tǒng)平臺上,使用c語言編程,調(diào)用有關(guān)系統(tǒng)調(diào)用進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。三、試驗(yàn)內(nèi)容1.創(chuàng)立空閑存儲管理表和模擬內(nèi)存。2.設(shè)計(jì)并實(shí)現(xiàn)一種內(nèi)存分派程序,分派方略可以分別采用最先適應(yīng)算法、最佳適應(yīng)算法和最壞適應(yīng)算法等,并評價(jià)不一樣分派算法的優(yōu)劣。3.提供一種顧客界面,運(yùn)用它顧客可輸入不一樣的分派方略。4.進(jìn)程向內(nèi)存管理程序發(fā)出申請、釋放指定數(shù)量的內(nèi)存祈求,內(nèi)存管理程序調(diào)用對應(yīng)函數(shù),響應(yīng)祈求。四、試驗(yàn)方案指導(dǎo)該試驗(yàn)方案由如下幾種關(guān)鍵設(shè)計(jì)項(xiàng)目構(gòu)成。1.設(shè)計(jì)實(shí)現(xiàn)一種空閑分區(qū)表。2.設(shè)計(jì)實(shí)現(xiàn)模擬內(nèi)存??紤]實(shí)現(xiàn)的便利,本方案不訪問真正的內(nèi)存。定義一種字符數(shù)組charmm[mem_size]或使用Linux系統(tǒng)調(diào)用mm=malloc(mem_size),用來模擬內(nèi)存。運(yùn)用指針對模擬內(nèi)存進(jìn)行訪問。3.設(shè)計(jì)一組管理物理內(nèi)存空間的函數(shù)。顧客接口由如下三個(gè)函數(shù)構(gòu)成:void*mm_request(intn)申請n個(gè)字節(jié)的內(nèi)存空間。如申請成功,則返回所分派空間的首地址;如不能滿足申請,則返回空值。voidmm_release(void*p)釋放先前申請的內(nèi)存。假如釋放的內(nèi)存與空閑區(qū)相鄰,則合并為一種大空閑區(qū);假如與空閑區(qū)不相鄰,則成為一種單獨(dú)的空閑區(qū)。void*mm_init(intmem_size)內(nèi)存初始化。返回mm指針指向的空閑區(qū)。4.設(shè)計(jì)實(shí)現(xiàn)不一樣方略的內(nèi)存分派程序。對于采用不一樣分派方略的內(nèi)存管理程序,從如下兩個(gè)方面進(jìn)行調(diào)度程序性能的比對:內(nèi)存運(yùn)用率以及找到一種合適的分派空間所需查找的環(huán)節(jié)。設(shè)置一種模擬試驗(yàn)。分別構(gòu)建一種隨機(jī)生成的祈求與釋放隊(duì)列。釋放隊(duì)列中的操作總是得到滿足,隊(duì)列總為空;祈求隊(duì)列的操作能否被滿足,取決于空閑區(qū)能否滿足申請的空間大小。若不能滿足,則該操作在隊(duì)列中等待對應(yīng)釋放操作喚醒。祈求隊(duì)列采用FIFO管理,以防止饑餓現(xiàn)象的發(fā)生。內(nèi)存管理程序應(yīng)對內(nèi)存初始化,隨機(jī)設(shè)定內(nèi)存空間的占有、空閑狀況,隨機(jī)設(shè)定申請和釋放的操作隊(duì)列。調(diào)用釋放操作開始運(yùn)行,調(diào)用申請操作,如能滿足,則分派空間,否則等待釋放操作喚醒。下面給出一種模擬內(nèi)存管理的程序框架(偽碼形式)??蓪π阅軘?shù)據(jù)指標(biāo)進(jìn)行記錄。=============================================================for(i=0;i<sim_step;i++){ /*設(shè)定模擬程序執(zhí)行次數(shù)*/ do{ /*循環(huán)調(diào)用祈求操作,直到祈求不成功*/ getsizenofnextrequest; /*設(shè)定祈求空間大小*/mm_request(n); /*調(diào)用祈求操作*/}while(requestsuccessful); /*祈求成功,循環(huán)繼續(xù)*/recordmemoryutilization; /*記錄內(nèi)存使用率*/selectblockptoberelease; /*釋放某空間p*/release(p); /*調(diào)用釋放操作*/}=============================================================以上程序由主循環(huán)控制固定次數(shù)的模擬環(huán)節(jié)。每次循環(huán),程序完畢如下處理環(huán)節(jié):內(nèi)循環(huán)盡量多地滿足內(nèi)存祈求,祈求內(nèi)存大小值隨機(jī)生成。一旦祈求失敗,掛起內(nèi)存管理程序,直至釋放操作被執(zhí)行。此時(shí)進(jìn)行系統(tǒng)內(nèi)存運(yùn)用率的記錄、計(jì)算,隨機(jī)挑選一種內(nèi)存分派空間完畢釋放操作。本次主循環(huán)執(zhí)行完畢,開始下一次循環(huán)。需要在程序中完畢如下設(shè)計(jì):確定祈求分派空間大小,記錄性能數(shù)據(jù),選擇一種內(nèi)存區(qū)釋放。如下部分由學(xué)生填寫:程序流程圖最先適應(yīng)算法流程圖最佳適應(yīng)算法流程圖。最壞適應(yīng)算法流程圖。試驗(yàn)成果分區(qū)運(yùn)行成果圖分區(qū)成功后運(yùn)行成果圖為分區(qū)申請資源運(yùn)行成果圖最先適應(yīng)算法,為分區(qū)申請1個(gè)單位的資源運(yùn)行成果圖最先適應(yīng)算法,為分區(qū)申請1個(gè)單位的資源運(yùn)行成果圖最先適應(yīng)算法,為分區(qū)申請1個(gè)單位的資源運(yùn)行成果圖最先適應(yīng)算法,繼續(xù)為分區(qū)申請資源失敗運(yùn)行成果圖最佳適應(yīng)算法,為分區(qū)申請1個(gè)單位的資源運(yùn)行成果圖最壞適應(yīng)算法,為分區(qū)申請1個(gè)單位的資源運(yùn)行成果圖成果分析Xxxx。。。。。。試驗(yàn)三虛擬存儲器管理之頁面置換算法一、試驗(yàn)?zāi)康?.掌握內(nèi)存管理基本功能和祈求分頁式管理的基本原理以及頁面置換算法。2.學(xué)會在Windows或Linux操作系統(tǒng)下使用C函數(shù)和系統(tǒng)調(diào)用的編程措施。3.掌握運(yùn)用C語言設(shè)計(jì)實(shí)現(xiàn)不一樣置換方略的頁面置換算法。4.驗(yàn)證虛存存儲管理機(jī)制及其性能。對于生成的引用串,計(jì)算、比對不一樣頁面置換算法的缺頁率。二、試驗(yàn)規(guī)定1.學(xué)生應(yīng)完畢如下章節(jié)的學(xué)習(xí):進(jìn)程和線程、調(diào)度、存儲管理。2.使用C語言編程,運(yùn)用有關(guān)系統(tǒng)調(diào)用實(shí)現(xiàn)設(shè)計(jì)。三、試驗(yàn)內(nèi)容1.創(chuàng)立空閑存儲管理表、模擬內(nèi)存、頁表等。2.提供一種顧客界面,顧客運(yùn)用它可輸入不一樣的頁面置換方略和其他附加參數(shù)。3.運(yùn)行置換程序,輸出缺頁率成果。四、試驗(yàn)方案指導(dǎo)熟悉頁面置換算法及其實(shí)現(xiàn),理解計(jì)算機(jī)系統(tǒng)性能評價(jià)措施,編制頁面置換算法的模擬程序。方案設(shè)計(jì)重點(diǎn)提醒如下。1.假定系統(tǒng)有固定數(shù)目的內(nèi)存塊F,物理塊號依次為0~F-l。進(jìn)程的大小為P頁,其邏輯頁號依次為0~P-l。隨機(jī)生成一種引用串RS,即從0~P-l構(gòu)成的整數(shù)序列。定義一種整型數(shù)組intM[F]表達(dá)所有物理塊,假如M[i]=n,表達(dá)邏輯頁n寄存在物理塊i中。2.生成引用串。用隨機(jī)數(shù)措施產(chǎn)生頁面走向,頁面走向長度為L。3.根據(jù)頁面走向,分別采用FIFO和LRU算法進(jìn)行頁面置換,設(shè)計(jì)一種函數(shù)自動記錄缺頁率。4.假定可用內(nèi)存塊和頁表長度(進(jìn)程的頁面數(shù))分別為m和k。初始時(shí),進(jìn)程的頁面都不在內(nèi)存。5.參照其他設(shè)計(jì)項(xiàng)目,將不一樣置換算法設(shè)計(jì)實(shí)現(xiàn)為函數(shù),能在界面上以便調(diào)用執(zhí)行。如下部分由學(xué)生填寫:程序流程圖最佳頁面置換算法圖。先進(jìn)先出頁面置換算法圖。近來最久未使用頁面置換算法圖2.試驗(yàn)成果先進(jìn)先出頁面置換算法運(yùn)行成果圖先進(jìn)先出頁面置換算法運(yùn)行成果圖近來最久未使用頁面置換算法運(yùn)行成果圖成果分析Xxxx。。。。試驗(yàn)四處理及管理與死鎖之銀行家算法一、試驗(yàn)?zāi)康?.理解死鎖概念、銀行家算法及安全性檢測算法。2.學(xué)會在Linux操作系統(tǒng)下‘使用C語言函數(shù)和指針進(jìn)行編程的措施。3.掌握運(yùn)用C語言設(shè)計(jì)實(shí)現(xiàn)銀行家算法的基本過程。4.驗(yàn)證銀行家算法對于防止死鎖的作用。二、試驗(yàn)規(guī)定1.學(xué)生應(yīng)完畢如下章節(jié)的學(xué)習(xí):進(jìn)程和線程的調(diào)度,死鎖。2.安裝Linux操作系統(tǒng),使用C語言編程完畢設(shè)計(jì)實(shí)現(xiàn)。三、試驗(yàn)內(nèi)容1.定義并初始化進(jìn)程及其資源數(shù)據(jù)構(gòu)造。2.提供一種顧客界面,顧客運(yùn)用它可動態(tài)輸入進(jìn)程和資源種類等有關(guān)參數(shù)3.設(shè)計(jì)實(shí)現(xiàn)安全狀態(tài)檢測和銀行家死鎖防止算法的功能函數(shù)。四、試驗(yàn)方案指導(dǎo)以如下幾組初始數(shù)據(jù)為例,設(shè)計(jì)對應(yīng)程序,判斷下列狀態(tài)與否安全。1.3個(gè)進(jìn)程共享12個(gè)同類資源狀態(tài)a下:allocation=(1,4,5),max=(4,4,8)。判斷系統(tǒng)與否安全。狀態(tài)b下:allocation=(1,4,6),max=(4,6,8)。判斷系統(tǒng)與否安全。2.5個(gè)進(jìn)程共享多類資源狀態(tài)c下:判斷系統(tǒng)與否安全?若安全,給出安全序列。若進(jìn)程2祈求(0,4,2,0),可否立即分派? 分派矩陣最大需求矩陣可用資源矩陣00120012152010001750135423560632065200140656實(shí)現(xiàn)方案的重要作是怎樣輸入,怎樣初始數(shù)據(jù),怎樣調(diào)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論