TIL - 0624

Kernel of Linux 3강 - System call

fork()

  • PCB , 이미지 복사
  • 부모의 것을 복사함
  • PCB도 같이 복사함 main부터 시작하지 않음 (부모의 것을 복사했기때문에) fork 부터 시작함
  • CPU는 PCB의 stack point 부터 시작함 -> 근데 왜 처음부터 시작하는가? 처음에 설정을 그렇게 해놨기 때문에
  • 부모의 stack 역시 다같이 카피해옴

exec()

  • 복사한 것에 새로운 것을 덮어쓰우는 것
    ````c main() { int pid; pid - fork() if(pid == 0) #child 는 여기서부터 시작함 pirntf(“I am a child”) exectp(“/bin/data”) -> main으로 가서, 처음실행을함 else print(“I am a parent”)

} ````

wait(2) system call

  • (1): command
  • (2): kernel
  • CPU 를 뺏는 역할 함
  • call 했는데 실행이 안되는 경우,