목차
1.프로그램 개요
1)새로운 프로세스 생성 : fork()
2)명명되지 않은 파이프 : pipe()
3) 유닉스 파일 의존 시스템 : Make
2. 프로그램의 구조
3. 프로그램 분석
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.프로그램 개요
1)새로운 프로세스 생성 : fork()
fork()는 프로세스를 복제하도록 한다. 자식프로세스는 부모 프로세스의 거의 정확한 복제이다. 즉 자식 프로세스는 부모 프로세스의 코드, 자료, 스택, 열린화일기술자, 시그널 테이블의 복사본을 상속받는다. 그러나 부모와 자식 프로세스는 구별되는 자식 프로세스 ID번호와 부모프로세스 ID번호를 가지고 있다.
만일, fork()가 성공한다면 부모 프로세스에게는 자식의 PID를 반환하며, 자식 프로세스에게는 0을 반환한다. 만일 실패한다면 부모 프로세스에게로 –1을 반환하며, 자식 프로세스는 생성되지 않는다.
2)명명되지 않은 파이프 : pipe()
pipe는 명명되지 않은 파이프를 생성하고 2개의 파일 기술자를 반환한다. 파이프의 “읽기” 끝과 연관된 기술자는 fd[0]에 저장되고, “쓰기” 끝과 연관된 기술자는 fd[1]에 저장된다.
다음 규칙들은 파이프로부터 읽기를 수행하는 프로세스들에 적용된다.
• 만일 프로세스가 읽기 끝이 닫혀져 있는 파이프를 읽는다면, 그 read()는 입력의 끝을 나타내는 0을 반환한다.
• 만일 프로세스가 읽기 끝이 아직 열려 있는 빈 파이프를 읽는다면, 그 프로세스는 입력이 가능할 때 까지 잠든다.
• 만일 프로세스가 파이프에 현재 존재하는 것보다 더 많은 바이트를 읽으려 한다면, 현재의 모든 내용이 읽혀지고 read()는 실제로 읽혀진 바이트의 수를 반환한다.
다음 규칙들은 파이프에 쓰기를 수행하는 프로세스들에 적용된다.
• 만일 프로세스가 쓰기 끝이 닫혀져 있는 파이프에 쓴다면, 쓰기는 실패하고 쓰기 프로세스는 SIGPIPE 시그널을 받는다. 이 시그널의 디폴트 동작은 수신자를 종료시킨다.
• 만일 프로세스가 파이프가 유지할 수 있는 바이트보다 적은 바이트를 파이프에 쓰려한다면, 그 write()는 중단 없이 한번에 수행된다. 즉, 쓰기 프로세스는 다른 프로세스에 의해 선점(pre-empted)되지 않고, 시스템 호출을 완수할 것이다. 만일 프로세스가 파이프가 유지 할 수 있는 것보다 더 많은 바이트를 쓴다면 , 다른 프로세스에 의해 선점 될 수 있다.
추천자료
멀티 프로그래밍 장점 및 단점
PLC 프로그래밍을 위한 이론적 배경
전자공학 자동제어 프로그래밍 - 다이얼로그 박스
OOP[객체지향프로그래밍] java,JSP,EJB,CBD,UML,C# &.Net
콘쉘 스크립트 프로그래밍
객체 지향 프로그래밍 이론 정리, 객체 지향 개념 정리-내가 만든 자료
xml을 이용한 웹프로그래밍(주류쇼핑몰)
[프로그래밍] c언어 포인터정리.ppt
2014년 2학기 JSP프로그래밍 출석대체시험 핵심체크
2015년 2학기 JSP프로그래밍 출석대체시험 핵심체크
2018년 1학기 HTML웹프로그래밍 중간시험과제물 공통(교재 1~6장의 주요용어 설명)
2018년 1학기 HTML웹프로그래밍 기말시험 핵심체크
소개글