← 질문 목록
#392깊이 0

유닉스 파이프는 프로세스 간 데이터를 어떻게 전달하는가?

운영체제

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

유닉스 파이프는 커널 내부 버퍼로 한 프로세스의 출력을 다른 프로세스의 입력으로 전달한다.

  1. 프로세스 A
  2. 그다음은 커널 파이프 버퍼입니다. write()로 데이터 기록

    커널 파이프 버퍼
  3. 그다음은 프로세스 B입니다. read()로 데이터 읽기

    프로세스 B

파이프는 단방향 통신 채널이다. 커널 메모리에 임시 공간을 할당받아 FIFO 방식으로 작동한다. 두 프로세스는 각각 다른 파일 디스크립터로 이 버퍼를 참조한다.

버퍼가 비어있으면 읽기 요청은 데이터가 들어올 때까지 차단된다. 반대로 버퍼가 가득 차면 쓰기 요청이 차단된다.

읽는 프로세스가 종료되면 커널은 쓰는 프로세스에 SIGPIPE 신호를 보낸다. 수신자가 없으면 쓰기 작업을 멈춰 자원 낭비를 방지한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

유닉스 파이프는 프로세스 간 데이터를 어떻게 전달하는가?