next up previous contents
Next: Pseudosystemy plików Up: Systemy plików specjalnego przeznaczenia Previous: Streszczenie   Spis rzeczy

Subsections

Tymczasowe systemy plików

Wiele programów (np. kompilatory i zarządcy okienek) intensywnie używa plików tymczasowych do zapisywania wyników pośrednich faz wykonania. Pliki te są tworzone na krótko (usuwane przy zakończeniu działania aplikacji) i nie muszą być trwałe (nie muszą przetrwać awarii komputera). Dlatego potrzebny jest system plików z szybkim tworzeniem i dostępem do plików.

Wykorzystanie pamięci podręcznej

Jeśli nic nie zrobimy, to i tak nie jest źle. Jądro wykorzystuje buforową pamięć podręczną, aby opóźnić zapis danych na dysk. Pliki tymczasowe zazwyczaj są usuwane zanim zajdzie potrzeba zapisania ich na dysk.

Tworzenie plików tymczasowych nadal jest jednak wolne, bo zadania te wymagają wykonania synchronicznych operacji na metadanych (np. na katalogach).

RAM-dyski

RAM-dyski są systemami plików, które ,,udają'' fizyczne partycje dysku, lecz w rzeczywistości umieszczone są całkowicie w pamięci operacyjnej. Na RAM-dysku można zainstalować dowolny system plików w standardowy sposób (newfs()).

Główna wadą takiego rozwiązania jest poświęcenie dużej ilości pamięci na RAM-dysk i słabe wykorzystanie zasobów systemowych. Ponadto, przy projektowaniu tego systemu nie zwrócono uwagi na problem ,,potrójnych kopii'' danych: gdy wykonujemy operację read() dane są kopiowane z dysku do bufora pamięci podręcznej, a następnie do RAM-dysku.

System plików mfs

Mfs - Memory file System opracowano na Uniwersytecie w Berkeley. Cały system plików tworzy się w wirtualnej przestrzeni adresowej procesu, który wykonał operację jego montowania. Proces ten nie wraca z funkcji mount, ale działa jak serwer operacji wejścia-wyjścia dla tego systemu plików.

Gdy proces chce wykonać operację we-wy na pliku systemu mfs:

  1. Proces wstawia zlecenie do kolejki mfsdata,
  2. budzi proces montujący i usypia. (Proces zna pid procesu montującego, który jest zapisany w strukturze mfsnode)
  3. Proces montujący spełnia żądanie (kopiuje dane)
  4. i budzi proces zleceniodawcy.

Strony systemu tmpfs rywalizują o pamięć i mogą być przeniesione do obszaru wymiany. Pozwala to na obsługę plików tymczasowych o rozmiarze większym, niż rozmiar pamięci operacyjnej.

Rysunek: Schemat działania systemu plików mfs.
\begin{figure}\centering\includegraphics{ela-obrazki/mfs.ps}
\end{figure}
Główną wadą tego systemu plików jest konieczność wykonywania dwóch przełączeń kontekstu przy każdej operacji we-wy. Badania wykazały jednak, iż ten system jest dwukrotnie bardziej efektywny przy operacjach we-wy oraz wielokrotnie szybszy przy przy wykonywaniu dużej liczby operacji na metadanych.

System plików tmpfs

System plików tmpfs opracowano w Sun Microsystems.

Tmpfs jest zaimplementowany w całości w jądrze. Wszystkie metadane plików przechowywane są w niestronicowanej pamięci przydzielanej ze sterty. Dane z plików znajdują się w pamięci stronicowanej i są reprezentowane jako strony anonimowe (ang. anonymous pages). Każda strona jest odwzorowana za pomocą obiektu anonimowego (ang. anonymous object, struct anon), w którym pamięta się położenie strony. Każdy tmp-węzeł zawiera wskaźnik do mapy anonimowej (ang. anonymous map, struct anon_map) wszystkich obiektów anonimowych pliku.

Rysunek: Schemat działania systemu plików tmpfs.
\begin{figure}\centering\includegraphics{ela-obrazki/tmpfs.ps}
\end{figure}
Proces może odwzorować plik systemu tmpfs za pomocą funkcji mmap w swoją przestrzeń adresową. Daje to bardzo szybki i bezpośredni dostęp do danych w plikach tymczasowych.

System plików z opóźnieniem montowania

System plików z opóźnieniem montowania (ang. File System by Delay Mount Option) jest udoskonaleniem najprosteszego wariantu szybkiej obsługi plików plików tymczasowych - korzystania z pamięci podręcznej.

W funckji mount udostępnia się dodatkową opcję opóźniania (ang. delay), która powoduje ustawienie specjalnego znacznika dla stron z tego systemu. Programy uaktualniające synchronicznie dysk (np. funkcja systemowa sync) trzeba tak zmodyfikować, by nie usuwały strony od razu, ale najpierw zmieniały jej stan na dirty opóźniając w ten sposób zapis strony na dysk.

To rozwiązanie jest efektywne, ale wymaga modyfikacji programów zapisujących dane na dysk.


next up previous contents
Next: Pseudosystemy plików Up: Systemy plików specjalnego przeznaczenia Previous: Streszczenie   Spis rzeczy
Elżbieta Krępska 2004-01-19