„Szorty” to seria wpisów zawierająca krótkie notatki (podstawowe informacje) związane z pytaniami, jakie pojawiają się na rozmowach rekrutacyjnych. Ich poziom trudności będzie różny. Źródłem pytań są zarówno moje doświadczenia jak również informacje od innych deweloperów. Przede wszystkim tą kategorię traktuję jako swój notatnik, lecz mam nadzieję, że każdy znajdzie tu coś dla siebie.


#3. Czym jest stos i sterta ? (C#) – Podstawowe informacje.

Zarówno Stos jak i sterta to obszary pamięci wirtualnej przydzielonej aplikacji podczas jej uruchamiania.

Stos obsługiwany jest w sposób automatyczny. Do jego obsługi nie potrzebna jest ingerencja programisty. Do każdego uruchomionego wątku aplikacji przypisany jest odrębny stos. Przechowuje on zmienne lokalne, wartości przekazywane jako argumenty funkcji, wartości zwracane przez funkcje oraz adresy wywołania funkcji.

Sterta to miejsce w pamięci wirtualnej procesu. Jest wspólna dla wszystkich wątków aplikacji. Przechowywane są tam dynamicznie tworzone struktury danych oraz dynamicznie przydzielone obszary pamięci. W przypadku C# i platformy .NET trafiają tam klasy wraz z ich instancjami oraz tablice, delegaty oraz interfejsy.

Mając na uwadze C# należy wspomnieć, że zarządzaniem i zwalnianiem pamięci zajmuje się Garbage Collector (GC). W telegraficznym skrócie – odpowiada on za usuwanie z pamięci niepotrzebnych elementów. Zachęcam do zapoznania się ze szczegółowymi informacjami na temat GC, które znajdziecie TUTAJ.


Author:

Programista, przedsiębiorca, tancerz ognia. Staram się ogarniać rzeczywistość wyciągając jak najwięcej wartości z tego co daje nam technologia. Jestem miłośnikiem produktywności i wyznawcą stwierdzenia "Done is better than perfect". Od ponad 5 lat staram rozwijać się oraz zdobywać doświadczenie jako programista. Najbliżej mi do aplikacji webowych i technologii .NET, ale od jakiegoś czasu stałem się entuzjastą rozwiązań JavaScriptowych.