Ãëàâíàÿ  Ïîëíîå ïîñòðîåíèå àëãîðèòìà 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [ 86 ] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117]

SUBROUTINE FIFO [REF.W.FRm.PAGES}

Ñ ÝÒÀ ÃÎÄÃÐÎÃÐÀÍÍÀ ÏÎËÓ×ÀÅà ÍÀ ÂÕÎÄ ÃÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÜ

Ñ ÎÁÐÀÙÅÍÈÉ Ê" ÑÒÐÀÍÈÖÀÌ ßÅÐ(1) ,fiEF(2).....REF(N,

Ñ öåëîå "frames- ÓÊÀÇÛÂÀÅÒ ×ÈÑËÎ ÂÛÄÅËÅÍÍÛÕ ÑÒÐÀÍÈ×ÍÛÕ

Ñ ÎÁËÀÑÒÅÉ , À öåëîå "PAGES= - ÓÊÀÇÛÂÀÅÒ ×ÈÑËÎ ðàçëè÷-

Ñ íûõ ÑÒÐÀÍÈÖ. ÃÎÄÃÐÎÃÐÀÈÌÀ ÍÀÕÎÄÈÒ ×ÈÑËÎ ÕÒÐÀÍÈ×ÍÛÕ -

Ñ îòêàçîâ à ÏÎÐÎØÅÌÛÕ ÄÀÍÍÎÉ ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÜÞ ÏÐÈ

ñ ÈÑÏÎËÜÇÎÂÀÍÈÈ ÀËÃÎÐÈÒÌÀ ÇÀÍÅÂØÍÈß FIFO (ÃÅÐÂÛÌ ÏÐÈ- !

Ñ ØÅË - ÃÅÐÂÛÌ ÓØÅË}. ØÏÐÎÃÐÀÌÌÀ ïå÷àòàåò ÑÒÐÎÊÓ ÎÁ-

Ñ ÐÀÙÅÍÈÉ REF{1)...REF(N), ÃÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÜ FAULTd)

Ñ .,,ÐÀèè(Í),-ÃÄÅ FAULT(1)«=1, ÅÑËÈ REF(IJ ÃÎÐÎÈÄÀÅÒ

Ñ ÑÒÐÀÍÈ×ÍÛÉ ÎÒÊÀÇ, È FAULTd)=0  ËÐÎÒÈÂ0Ë0Ë01ÍÎÌ

Ñ ÑËÓ×ÀÅ. ÎÍÀ ÒÀÊÈÅ ïå÷àòàåò îáùåå ×ÈÑËÎ ÑÒÐÀÍÈ×ÍÛÕ

Ñ ÎÒÊÀÇÎÂ È ×ÀÑÒÎÒÓ ÎÒÊÀÇΠÄËß ÄÀÍÍÎÃÎ ×ÈÑËÀ ÑÒÐÀÍÈ×*

Ñ ÍÛÕ ÎÁËÀÑÒÅÉ,

ñ ÔÎÐÍÀËÜÍÛÅ ÏÀÐÀÌÅÒÐÛ ñ

Ñ PEF(U...REF(N) ÑÒÐÎÊÀ ÎÁÐÀÙÅÍÈÉ

ñ FRAMES ×ÈÑËÎ ÑÒÐÀÍÈ×ÍÛÕ ÎÁËÀÑÒÅÉ

ñ PAGES ×ÈÑËÎ ÐÀÇËÈ×ÍÛÕ ÑÒÐÀÍÈÖ

ñ âíóòðåííèå ÃÅÐÅÍåÍØÅ ñ

ñ FAULò{1),,.FAULT(N1 •! ÅÑËÈ REFfl) ÏÎÐÎÂÄÅÒ ÎÒÊÀÇ

ñ åÎ Â îñòàëüíûõ ñëó÷àÿõ

ñ FRAHEd) ÈÐÌÅÐ ÑÒÐÀÍÈÖÌ, ÐÀÇÍÅÙÅÍÍÎÉ Â

ñ Îáëàñòè i

ñ TABLEdJ -j åñ;,è ñòðàíèöà 1 á îáëàñòè J

ñ .=6 6 îñòàëüíûõ ñëó÷àÿõ

ñ total Îáùåå ÷èñëî ñòðàíè÷íûõ îòêàçîâ

INTEGER REF(fl) .FRAMES.PAGES . INTEGER FAULTdOOO) ,FRAH£(50) ,P;TABUEt1C0l .TOTAL

Ñ ÈÍÈÖÈÀËÈÇÀÖÈß ÏÅÐÅÌÅÍÍÛÕ Ñ

ÅÎ 10 1 = 1,N FA.ULTdJ =0 1ñ CONTINUE P=PAGES+1 ÅÎ 20 I = 1.P TAELECI) « 0 20 CONTINUE

