메모리 관리

Lumi·2021년 11월 8일
0

이론적인 내용

목록 보기
13/13
post-thumbnail

🔥 메모리

메모리는 RAM을 뜻한다.

  • 프로그램 실행 시 필요한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간
  • 즉 작업을 위한 공간이다.

🌪 메모리 관리가 필요한 이유

각 프로세스는 독립된 메모리 공간을 가지고 있고 다른 프로세스의 메모리에 접근을 할수가 없다.

단지 운영체제만이 제약 없이 메모리에 접근을 할수 있기 떄문에 운영체제에서 메모리를 관리를 하게 된다.

그리고 멀티프로그래밍 환경으로 변화를 하게 되면서 한정된 메모리를 사용해야 했고 이로인해 메모리 관리의 중요성은 더욱 부각되었다.

🌪 Swapping

메모리 관리를 위해 사용하는 기법이다.

메모리에 적재되어 있지만 현재 사용하지 않고 있는 프로세스를 관리하는 역할을 한다.

  • CPU할당 시간이 끝난 프로세스의 메모리를 내보내고 다른 프로세스를 실행 시킨다.

메모리 공간이 부족한 경우에만 시작되는 기법이다.

🔥 단편화 현상

메모리의 공간이 작은 조각으로 나뉘어 사용 가능한 메모리가 충분히 존재하지만 사용이 불가능한 상태

🌪 내부 단편화

프로세스가 사용하는 메모리 공간에 포함된 남는 부분.

  • 단순히 남은 메모리 공간을 말한다.

🌪 외부 단편화

메모리 공간 중 사용하지 못하게 되는 부분

  • 메모리에서 사이사이 남는 공간들을 모두 합치면 충분한 공간이 될떄를 말한다.

🔥 메모리 관리 방법

🌪 연속 메모리 할당

프로세스를 메모리에 연속적으로 할당하는 기법

🌪 페이징(Paging)

하나의 프로세스가 사용하는 메모리 공간이 연속저이어야 한다는 제약을 없애는 메모리 관리 방법

  • 가상 메모리 사용

외부 단편화의 문제를 해결할수 있는 방법이지만 반대로 내부 단편화 문제의 비중이 늘어나게 된다.

🌪 세그먼테이션(Segmentation)

가상메모리를 사용하는 방법

외부 단편화의 문제를 해결할수는 없지만 내부 단편화의 문제는 해결한다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글