操作系統(tǒng)原理課程設(shè)計(jì)匯本論文終結(jié)_第1頁
操作系統(tǒng)原理課程設(shè)計(jì)匯本論文終結(jié)_第2頁
操作系統(tǒng)原理課程設(shè)計(jì)匯本論文終結(jié)_第3頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng)原理課程設(shè)計(jì)實(shí)踐報(bào)告題目:P,V信號(hào)量-管程解決讀者與者問題申優(yōu)姓 名:樊鹿鳴,梁峰,寄偉杰學(xué)院:信息科技學(xué)院專業(yè):計(jì)算機(jī)科學(xué)技術(shù)系班級(jí):計(jì)科 121,122學(xué)號(hào):19212226,19212229,19212127指導(dǎo)教師:海燕職稱:教授2015年3月19日摘要:現(xiàn)代操作系統(tǒng)引入并發(fā)程序設(shè)計(jì)技術(shù)之后,程序的執(zhí)行不再是順序的,封 閉的。在多個(gè)進(jìn)程并發(fā)運(yùn)行的過程中,進(jìn)程之間可能產(chǎn)生相互制約的關(guān)系,即競 爭和協(xié)作。為了協(xié)調(diào)各個(gè)進(jìn)程有序正確的進(jìn)展,需要考慮進(jìn)程之間的同步和互斥 等問題。操作系統(tǒng)中經(jīng)典的“讀者一寫者問題正反映了進(jìn)程并發(fā)執(zhí)行的這種關(guān)系。本課程設(shè)計(jì)所完成的就是對“讀者一寫者問題的模

2、擬,本系統(tǒng)根據(jù)操作系 統(tǒng)中并發(fā)進(jìn)程、臨界區(qū)、同步和互斥等根本概念及理論進(jìn)展設(shè)計(jì),采用C#語言實(shí)現(xiàn),用管程來實(shí)現(xiàn)進(jìn)程模擬同步和互斥的控制。本系統(tǒng)可按照用戶設(shè)定的讀者-寫者數(shù)目及緩沖區(qū)大小來進(jìn)展模擬演示。關(guān)鍵字:P,V信號(hào)量 管程 死鎖 讀者寫者問題1. 目的和意義在操作系統(tǒng)的進(jìn)程管理中"進(jìn)程之間的同步與互斥是一個(gè)非常重要的問題"由于進(jìn)程是并發(fā)執(zhí)行的"這些進(jìn)程之間存在著不同的相互制約關(guān)系"如果管理不恰當(dāng)" 就會(huì)產(chǎn)生結(jié)果不確定或者進(jìn)入死鎖,這也是是操作系統(tǒng)原理學(xué)習(xí)中的重點(diǎn)與難點(diǎn) 之一。比擬有效的解決方法是使用信號(hào)量機(jī)制"它主要是通過兩個(gè)操作

3、原語的使 用"來保證進(jìn)程之間的同步與互斥讀者(寫者問題是進(jìn)程同步的一個(gè)經(jīng)典問題"原 有的算法是一種讀者優(yōu)先的算法"容易造成寫者進(jìn)程的餓死現(xiàn)象"對此作了改 良,我們又引進(jìn)了管程來解決讀者寫者問題2. 理論根底2.1進(jìn)程的同步與互斥操作系統(tǒng)部存在著許許多多的并發(fā)活動(dòng)相對獨(dú)立的多個(gè)用戶進(jìn)程可以并發(fā)運(yùn)行 操作系統(tǒng)本身的許多不同功能的進(jìn)程也可并發(fā)執(zhí)行&在進(jìn)程并發(fā)執(zhí)行時(shí)"由于資源共享和進(jìn)程之間的合作"使處于同一系統(tǒng)中的進(jìn)程之間可能產(chǎn)生兩種形式的制 約關(guān)系"即直接制約和間接制約,而這兩種關(guān)系"通常表現(xiàn)在兩類問題上同步和互

