시스템 프로그래밍(파이프를 이용한 프로그램간 통신)
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

시스템 프로그래밍(파이프를 이용한 프로그램간 통신)에 대한 보고서 자료입니다.

목차

1.프로그램 개요
1)새로운 프로세스 생성 : fork()
2)명명되지 않은 파이프 : pipe()
3) 유닉스 파일 의존 시스템 : Make

2. 프로그램의 구조

3. 프로그램 분석

본문내용

• Document
1.프로그램 개요
1)새로운 프로세스 생성 : fork()
fork()는 프로세스를 복제하도록 한다. 자식프로세스는 부모 프로세스의 거의 정확한 복제이다. 즉 자식 프로세스는 부모 프로세스의 코드, 자료, 스택, 열린화일기술자, 시그널 테이블의 복사본을 상속받는다. 그러나 부모와 자식 프로세스는 구별되는 자식 프로세스 ID번호와 부모프로세스 ID번호를 가지고 있다.
만일, fork()가 성공한다면 부모 프로세스에게는 자식의 PID를 반환하며, 자식 프로세스에게는 0을 반환한다. 만일 실패한다면 부모 프로세스에게로 –1을 반환하며, 자식 프로세스는 생성되지 않는다.
2)명명되지 않은 파이프 : pipe()
pipe는 명명되지 않은 파이프를 생성하고 2개의 파일 기술자를 반환한다. 파이프의 “읽기” 끝과 연관된 기술자는 fd[0]에 저장되고, “쓰기” 끝과 연관된 기술자는 fd[1]에 저장된다.
다음 규칙들은 파이프로부터 읽기를 수행하는 프로세스들에 적용된다.
• 만일 프로세스가 읽기 끝이 닫혀져 있는 파이프를 읽는다면, 그 read()는 입력의 끝을 나타내는 0을 반환한다.
• 만일 프로세스가 읽기 끝이 아직 열려 있는 빈 파이프를 읽는다면, 그 프로세스는 입력이 가능할 때 까지 잠든다.
• 만일 프로세스가 파이프에 현재 존재하는 것보다 더 많은 바이트를 읽으려 한다면, 현재의 모든 내용이 읽혀지고 read()는 실제로 읽혀진 바이트의 수를 반환한다.
다음 규칙들은 파이프에 쓰기를 수행하는 프로세스들에 적용된다.
• 만일 프로세스가 쓰기 끝이 닫혀져 있는 파이프에 쓴다면, 쓰기는 실패하고 쓰기 프로세스는 SIGPIPE 시그널을 받는다. 이 시그널의 디폴트 동작은 수신자를 종료시킨다.
• 만일 프로세스가 파이프가 유지할 수 있는 바이트보다 적은 바이트를 파이프에 쓰려한다면, 그 write()는 중단 없이 한번에 수행된다. 즉, 쓰기 프로세스는 다른 프로세스에 의해 선점(pre-empted)되지 않고, 시스템 호출을 완수할 것이다. 만일 프로세스가 파이프가 유지 할 수 있는 것보다 더 많은 바이트를 쓴다면 , 다른 프로세스에 의해 선점 될 수 있다.
  • 가격1,000
  • 페이지수9페이지
  • 등록일2003.12.08
  • 저작시기2003.11
  • 파일형식워드(doc)
  • 자료번호#235700
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니