EO 3D I » 1,FRAMES FRAMEd) a P 30 CONTINUE 0 = 1 TOTAL « D

Ðèñ. 5.4.2. Ðåàëèçàöèÿ àëãîðèòìà FIFO.



ñ Öèêë ãî ÑÒÐÎÊÅ ÎÁÐÀÙÅÍÈÉ fiEF(1)...REF(N)

ÅÎ 100 I " 1,N

Ñ ÍÀÕÎÄÈÒÑß ËÈ ÑÒÐÀÍÈÖÀ Ê Â ÏÀÌßÒÈ

ê - BEFdJ

IF( TABUE(K) .NE. 0) 60 TO 100

Ñ ÓÄÀËÅÍÈÅ ÑÒÐÀÍÈÖÛ MS ÎÁËÀÑÒÈ FfiAME(Jl è J?A3-

Ñ ÅÂÅÍÈÅ ÑÒÐÀÍÈÖÛ Ê

L = FRAME(J) TABLE(L) = Î TAELE(K) = I FRAME(J) = Ê

J =. J - J/FRAHES» FRAMES + 1 FAULTtO = 1 TOTAL = TOTAL +1 10C CONTINUE Ñ *

ñ ÏÅ×ÀÒÜ ÐÅÇÓËÜÒÀÒÎÂ

WRITE (6,900) FRAMES,PAGES 900 F0RMAT(1H0,3eHArrOPMTH ÓÏÐÀÂËÅÍÈß ÑÒÐÀÍÈ×ÍÎÉ ÃÀÍßÒÜÞ, 1 ÞÍ FIFO ÄËß ,I3,12H ÎÁËÀÑÒÅÉ È , 13,8Í ÑÄÐÀÍÈÖ)

WplTE (6,950)

550 FURMAT(1HD.38HCTP0KA ÎÁÐÀÙÅÍÈÉ é ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÜ 1 7HD0TKA3OB)

WRITE (6,1000) (REF(I),,I=1,N) WRITE (6,1000) (FAULT(I),I-1,N) ÞÎÎ F0RMAT(1H0,40I3)

ñ ÏÅÐÂÛÅ «FRAMES=. ÎÒÊÀÇÎÂ - ÑÂÎÁÎÄÍÛÅ

TOTAL » TOTAL - FRAMES-RATE î FLOAT(TOTAL) / (N - FRAMES) WRITE (6.1010) TOTAL,BATE 1010 Ð0ÏÌÀÒ(1Í0,ã0Í×ÈÑËÎ ÎÒÊÀÇΠÐÀÂÍÎ •, 13,11Í À ×ÀÑÒÎÒÀ I 1 6ÍÐÀÂÍÀ ,F6.31

RETURN END

Ðèñ. 5.4.2. Ïðîäîëæåíèå

È AFTER (/). Ïåðåìåííàÿ FRONT óêàçûâàåò íà ñòðàíèöó â ïàìÿòè, ê êîòîðîé äîëüøå âñåõ íå áûëî îáðàùåíèé. Êîãäà ïðîèñõîäèò ñòðàíè÷íûé îòêàç, ñòðàíèöà, óêàçàííàÿ â FRONT, óäàëÿåòñÿ èç ñïèñêà (è èç ïàìÿòè), à ññûëêà íà ñòðàíèöó, ê êîòîðîé òîëüêî ÷òî ïðîèçîøëî îáðàùåíèå, ïîìåùàåòñÿ â ïåðåìåííóþ END ñïèñêà. Åñëè ïðîèñõîäèò îáðàùåíèå ê ñòðàíèöå, íàõîäÿùåéñÿ â ïàìÿòè, ññûëêà íà ýòó ñòðàíèöó èçâëåêàåòñÿ èç ñïèñêà è ïîìåùàåòñÿ â END. Ðèñ. 5.4 3 èëëþñòðèðóåò ýòó ðåàëèçàöèþ àëãîðèòìà LRU.



SUBROUTINE LRU (REF.N.FfiAXES.PAGES)

ÝÒÀ ÃÎËÃÐÎÃÐÀÌÌÀ ÿåëßÅÒÑÉ ÐÅÀËÈÇÀÖÈÅÉ À;1Ã0ÐÈÒÌÀ LRU,

ÈÑÏÎËÜÇÓÞÙÅÃÎ ÑÏÈÑÎÊ ñ ÿâîéíüòè ññûëêàìè äëÿ óïîðÿäî÷åíèÿ ÑÒÐÀÍÈÖ â ÏÀÌßÒÈ â ÑÎÎÒÂÅÒÑÒÂÈÈ Ñ ÌÎÌÅÍÒÀÌÈ ÏÎÑËÅÄÍÈÕ ÎÁÐÀÙÅÍÈÉ Í ÍÈÌ. ÏÎÄÏÐÎÃÐÀÌÌÀ ÏÎËÓ×ÀÅÒ ÍÀ ÂÕÎÄ ÑÒÐÎÊÓ ÎÁÐÀÙÅÍÈÉ. ×ÈÑËÎ ÐÀÇËÈ×ÍÛÕ ÑÒÐÀÍÈÖ È ×ÈÑËÎ ÑÒÐÀÍÈ×ÍÛÕ ÎÁËÀÑÒÅÉ. ÏÎÄÏÐÎÃÐÀÌÌÀ ÂÛÁÎËÈÒ ÍÀ ÏÅ×ÀÒÜ ÑÒÐÎÊÓ ÎÁÐÀÙÅÍÈÉ REF(I)...BEF(N). ÏÎÑËÅËÎÂÀ-ÒÅËÜÍÎÑÒÜ FAULTd)...FAULT(N), ÃËÅ FAULT(I)-1, ÅÑËÈ REFtI) ÂÛÇÛÂÀÅÒ ÑÒÐÀÍÈ×ÍÛÉ ÎÒÊÀÇ , È FAULTd)=0  ÎÑÒÀËÜÍÛÕ ÑËÓ×ÀßÕ. ÎÍÀ ÒÀÊÆÅ ÏÅ×ÀÒÀÅÒ ÎÁÙÅÅ ×ÈÑËÎ ÑÒÐÀÍÈ×ÍÛÕ ÎÒÊÀÇΠè ×ÀÑÒÎÒÓ ÎÒÊÀÇΠËËß ÝÒÎÃÎ ×ÈÑËÀ ÎÁËÀÑÒÅÉ

