HP-UX

1 Thread 당 할당되는 stack size 문제

 
신성욱
신규 회원

1 Thread 당 할당되는 stack size 문제

안녕하세요.

스레드 프로그래밍을 하다가 이상한 점을 발견해서 고수님들의 도움을 청하고자 합니다.



c함수중에 pthread_create라는 함수를 사용해 스레드를 생성했는데

하나의 스레드 내에서 실제로 사용되는 데이터 크기가

50k약간 더 되는것 같습니다.

그런데 이상한점은 이 함수에서 기본적으로 제공되는 기본 스텍 크기가 64K라고 레퍼런스에 나와있습니다.

pthread_attr_stacksize라는 함수를 이용해 조정을 해봐도

실제로 스레드 내에서 사용할수 있는 크기는 50k정도로 마찬가지 입니다.

스레드 내에서 100k정도의 stack memory를 사용하려 하는데.방법이 없을런지요.

제생각에 커널단에서 조정가능한 파라메터가 있지 않을까 싶은데..

ㅡㅜ;

도움 부탁드립니다.

4 응답 4
Joseph
초등학생

1 Thread 당 할당되는 stack size 문제

Hi^^,



pthread_attr_stacksize()대신에 pthread_attr_setstacksize()함수를 사용하면 된다네요...



Have a good day^^



- ITRC문서중 -



PROBLEM

What is the default thread stack size on HPUX 10.20 (DCE, or user thread) and

11.x(pthread)? how to set thread stack size to different value?





RESOLUTION



The stacksize attribute is the minimum size (in bytes) of the memory required

for a thread's stack. The default value is machine dependent.



On HPUX (both 10.20 and 11.0), the default thread stacksize is

64 KBytes, the stack is allocated on the heap area via malloc().

The thread stack size can be set by calling the pthread_attr_setstacksize()

routine.



신성욱
신규 회원

1 Thread 당 할당되는 stack size 문제

헉..죄송합니다.

함수명이..틀렸네요.

pthred_attr_setstacksize()함수를 사용했습니다.

일단..리턴되는 값이 잡힌 stack 크기로 알고 있습니다.

크기는 무한정 잡히는데..

실제로 thread내에서 read/write를 해본결과

상황은 위와 같습니다. ㅡㅜ
Joseph
초등학생

1 Thread 당 할당되는 stack size 문제

가능성1.

옵션문제.. 예전에 모투신운용사의 X.25프로그래밍하시는 분인데 컴파일 옵션을 사용하지 않아서 고생한 적이 있어서 옵션으로 해결한 적이 있습니다.

아래 옵션을 참고하세요...

cc -Ae -o test_thread_sighand test_thread_sighand.c -lpthread

(위 옵션을 보니깐 ANSI-C 제품(유상제품)이 필요한 것 같은데 swlist명령어로 제품이 있는지 확인해 보세요)



가능성2.

maxssiz( maxssiz_64bit ) 스택관련 커널값입니다.

#sysdef | grep maxssiz

을 확인해 보시고 값이 충분한지 체크해 보세요..







Good luck^^

신성욱
신규 회원

1 Thread 당 할당되는 stack size 문제

아~ 해결하였습니다.

감사합니다. ^^