4、 斥。進(jìn)程互斥它主要源于對臨界資源共享)多個(gè)進(jìn)程競爭使用臨界資源時(shí)產(chǎn)生的 關(guān)系"是進(jìn)程間的間接制約關(guān)系在多道系統(tǒng)中)每次只允許一個(gè)進(jìn)程訪問的資源 如外設(shè)(共享代碼段(共享數(shù)據(jù)構(gòu)造)為臨界資源)每個(gè)進(jìn)程中訪問臨界資源的那 段程序叫臨界區(qū),進(jìn)程互斥就是保證每次只有一個(gè)進(jìn)程使用臨界資源,這些使用臨界資源的進(jìn)程在邏輯上完全獨(dú)立 )本無關(guān)系)但是由于競爭同一臨界資源 而產(chǎn)生了相互制約的關(guān)系"即一個(gè)進(jìn)程使用臨界資源時(shí)"其他使用臨界資源的進(jìn) 程只能等待。進(jìn)程同步它主要源于相互協(xié)作的進(jìn)程)是多個(gè)進(jìn)程相互合作共同 完成一項(xiàng)任務(wù)時(shí)發(fā)生的關(guān)系,是進(jìn)程間的直接制約關(guān)系,相互合作的進(jìn)程具有

5、伙 伴關(guān)系"為了保證執(zhí)行結(jié)果的正確性)在執(zhí)行時(shí)間上必須遵循確定的規(guī)律,具體 的說"一個(gè)進(jìn)程運(yùn)行到某一點(diǎn)時(shí),要求另一伙伴進(jìn)程為它提供消息"在未獲得消息 之前"該進(jìn)程處于等待狀態(tài)"獲得消息后被喚醒進(jìn)入就緒態(tài)*在多道環(huán)境下)這 種進(jìn)程間在執(zhí)行次序上的協(xié)調(diào)是必不可少的,為了能夠正確控制進(jìn)程的并發(fā)執(zhí)行"操作系統(tǒng)必須提供相應(yīng)的同步機(jī)構(gòu)以協(xié)調(diào)這些制約關(guān)系,同步機(jī)構(gòu)的主要任 務(wù)就是使并發(fā)執(zhí)行的進(jìn)程之間能有效地共享資源和相互合作"從而使程序的執(zhí)行 能夠有序的進(jìn)展2.2讀者,寫者問題讀者一寫者問題Readers-Writers problem

6、也是一個(gè)經(jīng)典的并發(fā)程序設(shè) 計(jì)問題,是經(jīng)常出現(xiàn)的一種同步問題。計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)文件、記錄常被 多個(gè)進(jìn)程共享,但其中某些進(jìn)程可能只要求讀數(shù)據(jù)稱為讀者Reader;另一些進(jìn)程那么要求修改數(shù)據(jù)稱為寫者Writer。就共享數(shù)據(jù)而言,Reader和Writer 是兩組并發(fā)進(jìn)程共享一組數(shù)據(jù)區(qū),要求:1允許多個(gè)讀者同時(shí)執(zhí)行讀操作;2不允許讀者、寫者同時(shí)操作;3不允許多個(gè)寫者同時(shí)操作。Reader和Writer的同步問題分為讀者優(yōu)先、弱寫者優(yōu)先公平競爭和強(qiáng)寫者優(yōu)先三種情況,它們的處理方式不同。1讀者優(yōu)先。對于讀者優(yōu)先,應(yīng)滿足以下條件:如果新讀者到: 無讀者、寫者,新讀者可以讀; 有寫者等待,但有其它讀者正在讀

7、,那么新讀者也可以讀; 有寫者寫,新讀者等待。如果新寫者到: 無讀者,新寫者可以寫; 有讀者,新寫者等待; 有其它寫者,新寫者等待2.3 P,V信號(hào)量信號(hào)量semaphore的數(shù)據(jù)構(gòu)造為一個(gè)值和一個(gè)指針,指針指向等待該信 號(hào)量的下一個(gè)進(jìn)程。信號(hào)量的值與相應(yīng)資源的使用情況有關(guān)。當(dāng)它的值大于0時(shí),表示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時(shí),其絕對值表示等待使用該資 源的進(jìn)程個(gè)數(shù)。注意,信號(hào)量的值僅能由 PV操作來改變。一般來說,信號(hào)量S>=0時(shí),S表示可用資源的數(shù)量。執(zhí)行一次P操作意 味著請求分配一個(gè)單位資源,因此 S的值減1;當(dāng)S<0時(shí),表示已經(jīng)沒有可用資 源,請求者必須等待別的進(jìn)程釋

