Pok-13-wyk-Slajd39

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Środowisko czasu wykonania – system DPP

Środowisko czasu wykonania – system DPP


System DPP, w najprostszym przypadku, musi udostępniać dwie operacje:

  • alokację pamięci o zadanym rozmiarze, w niektórych językach służą do tego funkcje biblioteczne (w języku C – funkcja malloc), w innych – słowa kluczowe (w języku C++ – słowo kluczowe new)
  • uzyskanie dostępu do zawartości przydzielonego bloku, w językach programowania służą do tego celu operatory adresowania pośredniego (w Pascalu – ‘^’, w C – ‘*’ i ‘->’)

Problem zwalniania przydzielonej przez system DPP pamięci może być rozwiązany na dwa sposoby:

  • zwalnianie następuje w wyniku wywołania określonego podprogramu (w języku C – funkcji free) lub użycia słowa kluczowego (w C++ – słowa kluczowego delete)
  • język nie udostępnia możliwości jawnego zwalniania pamięci, jest ona automatycznie oczyszczana w trakcie procesu tzw. zbierania nieużytków.

Mechanizm zbierania nieużytków automatycznie zwalnia niedostępne obszary pamięci, czyli takie, które nie są wskazywane przez żadne wskaźniki. Jego wykorzystanie istotnie zmniejsza liczbę błędów związanych z używaniem pamięci dynamicznej, ale budzi też pewne kontrowersje ze względu na trudne do przewidzenia czasy odpowiedzi operacji (co jest mało istotne w systemach ogólnego przeznaczenia). Jednak w językach przeznaczonych do implementacji systemów silnie uwarunkowanych czasowo albo wcale się z niego nie korzysta, albo umożliwia się dostęp do obu mechanizmów zwalniania pamięci (Ada).


<< Poprzedni slajd | Spis treści | Następny slajd >>