Co to jest stos? Kiedy i po co zmieniać stos dla aplikacji?

Każdy program wykorzystuje część pamięci wyłącznie do własnego użytku. Taki obszar nazywany jest stosem, ponieważ program składa w nim informacje i je stamtąd odczytuje w razie potrzeby. Rozmiar stosu uzależniony jest od programu, który z niego korzysta.

Jest kilka sposobów na ustawienie rozmiaru stosu:

  • Program może sam sobie przydzielać stos o odpowiednim rozmiarze.

  • Rozmiar stosu może być ustawiony w ikonie programu i stamtąd przez program pobierany.

  • Rozmiar stosu może być przekazany przez mountlistę do sterownika.

  • Przez przejęcie rozmiaru stosu z CLI/Shella z którego dany program został uruchomiony.


Wszystkie programy uruchamiane z CLI/Shella (te ze startup-sequence i user-startup też) przejmują stos o rozmiarze takim, jaki w konsoli jest ustawiony. Domyślnym rozmiarem stosu konsoli jest 4000 bajtów dla AmigaOS 1.3 (i wcześniejszych) oraz 4096 bajtów dla AmigaOS 2.0 i nowszych. W większości przypadków taki rozmiar jest wystarczający, lecz gdy program zawiesza się z niewyjaśnionych przyczyn warto na początek tę wartość zwiększyć.
Rozmiar stosu dla konsoli ustawia się za pomocą polecenia "stack". Składnia komendy:

STACK [rozmiar_stosu_w_bajtach]

Np. STACK 10000 ustawi stos CLI/Shella o rozmiarze 10 000 bajtów.

W jaki sposób sprawdzić, jakiego stosu wymaga dany program?

Na początku warto zajrzeć do jego dokumentacji i sprawdzić, czy autor nie podał takiej informacji w niej.
Jeżeli w dokumentacji nie ma takiej informacji, to pozostaje Ci eksperymentowanie z rozmiarem stosu. Na szczęście nie będziesz musiał bawić się w Sherlocka Holmesa - wystarczy zajrzeć na Aminet i skorzystać z usług programów StackCheck lub WatchStack.

Kiedy warto zwiększać rozmiar stosu?

Na pewno wtedy, gdy używamy jakichkolwiek łat (patch) na system. Nawet jeżeli jest to coś tak niewinnie wyglądającego jak FText, czy PNGIcons. Wiele łat podmieniając funkcje systemowe na własne zwiększa zapotrzebowanie programów na stos. Nie wystarczający rozmiar stosu jest najczęstszą przyczyną nagłego "wieszania" się programów po instalacji jakiejś łatki. Jednak by nie męczyć się ze zwiększaniem stosu we wszystkich programach jakie posiadamy, warto (ponownie) zajrzeć na Aminet i ściągnąć z niego program StackAttack, który automatycznie zwiększa rozmiar stosu wszystkim uruchamianym przez Ciebie programom.
  • Szukaj w dziale

  • Menu PPA.pl

  • Amiga Friendship #3

  • Forum

Muzyczne plumkanie (5) 
Infinity Music Player ... (408) »
Zapowiedzi nowych gier... (5763) »
PiStorm32 Amiga 1200 (664) »
Materiały wideo związa... (483) »
Szukam programu (baza ... (26) 
Mój blog z podsumowani... (18) 
Wyskakujące certyfikat... (6) 
HEX PISTONS 3 (8) 
Głosowanie na buga (do... (32) »
  • Imprezy

kalendarz imprez

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem