Spis treści


Treść zadania

Zadanie będzie polegać na zmianie sposobu przydzielania pid-u nowym procesom oraz zmianie ilości dostępnych pid-ów.
1. Należy maksymalnie zmniejszyć ilość możliwych pid-ów z 32768 - do wartości stałej NR_TASKS (która oznacza maksymalną ilość procesów działajacych w systemie) - dla jądra 2.0.x wynosi ona 512.
2. Należy skrócić pesymistyczny czas przydzielania pid-u do stałej (w tej chwili pesymistyczny czas znalezienia pid-u jest zależny od NR_TASKS) niezależnej od żadnych stałych zdefiniowanych w jądrze.
3. Zadanie posiada dwie wersje:


Opis testów

1. Podstawowym (ale nie najważniejszym) testem jest oczywiście uruchomienie przekompilowanego jądra i porównanie szybkości działania z oryginalnym jądrem. Porównanie takie powinno być wykonane poprzez program intensywnie używający funkcji fork().
2. Drugim (ważniejszym) testem powinno być napisanie symulacji działania funkcji get_pid() - zarówno oryginalnej jak i nowej - należy porównać ilość odwołań do pól struktury task_struct oraz ilość odwołań do wszelkich zmiennych.
3. Należy także zastanowić się, czy w tym przypadku rozwiązanie teoretycznie lepsze rzeczywiście lepiej się sprawdza w typowych zastosowaniach.
UWAGA: Testy stanowia najważniejszą część zadania.


Lista ewentualnych modyfikacji


Inne

Czas przewidziany na wykonanie zadania:
Razem: 3 lub 4 tygodnie, zależnie od wersji.

Autor: Karol Gołąb