2012-05-09 2 views
0

적어도 리눅스에서는 파일 디스크립터 세트를 감시하고 준비된 첫 번째 파일 디스크립터를 감시하는 시스템 호출이 있는지 궁금해했다. 조작.리눅스 파일 디스크립터 멀티플렉싱의 정책

저는 select으로 작업했으며, select은 시계의 설명자에 일종의 FirstComeFirstServed 정책을 적용 할 것을 기대하지 않았습니다. 그 구현은 폴링에 약간의 변형이 있어야하기 때문입니다.

어쩌면 이벤트 중심 처리기를 요청할 수도 있지만 그 단순한 존재 이상으로 아무것도 알지 못합니다. epoll. 그 epoll도 사용할 수 있습니다 제외

감사

+0

왜이 FCFS 동작이 필요합니까? –

+0

여러 인터페이스에서 패킷 스니핑. – ziu

+0

'select (2)'는 어떤 FD가주의를 필요로하는지 이미 밝혀 냈습니다. 이것은 당신이 필요로하는 것과 어떻게 다른가? –

답변

1

그 순간에주의가 필요한 (select/poll/epoll가) 모든 FDS 신호를 모든 이벤트 디멀티플렉서는 차이가 없다, (시계가 당신이 제공 한 설정 기준) 가장자리 - 트리거 방식으로.

멀티 태스킹 OS에서 실행 중일 때 언제든지 결과 집합에 여러 개의 FD가 추가로 포함될 수 있으므로 프로세스가 예약 될 때까지 여러 이벤트가 발생할 수 있습니다. 참고 : 프로세스를 높은 우선 순위 또는 실시간 우선 순위로 설정하여 RT (Real-Time) 커널을 실행하면 ...

+0

여러 개의 FD가 준비되면, "서비스"명령은 시계 세트의 FD 순서에 따라 달라집니다. 내가 맞습니까? – ziu

+0

시계 세트에 주문이 없습니다. ** set **, 단어의 수학적 의미입니다. 결과에서 ** 아무런 ** 주문도 없습니다 ... 당신은 먼저 봉사 할 FD를 결정합니다. –

+0

따라서 스케줄러 등으로 인해 여러 디스크립터가 준비가되었을 때 FCFS를 적용하지 않는다고 가정합니다. – ziu