-
공룡책 이용하여 운영체제 공부하기 - 12 (process 에서의 운영)운영체제-공룡책 2023. 8. 22. 21:16
■ OS는 반드시 매커니즘을 가져야 한다. (아래와 같은 경우)
- process를 만들 때
- process가 끝났을 때
■ process는 몇몇 새로운 프로세스들을 만들것
- 만들어 지고 있는 프로세스 : 현재 프로세스
- 새로 만들어진 프로세스 : child process(자식 프로세스)
전형적인 리눅스 시스템에서의 프로세스 트리
■ 실행을 위한 두개의 가능성에 대하여
- 부모는 children과 함께 동시적으로 수행하는 것을 지속한다.
- 부모는 몇몇 혹은 전체 children이 종료할 때 까지 기다린다.
■ address- space(주소 공간) 에 대한 2가지 가능성
- child 프로세스(하위 프로세스) 는 부모 프로세스의 복제이다.
- child 프로세스는 새로운 프로그램이 로드 된다.
◆ address - space란?
컴퓨팅에서 주소 공간은 물리 메모리나 가상 메모리, 레지스터, 네트워크 호스트, 주변 기기, 디스크 섹터, 다른 논리적 실체나물리적 실체에 대응되는 주소의 범위를 정의한 공간을 말함
unix의 fork() 시스템 콜을 사용하여 각각의 프로세스를 만드는 것 (아래)
위의 코드를 해석하여 로직을 나타 낸 것 (아래)
main을 실행 하였을 때 -> pid = folk() 라는 객체 생성
pid < 0 일 경우 -> error 처리,
pid == 0 일 경우, child가 수행
pid > 0 이면 child 완료
■ process 종료
- 마지막 상태에서 실행을 마무리한다.
- exit() 시스템 콜: OS에게 삭제 할 것을 요청한다.
- OS 는 모든 리소스들을 할당 해제 및 회수 한다. < -(할당된 메모리, 오픈된 파일, 그리고 I/O buffers 등)
■ zombie 그리고 Orphan
- zombie 프로세스 : 이미 프로세스는 종료되었지만, 부모 프로세스가 아직 wait()를 호출하지 않은 상태 (즉 멈추지 않고 계속 부모 프로세스를 쫒아서 실행되지 않은 채로 따라감)
- Orphan 프로세스: 부모 프로세스가 있지만, wait() 와 종료를 해줄 부모 프로세스가 없을 때
'운영체제-공룡책' 카테고리의 다른 글
공룡책 이용하여 운영체제 공부하기 - 11 (Process Scheduling) (0) 2023.08.20 공룡책 이용하여 운영체제 공부하기 - 10 (Process) (0) 2023.08.18 공룡책 이용하여 운영체제 공부하기 - 9 (system calls) (1) 2023.08.17 공룡책 이용하여 운영체제 공부하기 - 8 (OS service == Operating System Service) (1) 2023.08.15 공룡책 이용하여 운영체제 공부하기 - 7 (Computing Environments) (0) 2023.08.15