Zadanie na laboratorium Systemów Operacyjnych

 

Wstęp

    W systemie plików istnieje moduł zajmujący się i-ramkami, czyli i-węzłami w pamięci operacyjnej. Istnieje ograniczona ilość i-ramek w pamięci, dlatego może się zdarzyć, że proces żądający przydziału i-węzła zostanie uśpiony  z powodu braku wolnych i-ramek.
    Sytuacja taka jest potencjalnie możliwa   tylko wtedy, kiedy proces żąda i-węzła, dla którego nie przydzielona została jeszcze żadna i-ramka.


Sformułowanie zadania

Chcemy wprowadzić zmiany w algorytmach i (lub) strukturach danych modułu zarządzającego i-węzłami w pamięci, tak, żeby dla określonej grupy specjalnych użytkowników (SU) istniał (prawie) zawsze zapas wolnych i-ramek, tak, żeby nie musieli być oni usypiani.


Pierwszy sposób: rozgrzewka

    Pierwsze - łatwiejsze rozwiązanie polega na wprowadzeniu dodatkowego górnego ograniczenia na ilość i-ramek dla procesów nie-SU, powyżej którego nie ma możliwości przydziału nowej i-ramki. Jeżeli żądającym jest proces  nie-SU i żądanego przez niego i-węzła nie znajdziemy w już istniejących i-ramkach, to przy występującej już nadwyżce (ponad określone ograniczenie) zajętych i-ramek nie pozwolimy mu na wzięcie nowej - zostanie uśpiony w kolejce procesów czekających na zwolnienie się i-ramki.


Drugi sposób: kompleksowy

    W drugim rozwiązaniu zajmiemy się modyfikacją nie tylko algorytmów działania modułu, ale także jego struktur danych.
    Będziemy chcieli podzielić i-ramki na dwie grupy :
  1. specjalne
  2. normalne


Uwagi


 Bibliografia

 LabLinux - moduł zarządzający i-węzłami w pamięci
 LabLinux


Autor:    Grzegorz Gawron