운영체제 아주 쉬운 세 가지 이야기
통칭 OSTEP다
현재 OS 프로젝트 하고 있고 당연하게도 이것이 중요한 참고서가 되기에
관련해서 읽은 거 정리할 계획이다
argument passing와 관련 있는 거 정리한 거 여기에 적겠다
Pintos 프로젝트 2에서 fork()
, exec()
, wait()
은 중대사항이다
특히 exec()
하고 wait
의 규약과 부모-자식 관계 유의깊게 보면 좋다
fork()
시스템 콜fork 함수를 통해 부모 프로세스를 복사한 자식 프로세스를 만든다
두 프로세스의 차이점은 각자만의 공간을 가지고 있다는 것과 fork() 시스템 콜의 반환값이 서로 다르다는 거다
부모 프로세스는 자식 프로세스의 PID를 반환 받고
자식 프로세스는 0을 반환 받는다
순서를 명확히 해놓지 않는 다면 둘 중 작동 순서는 뭐가 먼저일지 알 수 없다
wait()
시스템 콜부모 프로세스가 자식 프로세스 대기하는 경우에 필요하다
작동 순서를 명확히 해야 할때 주로 사용한다
wait()
후 리턴이 올 때까지 잠시 중단하고
리턴값이 올경우 부모 프로세스 다시 작동
exec()
시스템콜별 거 없다
실행 중 프로세스를 새로 주어진 코드와 정적 데이터로 덮어쓰고
힙과 스택 등 프로그램 주소 공간을 새 코드를 위해 초기화한다