포크()
- 자식 프로세스 생성
-> 자식 프로세스~이다 상위 프로세스별도로 할당된 공간.
-> 자식 프로세스~이다 상위 프로세스와 동일한 메모리 구성을 가집니다..
-> 자식 프로세스소유하다 등록하다그리고 프로그램 카운터 레지스터(PC)가지다.
-> 새로 만들어진 소송 절차는 기존 소송 절차독립적이다.
-> 부모~이다 포크() ~ 후에 어린이~에서 PID돌려 주다어린이~이다 포크() ~ 후에 0보고.
기다리다()
- 자식 프로세스만들어진다상위 프로세스호출 기다리다()~이다 자식 프로세스실행되고 종료될 때까지 반환되지 않음.
- 부모의그리고 어린이종속성이 없습니다.
- 경우에 따라 응용 프로그램은 실행 순서를 적용하려고 합니다. 예를 들어, 상위 프로세스는 하위 프로세스가 완료된 후에만 종료됩니다.
수행하다()
- 자체 프로그램이 아닌 독립적인 프로그램 생성
-> 편집기 시작
-> %ls-1 - 운영 체제새이다 이진 이미지붓다 로드 및 재로드 프로그램에 새로운 스택그리고 새로운 더미초기화.
- 두 개의 매개변수
-> 바이너리 파일의 이름
-> 인수 배열
fork()와 exec()를 분리한 이유는 무엇입니까?
- fork()와 exec()를 분리함으로써 새 프로그램을 실행하기 직전에 다른 설정을 조작하고 IO 감소 및 파이프를 활성화할 수 있습니다.
- 포크()그리고 수행하다()의 분리를 통해, 새 프로그램을 시작하기 전에 다양한 설정을 조작할 수 있습니다.입출력 감소수업 파이프할수있다.
-> IO 리디렉션: %cat w3.c > newfile.txt
-> 파이프 : % echo hello world | 화장실
