프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위로서 가벼운 프로세스라고 불리는 것은 무엇인가?
스레드
•
프로세스 내에서 실행되는 흐름의 단위 혹은 CPU 스케줄링의 기본 단위
•
하나의 프로세스는 여러개의 스레드로 구성
•
스레드는 프로세스 내에서 Code, Data, Heap 영역을 공유한다.
•
스레드별로 자신만의 스택과 레지스터 : 스택을 독립적으로 할당하는 이유? →스택 메모리 공간이 독립적이라는 것은 독립적인 함수 호출이 가능하다는 것 → 독립적인 실행 흐름이 가능
•
한순간에 하나의 스레드만 실행
스레드와 프로세스 차이점
•
프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위
•
스레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위
고아 프로세스를 방지하기 위해 부모 프로세스는 어떤 시스템 호출을 사용하는가?
wait()
•
부모 프로세스가 먼저 종료됨으로써 고아 프로세스가 생기는 것을 방지
•
부모 프로세스는 wait() 시스템 콜을 호출하여 자식 프로세스가 종료될 때까지 자신의 실행을 잠시 중단하고, 자식 프로세스가 종료되면 wait()는 리턴함
작업이 끝난 프로세스의 자원을 회수하는 행위를 무엇이라고 하는가?
가비지 컬렉션
•
동적 할당된 메모리 영역 가운데 더 이상 사용할 수 없게 된 영역을 탐지하여 자동으로 해제하는 기법이다. 더 이상 사용할 수 없게 된 영역이란, 어떤 변수도 가리키지 않게 된 영역을 의미한다.
모든 프로세스를 부모-자식 관계로 만들어 자원 회수를 용이하게 하는 프로세스의 구조는 무엇인가?
프로세스 계층 구조
•
부모 프로세스를 복제하여 자식 프로세스를 만드는 방법
•
부모 프로세스가 자신의 자원을 자식 프로세스에 상속하고 자식 프로세스가 종료되면 그 자원을 회수한다.