Projekt zadania laboratoryjnego
Do spisu treści
tematu nadrzędnego
4.12.11 Zadanie laboratoryjne "Urzadzenia wymiany"
Spis treści:
Wprowadzenie
Specyfikacja zadania
Wskazówki dotyczące implementacji
Testy i wnioski
Bibliografia
Wprowadzenie
W systemie operacyjnym Linux 2.0.32
oraz w wersjach wcześniejszych istnieje pewna niedoskonałosć, która wydaje
się w praktyce nie mieć większego znaczenia, ale jako obiekt zainteresowania,
dla osób które by chciały coś "ulepszyć" wydaje się być dość ambitnym zadaniem.
Chodzi o maksymalny rozmiar miejsca dostępnego na urządzeniu wymiany, które
jest ograniczone przez sposób w jaki jest zarządzana pamiecią na tym urządzeniu.
Na poczatku pamięci urządzenia wymiany znajduje się tablica bitowa
swap_lockmap, która przy inicjowaniu urządzenia przez funkcje sys_swapon(..)
wczytywana jest jako ramka (zatem ma rozmiar 4KB ).Za pomoca swap_lockmap
ustalany jest rozmiar pamięci jaka jest dostępna na urządzeniu. Ograniczenie
wynika stąd, że za pomocą swap_lockmap moąemy reprezentować rozmiar pamięci
nie większy niz (4096 - 10) *8*4096 = 133890048 bajtów =127.6875 Mb. (pierwsza
cześć iloczynu to rozmiar pierwszej ramki na urządzeniu (lock_map) pomniejszony
o 10 bajtow przeznaczony na "flage" "SWAP_SPACE", która zostaje tam umieszczona
po prawidłowym zainicjowaniu urządzenia). Z praktycznegoo punktu widzenia
wydaje się, ze rozmiar prawie 128Mb pamięci przeznaczonej na urządzenie
wymiany jest bardzo duża, jednak może sie okazać w przyszloćci, że potrzeba
usunięcia takiego ograniczenia może okazać sie o ile nie konieczne to byc
może przydatne. Zadanie jakie chciałbym postawić to umożliwienie
w systemie Linux 2.0.32 usunięcia ograniczenia tak, aby rozmiar pamięci
na urządzeniu wymiany byl ograniczony czynnikami wynikajacymi z ograniczeń
np.: sprzętu a nie systemu.
Specyfikacja zadanie
Aby zmodyfikować system w celu osiagnęcia
zamierzonego celu przed przystąpieniem do rozwiązania zadania należy:
zapoznać się z opisem zarządzania pamięcia - wymiana stron pamieć
- dysk.
zapoznać sić z zawartościa plików zrodłowych: ../include/linux/swap.h,
../mm/swapfile.c.
zapoznać się z opisem w manual-u Linuxa funkcji swapon( ..) - słuzacej
do dodawania urządzeń wymiany.
Zadanie ma polegać na :
przygotowaniu wolnej partycji na dysku twardym, majacej służyć jako urządzenie
wymaiany.
przygotowanie programu, który by iniciował daną partcję (instalował struktury,dane
...).
przedefiniować funkcje z pliku ../mm/swapfile.c
w sposób umożliwiający jednoczesne korzystanie znowego sposobu obslugi
urzadzenia wymiany tj. zaproponowanego przez rozwiazujacego zadanie oraz
starego Linuxowego.
przetestowanie rozwiazania polegające na stworzeniu nowego "dużego" urządzenia
wymiany i właczeniu go do sytemu urzadzeń wymiany.
Wskazowki dotyczace implementacji
Kluczowym problemem w rozwiązaniu tego zadania
wydaje się być pogodzenie obu sposobów zarządzania pamiecią na urządzeniu
. Należy się skupić przede wszystkim na inicjowaniu partycji ,a wiec zainstalowaniu
na niej nowej struktury swap_lockmap tak , aby miała własności standartowej
a jednocześnie umożliwiała obsługe większych urządzen.
Testy i wnioski
Wiadomo, że zwiększenie pamięci na urzadzeniu wymiany powoduje zwiększenie
pamięci wirtualnej. Jedynym rozsądym testem wydaje się badanie zachowania
się systemu w przypadku
uruchamiania wiekszej ilości programów tak, aby zmusic system do zwiekszonej
ilości operacji wymiany pamieć - dysk. Jednak zaleta najważniejsza tego
zadania wydaje sie być strona merytoryczna polegająca na dokładnym zapoznaniu
się z mechanizmami obsługi urządzeń wymiany.
Bibliografia
Pliki źródłowe Linuxa:
../linux/mm/swapfile.c
../include/linux/swap.h
Projekt LabLinux
Autor: Mariusz Puchalski
Wyszukiwarka
Podobne podstrony:
ZADANIE (12)0000 Zadania 1 12ZADANIE (12)ZADANIE (12)analiza finansowa przedsiebiorstw zadania (12 stron)ZADANIE (12)Zadania 12ZADANIE (12)Zadania?LKI 12Zadania 01 12 20121696 przykladowe zadania na,rok 12gm geograficzny szkolny zadania 2011 12matura 12 odpowiedzi matematyka pp zadania zamknietewięcej podobnych podstron