12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

wczytywanego do tej ramki. Kolejne żądania wczytania, tego samego sektora będąwstrzymywane na zmiennej KONIEC_CZYTANIA, tym samym co pierwsze żądanie.W procedurze KONIEC_ODCZYTU jest potrzebny numer ramki, do której zakończyłasię właśnie transmisja sektora. Numer ten jest wyznaczany na podstawie parametrów żądania,które są przekazywane z procedury obsługi przerwania wejścia-wyjścia, wywołującejprocedurę KONIEC_ODCZYTU.Podczas inicjacji struktur danych monitora w polu adres każdej ramki zapisuje sięparametry nieistniejących sektorów, aby funkcja znajdź zwracała wartość 0.monitor PAMIĘĆ.PODRĘCZNA;const R = ?;C = ?;var i, ile_czytanych: integer;początek, koniec: integer;WSZYSTKIE.CZYTANE: condition;PP: array[l..R] of recordadres: par_żądania;poprz, nast: integer;KONIEC.CZYTANIA: condition;czytany: booleanend;procedure na_początek(ramka: integer); {przemieszcza wskazaną ramkę na począteklisty LRU}function znajdź(żądanie: par_żądania): integer;{jeśli żądany sektor jest w pamięci podręcznej,tzn. PP[znajdź(żądanie)].adres = żądanie, tozwraca numer tej ramki, wpp zwraca 0}export procedure ŻĄDANIE_ODCZYTU(żądanie: par.żądania;adresPO: integer);var ramka: integer;jest: boolean;beginramka := znajdź(żądanie);if ramka = O then beginif ile.czytanych = R then wait(WSZYSTKIE_CZYTANE);ramka := koniec;jest := false;repeatif PP[ramka].czytany thenramka := PP[ramka].poprzelse jest := trueuntil jest;PP[ramka].adres := żądanie;PP[ramka].czytany := true;ile.czytanych := ile.czytanych + 1;DYSK.ŻĄDANIE.WE.WY(żądanie);wait(PP[ramka].KONIEC.CZYTANIA)endelseif PP[ramka].czytany thenwait(PP[ramka].KONIEC.CZYTANIA);na.początek(ramka);zPPdoPO(ramka, adresPO)end; {ŻĄDANIE.ODCZYTU}export procedure KONIEC_ODCZYTU(żądanie: par_żądania);var ramka: integer;102

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!