Powrót na stronę UNIX

Program przyjmuje jako parametry:

Zadanie polega na odwróceniu zawartości pliku (wynik w tym samym pliku) przy użyciu asynchronicznych operacji IO. Do operacji na danych dyskowych wolno używać jedynie 4 buforów pamięci o podanym rozmiarze "n". Należy maksymalnie wykorzystać możliwości równoległego przetwarzania jakie dają operacje asynchroniczne. Nie dopuszczone jest powiadamianie o końcu operacji IO poprzez uruchomienie oddzielnego wątku.

Rozwiązanie (zarys) musi przetwarzać plik z obu końców naraz. Najpierw czytamy po jednym bloku z obu końców, następnie odwracamy ich zawartość, ale w tym samym czasie mają być odczytywane 2 kolejne bloki (kolejny od końca i kolejny od początku). Przetworzone już bloki należy zapisać na dysk, w tym czasie można już przetworzyć następne bloki itd.. Środkową (pozostałą < 2*n) część pliku najłatwiej odwrócić tym samym algorytmem tylko ze zmodyfikowanym wymiarem bufora (n=ile bytów zostało / 2).



Szczególna uwagę zwracamy na:
Powrót na stronę UNIX