8、放該類資源,它才能運(yùn)行下去。而執(zhí)行一個(gè)V操作意味著釋放一個(gè)單位資源,因此S的值加1;假設(shè)S=<0,表示有某些進(jìn)程正 在等待該資源,因此要喚醒一個(gè)等待狀態(tài)的進(jìn)程,使之運(yùn)行下去。2.4管程信號(hào)量機(jī)制的引入解決了進(jìn)程同步的描述問題, 但信號(hào)量的大量同步操作分 散在各個(gè)進(jìn)程中不便于管理,還有可能導(dǎo)致系統(tǒng)死鎖。女口:生產(chǎn)者消費(fèi)者問題中 將P、V顛倒可能死鎖。為此Dijkstra 于1971年提出:把所有進(jìn)程對某一種臨 界資源的同步操作都集中起來,構(gòu)成一個(gè)所謂的秘書進(jìn)程。凡要訪問該臨界資源 的進(jìn)程,都需先報(bào)告秘書,由秘書來實(shí)現(xiàn)諸進(jìn)程對同一臨界資源的互斥使用。Han san為管程所下的定義是:管程定義

9、了一個(gè)數(shù)據(jù)構(gòu)造和能為并發(fā)進(jìn)程所執(zhí) 行的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)。 管程的四個(gè)組成:1. 管程部的共享變量; 2管程部的條件變量3. 管程部并行執(zhí)行的進(jìn)程;4. 對局部于管程部的共享數(shù)據(jù)設(shè)置初始值的語句。當(dāng)幾個(gè)進(jìn)程調(diào)用某個(gè)管程的時(shí)候,在一個(gè)時(shí)刻僅允許一個(gè)進(jìn)程進(jìn)入管程。管 程中僅允許一個(gè)進(jìn)程處于活潑狀態(tài), 但不表示管程中只有一個(gè)進(jìn)程,可能存在因 資源缺乏而阻塞的進(jìn)程等。當(dāng)一個(gè)進(jìn)程調(diào)用管程中的過程時(shí),首先檢查管程中是 否有進(jìn)程處于活潑態(tài),如果有,那么阻塞調(diào)用進(jìn)程,直到管程部的進(jìn)程離開管程 或其他操作。管程的互斥操作是由管程部的互斥信號(hào)量實(shí)現(xiàn)的,其初值為1。在管程中要設(shè)置一對同步

10、操作原語, Wait()和Signal()操作,注意這里操作 作用于條件變量,不具有累加功能,如果管程中的進(jìn)程發(fā)出了一個(gè)信號(hào)量, 而在 對應(yīng)的條件變量上沒有阻塞等待的進(jìn)程,那么該信號(hào)量沒有作用,會(huì)被喪失。為 了區(qū)別阻塞等待進(jìn)程和不同阻塞對應(yīng),設(shè)置了不同條件變量。2.5死鎖所謂死鎖: 是指兩個(gè)或兩個(gè)以上的 進(jìn)程在執(zhí)行過程中,由于競爭資源或者由于 彼此通信而造成的一種阻塞的現(xiàn)象,假設(shè)無外力作用,它們都將無法推進(jìn)下去。此時(shí)稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死 鎖進(jìn)程。雖然進(jìn)程在運(yùn)行過程中,可能發(fā)生死鎖,但死鎖的發(fā)生也必須具備一定的條件, 死鎖的發(fā)生必須具備以下四個(gè) 必要

11、條件。1互斥條件:指進(jìn)程對所分配到的資源進(jìn)展排它性使用,即在一段時(shí)間某資源 只由一個(gè)進(jìn)程占用。如果此時(shí)還有其它 進(jìn)程請求資源,那么請求者只能等待,直 至占有資源的進(jìn)程用畢釋放。2請求和保持條件:指進(jìn)程已經(jīng)保持至少一個(gè)資源,但又提出了新的資源請求, 而該資源已被其它進(jìn)程占有,此時(shí)請求進(jìn)程阻塞,但又對自己已獲得的其它資源 保持不放。3不剝奪條件:指進(jìn)程已獲得的資源,在未使用完之前,不能被剝奪,只能在 使用完時(shí)由自己釋放。4環(huán)路等待條件:指在發(fā)生死鎖時(shí),必然存在一個(gè) 進(jìn)程一一資源的環(huán)形鏈,即 進(jìn)程集合P0,P1,P2,,Pn中的P0正在等待一個(gè)P1占用的資源;P1 正在等待P2占用的資源,Pn正在等