=== ÔÎÐÌÀËÜÍÛÅ ÏÀÐÀÌÅÒÐÛ

REF(1)...riEF(N) ÑÒÐÎÊÀ ÎÁÐÀÙÅÍÈÉ Ê ÑÒÐÀÍÈÖÀÌ

FRAMES ×ÈÑËÎ ÑÒÐÀÍÈ×ÍÛÕ ÎÁËÀÑÒÅÉ

PAGES ×ÈÑËÎ ÑÒÐÀÍÈÖ ÏÐÎÃÐÀÌÌÛ

=•= ÂÍÓÒÐÅÍÍÈÅ ÏÅÐÅÌÅÍÍÛÅ

ñ BEFORE! I) Ñ AFTERd) Ñ Ñ

ñ FAULT(I)

Ñ FRONT,END

Ñ J Ñ

Î Ê Ñ

Ñ TABLE(I)

Ñ TOTAL Ñ

ÑÂßÇÈ â ÑÏÈÑÊÅ ñ ÄÂÎÉÍÛÌÈ ÑÑÛËÊÀÌÈ, BEFORECI) (AFTERd)) - ÑÒÐÀÍÈÖÀ, ÏÎÑËÅÄÍÅÅ ÎÁÐÀÙÅÍÈÅ Ê ÊÎÒÎÐÎÉ ÁÛËÎ ÍÅÃÎÑÐÅËÑÒÁÅÍÍÎ ÄÎ (ÏÎÑËÅ) ÏÎÑËÅÄÍÅÃÎ ÎÁÐÀÙÅÍÈß Ê ÑÒÐÀÍÈÖÅ I

e1 ÅÑËÈ REFd) ÂÛÇÛÂÀÅÒ ÑÒÐÀÍÈ×ÍÛÉ ÎÒÊÀÇ, =0  ÎÑÒÀËÜÍÛÕ ÑËÓ×ÀßÕ

â ÑãÈÑÊÅ ñ äâîéíûìè ÑÑÛËÊÀÌÈ FRONT (END) ÓÊÀÇÛÂÀÅÒ ÍÀ ÑÒÐÀÍÈÖÓ , Ê ÊÎÒÎÐÎÉ ÄÎËÜØÅ ÂÑÅÃÎ ÍÅ ÁÛËÎ ÎÁÐÀÙÅÍÈÉ (Ê ÊÎÒÎÐÎÉ ÎÁÐÀÒÈËÈÑÜ ÏÎÇÈÅ ÂÑÅÕ)

ÈÍÄÅÊÑ ÎÁËÀÑÒÈ

ÓÊÀÇÀÒÅËÜ ÒÅÊÓÙÅÉ ÑÒÐÀÍÈÖÛ

==J ÅÑëÈ ÑÒÐÀÍÈÖÀ I ÐÀÇÌÅØÅÍÀ Å ÎÁËÀÑÒÈ J, =0  ÎÑÒÀËÜÍÛÕ ÑËÓ×ÀßÕ

×ÈÑËÎ ÑÒÐÀÍÈ×ÍÛÕ ÎÒÊÀÇÎÂ; ÂÛÇÂÀÍÍÛÕ REF(1)...REF(N)

Ðèñ. 5.4.3. Ðåàëèçàöèÿ àëãîðèòìà LRU



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [ 86 ] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117]

0.002