[쉽게 배우는 운영체제] 제 7장 물리 메모리 관리 연습문제 풀이 정답 (심화문제)
[연습문제]
1. 소스코드를 한번에 번역하지 않고 한 행씩 번역하여 실행하는 방식을 무엇이라 하는가?
- 인터프리터
2. 프로그래머가 C나 자바로 소스코드를 작성하여 컴파일 하면 일차적으로 만들어지는 코드는 무엇인가?
- 목적코드
3. 컴파일할 때 코드에 라이브러리를 연결하지 않고 코드를 실행할 때 라이브러리를 가져와 실행하는 방식을 무엇이라 하는가?
- 동적 라이브러리
4. 메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가?
- 재배치
5. 32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가?
- 4GB
6. 절대 주소는 실제 물리 주소로, 메모리 관리자 입장에서 바라본 주소이다. 절대 주소와 관계 없이 사용자 입장에서 항상 0번지부터 시작하는 주소는 무엇인가?
- 상대 주소
7. 상대 주소를 절대 주소로 변환할때 사용하는 레지스터는 무엇인가?
- 재배치 레지스터
8. 프로세스의 크기가 물리 메모리보다 클 때 전체 프로세스를 메모리로 가져오는 대신 적당한 크기로 잘라서 가져오는 기법은 무엇인가?
- 메모리 오버레이
9. 메모리 영역이 부족해서 쫓겨난 프로세스를 보관하는 저장장치의 특별한 공간은 무엇인가?
- 스왑 영역
10. 가변 분할 방식에서 사용하지 못하는 작은 메모리 공간이 발생하는 현상을 무엇이라 하는가?
- 외부 단편화
11. 고정 분할 방식에서 똑같이 나누어진 메모리 공간에 작은 조각이 발생하는 현상을 무엇이라 하는가?
- 내부 단편화
12. 가변 분할 방식의 메모리 배치 방식 중 프로세스를 배치하기에 적당한 공간 가운데 가장 작은 공간에 배치하는 방식은 무엇인가?
- 최적 배치
13. 가변 분할 방식의 메모리 배치 방식 중 첫 번째로 발견한 빈 공간에 프로세스를 배치하는 방식은 무엇인가?
- 최초 배치
14. 가변 분할 방식의 메모리 배치 방식 중 가장 큰 공간에 프로세스를 배치하는 방식은 무엇인가?
- 최악 배치
15. 가변 분할 방식에서 서로 떨어진 여러 개의 빈 공간을 합치는 작업을 무엇이라 하는가?
- 조각 모음
16. 메모리 분할 방식 중 프로세스의 크기에 맞도록 1/2 크기로 잘라가면서 메모리를 나누어주는 방식은 무엇인가?
- 버디 시스템
[심화문제]
1. 컴파일러와 인터프리터를 비교하여 설명하시오.
- 컴파일러는 소스코드를 번역후 한번에 실행, 인터프리터는 소스코드를 한줄씩 번역하며 실행한다.
2. 컴파일 과정에 대해 설명하시오.
- 소스코드를 컴파일러로 컴파일 하여 목적코드를 만들고, 목적코드와 라이브러리를 연결한다. 후에 동적 라이브러리를 포함하여 최종 실행한다.
3. 메모리 관리자가 수행하는 세가지 작업에 대해 설명하시오.
- 가져오기 작업 : 프로세스나 데이터를 메모리로 가져오는 작업
- 배치 작업 : 가져온 프로세스를 메모리에 어떤 위치에 올릴지 결정하는 작업
- 재배치 작업 : 새로운 프로세스를 가져올 때 메모리가 꽉 찼다면 오래된 프로세스를 내보냄
4. 절대 주소와 상대 주소에 대해 설명하시오.
- 절대주소는 메모리 관리자 입장에서 바라본 주소이며 상대주소는 프로세스 입장에서 바라본 주소이다. 상대주소는 항상 주소 공간이 0부터 시작하므로 편리하다.
5. 가변 분할 방식의 장단점을 설명하시오.
- 장점 : 프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치한다.
- 단점 : 메모리 관리가 복잡하다, 외부단편화 문제 발생
6. 고정 분할 방식의 장단점을 설명하시오.
- 장점 : 메모리를 일정한 크기로 나누어 관리하기 때문에 메모리 관리가 수월하다.
- 단점 : 쓸모 없는 공간으로 인한 메모리 낭비가 발생한다. 내부 단편화 발생
7. 버디 시스템에 대해 설명하시오.
- 가변 분할 방식과 고정 분할 방식의 하이브리드 형태로 프로세스의 크기에 맞게 1/2로 자르고 프로세스를 배치한다. 이는 가변 분할 방식의 복잡도를 줄이고 고정 분할 방식 처럼 빠른 메모리 할당이 가능하다. 비슷한 크기의 조각들이 서로모여 조각모음에 유리하다. 하지만 내부 단편화가 존재한다.