.?dāng)?shù)據(jù)結(jié)構(gòu) 假設(shè)有M個(gè)進(jìn)程N(yùn)類資源,則有如下數(shù)據(jù)結(jié)構(gòu): MAX[M*N] M個(gè)進(jìn)程對(duì)N類資源的最大需求量 AVAILABLE[N] 系統(tǒng)可用資源數(shù) ALLOCATION[M*N] M個(gè)進(jìn)程已經(jīng)得到N類資源的資源量 NEED[M*N] M個(gè)進(jìn)程還需要N類資源的資源量 2.銀行家算法 設(shè)進(jìn)程I提出請(qǐng)求Request[N],則銀行家算法按如下規(guī)則進(jìn)行判斷。 (1)如果Request[N]<=NEED[I,N],則轉(zhuǎn)(2);否則,出錯(cuò)。 (2)如果Request[N]<=AVAILABLE,則轉(zhuǎn)(3);否則,出錯(cuò)。 (3)系統(tǒng)試探分配資源,修改相關(guān)數(shù)據(jù): AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系統(tǒng)執(zhí)行安全性檢查,如安全,則分配成立;否則試探險(xiǎn)性分配作廢,系統(tǒng)恢復(fù)原狀,進(jìn)程等待。 3.安全性檢查 (1)設(shè)置兩個(gè)工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)從進(jìn)程集合中找到一個(gè)滿足下述條件的進(jìn)程, FINISH[i]=FALSE NEED<=WORK 如找到,執(zhí)行(3);否則,執(zhí)行(4) (3)設(shè)進(jìn)程獲得資源,可順利執(zhí)行,直至完成,從而釋放資源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的進(jìn)程Finish[M]=true,則表示安全;否則系統(tǒng)不安全。
標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu) 進(jìn)程 資源
上傳時(shí)間: 2014-01-05
上傳用戶:moshushi0009
數(shù)據(jù)結(jié)構(gòu) 假設(shè)有M個(gè)進(jìn)程N(yùn)類資源,則有如下數(shù)據(jù)結(jié)構(gòu): MAX[M*N] M個(gè)進(jìn)程對(duì)N類資源的最大需求量 AVAILABLE[N] 系統(tǒng)可用資源數(shù) ALLOCATION[M*N] M個(gè)進(jìn)程已經(jīng)得到N類資源的資源量 NEED[M*N] M個(gè)進(jìn)程還需要N類資源的資源量 2.銀行家算法 設(shè)進(jìn)程I提出請(qǐng)求Request[N],則銀行家算法按如下規(guī)則進(jìn)行判斷。 (1)如果Request[N]<=NEED[I,N],則轉(zhuǎn)(2);否則,出錯(cuò)。 (2)如果Request[N]<=AVAILABLE,則轉(zhuǎn)(3);否則,出錯(cuò)。 (3)系統(tǒng)試探分配資源,修改相關(guān)數(shù)據(jù): AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系統(tǒng)執(zhí)行安全性檢查,如安全,則分配成立;否則試探險(xiǎn)性分配作廢,系統(tǒng)恢復(fù)原狀,進(jìn)程等待。 3.安全性檢查 (1)設(shè)置兩個(gè)工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)從進(jìn)程集合中找到一個(gè)滿足下述條件的進(jìn)程, FINISH[i]=FALSE NEED<=WORK 如找到,執(zhí)行(3);否則,執(zhí)行(4) (3)設(shè)進(jìn)程獲得資源,可順利執(zhí)行,直至完成,從而釋放資源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的進(jìn)程Finish[M]=true,則表示安全;否則系統(tǒng)不安全。
標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu) 進(jìn)程 資源
上傳時(shí)間: 2013-12-24
上傳用戶:alan-ee
DSP編程代碼,FFT算法,經(jīng)典!! FFT實(shí)驗(yàn) 一、 理論: 公式(1)FFT運(yùn)算公式 FFT并不是一種新的變換,它是離散傅立葉變換(DFT)的一種快速算法。由于我們?cè)谟?jì)算DFT時(shí)一次復(fù)數(shù)乘法需用四次實(shí)數(shù)乘法和二次實(shí)數(shù)加法;一次復(fù)數(shù)加法則需二次實(shí)數(shù)加法。每運(yùn)算一個(gè)X(k)需要4N次復(fù)數(shù)乘法及2N+2(N-1)=2(2N-1)次實(shí)數(shù)加法。所以整個(gè)DFT運(yùn)算總共需要4N^2次實(shí)數(shù)乘法和N*2(2N-1)=2N(2N-1)次實(shí)數(shù)加法。如此一來,計(jì)算時(shí)乘法次數(shù)和加法次數(shù)都是和N^2成正比的,當(dāng)N很大時(shí),運(yùn)算量是可觀的,因而需要改進(jìn)對(duì)DFT的算法減少運(yùn)算速度。 根據(jù)傅立葉變換的對(duì)稱性和周期性,我們可以將DFT運(yùn)算中有些項(xiàng)合并。 我們先設(shè)序列長度為N=2^L,L為整數(shù)。將N=2^L的序列x(n)(n=0,1,……,N-1),按N的奇偶分成兩組,也就是說我們將一個(gè)N點(diǎn)的DFT分解成兩個(gè)N/2點(diǎn)的DFT,他們又從新組合成一個(gè)如下式所表達(dá)的N點(diǎn)DFT: 一般來說,輸入被假定為連續(xù)、合成的。當(dāng)輸入為純粹的實(shí)數(shù)的時(shí)候,我們就可以利用左右對(duì)稱的特性更好的計(jì)算DFT。 我們稱這樣的RFFT優(yōu)化算法是包裝算法:首先2N點(diǎn)實(shí)數(shù)的連續(xù)輸入稱為“進(jìn)包”。其次N點(diǎn)的FFT被連續(xù)被運(yùn)行。最后作為結(jié)果產(chǎn)生的N點(diǎn)的合成輸出是
上傳時(shí)間: 2015-04-29
上傳用戶:牛布牛
Strassn關(guān)于兩個(gè)矩陣相乘的算法,同過分治原理把兩個(gè)n*n的矩陣階各分解成四個(gè)n/2*n/2階的矩陣,當(dāng)分解出來的矩陣階數(shù)等于2時(shí),求借各個(gè)小矩陣,若階數(shù)大與2,就遞歸的調(diào)用前面方法,直到分解成2*2的子矩陣為止。
上傳時(shí)間: 2015-05-21
上傳用戶:lz4v4
矩陣相乘的Strassen算法,其中 乘積矩陣C = H*H,H =(hij)n*n 1. hij = , i,j=1,…8 2. i,j=1,…12 矩陣H =(hij)n*n自動(dòng)生成,取小數(shù)點(diǎn)后面6位計(jì)算
上傳時(shí)間: 2014-01-17
上傳用戶:wff
將大數(shù)看作一個(gè)n進(jìn)制數(shù)組,對(duì)于目前的32位系統(tǒng)而言n可以取值為2的32次方,即0x10000000, 假如將一個(gè)1024位的大數(shù)轉(zhuǎn)化成0x10000000進(jìn)制,它就變成了32位,而每一位的取值范圍就不是0-1 或0-9,而是0-0xffffffff。我們正好可以用一個(gè)無符號(hào)長整數(shù)來表示這一數(shù)值。所以1024位的大數(shù) 就是一個(gè)有32個(gè)元素的unsigned long數(shù)組。而且0x100000000進(jìn)制的數(shù)組排列與2進(jìn)制流對(duì)于計(jì)算機(jī) 來說,實(shí)際上是一回事,但是我們完全可以針對(duì)unsigned long數(shù)組進(jìn)行“豎式計(jì)算”,而循環(huán)規(guī)模 被降低到了32次之內(nèi),并且算法很容易理解。
上傳時(shí)間: 2015-05-29
上傳用戶:xsnjzljj
給定n 個(gè)正整數(shù)和4 個(gè)運(yùn)算符+、-、*、/, 且運(yùn)算符無優(yōu)先級(jí),如2+3*5=25。對(duì)于任意給定 的整數(shù)m,試設(shè)計(jì)一個(gè)算法,用以上給出的n 個(gè)數(shù) 和4 個(gè)運(yùn)算符,產(chǎn)生整數(shù)m,且用的運(yùn)算次數(shù)最少 給出的n個(gè)數(shù)中每個(gè)數(shù)最多只能用1 次,但每種運(yùn) 算符可以任意使用。
上傳時(shí)間: 2014-06-23
上傳用戶:ve3344
實(shí)驗(yàn)描述:分布式數(shù)據(jù)庫的算法partition的具體實(shí)現(xiàn)。即通過該算法找到關(guān)系數(shù)據(jù)庫最優(yōu)分裂點(diǎn),使得結(jié)果最優(yōu)。 算法思想: 1、 首先根據(jù)所輸入的attribute usage matrix得到AQ( ) 2、 對(duì)CA矩陣中劃分點(diǎn)預(yù)先設(shè)在n-1處,并將屬性列分成兩個(gè)集合,TA和BA,TA中的元為:{ A1 、A2 …… An-1 },BA中的元素為:{ An} 3、 確定集合TQ、BQ和OQ,其中TQ={ qj| AQ(qi) TA},BQ= TQ={ qj| AQ(qi) BA}, OQ=Q-{TQ BQ}。 4、 計(jì)算出CTQ、CBQ、COQ這些值,其中CTQ= ,CBQ= ,COQ= 5、 通過劃分點(diǎn)的第次移動(dòng)分別計(jì)算出z=CTQ*CBQ-COQ2 6、 對(duì)取到的z的最大值處標(biāo)記,為分割點(diǎn) 7、 對(duì)CA進(jìn)行調(diào)整,重復(fù)計(jì)算得到最終z的最大值點(diǎn),對(duì)CA矩陣進(jìn)行劃分 8、 對(duì)上述算法進(jìn)行修改,將得到的最大z值的分割點(diǎn)和次大的分割點(diǎn)都記錄下來,得到兩個(gè)分割,則將原有的屬性集劃分成三部分。 該算法的目的是找到獨(dú)立存取的屬性集合或者分別的應(yīng)用集。比如說,如果可以找到兩個(gè)屬性A1,A2,他們只是被q1讀取,而A3,A4被q2,q3讀取,這樣在分裂的時(shí)候可以確定。算法就是找到這些組。另外為了簡單化起見,我命令refj(qi)全部等于1.
標(biāo)簽: partition 算法 實(shí)驗(yàn) 分布式數(shù)據(jù)庫
上傳時(shí)間: 2015-06-04
上傳用戶:13160677563
實(shí)驗(yàn)描述:分布式數(shù)據(jù)庫的算法partition的具體實(shí)現(xiàn)。即通過該算法找到關(guān)系數(shù)據(jù)庫最優(yōu)分裂點(diǎn)(2個(gè)),使得結(jié)果最優(yōu)。 1、 首先根據(jù)所輸入的attribute usage matrix得到AQ( ) 2、 對(duì)CA矩陣中劃分點(diǎn)預(yù)先設(shè)在n-1處,并將屬性列分成3個(gè)集合,TA和BA和MA, 3、 確定集合TQ、BQ,MQ和OQ,其中TQ={ qj| AQ(qi) TA},BQ= TQ={ qj| AQ(qi) BA}, MQ={ qj| AQ(qi) MA},OQ=Q-{TQ BQ}。 4、 計(jì)算出CTQ、CBQ、CMQ、COQ這些值,其中CTQ= ,CBQ= ,CMQ= ,COQ= 5、 通過劃分點(diǎn)的第次移動(dòng)分別計(jì)算出z=CTQ*CBQ*CMQ-COQ3 6、 對(duì)取到的z的最大值處標(biāo)記,為分割點(diǎn) 7、 對(duì)CA進(jìn)行調(diào)整,重復(fù)計(jì)算得到最終z的最大值點(diǎn),對(duì)CA矩陣進(jìn)行劃分 對(duì)上述算法進(jìn)行修改,將得到的最大z值的分割點(diǎn)和次大的分割點(diǎn)都記錄下來,得到兩個(gè)分割,則將原有的屬性集劃分成三部分。
標(biāo)簽: partition 算法 實(shí)驗(yàn) 分布式數(shù)據(jù)庫
上傳時(shí)間: 2015-06-04
上傳用戶:515414293
源代碼\用動(dòng)態(tài)規(guī)劃算法計(jì)算序列關(guān)系個(gè)數(shù) 用關(guān)系"<"和"="將3個(gè)數(shù)a,b,c依次序排列時(shí),有13種不同的序列關(guān)系: a=b=c,a=b<c,a<b=v,a<b<c,a<c<b a=c<b,b<a=c,b<a<c,b<c<a,b=c<a c<a=b,c<a<b,c<b<a 若要將n個(gè)數(shù)依序列,設(shè)計(jì)一個(gè)動(dòng)態(tài)規(guī)劃算法,計(jì)算出有多少種不同的序列關(guān)系, 要求算法只占用O(n),只耗時(shí)O(n*n).
標(biāo)簽: lt 源代碼 動(dòng)態(tài)規(guī)劃 序列
上傳時(shí)間: 2013-12-26
上傳用戶:siguazgb
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1