이 포스트 내용은 박미진 컴퓨터일반과 시나공 정보처리기사 요약집를 참고하여 작성한 글입니다.
메모리 관리 기법 - 주기억장치
주기억장치(연속할당)
-
단일사용자(단일프로그래밍)
- 상주모니터
- 오버레이
프로세스의 모든 논리 주소 공간은 그 프로세스가 수행되기 전에 실제 메모리에 적재되어야 하므로, 프로세스의 크기는 실제 메모리의 크기로 제한된다.
하지만 한 프로세스에 할당된 메모리보다 큰 프로그램은 중첩 기법(Overlay)을 사용하여 해결한다.
Overlay - 스와핑
프로세스 할당이 끝나고 수행 완료된 프로세스는 보조기억장치로 보내고(Swap out)
새롭게 시작하는 프로세스는 메모리에 적재(Swap in)
Swapping -
다중사용자(다중프로그래밍)
-
고정분할
메모리를 여러개의 고정된 크기로 미리 분할하는 것
❗️단편화
내부 단편화: 하나의 분할에 작업을 할당하고 남은 빈 공간
외부 단편화: 대기 중인 작업에게는 분할이 너무 적어 분할 전체가 빈 공간으로 있을 때의 상태- 절대적재
주기억장치가 여러 개의 고정된 분할로 나누어져 있고 하나의 작업은 절대 컴파일러에 의해 번역되어 지정된 분할에서 실행한다.
한 작업이 실행 준비가 되어있어도 지정된 자신의 분할이 이미 차있다면, 다른 분할이 이용가능하더라도 기다려야한다.
절대 적재 - 재배치적재
모든 작업을 하나의 큐에 넣어서, 어느 분할에서든지 실행 가능하도록한 기법
절대 적재기법보다 주기억장치의 낭비를 줄이지만 운영체제의 부담이 커진다.
재배치 적재 - 절대적재
-
가변분할
가장 합리적인 분할의 크기를 결정하여 각 작업에게 주기억장치를 할당하는 기법, 고정된 분할의 경계를 없애고 각 프로세스가 필요한만큼 할당
내부 단편화 X 외부 단편화 O
가변 분할 -
Garage Collection
단편화 공간을 모아서 하나의 큰 가용 공간을 만드는 것
외부 단편화 해결을 할 수 있고 2가지 방법이 있다.1. 통합
하나의 작업이 끝났을 때 다른 빈 공간과 인접한지 점검하여 하나로 합침Coalesing 2. 압축
모든 사용 가능한 메모리를 하나의 큰 가용공간으로 만듬Compaction
-
-
다음 Post -> 메모리 관리 기법 - 가상기억장치
댓글 쓰기