Part 3 메모리 관리
Chapter 7 물리 메모리 관리
요약
1.
메모리 관리의 복잡성
a.
과거의 일괄 처리 시스템에서는 한 번에 한 가지 작업만 처리했기 때문에 메모리 관리가 어렵지 않았다.
b.
그러나 오늘날의 시분할 시스템에서는 운영체제를 포함한 모든 응용 프로그램이 메모리에 올라와 실행되기 때문에 메모리 관리가 복잡하다.
2.
컴파일러
a.
컴파일러는 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행할 수 있도록 해주는 언어 번역 프로그램이다.
b.
오류를 발견하고 코드를 최적화하기 위해 컴파일러를 사용한다.
c.
사용자가 소스코드를 작성하면 컴파일러는 컴파일 → 목적 코드와 라이브러리 연결 → 동적 라이브러리를 포함하여 최종 실행의 순서로 작동한다
3.
메모리 관리자의 정책
a.
가져오기 정책: 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책이다.
b.
배치 정책: 가져온 프로세스를 메모리의 어떤 위치에 올려놓을지 결정하는 정책이다.
c.
재배치 정책: 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책이다.
4.
절대 주소와 상대 주소
a.
절대 주소: 실제 물리 주소를 가리키며 메모리 관리자 입장에서 바라본 주소이다.
b.
상대 주소: 사용자 영역이 시작되는 주소를 0번지로 변경하여 사용하는 주소이다.
5.
메모리 오버레이
a.
프로세스의 크기가 실제 메모리(물리 메모리)보다 클 때 전체 프로세스를 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 기법이다.
6.
스왑
a.
메모리가 모자라서 쫓겨난 프로세스를 저장장치의 특별한 공간, 즉 스왑 영역에 모아두는 기법이다.
b.
스왑 영역에서 메모리로 데이터를 가져오는 작업은 스왑인
c.
메모리에서 스왑 영역으로 데이터를 내보는 작업은 스왑아웃이라고 한다.
7.
메모리 분할 방식
a.
가변 분할 방식: 프로세스의 크기에 따라 메모리를 나누는 것이다.
b.
고정 분할 방식: 프로세스의 크기와 상관없이 메모리를 같은 크기로 나누는 것이다.
8.
외부 단편화와 내부 단편화
a.
외부 단편화: 할당할 프로세스의 크기보다 메모리에 남아 있는 조각이 작아서 할당이 불가능한 현상을 말한다.
b.
내부 단편화: 각 메모리 조각에 프로세스를 배치하고 공간이 남는 현상을 말한다.
9.
가변 분할 방식의 메모리 배치 방식
a.
최초 배치: 메모리에서 적재 가능한 공간을 순서대로 찾다가 첫 번째로 발견한 공간에 프로세스를 배치하는 방법이다.
b.
최적 배치: 메모리의 빈 공간을 모두 확인한 후 적당한 크기 가운데 가장 작은 공간에 프로세스를 배치하는 방법이다.
c.
최악 배치: 최적 배치와 정반대로, 빈 공간을 모두 확인한 후 가장 큰 공간에 프로세스를 배치하는 방법이다.
10.
조각 모음
11.
단편화가 발생하면 이미 배치된 프로세스를 옆으로 옮겨 빈 공간들이 하나의 큰 덩어리로 만드는 것을 말한다.
연습문제
1.
소스코드를 한 번에 번역하지 않고 한 행씩 번역하여 실행하는 방식을 무엇이라 하는가?
•
인터프리터
2.
프로그래머가 C나 자바로 소스코드를 작성하여 컴파일하면 일차적으로 만들어지는 코드는 무엇인가?
•
목적코드
3.
컴파일할 때 코드에 라이브러리를 연결하지 않고 코드를 실행할 때 라이브러리를 가져와 실행하는 방식을 무엇이라 하는가?
•
동적 라이브러리
4.
메모리 관리 정책 중 메모리가 꽉 찼을 때 메모리에 있는 어떤 프로세스를 내보낼지 결정하는 것은 무엇인가?
•
재배치 정책
5.
32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가?
•
메모리 주소를 지정하는 레지스터인 메모리 주소 레지스터(MAR)의 크기가 32bit이므로 표현할 수 있는 메모리 주소의 범위가 0~2^32-1
•
총 2^32개이다 (약 4GB)
6.
절대 주소는 실제 물리 주소로, 메모리 관리자 입장에서 바라본 주소이다. 절대 주소와 관계없이 사용자 입장에서 항상 0번지부터 시작하는 주소는 무엇인가?
•
상대 주소
7.
상대 주소를 절대 주소로 변환할 때 사용하는 레지스터는 무엇인가?
•
재배치 레지스터
8.
프로세스의 크기가 물리 메모리보다 클 때 전체 프로세스를 메모리로 가져오는 대신 적당한 크기로 잘라서 가져오는 기법은 무엇인가?
•
메모리 오버레이
9.
메모리 영역이 부족해서 쫓겨난 프로세스를 보관하는 저장장치의 특별한 공간은 무엇인가?
•
스왑 영역
10.
가변 분할 방식에서 사용하지 못하는 작은 메모리 공간이 발생하는 현상을 무엇이라 하는가?
•
외부 단편화
11.
고정 분할 방식에서 똑같이 나누어진 메모리 공간에 작은 조각이 발생하는 현상을 무엇이라 하는가?
•
내부 단편화
12.
가변 분할 방식의 메모리 배치 방식 중 프로세스를 배치하기에 적당한 공간 가운데 가장 작은 공간에 배치하는 방식은 무엇인가?
•
최적 배치
13.
가변 분할 방시의 메모리 배치 방식 중 첫 번째로 발견한 빈 공간에 프로세스를 배치하는 방식은 무엇인가?
•
최초 배치
14.
가변 분할 방식의 메모리 배치 방식 중 가장 큰 공간에 프로세스를 배치하는 방식은 무엇인가?
•
최악 배치
15.
가변 분할 방식에서 서로 떨어진 여러 개의 빈 공간을 합치는 작업을 무엇이라 하는가?
•
조각 모음
16.
메모리 분할 방식 중 프로세스의 크기에 맞도록 1/2 크기로 잘라가면서 메모리를 나누어주는 방식은 무엇인가?
•
버디 시스템