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 했는데 실행이 안되는 경우,