네트워크

Process

가을맛 2020. 9. 29. 16:52

Process

  • 실행 중인 프로그램
  • 운영체제에 의해 각 프로세스 마다 독립적인 주소공간(virtual adress)이 할당된다.
  • 프로그램은 일련의 명령어들로 구성된 파일이다.
  • 유닉스의 모든 프로세스는 init 프로그램을 기반으로 하여 fork() 및 exec()이 발생한다.

 

 

fork() : 프로세스는 다른 프로세스(parent process)에 의해 생성된다

(예외: init 프로세스, systemd 프로세스는 다른 프로세스에 의해 생성되지 않음)

 

exec() : 커널은 해당 프로그램을 메인메모리에 장착한다. 

exec()을 하게 되면 기존의 a.out 프로그램은 새롭게 부른 /bin/ls에 의해서 덮어지게 된다.

ip(instr. Pointer)를 특정 프로그램의 시작 주소로 세팅하여 해당 프로세스를 시작할 수 있다.

 

 

참고

 

[유닉스] fork와 exec

fork와 exec에 관해서 알아보도록 한다.

blackinkgj.github.io