12、待已被P0占用的資源。預(yù)防死鎖的方法:有序資源分配法,銀行家算法。3. 目的及意義1. 通過編寫和調(diào)試程序以加深對并發(fā)進(jìn)程管理方案的理解。2. 呈現(xiàn)死鎖解鎖過程,方便同學(xué)理解學(xué)習(xí)3. 實(shí)現(xiàn)讀者寫者問題,增加對p、v信號(hào)量和管程的理解。4. 設(shè)計(jì)思想及設(shè)計(jì)功能說明1. 設(shè)計(jì)思想:讀者-寫者問題的讀寫操作限制包括讀者優(yōu)先和寫者優(yōu)先寫-寫互斥:不能有兩個(gè)寫者同時(shí)進(jìn)展寫操作讀-寫互斥:不能同時(shí)有一個(gè)線程在讀,而另一個(gè)線程在寫。讀-讀允許:可以有一個(gè)或多個(gè)讀者在讀。讀者優(yōu)先的附加限制:如果讀者申請進(jìn)展讀操作時(shí)已有另一個(gè)讀者正在 進(jìn)展讀操作,那么該讀者可直接開場讀操作。寫者優(yōu)先的附加限制:如果一個(gè)讀者申請

13、進(jìn)展讀操作時(shí)已有另一個(gè)寫者 在等待訪問共享資源,那么該讀者必須等到?jīng)]有寫者處于等待狀態(tài)后才能 開場讀操作。運(yùn)行結(jié)果顯示要求:要求在每個(gè)線程創(chuàng)立、發(fā)出讀寫申請、開場讀寫操 作和完畢讀寫操作時(shí)分別顯示一行提示信息,以確定所有處理都遵守相應(yīng) 的讀寫操作限制。死鎖解鎖與防止死鎖實(shí)現(xiàn)。2. 設(shè)計(jì)功能說明1. 文件讀入功能:從指定文件讀入程序所需要的信息2. 讀者優(yōu)先判斷功能:如果讀者申請進(jìn)展讀操作時(shí)已有另一個(gè)讀者正在進(jìn)展讀操作,那么該讀者可直接開場讀操作3. 寫者優(yōu)先判斷功能:如果一個(gè)讀者申請進(jìn)展讀操作時(shí)已有另一個(gè) 寫者在等待訪問共享資源,那么該讀者必須等到?jīng)]有寫者處于等 待狀態(tài)后才能開場讀操作。4.

14、界面設(shè)計(jì):方便用戶操作軟件,及時(shí)向用戶反應(yīng)讀者寫者信息5. 鎖機(jī)制:通過程序展示進(jìn)程的運(yùn)行,方便同學(xué)們理解鎖產(chǎn)生的原 因以及解決死鎖,預(yù)防死鎖的方法。5. 核心數(shù)據(jù)構(gòu)造說明首先編寫臨界區(qū)資源,按照書上的說法,讀者寫者的數(shù)量是臨界區(qū)資源,我 們定義了 rcoun t=0,wcou nt=O,對讀者寫者 進(jìn)展計(jì)數(shù)的變量,同樣設(shè)置 rmutex=1,wmutex=1 對 rcount,wcount 進(jìn)展控制。還有我們用到了另外的兩個(gè)全局變量writeblock=1,readblock=0進(jìn)展對讀者進(jìn)程,寫者進(jìn)程進(jìn)展鎖操做。在讀者進(jìn)程,與寫者進(jìn)程的鎖操做中要進(jìn)展進(jìn)程的調(diào)度問題, 其中有讀者進(jìn)程的 就緒

