리눅스를 공부한지 얼마 안되는 초보입니다.
쓰레드와 fork를 이용한 서버 프로그래밍을 하고 있는데
프로그램을 실행 시키면
pthread_create() error
: Resource temporarily unavailable
이런 에러 메세지가 뜨면서 중간에 쓰레드가 제대로 생성 되지 않는 것 같아서
아래의 명령어를 쳐서
지금 현재 제 시스템 상태를 확인 했습니다.
----------------------------------------------------------------------
Linux debian 2.4.18 #1 SMP 2002. 05. 10. (금) 03:25:09 KST i686 unknown
2.2 버젼에서 최신 버젼으로 받아서 컴파일 했습니다.
-------------------------------------------------------------------
jkmks@debian:ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2048
virtual memory (kbytes, -v) unlimited
-----------------------------------------------------------------
질문 1 :
위에 보면 max user processes (-u) 2048
이렇게 설정되어 있는데.
커널 2.4 대에서는 최대 프로세스 갯수가 동적으로 할당 된다고 들었습니다.
커널 2.4에서는 어떤 부분을 고쳐야지 2048이라는 값이 unlimited로 바꿀수 있나요?
질문 2 :
pthread_create() error
: Resource temporarily unavailable
이러한 메시지가 뜨는 원인에 대해서 자세하게 설명 해 주세요 ^^;;;;
제가 생각하기에는 쓰레드가 light Process이기 때문에 위의 제한에
걸려서 리소스 부족으로 에러가 생성된다고 생각되는데
다른 이유도 있나요?
질문 3 :
커널 컴파일에 대한 질문입니다.
(헤헤헤... 제가 모르는게 많아서 ^^;;;;)
처음에 커널 컴파일할때
asm과 linux, scsi
이거에 대해서 커널소스로 링크를 해야 된다고 하던데,
만약에 링크를 안시켜주고 컴파일 하면
/usr/include/linux
요기에 있는 파일을 참조하게 되나요?
아니면
/usr/src/linux/include/linux 이 부분의 내용으로 컴파일 한 다음에
이 내용들을 /usr/include/linux 에 카피를 시키는 건가요?
데비안에서는 자동 설정 된다고 하는데..
약간 미심쩍인 부분이 이어서....
답변 부탁드리겠습니다 :)