실제 shell에서 pipe의 구현이 어떻게 이루어 지나요?
글쓴이: dgsquare / 작성시간: 월, 2005/05/30 - 5:42오후
학교 실습삼아 shell을 제작하고 있습니다. 거의 다 끝났구여 ^^... 그런데 하다가 궁금한 점이 생겼습니다.
bash나 cshell등 자주쓰이는 shell에서 pipe나 redirection등의 내부 구현이 어떻게 되는지 알고 싶습니다.
제가 구현한 shell에서는 하나의 단형 명령어들을 읽어드려서, 순차적으로 처리하고 있습니다.
예를 들어,
'ls -al | more | wc' 이런 구문이 있을시.
ls -al을 실행시키고, more를 실행하고, wc를 실행한 다음 마지막 모든 child가 종료시까지 대기하고, 최종 결과를 추출합니다. parent 밑에 child가 3개 형성되는 것입니다.
그런데, 다른 책들을 보니 pipe처리를 재귀적으로 수행하는 것을 보았습니다. 즉 parent밑에 child1, child1밑에 child2, child2밑에 child3이 호출되는 식으로 만들었더군요.
어떤 구조가 좋은지, 그리고 실제로는 어떻게 구현되는지 간단히 나마 알고 싶습니다. 관련 자료에 대해서 알려주시면 더욱 고맙구요. (찾아봤는데, 잘 나오지가 않네여 :shock: )
그럼 즐프하세요-!
Forums:
댓글 달기