-
[운영체제] 7. 메모리 관리운영체제 2019. 12. 22. 20:58
메모리 관리
- 프로세스들을 위해 메모리 할당, 제거, 보호하는 활동
- 디스크에 있는 프로그램을 실행하려면 먼저 메모리에 적재 후 메모리 관리자가 예약된 메모리를 할당해주는 것
- 메모리 관리의 이중성 : 프로세스 입장에서 작업의 편리함과 관리자 입장에서 관리의 편리함이 충돌을 일으키는 것
컴파일러
- 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행할 수 있도록 해주는 언어 번역 프로그램
- 오류를 발견하고 코드를 최적화하기 위해 컴파일러를 사용
- 사용자가 소스코드를 작성하면 컴파일러는 컴파일 -> 목적코드와 라이브러리 연결 -> 동적 라이브러리를 포함해 최종 실행의 순서로 작동
- 인터프리터 : 소스코드를 한 행씩 번역해 실행
메모리 관리 정책
- 가져오기 정책
- 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책
- 프로세스가 요청할 때 메모리로 가져오는 것이 일반적인 방법이지만, 필요하다고 예상되는 데이터를 미리 가져오는 방법도 있다.
- 배치 정책 : 가져온 프로세스를 메모리의 어떤 위치에 올려놓을지 결정하는 정책
- 페이징 : 메모리를 같은 크기로 자르는 것
- 세그먼테이션 : 프로세스의 크기에 맞게 자르는 것
- 페이징과 세그먼테이션의 장단점을 파악해 메모리를 효율적으로 관리할 수 있도록 정책을 만드는 것
- 재배치 정책 : 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정하는 정책
절대 주소
- 실제 물리 주소를 가리키며 메모리 관리자 입장에서 바라본 주소
상대 주소
- 사용자 영역이 시작되는 주소를 0번지로 변경해 사용하는 주소
메모리 오버레이
- 프로세스의 크기가 실제 메모리(물리 메모리)보다 클 때 전체 프로세스를 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 방식
스왑
- 메모리가 모자라서 쫓겨난 프로세스를 저장장치의 특별한 공간, 즉 스왑 영역(보조예비 기업장치)에 모아두는 기법
- 스왑인 : 스왑 영역에서 메모리로 데이터를 가져오는 작업
- 스왑아웃 : 메모리에서 스왑 영역으로 데이터를 내보내는 작업
메모리 분할 방식
- 가변 분할 방식 : 프로세스의 크기에 따라 메모리를 나누는 것
- 고정 분할 방식 : 프로세스의 크기와 상관 없이 메모리를 같은 크기로 나누는 것
외부 단편화
- 할당할 프로세스의 크기보다 메모리에 남아 있는 조각이 작아서 할당이 불가능한 현상
내부단편화
- 각 메모리 조각에 프로세스를 배치하고 공간이 남는 현상
가변 분할 방식의 메모리 배치 방식
- 최초 배치 : 메모리에서 적재 가능한 공간을 순서대로 찾다가 첫번째로 발견한 공간에 프로세스를 배치하는 방법
- 최적 배치 : 메모리의 빈 공간을 모두 확인한 후 적당한 크기 가운데 가장 작은 공간에 프로세스를 배치하는 방법
- 최악 배치 : 최적 배치와 반대로, 빈 공간을 보두 확인한 후 가장 큰 공간에 프로세스를 배치하는 방법
조각 모음
- 단편화가 발생하면 이미 배치된 프로세스를 옆으로 옮겨 빈 공간들을 하나의 큰 덩어리로 만드는 것
'운영체제' 카테고리의 다른 글
[운영체제] 9. 가상메모리 관리 (0) 2020.01.05 [운영체제] 8. 가상메모리 기초 (0) 2020.01.05 [운영체제] 6. CPU 스케줄링 (0) 2019.12.22 5. 교착상태 (0) 2019.12.22 4. 프로세스 동기화 (0) 2019.12.22 - 가져오기 정책