epoll이 아닌 일반적인 신호에 대한 기준에서 볼때는 edge는 신호의 레벨이 바뀌는 지점을 의미합니다. 반면 level은 말 그대로 신호의 level을 의미합니다. 어떤 신호가 특정 level에 있을때 항상 event가 발생하게 하려면 Level Trigger를 사용합니다. 반면 신호의 변화가 있을 때만 event가 발생하게 하려면 Edge Trigger를 사용합니다.
전기 신호를 예로 든다면 High, Low를 각각 1, 0으로 표시했을 때 0->1, 또는 1->0으로 바뀌는 순간에 대한 포착은 Edge Trigger를 사용할 수 있으며 0->1로 가는 경우를 Rising Edge라고 부릅니다. 반대의 경우는 Falling Edge라고 합니다. 반면 0이나 1인 경우를 계속 잡아내고 싶다면 Level Trigger를 사용합니다. 0일 때 event가 발생하는 경우를 Active Low라고 하고 1일 때 event가 발생하는 경우는 Active High라고 합니다.
epoll에 대해서는 제가 아는 바가 없어서 설명드리기 힘들군요.
epoll이 아닌 일반적인 신호에 대한 기준에서 볼때는 edge는 신호의 레벨이 바뀌는 지점을 의미합니다. 반면 level은 말 그대로 신호의 level을 의미합니다. 어떤 신호가 특정 level에 있을때 항상 event가 발생하게 하려면 Level Trigger를 사용합니다. 반면 신호의 변화가 있을 때만 event가 발생하게 하려면 Edge Trigger를 사용합니다.
전기 신호를 예로 든다면 High, Low를 각각 1, 0으로 표시했을 때 0->1, 또는 1->0으로 바뀌는 순간에 대한 포착은 Edge Trigger를 사용할 수 있으며 0->1로 가는 경우를 Rising Edge라고 부릅니다. 반대의 경우는 Falling Edge라고 합니다. 반면 0이나 1인 경우를 계속 잡아내고 싶다면 Level Trigger를 사용합니다. 0일 때 event가 발생하는 경우를 Active Low라고 하고 1일 때 event가 발생하는 경우는 Active High라고 합니다
아주 정확하게 설명을 해 주셨기 때문에 저는 I/O 멀티플렉싱 관점에서 설명을 드리도록 하겠습니다.
레벨트리거와 에지 트리거를 소켓 버퍼에 대응하면, 소켓 버퍼의 레벨 즉 데이터의 존재 유무를 가지고 판단하는 것이
레벨트리거 입니다. 즉 읽어서 해당 처리를 하였다 하더라도 덜 읽었으면 계속 이벤트가 발생하겠지요. 예를 들어
1000바이트가 도착했는데 600바이트만 읽었다면 레벨 트리거에서는 계속 이벤트를 발생시킵니다. 그러나
에지트리거에서는 600바이트만 읽었다 하더라도 더 이상 이벤트가 발생하지 않습니다. 왜냐하면 읽은 시점을 기준으로
보면 더이상의 상태 변화가 없기 때문이죠.. LT 또는 ET는 쉽게 옵션으로 설정 가능합니다.
epoll에 대해서는 제가 아는 바가 없어서 설명드리기 힘들군요.
epoll이 아닌 일반적인 신호에 대한 기준에서 볼때는 edge는 신호의 레벨이 바뀌는 지점을 의미합니다. 반면 level은 말 그대로 신호의 level을 의미합니다. 어떤 신호가 특정 level에 있을때 항상 event가 발생하게 하려면 Level Trigger를 사용합니다. 반면 신호의 변화가 있을 때만 event가 발생하게 하려면 Edge Trigger를 사용합니다.
전기 신호를 예로 든다면 High, Low를 각각 1, 0으로 표시했을 때 0->1, 또는 1->0으로 바뀌는 순간에 대한 포착은 Edge Trigger를 사용할 수 있으며 0->1로 가는 경우를 Rising Edge라고 부릅니다. 반대의 경우는 Falling Edge라고 합니다. 반면 0이나 1인 경우를 계속 잡아내고 싶다면 Level Trigger를 사용합니다. 0일 때 event가 발생하는 경우를 Active Low라고 하고 1일 때 event가 발생하는 경우는 Active High라고 합니다
아주 정확하게 설명을 해 주셨기 때문에 저는 I/O 멀티플렉싱 관점에서 설명을 드리도록 하겠습니다.
레벨트리거와 에지 트리거를 소켓 버퍼에 대응하면, 소켓 버퍼의 레벨 즉 데이터의 존재 유무를 가지고 판단하는 것이
레벨트리거 입니다. 즉 읽어서 해당 처리를 하였다 하더라도 덜 읽었으면 계속 이벤트가 발생하겠지요. 예를 들어
1000바이트가 도착했는데 600바이트만 읽었다면 레벨 트리거에서는 계속 이벤트를 발생시킵니다. 그러나
에지트리거에서는 600바이트만 읽었다 하더라도 더 이상 이벤트가 발생하지 않습니다. 왜냐하면 읽은 시점을 기준으로
보면 더이상의 상태 변화가 없기 때문이죠.. LT 또는 ET는 쉽게 옵션으로 설정 가능합니다.
논리 회로 문제 아닌가요??
level trigger는 0(혹은 1)일때 실행(?)되는것이고,
edge trigger는 positive edge(0 -> 1 바뀌는 경우)나
negative edge(1 -> 0 바뀌는 경우)때 실행됨을 말하는것 같네요.
이상 허접 답변이었습니다.
(위의 답변이 정확한지는 장담을 ㅈㅅ;;)
아~~
epoll에 대해서는 제가
epoll에 대해서는 제가 아는 바가 없어서 설명드리기 힘들군요.
epoll이 아닌 일반적인 신호에 대한 기준에서 볼때는 edge는 신호의 레벨이 바뀌는 지점을 의미합니다. 반면 level은 말 그대로 신호의 level을 의미합니다. 어떤 신호가 특정 level에 있을때 항상 event가 발생하게 하려면 Level Trigger를 사용합니다. 반면 신호의 변화가 있을 때만 event가 발생하게 하려면 Edge Trigger를 사용합니다.
전기 신호를 예로 든다면 High, Low를 각각 1, 0으로 표시했을 때 0->1, 또는 1->0으로 바뀌는 순간에 대한 포착은 Edge Trigger를 사용할 수 있으며 0->1로 가는 경우를 Rising Edge라고 부릅니다. 반대의 경우는 Falling Edge라고 합니다. 반면 0이나 1인 경우를 계속 잡아내고 싶다면 Level Trigger를 사용합니다. 0일 때 event가 발생하는 경우를 Active Low라고 하고 1일 때 event가 발생하는 경우는 Active High라고 합니다.
epoll에 대해서는
아주 정확하게 설명을 해 주셨기 때문에 저는 I/O 멀티플렉싱 관점에서 설명을 드리도록 하겠습니다.
레벨트리거와 에지 트리거를 소켓 버퍼에 대응하면, 소켓 버퍼의 레벨 즉 데이터의 존재 유무를 가지고 판단하는 것이
레벨트리거 입니다. 즉 읽어서 해당 처리를 하였다 하더라도 덜 읽었으면 계속 이벤트가 발생하겠지요. 예를 들어
1000바이트가 도착했는데 600바이트만 읽었다면 레벨 트리거에서는 계속 이벤트를 발생시킵니다. 그러나
에지트리거에서는 600바이트만 읽었다 하더라도 더 이상 이벤트가 발생하지 않습니다. 왜냐하면 읽은 시점을 기준으로
보면 더이상의 상태 변화가 없기 때문이죠.. LT 또는 ET는 쉽게 옵션으로 설정 가능합니다.
참고로 select/poll은 레벨트리거만 지원합니다.
epoll에 대해서는
아주 정확하게 설명을 해 주셨기 때문에 저는 I/O 멀티플렉싱 관점에서 설명을 드리도록 하겠습니다.
레벨트리거와 에지 트리거를 소켓 버퍼에 대응하면, 소켓 버퍼의 레벨 즉 데이터의 존재 유무를 가지고 판단하는 것이
레벨트리거 입니다. 즉 읽어서 해당 처리를 하였다 하더라도 덜 읽었으면 계속 이벤트가 발생하겠지요. 예를 들어
1000바이트가 도착했는데 600바이트만 읽었다면 레벨 트리거에서는 계속 이벤트를 발생시킵니다. 그러나
에지트리거에서는 600바이트만 읽었다 하더라도 더 이상 이벤트가 발생하지 않습니다. 왜냐하면 읽은 시점을 기준으로
보면 더이상의 상태 변화가 없기 때문이죠.. LT 또는 ET는 쉽게 옵션으로 설정 가능합니다.
참고로 select/poll은 레벨트리거만 지원합니다.
정확하게 이해됩니다.
답변주신분들 감사드립니다.
댓글 달기