본문 바로가기

개발/Server2

[C언어] 좀비 프로세스를 없애는 더블 fork().. fork()를 이용하여 서버 프로그래밍을 할 시, 유용한 방법을 소개하기로 한다. 이는 Steven아저씨 책 Advanced Programming in the Unix Environment 202쪽에 나와 있는 방법이기도 하다. 우선 좀비 프로세스에 대해서 알아야 한다.좀비 프로세스:프로세스가 뒤졌는데, 아무도 이놈의 장례를 치뤄주지 않아 뒤진 상태로 리소스를 몽땅 가지고 있는 상태.. 뭐 이미 알겠지만, 프로세스가 뒤지면 가지고 있던 파일들 할당 받았던 모든 메모리를 자동으로 모두 해제되고 참 좋으다. 하지만, 장례를 치뤄주지 않으면, 그냥 좀비가 되어서 내 서버를 잠식하고, 결국에는 서버 전체적으로 fork()가 안되는 매우 위험한 상황까지 발생한다. 그럼 좀비 프로세스는 누가 장례를 치뤄주는가..?.. 2012. 8. 28.
[C언어] 쓰레드의 사용 쓰레드는 사용하기 가장 까다로운 녀석이다.대부분의 어설픈 개발자들이 무턱대고 쓰다가 프로젝트가 끝나지 못하는 경험을 하게 되며, 그렇지 않더라도 자신의 잘못을 모르고 어설프게 쓰래드를 쓰고 있을 것 같다. 여기서 이야기 하고자 하는 것은 매우 간단한 몇가지만 짚고 넘어간다. 실수하기 쉬운 내용들... 쓰레드의 시작#include int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);쓰레드는 이 함수로부터 시작된다. 그리고 쓰레드가 죽는 원인은 다음 3가지로 정의할 수 있다.쓰레드 자신이 pthread_exit를 호출한 경우: 해당 함수 인자를 종료 값으로 pthr.. 2012. 8. 28.