15、隊(duì)列readPList,有寫者進(jìn)程的就緒隊(duì)列 writePList,有進(jìn)程進(jìn)展調(diào)度算法 中的阻塞隊(duì)列waitPList 。C#中都以類為基準(zhǔn),所以在進(jìn)程隊(duì)列中包括,入隊(duì)in List,出對outList ,整理, 等操作的函數(shù)。還有一些小的控制變量,allrcou nt=0,allwcout=0,對整個(gè)程序進(jìn)展讀者進(jìn)程創(chuàng)立個(gè)數(shù)進(jìn)展計(jì)數(shù)。private int time; / public process(i nt nu m,bool tf);/其中的類包括,進(jìn)程類Process,進(jìn)程隊(duì)列類ProcessList,windows 窗體類PV/PVprivate int pcb;/pcbpriva

16、te int psw;/0private bool readOrWrite;主要是對進(jìn)程的一些扌田述信息表示就緒態(tài),1表示運(yùn)行態(tài),2表示/表示讀寫進(jìn)程,用來控制進(jìn)程的種類信號(hào)量的類,monitor/管程類,main/主界面類,block/同步鎖類以及一些表 現(xiàn)類如text/讀者寫者窗體類,semaphore類/型號(hào)量的類,在這些類中包括自 己的函數(shù)聲明。屬性聲明。例如process中的如下:如果是true就是讀否那么就是寫進(jìn)程process存在的時(shí)間 構(gòu)造函數(shù)public void rgo();讀者操做的函數(shù)public void wgo();/寫者操做的函數(shù)public void P(sem

17、aphore s)public void V(semaphore s)public void en ter(I nterfaceModule IM);/進(jìn)入管程的函數(shù)public void wait(semaphore x_sem,i nt x_co un t,I nterfaceModule IM);public void signal(semaphore x_sem, int x_count, InterfaceModuleIM)public void rwgo();/讀者寫者都進(jìn)展的操做還有一些簡單的線程操做Thread t1 = new Thread( new ThreadStart(

18、process on ego); Thread t2 = new Thread( new ThreadStart(processtwogo); t1.Start();t2.Start();6. 核心算法流程1.寫者優(yōu)先原理圖:2讀者優(yōu)先原理圖:28 / 213.鎖機(jī)制:7.開發(fā)調(diào)試及運(yùn)行環(huán)境開發(fā)調(diào)試:vs2013,編程語言為c#運(yùn)行環(huán)境:wi ndows8.功能說明及測試數(shù)據(jù)分析1.1 P,V信號(hào)量模塊當(dāng)無讀者寫者時(shí),允許多讀者讀文件。如圖在讀者框里有2個(gè)讀者的數(shù)量I*當(dāng)有讀者在讀文件時(shí),寫者會(huì)被阻塞。如圖,讀者數(shù)量為2,等待寫者為2浜港5好好學(xué)習(xí),天天向上當(dāng)讀者進(jìn)程執(zhí)行完畢,寫者就可以執(zhí)行,

19、寫者是可以修改文件的,如圖I打開文件寫舗蚩:1注看和更:I等待頁者:1尊侍齢:J有其它寫者,新寫者等待當(dāng)有寫者時(shí),讀者會(huì)被阻塞,如圖1.2管程模塊允許多讀者讀文件當(dāng)有讀者,不允許寫者寫文件有寫者,不允許讀1.3死鎖模塊當(dāng)進(jìn)程1和進(jìn)程2每步的延遲比擬接近時(shí),易發(fā)生死鎖,如圖都是100ms,就發(fā)生了死鎖進(jìn)程1,2每步延遲較大,就不會(huì)發(fā)生死鎖。證時(shí)口耳,用2J電牴I郵一步世時(shí)世程“帕一步越亍om4111-*1tt帀君弄在解決死鎖的模塊里,由于進(jìn)程采用不可剝奪式,所以不會(huì)發(fā)生死鎖城北記兇呈FT弁焙袒刖、虱柯址翟】旬一野貳時(shí)SflOO活言昭卷1匚惡貝星41|執(zhí)止1毘程唐i乍1LMH1 42.軟件說明書:

20、歡送來到讀者寫者問題仿真軟件,我們的軟件分為3大模塊:PV信號(hào)量模塊,管程模塊,死鎖模塊。我們的軟件只要你的操作系統(tǒng)是win7以上的版本都可以運(yùn)行。下面是軟件的具體使用說明書。首先,您來到的是我們軟件的主界面。如下圖。在主界面你可以點(diǎn)擊鎖機(jī)制,PV信號(hào)量,管程機(jī)制,三個(gè)按鈕進(jìn)入不同的模塊。你也可以點(diǎn)擊關(guān)閉按鈕,關(guān)閉軟件。PV信號(hào)量管程機(jī)制接下來我們來介紹 PV信號(hào)量模塊。首先,你要按翻開文件按鈕翻開一個(gè)文件,好便于點(diǎn)擊一次申請修 當(dāng)有進(jìn)程被阻塞1.關(guān)閉一個(gè)窗口2.通過按按操作系統(tǒng)課程設(shè)計(jì)(PV)和(管程)讀者寫者問題仿真讀者讀或者寫者寫操作。點(diǎn)擊一次申請閱讀按鈕,就會(huì)產(chǎn)生一個(gè)讀者進(jìn)程, 改,就

21、會(huì)產(chǎn)生一個(gè)寫者進(jìn)程,他們的數(shù)量會(huì)在讀者數(shù)量寫者數(shù)量框中顯示。時(shí),等待讀者或等待寫者框里的數(shù)字就會(huì)顯示,有多少進(jìn)程被阻塞。如圖 就代表這個(gè)進(jìn)程完畢了。在寫者進(jìn)程時(shí),我們可以對文件進(jìn)展修改操作,如圖 鈕,我們就可以模擬仿真讀者寫者問題。PV操作流程。在這兩個(gè)局部,你只需要設(shè)置每個(gè)進(jìn)程的延遲時(shí)間,然后點(diǎn)擊可能死鎖程序開場,解決死鎖開場按鈕, 程序就會(huì)自動(dòng)進(jìn)展,這是為了專門為教學(xué)準(zhǔn)備的。請看圖示。可k銃詵霍彳巧拖理宙?zhèn)葧I吋JDOLCH*41*1瀕洋和+*比不円V璨ff1由貝巨i儈咋4本軟件的使用就是這樣,歡送大家使用!進(jìn)程4歩詼也程?每一步曾時(shí)zaod活納滸粗活幼進(jìn)稈1V寢鹹源L&4SSSS

22、e*也笛迸程理佇蟲行進(jìn)程或作4結(jié)來避理解決死越翟購抬9. 存在問題1. 缺乏與問題1) .在整個(gè)實(shí)驗(yàn)中我們的對管程的了解不是很到位,不清楚管程的部運(yùn)行構(gòu) 造,不了解管程部的條件變量,這樣我們程序中對管程的局部還有待改善加強(qiáng), 做出正確的運(yùn)行程序。2) .在實(shí)驗(yàn)中,還有很多的細(xì)節(jié)沒有注意到,還有很多的東西沒有抽象出來, 例如時(shí)鐘,我們只是運(yùn)用了系統(tǒng)的時(shí)鐘。并且在做課程設(shè)計(jì)的時(shí)候我們只是關(guān)注 讀者寫者問題,側(cè)重點(diǎn)導(dǎo)致我們在對進(jìn)程的調(diào)度問題進(jìn)展了較少的代碼編寫。2優(yōu)點(diǎn)與設(shè)想1) .每一個(gè)讀者寫者問題都在解決讀者優(yōu)先,或者寫者優(yōu)先的問題,而我們 的程序正好取了二者的折中思想,這樣可以很好的解決,讀者優(yōu)

