Process API –

포크()

  • 자식 프로세스 생성
    -> 자식 프로세스~이다 상위 프로세스별도로 할당된 공간.
    -> 자식 프로세스~이다 상위 프로세스와 동일한 메모리 구성을 가집니다..
    -> 자식 프로세스소유하다 등록하다그리고 프로그램 카운터 레지스터(PC)가지다.
    -> 새로 만들어진 소송 절차는 기존 소송 절차독립적이다.
    -> 부모~이다 포크() ~ 후에 어린이~에서 PID돌려 주다어린이~이다 포크() ~ 후에 0보고.

기다리다()

  • 자식 프로세스만들어진다상위 프로세스호출 기다리다()~이다 자식 프로세스실행되고 종료될 때까지 반환되지 않음.
  • 부모의그리고 어린이종속성이 없습니다.
  • 경우에 따라 응용 프로그램은 실행 순서를 적용하려고 합니다. 예를 들어, 상위 프로세스는 하위 프로세스가 완료된 후에만 종료됩니다.

수행하다()

  • 자체 프로그램이 아닌 독립적인 프로그램 생성
    -> 편집기 시작
    -> %ls-1
  • 운영 체제새이다 이진 이미지붓다 로드 및 재로드 프로그램에 새로운 스택그리고 새로운 더미초기화.
  • 두 개의 매개변수
    -> 바이너리 파일의 이름
    -> 인수 배열

fork()와 exec()를 분리한 이유는 무엇입니까?

  • fork()와 exec()를 분리함으로써 새 프로그램을 실행하기 직전에 다른 설정을 조작하고 IO 감소 및 파이프를 활성화할 수 있습니다.
  • 포크()그리고 수행하다()의 분리를 통해, 새 프로그램을 시작하기 전에 다양한 설정을 조작할 수 있습니다.입출력 감소수업 파이프할수있다.
    -> IO 리디렉션: %cat w3.c > newfile.txt
    -> 파이프 : % echo hello world | 화장실