Mam pytanie dotyczące rozmiaru stosu procesu w systemie Linux. Czy ten rozmiar stosu jest określony w czasie powiązania i jest zakodowany w pliku ELF?Jaki jest rozmiar procesu stosu na Linuksie w odniesieniu do pthread, fork i exec
Napisałem program, który drukuje rozmiar stosu przez pthread_attr_getstacksize(&attr, &stacksize);
. I jeśli uruchomię ten program bezpośrednio z powłoki, daje to wartość około 10 MB. Ale kiedy I exec
to z wątku, który należy do programu wielowątkowego, daje wartość około 2 MB.
Więc chcę wiedzieć, jakie czynniki wpływają na rozmiar stosu procesu, który jest fork and exec
-ed od jakiegoś procesu nadrzędnego. I czy możliwe jest ustawienie rozmiaru stosu procesu w rodzica w czasie wykonywania przed fork and exec
dzieckiem?
Z góry dziękuję.
Oprócz tego, linux automatycznie rozwija stos w razie potrzeby - ale jesteś ograniczony do tych limitów, a także ogranicza dostępną przestrzeń adresową w obszarach, gdzie można uprawiać hazard. – nos
nos, tylko dla głównego wątku, prawda? – osgx