23、先中的寫者饑 餓問題,同時(shí)還能解決,寫者優(yōu)先中的讀者饑餓問題。如有讀一讀一寫一讀一讀一寫一寫一讀, 這樣的情況, 第一個(gè)讀者來了, 第二讀 者再來他們并發(fā)執(zhí)行,繼續(xù)讀,而寫者來了,將被阻塞,當(dāng)讀者讀完,喚醒寫者, 寫者寫完,喚醒讀者,當(dāng)寫者寫完了也可能喚醒寫者,要看后面來的人是讀者還 是寫者。從而解決兩個(gè)饑餓問題。2) .是否可以將操作系統(tǒng)中的只是運(yùn)用到軟件中,而不是簡單的做成教師講 的書本上的東西,而是為了設(shè)計(jì)莫某一款軟件而其中運(yùn)用到了這些知識(shí),例如, 可以做一個(gè)后臺(tái)效勞器,就很好的運(yùn)用了并發(fā)進(jìn)程問題。并且在后臺(tái)效勞器中處 理來者訪問過程中,例如火車購票系統(tǒng)中,就要良好的解決類似讀者寫者問題

24、這 樣的只是,同樣大膽一點(diǎn),可以用更多的語言去編寫,豐富自己的知識(shí),就像教 師說的可以做成系統(tǒng)軟件,同時(shí)也可以做成手機(jī) APP做成小游戲等等。10. 實(shí)踐體會(huì)及心得1.梁峰2. 寄偉杰我們這次操作系統(tǒng)的課程設(shè)計(jì)題目是用P, V信號(hào)量-管程解決讀者寫者問題, 看到組長來選這個(gè)課題的時(shí)候, 我心有點(diǎn)小小的害怕, 因?yàn)槲以趯W(xué)習(xí)操作系統(tǒng)課程的時(shí)候,對同步互斥問題的那一章就有比擬大的疑惑。不過既然已經(jīng)選擇, 我也只能邁步前進(jìn)。 在期末我們組長給我分配的任務(wù)是寫軟件的界面。我是從來沒有寫過界面的,剛開場我比擬茫然無措,腦袋一片空白??上胂脒@次課設(shè)是我們大家分工完成的,只有完成自己的任務(wù), 最后才能做出成品

