유닉스/리눅스는 blocking 시스템 호출이 있습니다.
전형적인 예가 select(), accept(), connect(), send(), recv()등인데요.
blocking system call들은 해당기능를 수행하기 까지는 멈춰있다는
의미로 해석해도 무방하겠습니다.
blocking system call은 다음의 상황에서 빠져나오게 됩니다.
1. 기능수행성공
2. 기능수행실패
3. 시그널을 받음
시그널의 소스
1. 커널 : sleep(), alarm()등을 사용하면, 커널이 해당 시스템호출에 대해 조건이 만족되면 시그널을 준다. 예를들어, 소켓연결의 경우 원격지가 연결을 단절하면, SIG_PIPE라는 시그널을 발생시킨다. 다시 말하자면 커널이 SIG_PIPE라는 시그널을 해당 소켓을 열고 있는 프로세스에게 보낸다.
2. 프로세스 : 다른 프로세스에서 signal()을 사용해서 준다. shell의 경우에는 사용자가 Ctrl+C를 누르면 이를 시그널을 보내라는 의미로 인식하고 shell이 해당 프로세스(foreground에서 수행중인)에게 시그널을 날린다. 또는, 사용자가 kill이라는 유틸리티를 이용하여 시그널을 보낼수도 있다.
시그널의 종류는 다양하며, blocking system call은 시그널의 종류에 관계없이 인터럽트된다.
따라서, blocking system call을 사용하는 프로그램에서는 시그널핸들링 루틴을 필수적으로 작성하여 처리하도록한다.
또한, c로 프로그램하는 경우, blocking system call을 수행한 후에는 반드시 시그널에 대한 비교 판단루틴(if문으로)이 따라붙어주어야한다
에구, 쓰다보니 문어체가 되어버렸네요. 하여간 보탬이 되시길......
유닉스/리눅스는 blocking 시스템 호출이 있습니다. 전형적인 예
유닉스/리눅스는 blocking 시스템 호출이 있습니다.
전형적인 예가 select(), accept(), connect(), send(), recv()등인데요.
blocking system call들은 해당기능를 수행하기 까지는 멈춰있다는
의미로 해석해도 무방하겠습니다.
blocking system call은 다음의 상황에서 빠져나오게 됩니다.
1. 기능수행성공
2. 기능수행실패
3. 시그널을 받음
님의 경우에는 3번에 해당한다고 볼 수 있습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
답변 감사드립니다.제 경우가 3번, 시그널을 받은경우라 하셨는데.
답변 감사드립니다.
제 경우가 3번, 시그널을 받은경우라 하셨는데..
조금 막연한 질문이긴 하지만 보통 어떠한 경우에 시그널을 받는지 궁금합니다.
가끔은 밥을 굶어도 살 수 있다.
[quote="버그소년"]조금 막연한 질문이긴 하지만 보통 어떠한
시그널의 소스
1. 커널 : sleep(), alarm()등을 사용하면, 커널이 해당 시스템호출에 대해 조건이 만족되면 시그널을 준다. 예를들어, 소켓연결의 경우 원격지가 연결을 단절하면, SIG_PIPE라는 시그널을 발생시킨다. 다시 말하자면 커널이 SIG_PIPE라는 시그널을 해당 소켓을 열고 있는 프로세스에게 보낸다.
2. 프로세스 : 다른 프로세스에서 signal()을 사용해서 준다. shell의 경우에는 사용자가 Ctrl+C를 누르면 이를 시그널을 보내라는 의미로 인식하고 shell이 해당 프로세스(foreground에서 수행중인)에게 시그널을 날린다. 또는, 사용자가 kill이라는 유틸리티를 이용하여 시그널을 보낼수도 있다.
시그널의 종류는 다양하며, blocking system call은 시그널의 종류에 관계없이 인터럽트된다.
따라서, blocking system call을 사용하는 프로그램에서는 시그널핸들링 루틴을 필수적으로 작성하여 처리하도록한다.
또한, c로 프로그램하는 경우, blocking system call을 수행한 후에는 반드시 시그널에 대한 비교 판단루틴(if문으로)이 따라붙어주어야한다
에구, 쓰다보니 문어체가 되어버렸네요. 하여간 보탬이 되시길......
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기