대단한 동현 블로그
kqueue와 달리 epoll은 왜 fd에 대한 event 추적이 불가능한가
<고민했던거> 2023. 11. 29. 03:16

c++로 nginx와 비슷하게 동작하는 웹서버를 만들면서 의문이 생겼다.난 kqueue를 사용해 fd에 대한 read write를 kevent에 등록해서 socket, 정적 파일에 대한 I/O작업 buffer_size로 잘라 전부 event로 관리했다. (subject 규칙에 file에 대한 I/O는 멀티플렉싱 event를 통해서만 가능하다고  쓰여 있다)파일을 read 할 때도 socket read 할 때와 동일한 buffersize만큼 읽어 와서 제일 오래 걸리는 I/O작업을 분할하는 데 의의가 있다고 생각했다.buffersize가 100일 때 파일의 크기가 10000이고그 파일을 읽는 작업을 이벤트 하나에서 처리해 버리면(ex. 반복문 안에서 eof까지 무한 read) 100번으로 잘게 쪼개지지 않..

wait함수에 대해서...
<고민했던거> 2023. 3. 22. 20:59

minishell 과제에 새로 추가된 허용함수를 정리중 이상한 것을 발견했다.. #include pid_t wait(int *stat); wait 함수는 자식 프로세스가 종료될 때까지 기다린다. 그런데 함수 인자로 주어진 *stat은 현 상황을 저장하기 위해 주소로 받은 인자로 자식 프로세스에 관한 정보가 아니다. 여태 과제에서 주어진 허용 함수는 참고하고 싶거나 저장하고 싶은 데이터를 인자로 받았었다. 예를 들어 malloc (size) 는 size만큼 메모리를 할당 free(addr) addr에 접근해서 메모리 해제 sleep(sec) sec만큼 기다림 등등 그런데 wait(stat) 에선 인자로 받지 않은 자식 프로세스의 정보를 어디선가 받고 그동안 기다리는 함수인데 어떤 식으로 동작하는지 궁금해서..

반응형