메모리 관리 전략
- 메모리 관리가 필요한 이유?
- 메모리의 성능도 올라가지만 그에따라 소프트웨어의 성능도 올라가므로 메모리 부족현상은 계속 발생이 되었다.
- 제한된 메모리를 최대한 효율적으로 사용하기 위해서 메모리 관리전략이 필요하다.
- 효율적인 메모리 관리 3가지
- 동적적재
- 모든 프로그램을 적재하는것이 아니라 반드시 필요한루틴과 데이터만 적재하는 기법입니다.
-
루틴: 어느 프로그램이 실행될때 불려지거나 반복해서 사용되도록 만들어진 코드들 입니다.
- 동적연결
- 라이브러리 루틴연결을 컴파일 시점에 하는 것이 아닌 실행 시점까지 미루는 기법입니다.
- 스와핑
- 실행중이지 않은 프로세스를 저장장치인 swap영역으로 이동하여 메모리를 확보하는 기법입니다.
- 잦은 스와핑시에 단점
- 단편화
- 잦은 메모리 관리가 일어나면 메모리사이에 틈이 생기는데 메모리 상으로는 올라올수 있지만 할당이 불가능한 상태를 단편화라고 합니다.
- 내부 단편화
- 메모리를 할당할때 프로세스가 사용할 양보다 더 넉넉하게 메모리가 할당이 되어서 메모리 낭비가 되는 현상입니다.
- 외부 단편화
- 메모리 할당,해제 순서가 반복되어서 중간중간의 틈이 모여서 프로세서가 할당할 공간이 충분하지만 할당을 하지못할때 생기는 현상입니다.
- 단편화
이를 해결하기 위한 방법
압축
- 외부 단편화를 해소하기 위해서 한쪽으로 찌부 시키는 과정입니다. 효과는 미미
페이징기법
- 페이지: 보조기억장치 주기억장치를 이용한 가상메모리를 같은 크기의 블록으로 나눈 것
- 프레임: RAM을 페이지와 같은 크기로 나눈 것
페이징 기법은 사용하지 않는 프레임을 페이지에 옮기고, 필요한 메모리를 페이지 단위로 프레임에 옮기는 기법입니다.(페이지와 프레임을 대응시키기 위해 page mapping과정이 필요해서 paging table을 만든다.)
Ex) 4100짜리 프로세스라면 1000짜리 물리메모리 4개와 100짜리 하나면 가능하지만 1000짜리 5개를 사용해서 900의 내부 단편화가 일어난다.
세그멘테이션
- 페이징 기법에서는 같은 크기로 분할을 했지만 세그멘테이션에서는 유동적으로 크기를 조절하면서 분할을 한다. 내부 단편화는 사라졌지만 중간에 해제하면서 메모리틈이 생겨서 외분 단편화는 해결을 못하고 있습니다.
'기술면접 > 운영체제' 카테고리의 다른 글
[운영체제] 동기와 비동기, 블로킹과 논블로킹 (0) | 2022.03.02 |
---|---|
[운영체제] 외부단편화, 내부단편화 (0) | 2022.03.02 |
[운영체제] 가상 메모리 (0) | 2022.03.02 |
[운영체제] Context switching (0) | 2022.03.02 |
[운영체제] CPU 스케줄링 (0) | 2022.03.02 |
댓글