-
Data: 2011-05-27 22:58:34
Temat: Re: Wątki a ramki stosów
Od: Marek Borowski <m...@b...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 27-05-2011 01:00, pozytywne wibracje wrote:
> Gdy mam program wielowątkowy to czy mam stosy w jednej przestrzeni
> adresowej? Przypuśćmy że mam minimalny rozmiar stosu 16 KiB a maksymalny
> 1 MiB, wtedy w podglądzie execa za pomocą viewera Total Commandera mam:
> "Size of Stack Reserve" które odpowiada maksymalnemu, a "Size of Stack
> Commit" minimalnemu.
> Oznacza to że bierze w porcjach 16 KiB globalnej pamięci fizycznej ale
> rezerwuje obszar adresów cały 1 MiB?
Oznacza to tyle iz rezewuje region 1MB w virtualnej przestrzeni
adresowej ale tylko 16KB (2 strony) jest zamapowane na fizyczna pamiec.
Nastepne 4KB strony pamieci do mapowane w miare zapelniaja sie stosu. W
przypadku dojscia do konca generowny jest EXCEPTION_STACK_OVERFLOW.
> Gdy mam wiele wątków, to każdy ma stos w adresie oddzielonym od siebie o
> minimum 1 MiB?
Tak.
> Tworzę nowy wątek za pomocą funkcji CreateThread, jako parametr
> dwStackSize moge podać zero i wtedy stos wątku powinien otrzymać tyle
> miejsca co stos głównego wątku. Natomiast mogę podać rozmiar - jest to
> rozmiar początkowy. Maksymalny jest taki sam dla wszystkich?
Nie. Mozesz podac wiekszy. System postara sie znalesc region o
odpowiedniej wielkosci.
> Mam coś takiego:
> jest stos, 1 MiB rezerwacji adresów, inne wolne adresy na stertę. I
> teraz tworzę wątek, czy stos wątku nie wejdzie na stertę?
Nie. (Generalnie).
> W jaki sposób dla procesu odczytać całą mapę adresów: gdzie jest kod,
> gdzie dane, gdzie rezerwacja sterty a gdzie stosy wątków?
Pobawic sie debugerem.
> Jak wylistować wszystkie adresy stosów, a dla konkretnego stosu jak
> wylistować stos wywołań procedur, czy można w ogóle odróżnić adres
> procedury na stosie od zmiennej przechowywanej na stosie?
Zasadniczo nie.
> Zastanawia mnie też jak Garbage Collector rozpoczyna swoją pracę. Są
> opisy rekurencyjnego zaznaczania które zaczyna się od korzeni ale jak ze
> stosów pobrać te korzenie, poza tym mogą być w rejestrach, a co się
> stanie z wartością z rejestrów przy przełączeniu na inny wątek? czy
> odkładane są na bieżący stos, czy gdzieś indziej?
Zachowywane sa w strukturze CONTEXT w pamieci jadra systemu. Ale
istnieje API umozliajace jej pobranie.
Pozdrawiam
Marek
Następne wpisy z tego wątku
- 27.05.11 23:34 pozytywne wibracje
- 28.05.11 12:37 Marek Borowski
- 28.05.11 12:52 Marek Borowski
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=