작성
·
182
답변 3
0
0
답변이 이렇게 빨리 해주시다니! 감사합니당
후자로 얘기해주셨던 부분은 non-blocking io 인 경우에는 wait() 시스템 콜로 부모의 프로세스가 끝날 때까지 기다린 이후에 인터럽트를 받아서 non-blocking io를 실행하면 된다는 얘기이신거죠?
0
좋은 의문이네요.
말씀하신 상황에서 child가 read() 했을 때, buffer에 아무 것도 없다면 어떤 일이 벌어지나요?
blocking io일 경우에 buffer에 뭔가 쓰여질 때까지 계속 읽으려고 하고 있겠죠?
그 후에 parent가 write()를 하고 나면 child가 그것을 읽을 수 있으니까
파이프의 정상 동작에는 문제가 없습니다.
non-blocking io일 경우에도 wait하고 있다가 parent의 signal을 받아서 깨어나니까
파이프의 정상 동작에는 문제가 없겠지요.