링커, 로더, 실행 파일
100개의 프로세스가 같은 공유 라이브러리를 사용하고 있을 때, 물리 메모리 사용 방식으로 올바른 것은?
- A바뀌지 않는 코드 페이지는 하나의 사본을 공유하고, 쓰기가 일어나는 데이터 페이지는 프로세스마다 가진다
- B코드도 데이터도 프로세스마다 100개의 사본을 가진다
- C데이터 페이지까지 포함해 모두 하나를 공유하며, 프로세스끼리 값이 보인다
정답과 해설 보기
정답: A. 바뀌지 않는 코드 페이지는 하나의 사본을 공유하고, 쓰기가 일어나는 데이터 페이지는 프로세스마다 가진다
OS는 각 프로세스의 가상 주소 공간에 공유 라이브러리를 대응시키고, 바뀌지 않는 코드나 상수의 페이지는 같은 물리 페이지를 가리키게 합니다. 변수 같은 쓰기 데이터 페이지는 쓰기가 일어난 시점에 사본을 만드는(카피 온 라이트) 등의 방법으로 프로세스마다 따로 둡니다. 이렇게 해서 100개의 프로세스라도 라이브러리 코드 몫의 메모리는 하나로 충분합니다.
- A. 올바릅니다. 가상 메모리로 같은 물리 페이지를 대응시킵니다.
- B. 코드까지 복사하면 공유 라이브러리의 이점이 없어집니다.
- C. 데이터는 프로세스마다 분리됩니다.