25、。我就鼓勵(lì)自己去學(xué)習(xí), 于是我就去向周圍有學(xué)習(xí)好的同學(xué)和學(xué)長去咨詢有關(guān)界面方面 的知識(shí),應(yīng)該用什么語言來寫界面,經(jīng)過我的了解,我知道了c#是一門好的比擬簡單的寫界面的一種語言,它在繼承 C和C+雖大功能的同時(shí)去掉了一些它們的復(fù)雜特性例如沒有 宏以及不允許多重繼承。C#綜合了 VB簡單的可視化操作和 C+的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。于是,我就在寒假里學(xué)習(xí)了c#語言,慢慢的開場了界面的編寫,最終完成了。在辯論的時(shí)候,教師說我做的界面與操作系統(tǒng)核關(guān)系不是那么嚴(yán)密,于是組長又給我們分配了新的任務(wù),去讓我和另一個(gè)組

26、員寫死鎖,而且要是自動(dòng)的,可以以后拿來教學(xué)的,我們又苦思冥想,就想到了用2個(gè)進(jìn)程來模擬仿真死鎖問題,給不同的進(jìn)程每一步執(zhí)行的時(shí)間不同。來讓他們搶占資源的順序和占用資源的時(shí)間不同,這樣就可以有可能發(fā)生死鎖。 我們會(huì)讓設(shè)計(jì)一個(gè)循環(huán),如果發(fā)生死鎖的話,超過10秒的話,就讓進(jìn)程自動(dòng)釋放資源,繼續(xù)執(zhí)行進(jìn)程。而解決死鎖,我們想一個(gè)簡單的方法,讓一個(gè)進(jìn)程直接占用資源,不可被其他進(jìn)程剝奪,這樣就不會(huì)發(fā)生死鎖了,這就是我們做的死鎖局部。我認(rèn)為,在這次課程設(shè)計(jì)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在課設(shè)上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是以后最實(shí)用的,真的是受益匪淺。要

27、面對社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對 于我們的將來也有很大的幫助?;貞浧鸫苏n程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于甜, 但是可以學(xué)到很多很多的東西,同時(shí)不僅可以穩(wěn)固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的, 只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論, 才能真正為社會(huì)效勞, 從而提高自己的實(shí)際動(dòng)手能力 和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,但最終還是克制了。3. 樊鹿鳴我們這次課程設(shè)計(jì)的課題是讀者寫著問題,經(jīng)過上學(xué)期期末的課程設(shè)計(jì),我們都有了一定的經(jīng)歷,效率也提高了很多。 當(dāng)我們組拿到題目的時(shí)候我們先對題目進(jìn)展分析,開場我們做了很多工作,比方,到圖書館借相關(guān)的資料,到網(wǎng)上搜索等等,最終經(jīng)過我們組的努力以及教師和同學(xué)的幫助下順利的實(shí)現(xiàn)了讀者寫著功能。這次課程設(shè)計(jì)我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論